commit 883cbf075694094075d3786514a6358582d886aa Author: Jeevan Prasad Date: Mon Mar 10 13:26:35 2025 +0530 Inital commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml new file mode 100644 index 0000000..dfec802 --- /dev/null +++ b/.idea/appInsightsSettings.xml @@ -0,0 +1,40 @@ + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..57263ac --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..fc84d4c --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..fc0b14a --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..eb2873e --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..8d81632 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..f8051a6 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8fe5d23 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,51 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..5f3372d --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/other.xml b/.idea/other.xml new file mode 100644 index 0000000..c5b36a6 --- /dev/null +++ b/.idea/other.xml @@ -0,0 +1,527 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/.gitignore b/GSKMTOrange/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/GSKMTOrange/.gitignore @@ -0,0 +1 @@ +/build diff --git a/GSKMTOrange/build.gradle b/GSKMTOrange/build.gradle new file mode 100644 index 0000000..19919bf --- /dev/null +++ b/GSKMTOrange/build.gradle @@ -0,0 +1,171 @@ +apply plugin: 'com.android.application' +//apply plugin: 'io.fabric' +apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.firebase.crashlytics' +apply plugin: 'org.jetbrains.kotlin.android' +android { + compileSdk(34) + useLibrary 'org.apache.http.legacy' + namespace "cpm.com.gskmtorange" + lintOptions { + checkReleaseBuilds false + disable 'MissingTranslation' + abortOnError false + } + + configurations { + // all*.exclude module: 'okio' + // all*.exclude group: 'com.squareup.okhttp3', module: 'okhttp' + all*.exclude module: 'support-v4' // This removes all other versions of `support-v4` if gets duplicated from all the artifacts. + } + + defaultConfig { + applicationId "cpm.com.gskmtorange" + minSdkVersion 24 + targetSdk(34) + + // For Lebanon + /*versionCode 1 + versionName "1.0"*/ + + //For Egypt + /*versionCode 35 + versionName "4.6"*/ + + //For UAE + /*versionCode 29 + versionName "4.1"*/ + + //For Turkey + /* versionCode 34 + versionName "4.6"*/ + + //For Turkey + /*versionCode 32 + versionName "4.4"*/ + + //For KSA + /*versionCode 28 + versionName "4.0"*/ + + // aading price facing + /* versionCode 27 + versionName "3.8"*/ + + //sa + /* versionCode 28 + versionName "3.9"*/ + + //Kenya + versionCode 2 + versionName "1.1" + + //kenya-lite + /* versionCode 2 + versionName "1.1"*/ + + //nigeria + /*versionCode 1 + versionName "1.0"*/ + + //For jordan + /* versionCode 7 + versionName "1.6"*/ + + //For Kuwait + /*versionCode 1 + versionName "1.0"*/ + + //For Bahrain + /*versionCode 1 + versionName "1.0"*/ + + //For QATAR + /*versionCode 1 + versionName "1.0"*/ + + //For Libya + /*versionCode 3 + versionName "1.2"*/ + + //For Oman + /*versionCode 1 + versionName "1.0"*/ + + multiDexEnabled true + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + firebaseCrashlytics { + nativeSymbolUploadEnabled true + } + + buildFeatures { + viewBinding = true + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation files('libs/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar') + implementation 'androidx.cardview:cardview:1.0.0' + implementation 'com.google.android.material:material:1.2.1' + implementation project(path: ':library') + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'com.google.firebase:firebase-auth:20.0.3' + implementation 'androidx.activity:activity:1.9.3' + testImplementation 'junit:junit:4.13.1' + implementation 'android.arch.navigation:navigation-fragment:1.0.0' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + implementation 'com.google.code.gson:gson:2.10.1' + implementation 'com.github.bumptech.glide:glide:4.15.1' + //implementation 'com.google.code.ksoap2-android:ksoap2-android:3.6.2' + // implementation 'com.github.leocadiotine:ksoap2-android:3.6.2' + + implementation platform('com.google.firebase:firebase-bom:26.7.0') + // implementation 'com.google.firebase:firebase-analytics' + implementation 'com.google.firebase:firebase-crashlytics-ndk' + implementation 'com.google.firebase:firebase-messaging' + + implementation 'com.google.android.gms:play-services-location:17.1.0' + implementation 'com.google.android.gms:play-services-maps:17.0.0' + //implementation 'com.kyanogen.signatureview:signature-view:1.0' + // implementation 'com.squareup.okhttp3:okhttp:4.12.0' + implementation 'com.squareup.retrofit2:retrofit:2.9.0' + implementation 'com.squareup.retrofit:converter-gson:2.0.0-beta1' + implementation 'com.squareup.retrofit2:converter-gson:2.9.0' + implementation 'com.google.firebase:firebase-appindexing:10.2.1' + // Add the Firebase Crashlytics SDK. + implementation 'com.google.firebase:firebase-crashlytics:17.3.0' + // Recommended: Add the Google Analytics SDK. + implementation 'com.google.firebase:firebase-analytics:18.0.0' + implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) + implementation 'androidx.multidex:multidex:2.0.1' + //using stable version + // implementation 'com.github.pratham-PDots:camera_lib:1.5.1' + // implementation 'com.github.pratham-PDots:camera_lib:1.5.0-external-2' + // implementation 'com.github.pratham-PDots:camera_lib:1.5.1.0' + // Main SDK dependency + implementation("com.github.pratham-PDots:camera_lib:1.5.1.1") + /*implementation 'androidx.activity:activity-ktx:1.9.0' + implementation 'androidx.fragment:fragment-ktx:1.6.2'*/ +} + + +apply plugin: 'com.google.gms.google-services' +apply plugin: 'org.jetbrains.kotlin.android' + + diff --git a/GSKMTOrange/google-services.json b/GSKMTOrange/google-services.json new file mode 100644 index 0000000..68d966a --- /dev/null +++ b/GSKMTOrange/google-services.json @@ -0,0 +1,39 @@ +{ + "project_info": { + "project_number": "310038602345", + "project_id": "gskorangev2", + "storage_bucket": "gskorangev2.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:310038602345:android:dab7010946bd056dd1f8f8", + "android_client_info": { + "package_name": "cpm.com.gskmtorange" + } + }, + "oauth_client": [ + { + "client_id": "310038602345-ctmpg90bjppcgqam7jt4j3tn3e3hqtvr.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDg2pgsaB0sWKD9pAF7mb9DSk8ec5rX7uI" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "310038602345-ctmpg90bjppcgqam7jt4j3tn3e3hqtvr.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/GSKMTOrange/libs/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar b/GSKMTOrange/libs/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar new file mode 100644 index 0000000..bf4ebe2 Binary files /dev/null and b/GSKMTOrange/libs/ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar differ diff --git a/GSKMTOrange/proguard-rules.pro b/GSKMTOrange/proguard-rules.pro new file mode 100644 index 0000000..f13cc3c --- /dev/null +++ b/GSKMTOrange/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in E:\adt-bundle-windows-x86_64-20140702\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/GSKMTOrange/release/Haleon-Jordan-V-1.6-U-release.apk b/GSKMTOrange/release/Haleon-Jordan-V-1.6-U-release.apk new file mode 100644 index 0000000..b968f94 Binary files /dev/null and b/GSKMTOrange/release/Haleon-Jordan-V-1.6-U-release.apk differ diff --git a/GSKMTOrange/release/output-metadata.json b/GSKMTOrange/release/output-metadata.json new file mode 100644 index 0000000..1210f47 --- /dev/null +++ b/GSKMTOrange/release/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "cpm.com.gskmtorange", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 7, + "versionName": "1.6", + "outputFile": "GSKMTOrange-release.apk" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/GSKMTOrange/src/androidTest/java/cpm/com/gskmtorange/ExampleInstrumentedTest.java b/GSKMTOrange/src/androidTest/java/cpm/com/gskmtorange/ExampleInstrumentedTest.java new file mode 100644 index 0000000..a4c0430 --- /dev/null +++ b/GSKMTOrange/src/androidTest/java/cpm/com/gskmtorange/ExampleInstrumentedTest.java @@ -0,0 +1,23 @@ +package cpm.com.gskmtorange; +import android.content.Context; +import org.junit.Test; +import org.junit.runner.RunWith; +import static org.junit.Assert.*; + +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + assertEquals("cpm.com.gskmtorange", appContext.getPackageName()); + } +} diff --git a/GSKMTOrange/src/debug/res/values/google_maps_api.xml b/GSKMTOrange/src/debug/res/values/google_maps_api.xml new file mode 100644 index 0000000..c24c671 --- /dev/null +++ b/GSKMTOrange/src/debug/res/values/google_maps_api.xml @@ -0,0 +1,25 @@ + + + AIzaSyDdgvyAY0_pb-k7PLPJoG6wR-KN0xnhkRE + + diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml new file mode 100644 index 0000000..04e9fc2 --- /dev/null +++ b/GSKMTOrange/src/main/AndroidManifest.xml @@ -0,0 +1,476 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/assets/fonts/fontawesome-webfont.ttf b/GSKMTOrange/src/main/assets/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/GSKMTOrange/src/main/assets/fonts/fontawesome-webfont.ttf differ diff --git a/GSKMTOrange/src/main/ic_launcher-web.png b/GSKMTOrange/src/main/ic_launcher-web.png new file mode 100644 index 0000000..74ed75d Binary files /dev/null and b/GSKMTOrange/src/main/ic_launcher-web.png differ diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/AppUtils.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/AppUtils.java new file mode 100644 index 0000000..1112bf6 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/AppUtils.java @@ -0,0 +1,46 @@ +package cpm.com.gskmtorange; + +import android.content.Context; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +public class AppUtils { + public static File getInternalDirectory(Context context, String folderName) { + File dir = context.getExternalFilesDir(""); + File file = new File(dir, folderName); + if (!file.exists()) { + file.mkdirs(); + } + return file; + } + + public static File getFile(Context context, String fileName, String folderName) { + File dir = getInternalDirectory(context, folderName); + if (fileName == null || fileName.isEmpty()) { + return dir; + } else { + return new File(dir, fileName); + } + } + + public static void saveByteArrayToFile(byte[] byteArray, String fileName) throws IOException { + try (FileOutputStream fileOutputStream = new FileOutputStream(fileName)) { + fileOutputStream.write(byteArray); + } + } + public static void clearMyFiles(Context activity, String folderName) { + File[] files = getInternalDirectory(activity, folderName).listFiles(); + if (files != null) { + for (File file : files) { + file.delete(); + } + } + } + + public static File getExterDir(Context context) { + return context.getExternalFilesDir(""); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java new file mode 100644 index 0000000..79179e2 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java @@ -0,0 +1,10603 @@ +package cpm.com.gskmtorange.Database; + +import android.annotation.SuppressLint; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.SQLException; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; +import android.widget.Toast; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +import cpm.com.gskmtorange.GetterSetter.AdditionalDialogGetterSetter; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.GetterSetter.BrandAvabilityGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +import cpm.com.gskmtorange.GetterSetter.ChatMessageGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CoachingVisitGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.GetterSetter.GeotaggingBeans; +import cpm.com.gskmtorange.GetterSetter.OrderReceivedStatus; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.adapter.data.ImageUri; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.AdditionalQuestiongetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.AuditDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryImagesAllowed; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryWisePerformaceGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ChatMessageDownloadGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CompetitonPromoGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CounterfeitProductGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DeliveryCallsGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.GapsChecklistGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.GeoFencingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ImageGetterSetter; +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_SKU_PRICING_ENABLEGetterSetter; +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.MappingCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingDisplayChecklistGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaMSLGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramCountrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPromotionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraLastVisitGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonT2pReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingSubReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Order_Received_Status_GetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.POGGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.POGQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PROMOTION_TYPE_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaMSLInsertedGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaSOSGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PromoComplianceSkuwiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Promo_Compliance_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.RowColumnGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.STORE_CATEGORY_WISEGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.STORE_PERFORMANCE_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter; +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; +import cpm.com.gskmtorange.xmlGetterSetter.SubCategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.T2PGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.TableBean; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; + + +public class GSKOrangeDB extends SQLiteOpenHelper { + public static final String DATABASE_NAME = "HaleonDatab"; + public static final int DATABASE_VERSION = 1; + private SQLiteDatabase db; + Context context; + ArrayList t2PGetterSetters; + + public GSKOrangeDB(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + this.context = context; + } + + public void open() { + try { + db = this.getWritableDatabase(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onCreate(SQLiteDatabase db) { + + try { + db.execSQL(TableBean.getJourneyPlan()); + db.execSQL(TableBean.getAdhocJourneyPlan()); + //Gagan Start + db.execSQL(TableBean.getBrandMaster()); + db.execSQL(TableBean.getSkuMaster()); + db.execSQL(TableBean.getCategoryMaster()); + db.execSQL(TableBean.getSubCategoryMaster()); + db.execSQL(TableBean.getDisplayMaster()); + db.execSQL(TableBean.getMappingStock()); + db.execSQL(TableBean.getMappingT2p()); + db.execSQL(TableBean.getNonWorkingReason()); + db.execSQL(CommonString.CREATE_TABLE_STORE_GEOTAGGING); + db.execSQL(CommonString.CREATE_TABLE_COVERAGE_DATA); + db.execSQL(TableBean.getDisplayChecklistMaster()); + db.execSQL(TableBean.getMappingDisplayChecklist()); + db.execSQL(TableBean.getMappingAdditionalPromotion()); + db.execSQL(TableBean.getMappingPromotion()); + db.execSQL(TableBean.getTable_VISIT_TYPE_STATUS()); + db.execSQL(CommonString.CREATE_TABLE_INSERT_MSL_AVAILABILITY); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK_ADDITIONAL_VISIBILITY); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK_FACING_HEADER); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK_FACING_CHILD); + db.execSQL(CommonString.CREATE_TABLE_STOCK_DIALOG); + db.execSQL(CommonString.CREATE_TABLE_STOCK_ADDITIONAL_STOCK_DATA); + db.execSQL(CommonString.CREATE_TABLE_INSERT_ADDITIONAL_PROMO_COMPLIANCE); + db.execSQL(CommonString.CREATE_TABLE_INSERT_PROMO_SKU); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK_ADDITIONAL_VISIBILITY_MAIN); + db.execSQL(CommonString.CREATE_TABLE_STOCK_DIALOG_MAIN); + db.execSQL(TableBean.getStorePerformance()); + //Gagan End + db.execSQL(CommonString.CREATE_TABLE_STORE_GEOTAGGING); + db.execSQL(CommonString.CREATE_TABLE_COVERAGE_DATA); + db.execSQL(TableBean.getDisplayChecklistMaster()); + db.execSQL(TableBean.getMappingDisplayChecklist()); + db.execSQL(TableBean.getNonWorkingReason()); + db.execSQL(CommonString.CREATE_TABLE_INSERT_T2P_COMPLIANCE); + db.execSQL(CommonString.CREATE_TABLE_INSERT_T2P_GAPS); + db.execSQL(CommonString.CREATE_TABLE_INSERT_T2P_SKU); + db.execSQL(TableBean.getMappingPlanogram()); + db.execSQL(TableBean.getAdditionalDisplay()); + db.execSQL(TableBean.getMappingSosTarget()); + db.execSQL(CommonString.CREATE_TABLE_INSERT_BRAND_AVAIBILITY_DATA); + db.execSQL(TableBean.getShelfMaster()); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STORE_CAMERA); + db.execSQL(CommonString.CREATE_TABLE_INSERT_CATEGORY_PICTURE_LIST); + db.execSQL(CommonString.CREATE_TABLE_INSERT_CATEGORY_PICTURE); + db.execSQL(TableBean.getMappingSubCategoryImageAllow()); + db.execSQL(TableBean.getMappingCategoryImageAllow()); + db.execSQL(TableBean.getSkugroupMaster()); + db.execSQL(TableBean.getTable_ADDITIONAL_QUESTION()); + db.execSQL(TableBean.getTable_POG_QUESTION()); + db.execSQL(TableBean.getTable_NON_T2P_REASON()); + db.execSQL(TableBean.getTable_CONFIGURATION_COUNTRY_WISE()); + db.execSQL(TableBean.getTable_NO_CAMERA_LAST_VISIT_DATA()); + db.execSQL(TableBean.getTable_GEO_FENCING()); + db.execSQL(TableBean.getTable_NON_WORKING_SUB_REASON());//--Added 26.09.2018 + db.execSQL(TableBean.getTable_SUPERVISOR_LIST());//--Added 01.10.2018 + db.execSQL(TableBean.getTable_CONFIGURATION_MASTER());//--Added 03.10.2018 + if (TableBean.getTable_MAPPING_STOCK_STOREWISE() != null) { + db.execSQL(TableBean.getTable_MAPPING_STOCK_STOREWISE());//--Added 04.12.2018 + } + if (TableBean.getTable_MAPPING_PLANOGRAM_STORE_WISE() != null) { + db.execSQL(TableBean.getTable_MAPPING_PLANOGRAM_STORE_WISE());//--Added 17.01.2019 + } + + //15-03-2017 + db.execSQL(CommonString.CREATE_TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING); + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK_ENTRY); + db.execSQL(CommonString.CREATE_TABLE_INSERT_NO_CAMERA_FACING_DATA); + db.execSQL(CommonString.CREATE_TABLE_AUDIT_DATA_SAVE); + db.execSQL(CommonString.CREATE_TABLE_POG_DATA_SAVE); + db.execSQL(CommonString.CREATE_TABLE_COACHING_VISIT); + db.execSQL(CommonString.CREATE_TABLE_DELIVERY_CALLS);//--Added 09.10.2018 + db.execSQL(CommonString.CREATE_TABLE_INSERT_PROMO_SKUWISE);//--Added 10.12.2018 + db.execSQL(CommonString.CREATE_TABLE_INSERT_PROMO_SKUWISE_EXISTS);//--Added 11.12.2018 + db.execSQL(CommonString.CREATE_ABLE_IS_ADHOC_SAVED);//--Added 20.02.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_COUNTERFEIT_PRODUCT_EXISTS);//--Added 12.03.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_COUNTERFEIT_PRODUCT);//--Added 12.03.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_STOCK);//--Added 03.04.2019 + db.execSQL(TableBean.getAdditionalJourneyPlan());//--Added 8.04.2019 + db.execSQL(TableBean.getMappingStockAdditional());//--Added 8.04.2019 + db.execSQL(TableBean.getTable_JOURNEY_PLAN_PHARMA());//--Added 12.04.2019 + db.execSQL(TableBean.getTable_MAPPING_PHARMA_QUESTION());//--Added 12.04.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_STORE_PROFILE_DATA);//--Added 25.04.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_SOS_PHARMA_DATA);//--Added 29.04.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_PHARMA_MSL_DATA);//--Added 30.04.2019 + db.execSQL(TableBean.getTable_MAPPING_PHARMA_MSL());//--Added 16.05.2019 + db.execSQL(TableBean.getTable_PROMOTION_TYPE_MASTER());//--Added 18.12.2019 + db.execSQL(TableBean.getCategoryWiseSos());//--Added 01.06.2020 + db.execSQL(TableBean.getTable_MAPPING_SKU_PRICING_ENABLE());//--Added 01.03.2021 + db.execSQL(CommonString.CREATE_TABLE_INSERT_PHARMA_IMAGE_DATA);//--Added 20.05.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_COMPETIOTIONN_PROMO);//--Added 17.12.2019 + db.execSQL(CommonString.CREATE_TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS);//--Added 17.12.2019 + db.execSQL(CommonString.CREATE_TABLE_COACHING_VISIT_STORE);//--Added 28.06.2021 + db.execSQL(CommonString.CREATE_TABLE_INSERT_ORDER_TAKING_DATA);//--Added 07.12.2022 + db.execSQL(CommonString.CREATE_TABLE_INSERT_ORDER_RECEIVED_DATA);//--Added 07.12.2022 + db.execSQL(CommonString.CREATE_TABLE_VISIT_TYPE);//--Added 03.01.2023 + db.execSQL(TableBean.getTable_ORDER_RECEIVED_STATUS());//--Added 08.12.2022 + db.execSQL(TableBean.getAdhocJourneyplanAdditional());//--Added 7.10.2019 + db.execSQL(CommonString.CREATE_TABLE_IRPD); + + } catch (SQLException e) { + e.printStackTrace(); + Toast.makeText(context, "Error -" + e.toString(), Toast.LENGTH_SHORT).show(); + } + + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + db.execSQL("DROP TABLE IF EXISTS " + TableBean.getJourneyPlan()); + } + + public void createTable(String table_query) { + db.execSQL(table_query); + } + + public void deleteTableWithStoreID(String storeid) { + try { + db.delete(CommonString.TABLE_COVERAGE_DATA, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG_MAIN, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_MAIN, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_DATA, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_ORDER_TAKING_DATA, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_ORDER_RECEIVED_DATA, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_VISIT_TYPE, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + //Gagan start code + db.delete(CommonString.TABLE_INSERT_MSL_AVAILABILITY, "Store_Id='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_HEADER, "Store_Id='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_CHILD, "Store_Id='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_ADDITIONAL_PROMO_COMPLIANCE, "STORE_ID='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_PROMO_SKU, "STORE_ID='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_PROMO_SKUWISE, "STORE_ID='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_PROMO_SKUWISE_EXISTS, "STORE_ID='" + storeid + "'", null); + //Gagan end code + t2PGetterSetters = getT2pCompliancedaletedata(storeid); + for (int q = 0; q < t2PGetterSetters.size(); q++) { + db.delete(CommonString.TABLE_INSERT_T2P_GAPS, "COMMON_ID='" + t2PGetterSetters.get(q).getKey_id() + "'", null); + db.delete(CommonString.TABLE_INSERT_T2P_SKU, "COMMON_ID='" + t2PGetterSetters.get(q).getKey_id() + "'", null); + db.delete(CommonString.TABLE_INSERT_BRAND_AVAIBILITY_DATA, "COMMON_ID='" + t2PGetterSetters.get(q).getKey_id() + "'", null); + } + + db.delete(CommonString.TABLE_INSERT_T2P_COMPLIANCE, "STORE_ID='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_CATEGORY_PICTURE, "Store_Id='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_CATEGORY_PICTURE_LIST, "Store_Id='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING, "Store_Id='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_ENTRY, "Store_Id='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_NO_CAMERA_FACING_DATA, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_AUDIT_DATA_SAVE, "STORE_CD" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_POG_DATA_SAVE, "STORE_CD" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_COACHING_VISIT, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_COACHING_VISIT_STORE, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_COUNTERFEIT_PRODUCT_EXISTS, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_COUNTERFEIT_PRODUCT, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK, "Store_Id" + "='" + storeid + "'", null); + //Pharma store data + db.delete(CommonString.TABLE_INSERT_PHARMA_IMAGE_DATA, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_STORE_PROFILE_DATA, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_SOS_PHARMA_DATA, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_PHARMA_MSL_DATA, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO, "STORE_ID" + "='" + storeid + "'", null); + db.delete(CommonString.TABLE_IRPD, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + + } catch (Exception e) { + throw new RuntimeException(e); + } + + } + + public void deleteAllTables() { + try { + db.delete(CommonString.TABLE_COVERAGE_DATA, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG_MAIN, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_MAIN, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_DATA, null, null); + db.delete(CommonString.TABLE_INSERT_ORDER_RECEIVED_DATA, null, null); + db.delete(CommonString.TABLE_VISIT_TYPE, null, null); + //Gagan start code + db.delete(CommonString.TABLE_INSERT_MSL_AVAILABILITY, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_HEADER, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_CHILD, null, null); + db.delete(CommonString.TABLE_INSERT_ADDITIONAL_PROMO_COMPLIANCE, null, null); + db.delete(CommonString.TABLE_INSERT_PROMO_SKU, null, null); + db.delete(CommonString.TABLE_INSERT_PROMO_SKUWISE, null, null); + db.delete(CommonString.TABLE_INSERT_PROMO_SKUWISE_EXISTS, null, null); + //Gagan end code + + db.delete(CommonString.TABLE_INSERT_T2P_COMPLIANCE, null, null); + db.delete(CommonString.TABLE_INSERT_T2P_GAPS, null, null); + db.delete(CommonString.TABLE_INSERT_T2P_SKU, null, null); + db.delete(CommonString.TABLE_INSERT_BRAND_AVAIBILITY_DATA, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD, null, null); + db.delete(CommonString.TABLE_INSERT_CATEGORY_PICTURE, null, null); + db.delete(CommonString.TABLE_INSERT_CATEGORY_PICTURE_LIST, null, null); + db.delete(CommonString.TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK_ENTRY, null, null); + db.delete(CommonString.TABLE_INSERT_NO_CAMERA_FACING_DATA, null, null); + db.delete(CommonString.TABLE_AUDIT_DATA_SAVE, null, null); + db.delete(CommonString.TABLE_POG_DATA_SAVE, null, null); + db.delete(CommonString.TABLE_COACHING_VISIT, null, null); + db.delete(CommonString.TABLE_INSERT_COUNTERFEIT_PRODUCT_EXISTS, null, null); + db.delete(CommonString.TABLE_INSERT_COUNTERFEIT_PRODUCT, null, null); + db.delete(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO, null, null); + db.delete(CommonString.TABLE_INSERT_COMPETIOTIONN_PROMO_EXISTS, null, null); + db.delete(CommonString.TABLE_COACHING_VISIT_STORE, null, null); + db.delete(CommonString.TABLE_INSERT_ORDER_TAKING_DATA, null, null); + db.delete(CommonString.TABLE_INSERT_STOCK, null, null); + db.delete(CommonString.TABLE_IRPD, null, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + + } + + public void InsertJCP(JourneyPlanGetterSetter data) { + db.delete("JOURNEY_PLAN", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("EMP_ID", data.getEMP_ID().get(i)); + + values.put("STORE_NAME", data.getSTORE_NAME().get(i)); + + values.put("CITY", data.getCITY().get(i)); + + values.put("VISIT_DATE", data.getVISIT_DATE().get(i)); + + values.put("ADDRESS", data.getADDRESS().get(i)); + + values.put("UPLOAD_STATUS", data.getUPLOAD_STATUS().get(i)); + + values.put("STORETYPE", data.getSTORETYPE().get(i)); + + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + + + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + + values.put("CHECKOUT_STATUS", data.getCHECKOUT_STATUS().get(i)); + + values.put("CLASSIFICATION", data.getCLASSIFICATION().get(i)); + + values.put("KEYACCOUNT", data.getKEYACCOUNT().get(i)); + values.put("CLASS_ID", data.getCLASS_ID().get(i)); + + values.put("CAMERA_ALLOW", data.getCAMERA_ALLOW().get(i)); + values.put("GEO_TAG", data.getGEO_TAG().get(i)); + + values.put("VISIT_ORDER", data.getVISIT_ORDER().get(i)); + values.put("LATITUDE", data.getLATITUDE().get(i)); + values.put("LONGITUDE", data.getLONGITUDE().get(i)); + values.put("POG_TYPE_ID", data.getPOG_TYPE_ID().get(i)); + values.put("FACING_HIDE", data.getFACING_HIDE().get(i)); + + db.insert("JOURNEY_PLAN", null, values); + + } + + } catch (Exception ex) { + Log.d("Exception in JCP", ex.toString()); + } + } + + public void InsertOrderReceivingStatus(Order_Received_Status_GetterSetter data) { + db.delete("ORDER_RECEIVED_STATUS", null, null); + ContentValues values = new ContentValues(); + try { + // Log.e("open_storesize", String.valueOf(data.getSTORE_ID().size())); + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("APP_PONUMBER", data.getAPP_PONUMBER().get(i)); + values.put("STORE_PONUMBER", data.getSTORE_PONUMBER().get(i)); + values.put("PO_DATE", data.getPO_DATE().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("SKU_ID", data.getSKU_ID().get(i)); + values.put("ORDERQTY", data.getORDERQTY().get(i)); + values.put("STATUS", data.getSTATUS().get(i)); + values.put("POID", data.getPOID().get(i)); + db.insert("ORDER_RECEIVED_STATUS", null, values); + } + } catch (Exception ex) { + Log.d("Exception in JCP", ex.toString()); + } + } + + public ArrayList getT2PDefaultData(String store_id, String category_id, String tableName) { + + ArrayList t2PList = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select DISTINCT BM.BRAND As BRAND, BM.BRAND_ID As BRAND_ID, DM.DISPLAY As DISPLAY, " + + "DM.DISPLAY_ID As DISPLAY_ID, DM.IMAGE_URL As IMAGE_URL, DM.IMAGE_PATH As IMAGE_PATH, " + + "T.CATEGORY_FIXTURE As CATEGORY_FIXTURE,T.ALLOW_QTY As ALLOW_QTY from BRAND_MASTER BM INNER JOIN " + tableName + " T " + + "ON BM.BRAND_ID = T.BRAND_ID INNER JOIN DISPLAY_MASTER DM " + + "ON T.DISPLAY_ID= DM.DISPLAY_ID INNER JOIN SUB_CATEGORY_MASTER SCM ON BM.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID " + + "WHERE T.STORE_ID = '" + store_id + "' AND SCM.CATEGORY_ID ='" + category_id + "'", null); + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + T2PGetterSetter t2p = new T2PGetterSetter(); + + t2p.setBrand_id(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("BRAND_ID"))); + + t2p.setBrand(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("BRAND"))); + + t2p.setDisplay_id(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("DISPLAY_ID"))); + + t2p.setDisplay(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("DISPLAY"))); + + t2p.setRef_image_url(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("IMAGE_URL"))); + + t2p.setRef_image_path(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("IMAGE_PATH"))); + + t2p.setCategory_fixture(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CATEGORY_FIXTURE"))); + + t2p.setAllowQty(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("ALLOW_QTY"))); + + t2p.setImage(""); + t2p.setImage1(""); + t2p.setImage2(""); + + t2p.setRemark(""); + + t2p.isPresent(); + + t2PList.add(t2p); + + dbcursor.moveToNext(); + } + + dbcursor.close(); + return t2PList; + } + } catch (Exception e) { + + Log.d("Exception get T2P", e.toString()); + return t2PList; + } + + return t2PList; + } + + //get Gaps data + public ArrayList getGapsDefaultData(String display_id) { + + ArrayList checkList = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("Select DC.CHECKLIST_ID As CHECKLIST_ID, DC.CHECKLIST As CHECKLIST, C.DISPLAY_ID As DISPLAY_ID from MAPPING_DISPLAY_CHECKLIST C INNER JOIN DISPLAY_CHECKLIST_MASTER DC ON C.CHECKLIST_ID= DC.CHECKLIST_ID WHERE C.DISPLAY_ID = '" + display_id + "'", null); + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + GapsChecklistGetterSetter check = new GapsChecklistGetterSetter(); + + check.setChecklist_id(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CHECKLIST_ID"))); + + check.setChecklist(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CHECKLIST"))); + + check.setDisplay_id(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("DISPLAY_ID"))); + + check.isPresent(); + + checkList.add(check); + + dbcursor.moveToNext(); + } + + dbcursor.close(); + return checkList; + } + } catch (Exception e) { + + Log.d("Exception get T2P", e.toString()); + return checkList; + } + + return checkList; + } + + //get Brand data for T2P + public ArrayList getBrandT2PData(String store_type_id, String class_id, String key_account_id, String category_id, String store_id, String tableName) { + + ArrayList brandList = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (key_account_id != null) { + dbcursor = db.rawQuery("SELECT * FROM(SELECT DISTINCT BR.BRAND_ID, SCM.SUB_CATEGORY||'-'||BR.BRAND AS BRAND FROM " + tableName + " MS " + + "INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID " + + "INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID WHERE MS.KEYACCOUNT_ID ='" + key_account_id + "' " + + "AND STORETYPE_ID ='" + store_type_id + "' AND CLASS_ID = '" + class_id + "' AND BR.COMPANY_ID ='1' AND SCM.CATEGORY_ID = '" + category_id + "' ORDER BY SCM.SUB_CATEGORY_SEQUENCE, BR.BRAND_SEQUENCE ) As Brand", null); + } else { + dbcursor = db.rawQuery("SELECT * FROM(SELECT DISTINCT BR.BRAND_ID, SCM.SUB_CATEGORY||'-'||BR.BRAND AS BRAND FROM MAPPING_STOCK_STOREWISE MS " + + "INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID " + + "INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID WHERE MS.STORE_ID ='" + store_id + "' " + + " AND BR.COMPANY_ID ='1' AND SCM.CATEGORY_ID = '" + category_id + "' ORDER BY SCM.SUB_CATEGORY_SEQUENCE, BR.BRAND_SEQUENCE ) As Brand", null); + + } + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + BrandMasterGetterSetter brand = new BrandMasterGetterSetter(); + + brand.setBRAND(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("BRAND"))); + + brand.setBRAND_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("BRAND_ID"))); + + + brandList.add(brand); + + dbcursor.moveToNext(); + } + + dbcursor.close(); + return brandList; + } + } catch (Exception e) { + + Log.d("Exception get T2P", e.toString()); + return brandList; + } + + return brandList; + } + + //get Sku data for T2P + public ArrayList getSkuT2PData(String store_type_id, String class_id, String key_account_id, String brand_id, String store_id, String tableName) { + + ArrayList skuList = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (key_account_id != null) { + dbcursor = db.rawQuery("SELECT DISTINCT SM.SKU, SM.SKU_ID, BR.BRAND_ID FROM " + tableName + " MS INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID " + + "INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID " + + "WHERE MS.KEYACCOUNT_ID ='" + key_account_id + "' AND STORETYPE_ID ='" + store_type_id + "' AND CLASS_ID = '" + class_id + "' AND SM.BRAND_ID='" + brand_id + "' " + + "AND MS.SHOW_ADDITIONAL_VISIBILITY='1' ORDER BY SM.PROMO_SKU, SM.SKU", null); + } else { + dbcursor = db.rawQuery("SELECT DISTINCT SM.SKU, SM.SKU_ID, BR.BRAND_ID FROM MAPPING_STOCK_STOREWISE MS INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID " + + "INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID " + + "WHERE MS.STORE_ID ='" + store_id + "' AND SM.BRAND_ID='" + brand_id + "' " + + "AND MS.SHOW_ADDITIONAL_VISIBILITY='1' ORDER BY SM.PROMO_SKU, SM.SKU", null); + } + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + SkuGetterSetter sku = new SkuGetterSetter(); + + sku.setSKU(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("SKU"))); + + sku.setBRAND_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("BRAND_ID"))); + + sku.setSKU_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("SKU_ID"))); + + skuList.add(sku); + + dbcursor.moveToNext(); + } + + dbcursor.close(); + return skuList; + } + } catch (Exception e) { + + Log.d("Exception get T2P", e.toString()); + return skuList; + } + + return skuList; + } + + public ArrayList getStoreData(String date, String table_name) { + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + try { + /* dbcursor = db.rawQuery("SELECT * from " + table_name + + " where VISIT_DATE ='" + date + "' ORDER BY VISIT_ORDER", null);*/ + dbcursor = db.rawQuery("SELECT * from " + table_name + + " where VISIT_DATE ='" + date + "' ORDER BY STORE_NAME COLLATE NOCASE ASC ", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StoreBean sb = new StoreBean(); + + sb.setSTORE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORE_ID"))); + + sb.setEMP_ID((dbcursor.getString(dbcursor + .getColumnIndexOrThrow("EMP_ID")))); + + sb.setKEYACCOUNT(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("KEYACCOUNT"))); + + sb.setSTORE_NAME(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORE_NAME"))); + + sb.setADDRESS((dbcursor.getString(dbcursor + .getColumnIndexOrThrow("ADDRESS")))); + sb.setCITY(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CITY"))); + + sb.setSTORETYPE(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORETYPE"))); + + sb.setCLASSIFICATION(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CLASSIFICATION"))); + + sb.setKEYACCOUNT_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("KEYACCOUNT_ID"))); + + sb.setSTORETYPE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORETYPE_ID"))); + + sb.setCLASS_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CLASS_ID"))); + + sb.setVISIT_DATE(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("VISIT_DATE"))); + + sb.setCAMERA_ALLOW(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CAMERA_ALLOW"))); + + sb.setUPLOAD_STATUS(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("UPLOAD_STATUS"))); + sb.setCHECKOUT_STATUS(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CHECKOUT_STATUS"))); + + sb.setGEO_TAG(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("GEO_TAG"))); + + sb.setLATITUDE(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("LATITUDE"))); + + sb.setLONGITUDE(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("LONGITUDE"))); + sb.setPOG_TYPE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("POG_TYPE_ID"))); + + sb.setFACING_HIDE(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("FACING_HIDE"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return list; + } + + + return list; + } + + public ArrayList getVisitType(String date, String table_name) { + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * from " + table_name, null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Visit_Type_Master_GetterSetter sb = new Visit_Type_Master_GetterSetter(); + + sb.setVISIT_TYPE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("VISIT_TYPE_ID"))); + + sb.setVISIT_TYPE((dbcursor.getString(dbcursor + .getColumnIndexOrThrow("VISIT_TYPE")))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return list; + } + + + return list; + } + + + public ArrayList getInsertedVisitType(String storeid, String visitdate, String visittype) { + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_VISIT_TYPE + " WHERE STORE_ID = '" + storeid + "' AND VISIT_DATE = '" + visitdate + "' AND VISIT_TYPE_ID = '" + visittype + "'", null); + + // dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_VISIT_TYPE + " WHERE STORE_ID = + storeid + " , null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Visit_Type_Master_GetterSetter sb = new Visit_Type_Master_GetterSetter(); + + sb.setVISIT_TYPE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("VISIT_TYPE_ID"))); + + /* sb.setVISIT_TYPE((dbcursor.getString(dbcursor + .getColumnIndexOrThrow("VISIT_TYPE"))));*/ + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return list; + } + + + return list; + } + + public ArrayList getUploadedVisitType(String storeid) { + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_VISIT_TYPE + " WHERE STORE_ID = '" + storeid + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Visit_Type_Master_GetterSetter sb = new Visit_Type_Master_GetterSetter(); + + sb.setVISIT_TYPE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("VISIT_TYPE_ID"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return list; + } + +// + return list; + } + + //insert MAPPING_DISPLAY_CHECKLIST + public void InsertMappingDisplayChecklist(MappingDisplayChecklistGetterSetter data) { + db.delete("MAPPING_DISPLAY_CHECKLIST", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCHECKLIST_ID().size(); i++) { + + values.put("DISPLAY_ID", data.getDISPLAY_ID().get(i)); + values.put("CHECKLIST_ID", data.getCHECKLIST_ID().get(i)); + + db.insert("MAPPING_DISPLAY_CHECKLIST", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_DISPLAY_CHECKLIST " + ex.toString()); + } + } + + + //insert DISPLAY_CHECKLIST_MASTER + public void InsertDisplayChecklistMaster(DisplayChecklistMasterGetterSetter data) { + db.delete("DISPLAY_CHECKLIST_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCHECKLIST_ID().size(); i++) { + + values.put("CHECKLIST_ID", data.getCHECKLIST_ID().get(i)); + values.put("CHECKLIST", data.getCHECKLIST().get(i)); + + db.insert("DISPLAY_CHECKLIST_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in DISPLAY_CHECKLIST_MASTER " + ex.toString()); + } + } + + public void InsertDisplayMaster(DisplayMasterGetterSetter data) { + db.delete("DISPLAY_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getDISPLAY_ID().size(); i++) { + + values.put("DISPLAY_ID", data.getDISPLAY_ID().get(i)); + values.put("DISPLAY", data.getDISPLAY().get(i)); + values.put("IMAGE_URL", data.getIMAGE_URL().get(i)); + values.put("IMAGE_PATH", data.getIMAGE_PATH().get(i)); + + db.insert("DISPLAY_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in DISPLAY_MASTER " + ex.toString()); + } + } + + + public void InsertSTOREgeotag(String storeid, double lat, double longitude, String path, String status) { + + ContentValues values = new ContentValues(); + + try { + + values.put("STORE_ID", storeid); + values.put("LATITUDE", Double.toString(lat)); + values.put("LONGITUDE", Double.toString(longitude)); + values.put("FRONT_IMAGE", path); + values.put("GEO_TAG", status); + values.put("STATUS", status); + + db.insert(CommonString.TABLE_STORE_GEOTAGGING, null, values); + + } catch (Exception ex) { + Log.d("Database Exception ", ex.toString()); + } + + } + + public void updateStatus(String id, String status, double lat, double longtitude, String table_name) { + + ContentValues values = new ContentValues(); + + try { + + values.put("GEO_TAG", status); + + db.update(table_name, values, CommonString.KEY_STORE_ID + "='" + id + "'", null); + + } catch (Exception ex) { + + } + + } + + + public void updateCheckoutStatus(String id, String status, String table) { + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + + try { + values.put("CHECKOUT_STATUS", status); + values1.put(CommonString.KEY_COVERAGE_STATUS, status); + + db.update(CommonString.TABLE_COVERAGE_DATA, values1, CommonString.KEY_STORE_ID + "='" + id + "'", null); + db.update(table, values, CommonString.KEY_STORE_ID + "='" + id + "'", null); + } catch (Exception ex) { + Log.e("Exception", "checkOut Status" + ex.toString()); + } + } + + + public ArrayList getinsertGeotaggingData(String status) { + + + ArrayList geodata = new ArrayList(); + + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_STORE_GEOTAGGING + " WHERE GEO_TAG = '" + status + "'", null); + + if (dbcursor != null) { + int numrows = dbcursor.getCount(); + + dbcursor.moveToFirst(); + for (int i = 1; i <= numrows; ++i) { + + GeotaggingBeans data = new GeotaggingBeans(); + + data.setStoreid(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + data.setLatitude(Double.parseDouble(dbcursor.getString(dbcursor.getColumnIndexOrThrow("LATITUDE")))); + data.setLongitude(Double.parseDouble(dbcursor.getString(dbcursor.getColumnIndexOrThrow("LONGITUDE")))); + data.setUrl1(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FRONT_IMAGE"))); + + geodata.add(data); + dbcursor.moveToNext(); + } + + dbcursor.close(); + + } + + } catch (Exception e) { + + } finally { + if (dbcursor != null && !dbcursor.isClosed()) { + dbcursor.close(); + } + } + + + return geodata; + + } + + + public void updateGeoTagData(String storeid, String status) { + + try { + + ContentValues values = new ContentValues(); + values.put("GEO_TAG", status); + + int l = db.update(CommonString.TABLE_STORE_GEOTAGGING, values, + CommonString.KEY_STORE_ID + "=?", new String[]{storeid}); + System.out.println("update : " + l); + } catch (Exception e) { + Log.d("Database Data ", e.toString()); + + } + } + + public void updateDataStatus(GeotaggingBeans geoTagData, String status, String table_name) { + + ContentValues values = new ContentValues(); + + try { + + values.put("GEO_TAG", status); + values.put("LATITUDE", geoTagData.getLatitude()); + values.put("LONGITUDE", geoTagData.getLongitude()); + + db.update(table_name, values, + CommonString.KEY_STORE_ID + "='" + geoTagData.getStoreid() + "'", null); + + } catch (Exception ex) { + + } + + } + + + public void deleteGeoTagData(String storeid) { + + try { + db.delete(CommonString.TABLE_STORE_GEOTAGGING, CommonString.KEY_STORE_ID + "='" + storeid + "'", null); + } catch (Exception e) { + + } + } + + public ArrayList getCoverageData(String visitdate, String flag_from) { + + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + + try { + + if (flag_from != null) { + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_COVERAGE_DATA + " where " + + CommonString.KEY_VISIT_DATE + "='" + visitdate + "' AND " + CommonString.KEY_STORE_FLAG + "='" + flag_from + "'", + null); + } else { + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_COVERAGE_DATA + " where " + + CommonString.KEY_VISIT_DATE + "='" + visitdate + "'", + null); + } + + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CoverageBean sb = new CoverageBean(); + + sb.setStoreId(dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + sb.setUserId((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_USER_ID)))); + sb.setInTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IN_TIME))))); + sb.setOutTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_OUT_TIME))))); + sb.setVisitDate((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_VISIT_DATE)))))); + sb.setLatitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LATITUDE))))); + sb.setLongitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LONGITUDE))))); + sb.setStatus((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_STATUS)))))); + sb.setImage((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IMAGE)))))); + sb.setReason((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON)))))); + sb.setReasonid((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON_ID)))))); + sb.setMID(Integer.parseInt(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_ID)))))); + if (dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)) == null) { + sb.setRemark(""); + } else { + sb.setRemark((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)))))); + } + sb.setCheckOut_Image(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CHECKOUT_IMAGE))); + sb.setFlag_from(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_FLAG))); + sb.setSub_reasonId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_REASON_ID))); + String keyAccountId = dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_KEYACCOUNT_ID)); + sb.setStoreTypeId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORETYPE_ID)) : null); + sb.setClassId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CLASS_ID)) : null); + sb.setKeyAccountId((keyAccountId != null && !keyAccountId.equals("0")) ? keyAccountId : null); + sb.setMappingStk(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STOCK_MAPPING))); + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return list; + } + return list; + } + + //Gagan Start Method + + public void InsertCategory(CategoryMasterGetterSetter data) { + db.delete("CATEGORY_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCATEGORY_ID().size(); i++) { + + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("CATEGORY", data.getCATEGORY().get(i)); + values.put("CATEGORY_SEQUENCE", data.getCATEGORY_SEQUENCE().get(i)); + + db.insert("CATEGORY_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in CATEGORY_MASTER " + ex.toString()); + } + } + + public void InsertSubCategoryMaster(SubCategoryMasterGetterSetter data) { + db.delete("SUB_CATEGORY_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSUB_CATEGORY_ID().size(); i++) { + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + values.put("SUB_CATEGORY", data.getSUB_CATEGORY().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("SUB_CATEGORY_SEQUENCE", data.getSUB_CATEGORY_SEQUENCE().get(i)); + values.put("SUB_CATEGORY_SEQUENCE_SA", data.getSUB_CATEGORY_SEQUENCE_SA().get(i)); + values.put("PD_SUB_CATEGORY_CODE", data.getPD_SUB_CATEGORY_CODE().get(i)); + db.insert("SUB_CATEGORY_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_DISPLAY_CHECKLIST " + ex.toString()); + } + } + + public void InsertBrandMaster(BrandMasterGetterSetter data) { + db.delete("BRAND_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getBRAND_ID().size(); i++) { + + values.put("BRAND_ID", data.getBRAND_ID().get(i)); + values.put("BRAND", data.getBRAND().get(i)); + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + values.put("COMPANY_ID", data.getCOMPANY_ID().get(i)); + values.put("BRAND_SEQUENCE", data.getBRAND_SEQUENCE().get(i)); + values.put("BRAND_SEQUENCE_SA", data.getBRAND_SEQUENCE_SA().get(i)); + + db.insert("BRAND_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in BRAND_MASTER " + ex.toString()); + } + } + + public void InsertSkuMaster(SkuMasterGetterSetter data) { + db.delete("SKU_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSKU_ID().size(); i++) { + + values.put("SKU_ID", data.getSKU_ID().get(i)); + values.put("SKU", data.getSKU().get(i)); + values.put("BRAND_ID", data.getBRAND_ID().get(i)); + values.put("MRP", data.getMRP().get(i)); + values.put("SKU_SEQUENCE", data.getSKU_SEQUENCE().get(i)); + values.put("PROMO_SKU", data.getPROMO_SKU().get(i)); + values.put("SKU_SEQUENCE_SA", data.getSKU_SEQUENCE_SA().get(i)); + + db.insert("SKU_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in SKU_MASTER " + ex.toString()); + } + } + + public void InsertMappingStock(MappingStockGetterSetter data, String tableName) { + db.delete(tableName, null, null); + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getKEYACCOUNT_ID().size(); i++) { + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + values.put("CLASS_ID", data.getCLASS_ID().get(i)); + values.put("SKU_ID", data.getSKU_ID().get(i)); + values.put("MUST_HAVE", data.getMUST_HAVE().get(i)); + values.put("MBQ", data.getMBQ().get(i)); + values.put("SHOW_ADDITIONAL_VISIBILITY", data.getSHOW_ADDITIONAL_VISIBILITY().get(i)); + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in " + tableName + ex.toString()); + } + } + + public void InsertMAPPING_T2P(MAPPINGT2PGetterSetter data, String tableName) { + db.delete(tableName, null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("BRAND_ID", data.getBRAND_ID().get(i)); + values.put("DISPLAY_ID", data.getDISPLAY_ID().get(i)); + values.put("CATEGORY_FIXTURE", data.getCATEGORY_FIXTURE().get(i)); + values.put("ALLOW_QTY", data.getALLOW_QTY().get(i)); + + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in " + tableName + ex.toString()); + } + } + + + //Category List + public ArrayList getCategoryListData(String keyAccountId, String storeTypeId, String classId, String store_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + if (keyAccountId != null) { + dbcursor = db.rawQuery("Select DISTINCT CA.CATEGORY_ID,CA.CATEGORY " + + "from " + tableName + " 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.KEYACCOUNT_ID='" + keyAccountId + "' AND " + + "M.STORETYPE_ID='" + storeTypeId + "' AND " + + "M.CLASS_ID='" + classId + "'", null); + } else { + dbcursor = db.rawQuery("Select DISTINCT CA.CATEGORY_ID,CA.CATEGORY " + + "from MAPPING_STOCK_STOREWISE 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.STORE_ID='" + store_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CategoryGetterSetter cd = new CategoryGetterSetter(); + + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setCategory(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY"))); + cd.setCategory_img(-1); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return list; + } + return list; + } + + //MSL_Availability + public ArrayList getMSL_AvailabilityHeaderData(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 " + + "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_AvailabilityGetterSetter cd = new MSL_AvailabilityGetterSetter(); + + 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"))); + + 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_AvailabilitySKUData(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 " + + "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_AvailabilityGetterSetter cd = new MSL_AvailabilityGetterSetter(); + + 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.setToggleValue("1"); + + 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 void InsertMSL_Availability(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_AvailabilityGetterSetter 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()); + db.insert(CommonString.TABLE_INSERT_MSL_AVAILABILITY, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability " + ex.toString()); + } + } + + public ArrayList getMSL_AvailabilitySKU_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_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_AvailabilityGetterSetter cd = new MSL_AvailabilityGetterSetter(); + + 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 Sku After Save Data!" + e.toString()); + return list; + } + return list; + } + + public boolean checkMsl_AvailabilityData(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_Data " + + "where category_id='" + category_id + "' and Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + MSL_AvailabilityGetterSetter sb = new MSL_AvailabilityGetterSetter(); + + 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 ", "midday---------------------->Stop<-----------"); + return false; + } + + public void updateMSL_Availability(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_AvailabilityGetterSetter data = hashMapListChildData.get(hashMapListHeaderData.get(i)).get(j); + + values.put("TOGGLE_VALUE", data.getToggleValue()); + + db.update(CommonString.TABLE_INSERT_MSL_AVAILABILITY, 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 " + ex.toString()); + } + } + + //Stock_facing + public ArrayList getStockAndFacingHeaderData(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 " + + "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 + "' " + + "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,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); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Stock_FacingGetterSetter cd = new Stock_FacingGetterSetter(); + + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + 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.setImage1(""); + cd.setImage2(""); + + if (dbcursor.getString(dbcursor.getColumnIndexOrThrow("SOS_TARGET")) != null) { + if (!dbcursor.getString(dbcursor.getColumnIndexOrThrow("SOS_TARGET")).equals("")) { + cd.setSos_target(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SOS_TARGET"))); + } + } else { + cd.setSos_target("-"); + } + + + 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 getStockAndFacingSKUData(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); + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Stock_FacingGetterSetter cd = new Stock_FacingGetterSetter(); + + 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.setStock(""); + cd.setFacing(""); + + 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 void InsertStock_Facing(String storeId, String categoryId, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + + try { + db.beginTransaction(); + for (int i = 0; i < hashMapListHeaderData.size(); i++) { + Stock_FacingGetterSetter data1 = hashMapListHeaderData.get(i); + + values1.put("Store_Id", storeId); + values1.put("Category_Id", categoryId); + values1.put("COMPANY_ID", data1.getCompany_id()); + values1.put("SUB_CATEGORY_ID", data1.getSub_category_id()); + values1.put("SUB_CATEGORY", data1.getSub_category()); + values1.put("BRAND_ID", data1.getBrand_id()); + values1.put("BRAND", data1.getBrand()); + values1.put("IMAGE1", data1.getImage1()); + values1.put("IMAGE2", data1.getImage2()); + values1.put("SOS_TARGET", data1.getSos_target()); + + db.insert(CommonString.TABLE_INSERT_STOCK_FACING_HEADER, null, values1); + + for (int j = 0; j < hashMapListChildData.get(hashMapListHeaderData.get(i)).size(); j++) { + Stock_FacingGetterSetter 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("COMPANY_ID", data.getCompany_id()); + values.put("STOCK_VALUE", data.getStock()); + values.put("FACEUP_VALUE", data.getFacing()); + + db.insert(CommonString.TABLE_INSERT_STOCK_FACING_CHILD, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability " + ex.toString()); + } + } + + public ArrayList getStockAndFacingHeader_AfterSaveData(String category_id, String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Facing_Header_Data " + + "where category_id='" + category_id + "' AND Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Stock_FacingGetterSetter cd = new Stock_FacingGetterSetter(); + + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + 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.setImage1(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE1"))); + cd.setImage2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE2"))); + cd.setSos_target(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SOS_TARGET"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get after save Stock_FacingHeader!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getStockAndFacingSKU_AfterSaveData(String category_id, String brand_id, String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Facing_Child_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()) { + Stock_FacingGetterSetter cd = new Stock_FacingGetterSetter(); + + 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.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK_VALUE"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FACEUP_VALUE"))); + + list.add(cd); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + Log.d("Exception ", "get Stock_Facing Sku After Save Data!" + e.toString()); + return list; + } + return list; + } + + public long InsertCoverageData(CoverageBean data) { + //db.delete(CommonString1.TABLE_COVERAGE_DATA, "STORE_ID" + "='" + data.getStoreId() + "'", null); + ContentValues values = new ContentValues(); + + try { + + String sub_reason_id = data.getSub_reasonId(); + + if (sub_reason_id.equals("")) { + sub_reason_id = "0"; + } + + values.put(CommonString.KEY_STORE_ID, data.getStoreId()); + values.put(CommonString.KEY_USER_ID, data.getUserId()); + values.put(CommonString.KEY_IN_TIME, data.getInTime()); + values.put(CommonString.KEY_OUT_TIME, data.getOutTime()); + values.put(CommonString.KEY_VISIT_DATE, data.getVisitDate()); + values.put(CommonString.KEY_LATITUDE, data.getLatitude()); + values.put(CommonString.KEY_LONGITUDE, data.getLongitude()); + values.put(CommonString.KEY_REASON_ID, data.getReasonid()); + values.put(CommonString.KEY_REASON, data.getReason()); + values.put(CommonString.KEY_COVERAGE_STATUS, data.getStatus()); + values.put(CommonString.KEY_IMAGE, data.getImage()); + values.put(CommonString.KEY_COVERAGE_REMARK, data.getRemark()); + values.put(CommonString.KEY_REASON_ID, data.getReasonid()); + values.put(CommonString.KEY_SUB_REASON_ID, sub_reason_id); + values.put(CommonString.KEY_REASON, data.getReason()); + values.put(CommonString.KEY_GEO_TAG, data.getGEO_TAG()); + values.put(CommonString.KEY_CHECKOUT_IMAGE, data.getCheckOut_Image()); + values.put(CommonString.KEY_STORE_FLAG, data.getFlag_from()); + + values.put(CommonString.KEY_KEYACCOUNT_ID, data.getKeyAccountId()); + values.put(CommonString.KEY_CLASS_ID, data.getClassId()); + values.put(CommonString.KEY_STORETYPE_ID, data.getStoreTypeId()); + values.put(CommonString.KEY_STOCK_MAPPING, ""); + + return db.insert(CommonString.TABLE_COVERAGE_DATA, null, values); + + } catch (Exception ex) { + Log.d("Database Exception ", ex.toString()); + } + return 0; + } + + public boolean checkStockAndFacingData(String store_id, String category_id) { + Log.d("Stock_Facing ", "Stock data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Facing_Child_Data " + + "where category_id='" + category_id + "' and Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + Stock_FacingGetterSetter sb = new Stock_FacingGetterSetter(); + + 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("Stock_Facing ", "midday---------------------->Stop<-----------"); + return false; + } + + public void updateStockAndFacing(String storeId, String categoryId, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + + try { + db.beginTransaction(); + for (int i = 0; i < hashMapListHeaderData.size(); i++) { + Stock_FacingGetterSetter data1 = hashMapListHeaderData.get(i); + + values1.put("IMAGE1", data1.getImage1()); + values1.put("IMAGE2", data1.getImage2()); + + //db.insert(CommonString.TABLE_INSERT_STOCK_FACING_HEADER, null, values1); + db.update(CommonString.TABLE_INSERT_STOCK_FACING_HEADER, values1, + "Category_Id='" + categoryId + "' AND Store_Id='" + storeId + "' ", null); + + for (int j = 0; j < hashMapListChildData.get(hashMapListHeaderData.get(i)).size(); j++) { + Stock_FacingGetterSetter data = hashMapListChildData.get(hashMapListHeaderData.get(i)).get(j); + + values.put("STOCK_VALUE", data.getStock()); + values.put("FACEUP_VALUE", data.getFacing()); + + //db.insert(CommonString.TABLE_INSERT_STOCK_FACING_CHILD, null, values); + db.update(CommonString.TABLE_INSERT_STOCK_FACING_CHILD, 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 " + ex.toString()); + } + + } + + public void InsertMAPPING_ADDITIONAL_PROMOTION(MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter data, String tableName) { + db.delete(tableName, null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("SKU_ID", data.getSKU_ID().get(i)); + values.put("SKU", data.getSKU().get(i)); + values.put("PROMO_ID", data.getPROMO_ID().get(i)); + values.put("PROMO", data.getPROMO().get(i)); + + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in " + tableName + ex.toString()); + } + } + + public void InsertMAPPING_PROMOTION(MappingPromotionGetterSetter data, String tableName) { + db.delete(tableName, null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("SKU_ID", data.getSKU_ID().get(i)); + values.put("SKU", data.getSKU().get(i)); + values.put("PROMO_ID", data.getPROMO_ID().get(i)); + values.put("PROMO", data.getPROMO().get(i)); + + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in " + tableName + ex.toString()); + } + } + + //Promo Compliance + public ArrayList getPromoComplianceSkuData(String store_id, String category_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select M.* " + + "from " + tableName + " 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.STORE_ID = '" + store_id + "' " + + "order by SB.SUB_CATEGORY,BR.BRAND", null); + + /*dbcursor = db.rawQuery("Select * from MAPPING_PROMOTION " + + "where STORE_ID='" + store_id + "'", null);*/ + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Promo_Compliance_DataGetterSetter cd = new Promo_Compliance_DataGetterSetter(); + + cd.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setPromo_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ID"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + cd.setIn_stock("-1"); + cd.setPromo_announcer("-1"); + cd.setRunning_pos("0"); + cd.setImage_promotion(""); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuData!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getPromoSpinnerData(String store_id, String category_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + Promo_Compliance_DataGetterSetter promo = new Promo_Compliance_DataGetterSetter(); + promo.setPromo_id("0"); + promo.setPromo(context.getResources().getString(R.string.select_promo)); + + list.add(promo); + + dbcursor = db.rawQuery("Select DISTINCT M.* " + + "from " + tableName + " 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.STORE_ID = '" + store_id + "' " + + "order by SB.SUB_CATEGORY,BR.BRAND", null); + + /*dbcursor = db.rawQuery("Select * from MAPPING_ADDITIONAL_PROMOTION " + + "where STORE_ID='" + store_id + "'", null);*/ + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Promo_Compliance_DataGetterSetter cd = new Promo_Compliance_DataGetterSetter(); + + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setPromo_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ID"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuData!" + e.toString()); + return list; + } + return list; + } + + public void InsertAdditionalPromoData(Promo_Compliance_DataGetterSetter data, String category_id) { + ContentValues values = new ContentValues(); + try { + values.put("STORE_ID", Integer.parseInt(data.getStore_id())); + values.put("CATEGORY_ID", Integer.parseInt(category_id)); + values.put("SKU_ID", Integer.parseInt(data.getSku_id())); + values.put("SKU", data.getSku()); + values.put("PROMO_ID", Integer.parseInt(data.getPromo_id())); + values.put("PROMO", data.getPromo()); + values.put("IN_STOCK_VALUE", Integer.parseInt(data.getIn_stock())); + values.put("PROMO_ANNOUNCER_VALUE", Integer.parseInt(data.getPromo_announcer())); + values.put("RUNNING_POS_VALUE", Integer.parseInt(data.getRunning_pos())); + values.put("ADD_PROMO_IMAGE", data.getImage_promotion()); + + db.insert(CommonString.TABLE_INSERT_ADDITIONAL_PROMO_COMPLIANCE, null, values); + } catch (Exception ex) { + Log.d("Exception ", " InsertAdditionalPromoData " + ex.toString()); + } + } + + public ArrayList getAdditionalPromoData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Additional_Promo_Compliance_Data " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Promo_Compliance_DataGetterSetter cd = new Promo_Compliance_DataGetterSetter(); + cd.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setPromo_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ID"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + cd.setIn_stock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IN_STOCK_VALUE"))); + cd.setPromo_announcer(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ANNOUNCER_VALUE"))); + cd.setRunning_pos(dbcursor.getString(dbcursor.getColumnIndexOrThrow("RUNNING_POS_VALUE"))); + cd.setImage_promotion(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ADD_PROMO_IMAGE"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuData!" + e.toString()); + return list; + } + return list; + } + + public void InsertPromoSkuData(ArrayList promoSkuListData, String category_id) { + ContentValues values = new ContentValues(); + try { + db.beginTransaction(); + for (int i = 0; i < promoSkuListData.size(); i++) { + Promo_Compliance_DataGetterSetter data = promoSkuListData.get(i); + + values.put("STORE_ID", Integer.parseInt(data.getStore_id())); + values.put("CATEGORY_ID", Integer.parseInt(category_id)); + values.put("SKU_ID", Integer.parseInt(data.getSku_id())); + values.put("SKU", data.getSku()); + values.put("PROMO_ID", Integer.parseInt(data.getPromo_id())); + values.put("PROMO", data.getPromo()); + values.put("IN_STOCK_VALUE", Integer.parseInt(data.getIn_stock())); + values.put("PROMO_ANNOUNCER_VALUE", Integer.parseInt(data.getPromo_announcer())); + values.put("RUNNING_POS_VALUE", Integer.parseInt(data.getRunning_pos())); + values.put("PROMO_IMAGE", data.getImage_promotion()); + + db.insert(CommonString.TABLE_INSERT_PROMO_SKU, null, values); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " InsertAdditionalPromoData " + ex.toString()); + } + } + + public boolean checkPromoComplianceData(String store_id, String category_id) { + Log.d("PromoCompliance ", "PromoCompliance data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Promo_SKU_Data " + + "where CATEGORY_ID='" + category_id + "' and STORE_ID='" + store_id + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + Promo_Compliance_DataGetterSetter sb = new Promo_Compliance_DataGetterSetter(); + + 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("Stock_Facing ", "midday---------------------->Stop<-----------"); + return false; + } + + //Gagan End Method + +//Non Working data + + public void insertNonWorkingData(NonWorkingReasonGetterSetter data) { + db.delete("NON_WORKING_REASON_NEW", null, null); + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getREASON_ID().size(); i++) { + values.put("REASON_ID", Integer.parseInt(data.getREASON_ID().get(i))); + values.put("REASON", data.getREASON().get(i)); + values.put("ENTRY_ALLOW", data.getENTRY_ALLOW().get(i)); + values.put("IMAGE_ALLOW", data.getIMAGE_ALLOW().get(i)); + values.put("REMARK_REQUIRED", data.getREMARK_REQUIRED().get(i)); + values.put("REMARK_TYPE", data.getREMARK_TYPE().get(i)); + values.put("REMARK_LABEL", data.getREMARK_LABEL().get(i)); + values.put("REMARK_MANDATORY", data.getREMARK_MANDATORY().get(i)); + + db.insert("NON_WORKING_REASON_NEW", null, values); + + } + + } catch (Exception ex) { + Log.d("Database Exception ", ex.toString()); + } + + } + + // get NonWorking data + public ArrayList getNonWorkingData() { + + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM NON_WORKING_REASON_NEW", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + NonWorkingReasonGetterSetter sb = new NonWorkingReasonGetterSetter(); + + sb.setREASON_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REASON_ID"))); + + sb.setREASON(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REASON"))); + + sb.setENTRY_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ENTRY_ALLOW"))); + + sb.setIMAGE_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE_ALLOW"))); + + sb.setREMARK_REQUIRED(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_REQUIRED"))); + sb.setREMARK_TYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_TYPE"))); + sb.setREMARK_LABEL(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_LABEL"))); + sb.setREMARK_MANDATORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_MANDATORY"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + + return list; + } + + + return list; + } + + public void updateStoreStatusOnLeave(String storeid, String visitdate, + String status, String flag_from) { + + try { + + String table; + + if (flag_from.equals(CommonString.FROM_JCP)) { + table = CommonString.KEY_JOURNEY_PLAN; + } else if (flag_from.equals(CommonString.FROM_ADDITIONAL)) { + table = CommonString.KEY_JOURNEY_PLAN_ADDITIONAL; + } else if (flag_from.equals(CommonString.FROM_PHARMA)) { + table = CommonString.KEY_JOURNEY_PLAN_PHARMA; + } else if (flag_from.equals(CommonString.FROM_ADDITIONAL_ADHOC)) { + table = CommonString.KEY_ADHOC_JOURNEYPLAN_ADDITIONAL; + } else { + table = CommonString.KEY_ADHOC_JOURNEY_PLAN; + } + + ContentValues values = new ContentValues(); + values.put("UPLOAD_STATUS", status); + + db.update(table, values, + CommonString.KEY_STORE_ID + "='" + storeid + "' AND " + + CommonString.KEY_VISIT_DATE + "='" + visitdate + + "'", null); + } catch (Exception e) { + + } + } + + //get specific store data + public StoreBean getSpecificStoreData(String date, String store_id, String flag_from) { + //ArrayList list = new ArrayList(); + StoreBean sb = new StoreBean(); + Cursor dbcursor = null; + String table; + + if (flag_from != null) { + if (flag_from.equals(CommonString.FROM_JCP)) { + table = CommonString.KEY_JOURNEY_PLAN; + } else if (flag_from.equals(CommonString.FROM_ADDITIONAL)) { + table = CommonString.KEY_JOURNEY_PLAN_ADDITIONAL; + } else if (flag_from.equals(CommonString.FROM_PHARMA)) { + table = CommonString.KEY_JOURNEY_PLAN_PHARMA; + } else if (flag_from.equals(CommonString.FROM_ADDITIONAL_ADHOC)) { + table = CommonString.KEY_ADHOC_JOURNEYPLAN_ADDITIONAL; + } else { + table = CommonString.KEY_ADHOC_JOURNEY_PLAN; + } + } else { + table = CommonString.KEY_JOURNEY_PLAN; + } + + try { + + dbcursor = db.rawQuery("SELECT * from " + table + + " where VISIT_DATE ='" + date + "' AND STORE_ID='" + store_id + "'", null); + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + sb.setSTORE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORE_ID"))); + + sb.setEMP_ID((dbcursor.getString(dbcursor + .getColumnIndexOrThrow("EMP_ID")))); + + sb.setKEYACCOUNT(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("KEYACCOUNT"))); + + sb.setSTORE_NAME(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORE_NAME"))); + + sb.setADDRESS((dbcursor.getString(dbcursor + .getColumnIndexOrThrow("ADDRESS")))); + sb.setCITY(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CITY"))); + + sb.setSTORETYPE(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORETYPE"))); + + sb.setCLASSIFICATION(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CLASSIFICATION"))); + + sb.setKEYACCOUNT_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("KEYACCOUNT_ID"))); + + sb.setSTORETYPE_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("STORETYPE_ID"))); + + sb.setCLASS_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CLASS_ID"))); + + sb.setVISIT_DATE(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("VISIT_DATE"))); + + sb.setCAMERA_ALLOW(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CAMERA_ALLOW"))); + + sb.setUPLOAD_STATUS(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("UPLOAD_STATUS"))); + sb.setCHECKOUT_STATUS(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("CHECKOUT_STATUS"))); + + sb.setGEO_TAG(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("GEO_TAG"))); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return sb; + } + + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return sb; + } + + return sb; + } + + //update coverage status + + public void updateCoverageStatus(String id, String status) { + + ContentValues values = new ContentValues(); + + try { + + values.put(CommonString.KEY_COVERAGE_STATUS, status); + + db.update(CommonString.TABLE_COVERAGE_DATA, values, CommonString.KEY_STORE_ID + "='" + id + "'", null); + + } catch (Exception e) { + + Log.d("Excep update checkout", e.toString()); + } + + } + + + //Gagan start new code 1 + + //Promo Compliance update data + public void updatePromoComplianceSKU(ArrayList promoSkuListData, + String categoryId, String storeId) { + ContentValues values = new ContentValues(); + + try { + db.beginTransaction(); + for (int i = 0; i < promoSkuListData.size(); i++) { + Promo_Compliance_DataGetterSetter data = promoSkuListData.get(i); + + values.put("IN_STOCK_VALUE", Integer.parseInt(data.getIn_stock())); + values.put("PROMO_ANNOUNCER_VALUE", Integer.parseInt(data.getPromo_announcer())); + values.put("RUNNING_POS_VALUE", Integer.parseInt(data.getRunning_pos())); + values.put("PROMO_IMAGE", data.getImage_promotion()); + + db.update(CommonString.TABLE_INSERT_PROMO_SKU, values, + "CATEGORY_ID='" + categoryId + "' AND STORE_ID='" + storeId + + "' AND SKU_ID='" + data.getSku_id() + "' AND PROMO_ID='" + data.getPromo_id() + "'", null); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability " + ex.toString()); + } + + } + + public ArrayList getPromoComplianceSkuAfterData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Promo_SKU_Data " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Promo_Compliance_DataGetterSetter cd = new Promo_Compliance_DataGetterSetter(); + + cd.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setPromo_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ID"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + cd.setIn_stock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IN_STOCK_VALUE"))); + cd.setPromo_announcer(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ANNOUNCER_VALUE"))); + cd.setRunning_pos(dbcursor.getString(dbcursor.getColumnIndexOrThrow("RUNNING_POS_VALUE"))); + cd.setImage_promotion(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_IMAGE"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuAfterData!" + e.toString()); + return list; + } + return list; + } + + //MSL_Availability Server Upload Data + public ArrayList getMSL_AvailabilityUploadServerData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Msl_Availability_Data " + + "where Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MSL_AvailabilityGetterSetter cd = new MSL_AvailabilityGetterSetter(); + + 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; + } + + //Stock Facing Server Upload Data + public ArrayList getStockAndFacingHeaderServerUploadData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select H.BRAND_ID, H.IMAGE1, H.IMAGE2, C.SKU_ID, C.STOCK_VALUE, C.FACEUP_VALUE " + + "from Stock_Facing_Header_Data H " + + "INNER JOIN Stock_Facing_Child_Data C " + + "ON H.STORE_ID = C.STORE_ID AND H.CATEGORY_ID = C.CATEGORY_ID AND H.BRAND_ID = C.BRAND_ID " + + "WHERE H.STORE_ID = '" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Stock_FacingGetterSetter cd = new Stock_FacingGetterSetter(); + + cd.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + cd.setImage1(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE1"))); + cd.setImage2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE2"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK_VALUE"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FACEUP_VALUE"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get Stock_FacingHeader server upload !" + e.toString()); + return list; + } + return list; + } + + /*public ArrayList getStockAndFacingSKUServerUploadData(String category_id, String brand_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Facing_Child_Data " + + "where category_id='" + category_id + "' and Brand_Id='" + brand_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Stock_FacingGetterSetter cd = new Stock_FacingGetterSetter(); + + 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.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK_VALUE"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FACEUP_VALUE"))); + + list.add(cd); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + Log.d("Exception ", "get Stock_Facing Sku After Save Data!" + e.toString()); + return list; + } + return list; + }*/ + + //Promo Compliance Promotion Data + public ArrayList getPromoComplianceSkuServerUploadData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Promo_SKU_Data " + + "where STORE_ID='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Promo_Compliance_DataGetterSetter cd = new Promo_Compliance_DataGetterSetter(); + + cd.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setPromo_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ID"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + cd.setIn_stock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IN_STOCK_VALUE"))); + cd.setPromo_announcer(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ANNOUNCER_VALUE"))); + cd.setRunning_pos(dbcursor.getString(dbcursor.getColumnIndexOrThrow("RUNNING_POS_VALUE"))); + cd.setImage_promotion(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_IMAGE"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuAfterData!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getAdditionalPromotionServerUploadData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Additional_Promo_Compliance_Data " + + "where STORE_ID='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Promo_Compliance_DataGetterSetter cd = new Promo_Compliance_DataGetterSetter(); + + cd.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setPromo_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ID"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + cd.setIn_stock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IN_STOCK_VALUE"))); + cd.setPromo_announcer(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_ANNOUNCER_VALUE"))); + cd.setRunning_pos(dbcursor.getString(dbcursor.getColumnIndexOrThrow("RUNNING_POS_VALUE"))); + cd.setImage_promotion(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ADD_PROMO_IMAGE"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuData!" + e.toString()); + return list; + } + return list; + } + + //Store wise Performance + public void InsertSTORE_PERFORMANCE(STORE_PERFORMANCE_MasterGetterSetter data, String tableName) { + db.delete(tableName, null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("PERIOD", data.getPERIOD().get(i)); + values.put("MSL", data.getMSL_AVAILABILITY().get(i)); + values.put("SOS", data.getSOS().get(i)); + values.put("T2P", data.getT2P().get(i)); + values.put("PROMO", data.getPROMO().get(i)); + values.put("ORDERID", data.getORDERID().get(i)); + values.put("PLANOGRAM", data.getPLANOGRAM().get(i)); + + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", tableName + ex.toString()); + } + } + + //Category wise Performance + public ArrayList getCategoryWisePerformance(String store_id, String category_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from " + tableName + + " where STORE_ID='" + store_id + "' and CATEGORY_ID='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CategoryWisePerformaceGetterSetter cd = new CategoryWisePerformaceGetterSetter(); + + cd.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setPeriod(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PERIOD"))); + cd.setMsl_availability(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MSL"))); + cd.setSos(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SOS"))); + cd.setT2p(dbcursor.getString(dbcursor.getColumnIndexOrThrow("T2P"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + cd.setOrder_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ORDERID"))); + cd.setPLANOGRAM(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PLANOGRAM"))); + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuData!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getStoreWisePerformance(String store_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + /* dbcursor = db.rawQuery("Select PERIOD, ROUND(avg(MSL),1) as MSL,ROUND(avg(sos),1) as SOS ," + + " ROUND(avg(t2p),1) as T2P,ROUND(avg(pROMO),1) as PROMO , ROUND(avg(pLANOGRAM),1) as PLANOGRAM, ROUND(SUM(oss),1) AS OSS " + + "from "+ tableName + + " where STORE_ID='" + store_id + "' " + + "GROUP BY PERIOD " + + "ORDER BY ORDERID ", null);*/ + dbcursor = db.rawQuery("Select PERIOD, ROUND(avg(MSL),1) as MSL,ROUND(avg(sos),1) as SOS ," + + " ROUND(avg(t2p),1) as T2P,ROUND(avg(pROMO),1) as PROMO , ROUND(avg(pLANOGRAM),1) as PLANOGRAM " + + "from " + tableName + + " where STORE_ID='" + store_id + "' " + + "GROUP BY PERIOD " + + "ORDER BY ORDERID ", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StoreWisePerformaceGetterSetter cd = new StoreWisePerformaceGetterSetter(); + +/* cd.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID")));*/ + cd.setPeriod(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PERIOD"))); + cd.setMsl_availability(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MSL"))); + cd.setT2p(dbcursor.getString(dbcursor.getColumnIndexOrThrow("T2P"))); + cd.setPromo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO"))); + cd.setSos(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SOS"))); + cd.setPLANOGRAM(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PLANOGRAM"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuData!" + e.toString()); + return list; + } + return list; + } + + //Gagan end new code 1 + + public void InsertStockDialog(AdditionalDialogGetterSetter data) { + ContentValues values = new ContentValues(); + + try { + + + values.put(CommonString.KEY_STORE_ID, data.getStore_id()); + values.put(CommonString.KEY_BRAND, data.getBrand()); + values.put(CommonString.KEY_BRAND_ID, data.getBrand_id()); + + // values.put(CommonString.KEY_DISPLAY_ID, data.getDisplay_id()); + + values.put(CommonString.KEY_QUANTITY, data.getQuantity()); + values.put(CommonString.KEY_SKU_ID, data.getSku_id()); + values.put(CommonString.KEY_SKUNAME, data.getSku_name()); + // values.put(CommonString.UNIQUE_KEY_ID, data.getUnique_id()); + + // values.put(CommonString.KEY_CATEGORY_ID, data.getCategory_id()); + + // values.put(CommonString.KEY_PROCESS_ID, data.getProcess_id()); + + + db.insert(CommonString.TABLE_INSERT_STOCK_DIALOG, null, values); + + + } catch (Exception ex) { + Log.d("Database Exception ", ex.getMessage()); + } + + } + + public ArrayList getDialogStock(String keyid) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT * FROM STOCK_DIALOG_MAIN WHERE COMMON_ID = '" + keyid + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + AdditionalDialogGetterSetter sb = new AdditionalDialogGetterSetter(); + + sb.setKEY_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_ID))); + + sb.setCOMMON_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_Common_ID))); + + sb.setStore_id(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + sb.setCategoryId(cursordata.getString(cursordata + .getColumnIndexOrThrow("categoryId"))); + + sb.setBrand_id(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + + sb.setBrand(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_BRAND))); + + sb.setQuantity(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_QUANTITY))); + + sb.setSku_id(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_SKU_ID))); + + sb.setSku_name(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_SKUNAME))); + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + public void deletedialogStockEntry(String id) { + try { + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG, "Id" + "='" + id + "'", null); + } catch (Exception e) { + System.out.println("" + e); + } + + } + + public void deleteStockEntry(String id) { + try { + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL, "KEY_ID" + "='" + id + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_MAIN, "KEY_ID" + "='" + id + "'", null); + + + } catch (Exception e) { + System.out.println("" + e); + } + + } + + public void deleteStockEntryall(String storeid, String categoryid) { + try { + + /* db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL, "Store_Id" + "='" + storeid + "'AND categoryId" + "='" + categoryid + "'", null); + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG, "Store_Id" + "='" + storeid + "'AND categoryId" + "='" + categoryid + "'", null); +*/ + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_MAIN, "Store_Id" + "='" + storeid + "'AND categoryId" + "='" + categoryid + "'", null); + + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG_MAIN, "Store_Id" + "='" + storeid + "'AND categoryId" + "='" + categoryid + "'", null); + + } catch (Exception e) { + System.out.println("" + e); + } + + } + + + public void deleteStockEntryMainTable(String storeid, String categoryid) { + try { + + db.delete(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_MAIN, "Store_Id" + "='" + storeid + "'AND categoryId" + "='" + categoryid + "'", null); + + db.delete(CommonString.TABLE_INSERT_STOCK_DIALOG_MAIN, "Store_Id" + "='" + storeid + "'AND categoryId" + "='" + categoryid + "'", null); + + } catch (Exception e) { + System.out.println("" + e); + } + + } + + + public ArrayList getBrandMasterData(String store_id, String category_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT BR.BRAND_ID, SB.SUB_CATEGORY ||'-'|| BR.BRAND AS BRAND FROM BRAND_MASTER BR " + + "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 COMPANY_ID =1 AND SB.CATEGORY_ID ='" + category_id + "'", 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"))); + + + /*sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + + sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + + sb.setCOMPANY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("COMPANY_ID"))); + + sb.setBRAND_SEQUENCE(cursordata.getString(cursordata.getColumnIndexOrThrow("BRAND_SEQUENCE")));*/ + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + + public ArrayList getBrandMasterDataNew(String key_account_id, String category_id, String store_type_id, String class_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + /* cursordata = db.rawQuery("SELECT BR.BRAND_ID, SB.SUB_CATEGORY ||'-'|| BR.BRAND AS BRAND FROM BRAND_MASTER BR " + + "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 COMPANY_ID =1 AND SB.CATEGORY_ID ='" + category_id + "'", null); +*/ + cursordata = db.rawQuery(" SELECT BR.BRAND_ID, SCM.SUB_CATEGORY ||'-'|| BR.BRAND AS BRAND FROM MAPPING_STOCK MS " + + "INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID " + + "INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID " + + "INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID " + + // "WHERE COMPANY_ID =1 AND SB.CATEGORY_ID ='" + category_id + "'", null); + "WHERE MS.KEYACCOUNT_ID ='" + key_account_id + "' AND STORETYPE_ID ='" + store_type_id + "' AND CLASS_ID = '" + class_id + "' AND SCM.CATEGORY_ID='" + category_id + "' " + + "AND MS.SHOW_ADDITIONAL_VISIBILITY='1'", null); + + + /* dbcursor = db.rawQuery("SELECT DISTINCT SM.SKU, SM.SKU_ID, BR.BRAND_ID FROM "+ tableName +" MS INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID " + + "INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID " + + "WHERE MS.KEYACCOUNT_ID ='" + key_account_id + "' AND STORETYPE_ID ='" + store_type_id + "' AND CLASS_ID = '" + class_id + "' AND SM.BRAND_ID='" + brand_id + "' " + + "AND MS.SHOW_ADDITIONAL_VISIBILITY='1' ORDER BY SM.PROMO_SKU, SM.SKU", null); + SELECT BR.BRAND_ID, SCM.SUB_CATEGORY ||'-'|| BR.BRAND AS BRAND FROM MAPPING_STOCK MS + INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID + INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID + INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID + WHERE COMPANY_ID =1 AND MS.KEYACCOUNT_ID ='2332' AND STORETYPE_ID ='51' AND CLASS_ID = '303' + AND SCM.CATEGORY_ID='9' AND MS.SHOW_ADDITIONAL_VISIBILITY='1'*/ + 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"))); + + + /*sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + + sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + + sb.setCOMPANY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("COMPANY_ID"))); + + sb.setBRAND_SEQUENCE(cursordata.getString(cursordata.getColumnIndexOrThrow("BRAND_SEQUENCE")));*/ + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + public ArrayList getSKUMasterData(String brand_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + if (brand_id == null) { + cursordata = db.rawQuery("SELECT * FROM SKU_MASTER ", null); + } else { + cursordata = db.rawQuery("SELECT * FROM SKU_MASTER where BRAND_ID = '" + brand_id + "' ORDER BY SKU_SEQUENCE", null); + } + + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + SkuMasterGetterSetter sb = new SkuMasterGetterSetter(); + + sb.setSKU_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SKU_ID"))); + + sb.setSKU(cursordata.getString(cursordata.getColumnIndexOrThrow("SKU"))); + + sb.setBRAND_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("BRAND_ID"))); + + + sb.setMRP(cursordata.getString(cursordata.getColumnIndexOrThrow("MRP"))); + + sb.setSKU_SEQUENCE(cursordata.getString(cursordata.getColumnIndexOrThrow("SKU_SEQUENCE"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + + public void InsertAdditionalData(AddittionalGetterSetter data, ArrayList dialog, String categoryId) { + + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + try { + values.put("Store_Id", data.getStore_id()); + values.put("categoryId", categoryId); + values.put("brand_name", data.getBrand()); + values.put("brand_id", data.getBrand_id()); + values.put("image_url", data.getImage()); + values.put("image_url2", data.getImage2()); + values.put("image_url3", data.getImage3()); + values.put("sku_id", data.getSku_id()); + values.put("sku_name", data.getSku()); + values.put("toggle_value", data.getBtn_toogle()); + + long key_id = db.insert(CommonString.TABLE_INSERT_STOCK_ADDITIONAL, null, values); + + for (int i = 0; i < dialog.size(); i++) { + values1.put(CommonString.KEY_Common_ID, key_id); + values1.put(CommonString.KEY_STORE_ID, dialog.get(i).getStore_id()); + values1.put("categoryId", categoryId); + values1.put(CommonString.KEY_BRAND, dialog.get(i).getBrand()); + values1.put(CommonString.KEY_BRAND_ID, dialog.get(i).getBrand_id()); + values1.put(CommonString.KEY_QUANTITY, dialog.get(i).getQuantity()); + values1.put(CommonString.KEY_SKU_ID, dialog.get(i).getSku_id()); + values1.put(CommonString.KEY_SKUNAME, dialog.get(i).getSku_name()); + + + db.insert(CommonString.TABLE_INSERT_STOCK_DIALOG, null, values1); + + } + + } catch (Exception ex) { + Log.d("Database Exception ", ex.getMessage()); + } + + } + + + public ArrayList getAdditionalStock(String store_id, String categoryId) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + // cursordata = db.rawQuery("SELECT * FROM Stock_Additional_visibility WHERE Store_Id = '"+store_id + "'categoryId = '"+categoryId + "'", null); + cursordata = db.rawQuery("Select * from Stock_Additional_visibility_Main " + "where categoryId='" + categoryId + "' and Store_Id='" + store_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + AddittionalGetterSetter sb = new AddittionalGetterSetter(); + + + sb.setKey_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("KEY_ID"))); + + sb.setStore_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("Store_Id"))); + + sb.setCategoryId(cursordata.getString(cursordata + .getColumnIndexOrThrow("categoryId"))); + + sb.setBrand_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("brand_id"))); + + sb.setBrand(cursordata.getString(cursordata + .getColumnIndexOrThrow("brand_name"))); + + + sb.setImage(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url"))); + sb.setImage2(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url2"))); + sb.setImage3(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url3"))); + + sb.setSku_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("sku_id"))); + + sb.setSku(cursordata.getString(cursordata + .getColumnIndexOrThrow("sku_name"))); + sb.setBtn_toogle(cursordata.getString(cursordata + .getColumnIndexOrThrow("toggle_value"))); + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + public void updateStoreStatus(String storeid, String visitdate, + String status) { + + try { + ContentValues values = new ContentValues(); + values.put(CommonString.KEY_CHECKOUT_STATUS, status); + + db.update("JOURNEY_PLAN", values, CommonString.KEY_STORE_ID + "='" + storeid + "' AND " + CommonString.KEY_VISIT_DATE + "='" + visitdate + "'", null); + } catch (Exception e) { + + + } + } + + public void InsertT2PData(ArrayList data, String store_id, String category_id) { + db.delete(CommonString.TABLE_INSERT_T2P_COMPLIANCE, CommonString.KEY_STORE_ID + "='" + store_id + "' AND " + CommonString.KEY_CATEGORY_ID + "='" + category_id + "'", null); + + long l = 0; + + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + ContentValues values2 = new ContentValues(); + ContentValues values3 = new ContentValues(); + try { + for (int i = 0; i < data.size(); i++) { + + values.put(CommonString.KEY_STORE_ID, store_id); + values.put(CommonString.KEY_CATEGORY_ID, category_id); + values.put(CommonString.KEY_DISPLAY_ID, data.get(i).getDisplay_id()); + values.put(CommonString.KEY_BRAND_ID, data.get(i).getBrand_id()); + values.put(CommonString.KEY_BRAND, data.get(i).getBrand()); + values.put(CommonString.KEY_DISPLAY, data.get(i).getDisplay()); + values.put(CommonString.KEY_IMAGE_URL, data.get(i).getRef_image_url()); + values.put(CommonString.KEY_IMAGE_PATH, data.get(i).getRef_image_path()); + values.put(CommonString.KEY_IMAGE, data.get(i).getImage()); + values.put(CommonString.KEY_IMAGE1, data.get(i).getImage1()); + values.put(CommonString.KEY_IMAGE2, data.get(i).getImage2()); + values.put(CommonString.KEY_REMARK, data.get(i).getRemark()); + values.put(CommonString.KEY_PRESENT, data.get(i).getPresent()); + values.put(CommonString.KEY_CATEGORY_FIXTURE, data.get(i).getCategory_fixture()); + values.put(CommonString.KEY_NON_T2P_REASON_ID, data.get(i).getNon_t2p_reason_id()); + values.put(CommonString.KEY_QTY, data.get(i).getQty()); + values.put(CommonString.KEY_FLAG_QUANTITY, data.get(i).getAllowQty()); + + l = db.insert(CommonString.TABLE_INSERT_T2P_COMPLIANCE, null, values); + + ArrayList gaps = data.get(i).getGapsChecklist(); + + for (int j = 0; j < gaps.size(); j++) { + + values1.put(CommonString.KEY_COMMON_ID, l); + values1.put(CommonString.KEY_CHECKLIST_ID, gaps.get(j).getChecklist_id()); + values1.put(CommonString.KEY_DISPLAY_ID, gaps.get(j).getDisplay_id()); + values1.put(CommonString.KEY_CHECKLIST, gaps.get(j).getChecklist()); + values1.put(CommonString.KEY_PRESENT, gaps.get(j).isPresent()); + + db.insert(CommonString.TABLE_INSERT_T2P_GAPS, null, values1); + + } + + ArrayList sku = data.get(i).getSkulist(); + + for (int k = 0; k < sku.size(); k++) { + + values2.put(CommonString.KEY_COMMON_ID, l); + values2.put(CommonString.KEY_SKU_ID, sku.get(k).getSKU_ID()); + values2.put(CommonString.KEY_BRAND_ID, sku.get(k).getBRAND_ID()); + values2.put(CommonString.KEY_STOCK, sku.get(k).getSTOCK()); + values2.put(CommonString.KEY_BRAND, sku.get(k).getBRAND()); + values2.put(CommonString.KEY_SKU, sku.get(k).getSKU()); + + db.insert(CommonString.TABLE_INSERT_T2P_SKU, null, values2); + + } + + + ArrayList brand = data.get(i).getBrandlist(); + + for (int p = 0; p < brand.size(); p++) { + + values3.put("COMMON_ID", l); + values3.put("BRAND_NAME", brand.get(p).getBRAND()); + values3.put("BRAND_ID", brand.get(p).getBRAND_ID()); + + db.insert(CommonString.TABLE_INSERT_BRAND_AVAIBILITY_DATA, null, values3); + + } + + + } + } catch (Exception ex) { + Log.d("Exception ", " in T2P_COMPLIANCE " + ex.toString()); + } + } + + + public boolean additionalVisibilitydata(String store_id, String category_id) { + Log.d("AdditionalVisibility ", "AdditionalVisibility data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Additional_visibility_Main " + "where categoryId='" + category_id + "' and Store_Id='" + store_id + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + AddittionalGetterSetter sb = new AddittionalGetterSetter(); + + sb.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("brand_id"))); + list.add(sb); + } while (dbcursor.moveToNext()); + } + dbcursor.close(); + + if (list.size() > 0) { + return true; + } else { + return false; + } + } + } catch (Exception e) { + Log.d("Exception ", "when fetching Records!!!!" + e.toString()); + return false; + } + + return false; + } + + public ArrayList getAdditionalStockUpload(String store_id) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT * FROM Stock_Additional_visibility_Main WHERE Store_Id = '" + store_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + AddittionalGetterSetter sb = new AddittionalGetterSetter(); + + + sb.setKey_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("KEY_ID"))); + + sb.setStore_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("Store_Id"))); + + sb.setCategoryId(cursordata.getString(cursordata + .getColumnIndexOrThrow("categoryId"))); + + sb.setBrand_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("brand_id"))); + + sb.setBrand(cursordata.getString(cursordata + .getColumnIndexOrThrow("brand_name"))); + + + sb.setImage(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url"))); + sb.setImage2(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url2"))); + sb.setImage3(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url3"))); + + sb.setSku_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("sku_id"))); + + sb.setSku(cursordata.getString(cursordata + .getColumnIndexOrThrow("sku_name"))); + sb.setBtn_toogle(cursordata.getString(cursordata + .getColumnIndexOrThrow("toggle_value"))); + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + /*public void InsertMainListAdditionalData(AddittionalGetterSetter Mainlist, ArrayList skulist, String categoryId) { + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + try { + + values.put("Store_Id", Mainlist.getStore_id()); + values.put("categoryId", categoryId); + values.put("brand_name", Mainlist.getBrand()); + values.put("brand_id", Mainlist.getBrand_id()); + values.put("image_url", Mainlist.getImage()); + values.put("image_url2", Mainlist.getImage2()); + values.put("image_url3", Mainlist.getImage3()); + values.put("sku_id", Mainlist.getSku_id()); + values.put("sku_name", Mainlist.getSku()); + values.put("toggle_value", Mainlist.getBtn_toogle()); + + long key_id = db.insert(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_MAIN, null, values); + + if (skulist != null) { + + for (int j = 0; j < skulist.size(); j++) { + values1.put(CommonString.KEY_Common_ID, key_id); + values1.put(CommonString.KEY_STORE_ID, skulist.get(j).getStore_id()); + values1.put("categoryId", categoryId); + values1.put(CommonString.KEY_BRAND, skulist.get(j).getBrand()); + values1.put(CommonString.KEY_BRAND_ID, skulist.get(j).getBrand_id()); + values1.put(CommonString.KEY_QUANTITY, skulist.get(j).getQuantity()); + values1.put(CommonString.KEY_SKU_ID, skulist.get(j).getSku_id()); + values1.put(CommonString.KEY_SKUNAME, skulist.get(j).getSku_name()); + + db.insert(CommonString.TABLE_INSERT_STOCK_DIALOG_MAIN, null, values1); + } + } + + } catch (Exception ex) { + Log.d("Database Exception ", ex.getMessage()); + } + + }*/ + + public void InsertMainListAdditionalData(ArrayList Mainlist, String categoryId) { + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + try { + for (int i = 0; i < Mainlist.size(); i++) { + AddittionalGetterSetter data = Mainlist.get(i); + + values.put("Store_Id", data.getStore_id()); + values.put("categoryId", categoryId); + values.put("brand_name", data.getBrand()); + values.put("brand_id", data.getBrand_id()); + values.put("image_url", data.getImage()); + values.put("image_url2", data.getImage2()); + values.put("image_url3", data.getImage3()); + values.put("sku_id", data.getSku_id()); + values.put("sku_name", data.getSku()); + values.put("toggle_value", data.getBtn_toogle()); + + long key_id = db.insert(CommonString.TABLE_INSERT_STOCK_ADDITIONAL_MAIN, null, values); + + ArrayList skulist = data.getSkuDialogList(); + if (skulist != null) { + + for (int j = 0; j < skulist.size(); j++) { + values1.put(CommonString.KEY_Common_ID, key_id); + values1.put(CommonString.KEY_STORE_ID, skulist.get(j).getStore_id()); + values1.put("categoryId", categoryId); + values1.put(CommonString.KEY_BRAND, skulist.get(j).getBrand()); + values1.put(CommonString.KEY_BRAND_ID, skulist.get(j).getBrand_id()); + values1.put(CommonString.KEY_QUANTITY, skulist.get(j).getQuantity()); + values1.put(CommonString.KEY_SKU_ID, skulist.get(j).getSku_id()); + values1.put(CommonString.KEY_SKUNAME, skulist.get(j).getSku_name()); + + db.insert(CommonString.TABLE_INSERT_STOCK_DIALOG_MAIN, null, values1); + } + } + } + + } catch (Exception ex) { + Log.d("Database Exception ", ex.getMessage()); + } + + } + + public ArrayList getDialogStockUpload(String keyid) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT * FROM STOCK_DIALOG_MAIN WHERE COMMON_ID = '" + keyid + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + AdditionalDialogGetterSetter sb = new AdditionalDialogGetterSetter(); + + sb.setKEY_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_ID))); + + sb.setCOMMON_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_Common_ID))); + + sb.setStore_id(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + sb.setCategoryId(cursordata.getString(cursordata + .getColumnIndexOrThrow("categoryId"))); + + sb.setBrand_id(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + + sb.setBrand(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_BRAND))); + + sb.setQuantity(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_QUANTITY))); + + sb.setSku_id(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_SKU_ID))); + + sb.setSku_name(cursordata.getString(cursordata + .getColumnIndexOrThrow(CommonString.KEY_SKUNAME))); + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + + // get T2P Compliance data + public ArrayList getT2pComplianceData(String store_id, String category_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + + if (category_id == null) { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_T2P_COMPLIANCE + " where " + + CommonString.KEY_STORE_ID + "='" + store_id + "'", null); + } else { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_T2P_COMPLIANCE + " where " + + CommonString.KEY_STORE_ID + "='" + store_id + "' AND " + + CommonString.KEY_CATEGORY_ID + "='" + category_id + "'", null); + } + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + T2PGetterSetter tp = new T2PGetterSetter(); + + tp.setKey_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ID))); + tp.setDisplay_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_DISPLAY_ID))); + tp.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + tp.setBrand(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND))); + tp.setDisplay(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_DISPLAY))); + tp.setRef_image_url(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE_URL))); + tp.setRef_image_path(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE_PATH))); + tp.setImage(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE))); + tp.setImage1(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE1))); + tp.setImage2(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE2))); + tp.setRemark(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_REMARK))); + tp.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CATEGORY_ID))); + tp.setPresent(Integer.parseInt(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_PRESENT)))); + tp.setCategory_fixture(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CATEGORY_FIXTURE))); + tp.setNon_t2p_reason_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_NON_T2P_REASON_ID))); + tp.setQty(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_QTY))); + tp.setAllowQty(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_FLAG_QUANTITY))); + + list.add(tp); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + return list; + } + return list; + } + + // get T2P Compliance store wise data + public ArrayList getT2pComplianceStorewiseData(String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + + + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_T2P_COMPLIANCE + " where " + + CommonString.KEY_STORE_ID + "='" + store_id + "'", null); + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + T2PGetterSetter tp = new T2PGetterSetter(); + + tp.setKey_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ID))); + tp.setDisplay_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_DISPLAY_ID))); + tp.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + tp.setBrand(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND))); + tp.setDisplay(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_DISPLAY))); + tp.setImage(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE))); + tp.setRemark(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_REMARK))); + tp.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CATEGORY_ID))); + tp.setPresent((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_PRESENT)).equalsIgnoreCase("1"))); + + list.add(tp); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + return list; + } + return list; + } + + // get Gaps T2P data + public ArrayList getGapsData(String common_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_T2P_GAPS + " where " + + CommonString.KEY_COMMON_ID + "='" + common_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + GapsChecklistGetterSetter gp = new GapsChecklistGetterSetter(); + + gp.setDisplay_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_DISPLAY_ID))); + gp.setChecklist_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CHECKLIST_ID))); + gp.setChecklist(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CHECKLIST))); + gp.setPresent((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_PRESENT)).equalsIgnoreCase("1"))); + + list.add(gp); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + return list; + } + return list; + } + + // get T2P SKU data + public ArrayList getT2PSKUData(String common_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_T2P_SKU + " where " + + CommonString.KEY_COMMON_ID + "='" + common_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + SkuGetterSetter gp = new SkuGetterSetter(); + + gp.setSKU_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SKU_ID))); + gp.setBRAND_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + gp.setSTOCK(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STOCK))); + gp.setBRAND(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND))); + gp.setSKU(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SKU))); + + list.add(gp); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + return list; + } + return list; + } + + //Gagan start new code 2 + + public void InsertMAPPING_PLANOGRAM(MAPPING_PLANOGRAM_MasterGetterSetter data, String tableName) { + db.delete(tableName, null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getKEYACCOUNT_ID().size(); i++) { + + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + values.put("CLASS_ID", data.getCLASS_ID().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("PLANOGRAM_IMAGE", data.getPLANOGRAM_IMAGE().get(i)); + values.put("IMAGE_PATH", data.getIMAGE_PATH().get(i)); + + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", tableName + " " + ex.toString()); + } + } + + public ArrayList getMappingPlanogramData(String category_id, String store_type_id, String class_id, String store_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + if (store_type_id != null) { + dbcursor = db.rawQuery("SELECT * FROM MAPPING_PLANOGRAM where CATEGORY_ID='" + category_id + "' AND STORETYPE_ID ='" + store_type_id + + "' AND CLASS_ID ='" + class_id + "'", null); + } else { + dbcursor = db.rawQuery("SELECT * FROM MAPPING_PLANOGRAM_STORE_WISE where CATEGORY_ID='" + category_id + "' AND STORE_ID ='" + store_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MAPPING_PLANOGRAM_DataGetterSetter mp = new MAPPING_PLANOGRAM_DataGetterSetter(); + + /*mp.setKEYACCOUNT_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("KEYACCOUNT_ID"))); + mp.setSTORETYPE_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORETYPE_ID"))); + mp.setCLASS_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CLASS_ID")));*/ + mp.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + mp.setPLANOGRAM_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PLANOGRAM_IMAGE"))); + mp.setIMAGE_PATH(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE_PATH"))); + + list.add(mp); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + return list; + } + return list; + } + + //Gagan end new code 2 + + //T2P is filled + public boolean isFilledT2P(String store_id, String category_id) { + Log.d("T2P ", "T2P data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_T2P_COMPLIANCE + " where " + + CommonString.KEY_STORE_ID + "='" + store_id + "' AND " + + CommonString.KEY_CATEGORY_ID + "='" + category_id + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + T2PGetterSetter tp = new T2PGetterSetter(); + + tp.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + list.add(tp); + } while (dbcursor.moveToNext()); + } + dbcursor.close(); + + if (list.size() > 0) { + return true; + } else { + return false; + } + } + } catch (Exception e) { + Log.d("Exception ", "when fetching Records!!!!" + e.toString()); + return false; + } + + return false; + } + + public CoverageBean getCoverageSpecificData(String visitdate, String store_id) { + + CoverageBean sb = new CoverageBean(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_COVERAGE_DATA + " where " + + CommonString.KEY_VISIT_DATE + "='" + visitdate + "' AND " + CommonString.KEY_STORE_ID + " ='" + store_id + "'", + null); + + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + sb.setStoreId(dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + sb.setUserId((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_USER_ID)))); + sb.setInTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IN_TIME))))); + sb.setOutTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_OUT_TIME))))); + sb.setVisitDate((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_VISIT_DATE)))))); + sb.setLatitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LATITUDE))))); + sb.setLongitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LONGITUDE))))); + sb.setStatus((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_STATUS)))))); + sb.setImage((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IMAGE)))))); + sb.setReason((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON)))))); + sb.setReasonid((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON_ID)))))); + sb.setMID(Integer.parseInt(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_ID)))))); + if (dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)) == null) { + sb.setRemark(""); + } else { + sb.setRemark((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)))))); + } + + String keyAccountId = dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_KEYACCOUNT_ID)); + sb.setStoreTypeId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORETYPE_ID)) : null); + sb.setClassId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CLASS_ID)) : null); + sb.setKeyAccountId((keyAccountId != null && !keyAccountId.equals("0")) ? keyAccountId : null); + sb.setMappingStk(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STOCK_MAPPING))); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return sb; + } + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return sb; + } + return sb; + } + + //update out time + public void updateCheckoutOuttime(String id, String out_time, String status, String checkOutImagePath) { + ContentValues values = new ContentValues(); + + try { + values.put(CommonString.KEY_OUT_TIME, out_time); + values.put(CommonString.KEY_COVERAGE_STATUS, status); + values.put(CommonString.KEY_CHECKOUT_IMAGE, checkOutImagePath); + + db.update(CommonString.TABLE_COVERAGE_DATA, values, CommonString.KEY_STORE_ID + "='" + id + "'", null); + } catch (Exception ex) { + Log.d("Exception in ", "checkOutTime! " + ex.toString()); + } + } + + public ArrayList getAdditionalMainStock(String store_id, String categoryId) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + // cursordata = db.rawQuery("SELECT * FROM Stock_Additional_visibility WHERE Store_Id = '"+store_id + "'categoryId = '"+categoryId + "'", null); + cursordata = db.rawQuery("Select * from Stock_Additional_visibility_Main " + "where categoryId='" + categoryId + "' and Store_Id='" + store_id + "'", null); + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + AddittionalGetterSetter sb = new AddittionalGetterSetter(); + + + sb.setKey_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("KEY_ID"))); + + sb.setStore_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("Store_Id"))); + + sb.setCategoryId(cursordata.getString(cursordata + .getColumnIndexOrThrow("categoryId"))); + + sb.setBrand_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("brand_id"))); + + sb.setBrand(cursordata.getString(cursordata + .getColumnIndexOrThrow("brand_name"))); + + + sb.setImage(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url"))); + sb.setImage2(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url2"))); + sb.setImage3(cursordata.getString(cursordata + .getColumnIndexOrThrow("image_url3"))); + + sb.setSku_id(cursordata.getString(cursordata + .getColumnIndexOrThrow("sku_id"))); + + sb.setSku(cursordata.getString(cursordata + .getColumnIndexOrThrow("sku_name"))); + sb.setBtn_toogle(cursordata.getString(cursordata + .getColumnIndexOrThrow("toggle_value"))); + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + public void InsertADDITIONAL_DISPLAY(ADDITIONAL_DISPLAY_MASTERGetterSetter data) { + db.delete("ADDITIONAL_DISPLAY_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getDISPLAY_ID().size(); i++) { + values.put("DISPLAY_ID", data.getDISPLAY_ID().get(i)); + values.put("DISPLAY", data.getDISPLAY().get(i)); + values.put("IMAGE_PATH", data.getIMAGE_PATH().get(i)); + values.put("IMAGE_URL", data.getIMAGE_URL().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + db.insert("ADDITIONAL_DISPLAY_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " ADDITIONAL_DISPLAY_MASTER " + ex.toString()); + } + } + + public ArrayList getADDITIONAL_DISPLAYData(String category_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + cursordata = db.rawQuery("SELECT * FROM ADDITIONAL_DISPLAY_MASTER WHERE CATEGORY_ID='" + category_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + ADDITIONAL_DISPLAY_MASTERGetterSetter sb = new ADDITIONAL_DISPLAY_MASTERGetterSetter(); + sb.setDISPLAY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("DISPLAY_ID"))); + sb.setDISPLAY(cursordata.getString(cursordata.getColumnIndexOrThrow("DISPLAY"))); + sb.setIMAGE_URL(cursordata.getString(cursordata.getColumnIndexOrThrow("IMAGE_URL"))); + sb.setIMAGE_PATH(cursordata.getString(cursordata.getColumnIndexOrThrow("IMAGE_PATH"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + public ArrayList getPreviousCoverageData(String visitdate, String flag_from) { + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + + try { + + if (flag_from != null) { + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_COVERAGE_DATA + " where " + + CommonString.KEY_VISIT_DATE + "<>'" + visitdate + "' AND " + CommonString.KEY_STORE_FLAG + "='" + flag_from + "'", + null); + } else { + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_COVERAGE_DATA + " where " + + CommonString.KEY_VISIT_DATE + "<>'" + visitdate + "'", + null); + } + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + + while (!dbcursor.isAfterLast()) { + CoverageBean sb = new CoverageBean(); + + sb.setStoreId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + sb.setUserId((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_USER_ID)))); + sb.setInTime(((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IN_TIME))))); + sb.setOutTime(((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_OUT_TIME))))); + sb.setVisitDate((((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_VISIT_DATE)))))); + sb.setLatitude(((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_LATITUDE))))); + sb.setLongitude(((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_LONGITUDE))))); + sb.setStatus((((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_COVERAGE_STATUS)))))); + sb.setImage((((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE)))))); + sb.setReason((((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_REASON)))))); + sb.setReasonid((((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_REASON_ID)))))); + sb.setMID(Integer.parseInt(((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ID)))))); + + if (dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)) == null) { + sb.setRemark(""); + } else { + sb.setRemark((((dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)))))); + } + + sb.setCheckOut_Image(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CHECKOUT_IMAGE))); + sb.setFlag_from(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_FLAG))); + sb.setSub_reasonId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_REASON_ID))); + + String keyAccountId = dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_KEYACCOUNT_ID)); + sb.setStoreTypeId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORETYPE_ID)) : null); + sb.setClassId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CLASS_ID)) : null); + sb.setKeyAccountId((keyAccountId != null && !keyAccountId.equals("0")) ? keyAccountId : null); + sb.setMappingStk(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STOCK_MAPPING))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", " PreviousCoverageData Upload " + e.toString()); + return list; + } + return list; + } + + //check if table is empty + public boolean isPreviousCoverageDataFilled(String visit_date) { + boolean filled = false; + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * FROM COVERAGE_DATA " + + "where " + CommonString.KEY_VISIT_DATE + "<>'" + visit_date + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + public boolean isMappingPromotionData(String store_id, String category_id, String tableName) { + boolean filled = false; + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select M.* " + + "from " + tableName + " 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.STORE_ID = '" + store_id + "' " + + "order by SB.SUB_CATEGORY,BR.BRAND ", null); + + //dbcursor = db.rawQuery("SELECT * FROM MAPPING_PROMOTION ", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + public boolean isMappingStockDataMSL_Availability(String category_id, String keyAccount_id, String storeType_id, String class_id) { + boolean filled = false; + Cursor dbcursor = null; + + try { + //dbcursor = db.rawQuery("SELECT * FROM MAPPING_STOCK ", null); + dbcursor = db.rawQuery("Select M.* 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(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + public boolean isMappingStockDataStockFacing(String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName) { + boolean filled = false; + Cursor dbcursor = null; + try { + if (keyAccount_id != null) { + dbcursor = db.rawQuery("Select M.* from " + tableName + " 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.BRAND ", null); + } else { + dbcursor = db.rawQuery("Select M.* from MAPPING_STOCK_STOREWISE 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.STORE_ID = '" + store_id + "' " + + "order by SB.SUB_CATEGORY,BR.BRAND ", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + + public boolean isMappingT2PData(String store_id, String category_id, String tableName) { + boolean filled = false; + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * FROM " + tableName + " M INNER JOIN BRAND_MASTER BR ON M.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.STORE_ID = '" + store_id + "' AND CA.CATEGORY_ID= '" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + public boolean isMappingAdditionalPromotionData(String store_id, String category_id, String tableName) { + boolean filled = false; + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select M.* " + + "from " + tableName + " 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.STORE_ID = '" + store_id + "' " + + "order by SB.SUB_CATEGORY,BR.BRAND ", null); + + //dbcursor = db.rawQuery("SELECT * FROM MAPPING_ADDITIONAL_PROMOTION ", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + public boolean checkAdditionalPromoComplianceData(String store_id, String category_id) { + Log.d("PromoCompliance ", "AdditionalPromoCompliance data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Additional_Promo_Compliance_Data " + + "where CATEGORY_ID='" + category_id + "' and STORE_ID='" + store_id + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + Promo_Compliance_DataGetterSetter sb = new Promo_Compliance_DataGetterSetter(); + + 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("Stock_Facing ", "midday---------------------->Stop<-----------"); + return false; + } + + public void InsertMAPPING_SOS_TARGET(MAPPING_SOS_TARGET_MasterGetterSetter data, String tableName) { + db.delete(tableName, null, null); + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("BRAND_ID", data.getBRAND_ID().get(i)); + values.put("SOS_TARGET", data.getSOS_TARGET().get(i)); + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", tableName + " " + ex.toString()); + } + } + + + public ArrayList getBrandAvailbilitydata(String store_id, String category_id, String keyAccount_id, String class_id, String storeType_id, String tableName) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + try { + if (keyAccount_id != null) { + cursordata = db.rawQuery("SELECT DISTINCT BR.BRAND_ID, BR.BRAND||'('||SB.SUB_CATEGORY||')' as BRAND FROM" + + " SKU_MASTER SK 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 " + + "INNER JOIN " + + "(SELECT DISTINCT SKU_ID FROM " + tableName + " WHERE KEYACCOUNT_ID = '" + keyAccount_id + + "' AND STORETYPE_ID = '" + storeType_id + "' AND CLASS_ID = '" + class_id + "') A " + + "ON SK.SKU_ID = A.SKU_ID " + + "WHERE CA.CATEGORY_ID = '" + category_id + "' AND BR.COMPANY_ID =1", null); + } else { + cursordata = db.rawQuery("SELECT DISTINCT BR.BRAND_ID, BR.BRAND||'('||SB.SUB_CATEGORY||')' as BRAND " + + "FROM SKU_MASTER SK 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 " + + "INNER JOIN " + + "(SELECT DISTINCT SKU_ID FROM MAPPING_STOCK_STOREWISE WHERE STORE_ID = '" + store_id + "') A " + + "ON SK.SKU_ID = A.SKU_ID " + + "WHERE BR.COMPANY_ID =1 AND CA.CATEGORY_ID ='" + category_id + "'", null); + } + + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + BrandAvabilityGetterSetter sb = new BrandAvabilityGetterSetter(); + + 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 void InsertBrandAvabilitydata(BrandAvabilityGetterSetter data, ArrayList list) { + + db.delete("Camera_Not_Allowed ", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < list.size(); i++) { + + values.put("STORETYPE_ID", data.getStoreType_id()); + values.put("class_id", data.getClass_id()); + values.put("CATEGORY_ID", data.getCategoryId()); + values.put("keyAccount_id", data.getKeyAccount_id()); + values.put("STORE_ID", data.getStore_id()); + values.put("BRAND_NAME", list.get(i).getBRAND()); + values.put("BRAND_ID", list.get(i).getBRAND_ID()); + + + db.insert(CommonString.TABLE_INSERT_BRAND_AVAIBILITY_DATA, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " Camera_Not_Allowed " + ex.toString()); + } + } + + + // get T2P brand data + public ArrayList getT2BrandData(String common_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_BRAND_AVAIBILITY_DATA + " where " + + CommonString.KEY_COMMON_ID + "='" + common_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + BrandAvabilityGetterSetter BG = new BrandAvabilityGetterSetter(); + + BG.setBRAND(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_NAME"))); + BG.setBRAND_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + + list.add(BG); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + } + return list; + } + + //Stock Facing Planogram Tracker + public void InsertSHELF_MASTER(ShelfMasterGetterSetter data) { + db.delete("SHELF_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSHELF_ID().size(); i++) { + + values.put("SHELF_ID", data.getSHELF_ID().get(i)); + values.put("SHELF", data.getSHELF().get(i)); + + db.insert("SHELF_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " SHELF_MASTER " + ex.toString()); + } + } + + public ArrayList getSHELF_MASTERData() { + Cursor cursordata = null; + ArrayList Data = new ArrayList<>(); + + try { + StockFacing_PlanogramTrackerDataGetterSetter sb1 = new StockFacing_PlanogramTrackerDataGetterSetter(); + sb1.setShelf_id("0"); + sb1.setShelf(context.getString(R.string.select)); + + Data.add(sb1); + + cursordata = db.rawQuery("SELECT * FROM SHELF_MASTER ", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + StockFacing_PlanogramTrackerDataGetterSetter sb = new StockFacing_PlanogramTrackerDataGetterSetter(); + sb.setShelf_id(cursordata.getString(cursordata.getColumnIndexOrThrow("SHELF_ID"))); + sb.setShelf(cursordata.getString(cursordata.getColumnIndexOrThrow("SHELF"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + } + } catch (Exception ex) { + Log.d("Exception ", " Get SHELF_MASTER " + ex.toString()); + } + return Data; + } + + public ArrayList getStockAndFacingPlanogramDefaultSKUData( + 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); + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StockFacing_PlanogramTrackerDataGetterSetter cd = new StockFacing_PlanogramTrackerDataGetterSetter(); + + 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.setStock(""); + cd.setFacing("");*/ + cd.setCheckbox_sku("0"); + + list.add(cd); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + } + return list; + } + + public void InsertStock_Facing_PlanogramTracker(String storeId, String categoryId, String company_id, String brand_id, String sub_category_id, + List hashMapListHeaderData, + HashMap> hashMapListChildData) { + + //Delete child sku data + for (int i1 = 0; i1 < hashMapListHeaderData.size(); i1++) { + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD, + "common_id='" + hashMapListHeaderData.get(i1).getKey_id() + "'", null); + } + //Delete Header shelf data + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER, + "store_id='" + storeId + "' And category_id='" + categoryId + "' ", null); + + + //Insert the data + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + + try { + db.beginTransaction(); + for (int i = 0; i < hashMapListHeaderData.size(); i++) { + StockFacing_PlanogramTrackerDataGetterSetter data1 = hashMapListHeaderData.get(i); + + values1.put("store_id", storeId); + values1.put("category_id", categoryId); + values1.put("company_id", company_id); + values1.put("brand_id", brand_id); + values1.put("sub_category_id", sub_category_id); + values1.put("Shelf", data1.getSp_addShelf()); + values1.put("Shelf_id", data1.getSp_addShelf_id()); + values1.put("Shelf_Position", data1.getSp_shelfPosition()); + + long pos = db.insert(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER, null, values1); + + for (int j = 0; j < hashMapListChildData.get(hashMapListHeaderData.get(i)).size(); j++) { + StockFacing_PlanogramTrackerDataGetterSetter data = hashMapListChildData.get(hashMapListHeaderData.get(i)).get(j); + + values.put("common_id", pos); + values.put("Shelf", data1.getSp_addShelf()); + values.put("Shelf_id", data.getSp_addShelf_id()); + values.put("Shelf_Position", data1.getSp_shelfPosition()); + values.put("sku", data.getSku()); + values.put("sku_id", data.getSku_id()); + values.put("checkbox_sku", data.getCheckbox_sku()); + + db.insert(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert Stock Facing Planogram Tracker " + ex.toString()); + } + } + + //Stock Facing Planogram Server Upload Data + public ArrayList getStockAndFacingPlanogramServerUploadData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select C.Shelf_id,C.Shelf_Position,C.sku_id,C.checkbox_sku,H.category_id,H.company_id,H.brand_id,H.sub_category_id " + + "from Stock_Facing_Planogram_Header_Data H " + + "inner join Stock_Facing_Planogram_Child_Data C " + + "on H.KEY_ID=C.common_id AND H.Shelf_id=C.Shelf_id " + + "where H.store_id='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + StockFacing_PlanogramTrackerDataGetterSetter cd = new StockFacing_PlanogramTrackerDataGetterSetter(); + + cd.setSp_addShelf_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_id"))); + cd.setSp_shelfPosition(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_Position"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("sku_id"))); + cd.setCheckbox_sku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("checkbox_sku"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("category_id"))); + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("company_id"))); + cd.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("brand_id"))); + cd.setSub_category_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("sub_category_id"))); + + list.add(cd); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Stock Facing Planogram server upload !" + e.toString()); + } + return list; + } + + + public void InsertStore_wise_camera(Store_wise_camera_DataGetterSetter data) { + + ContentValues values = new ContentValues(); + try { + values.put("Store_id", data.getStore_id()); + values.put("Category_id", data.getCategory_id()); + values.put("Camera1", data.getCamera1()); + values.put("Camera2", data.getCamera2()); + values.put("Camera3", data.getCamera3()); + values.put("Camera4", data.getCamera4()); + values.put("checkSaveStatus", data.getCheckSaveStatus()); + + db.insert(CommonString.TABLE_INSERT_STORE_CAMERA, null, values); + } catch (Exception ex) { + Log.d("Exception ", " Store_wise_camera " + ex.toString()); + } + } + + public Store_wise_camera_DataGetterSetter getStore_wise_camera(String store_id, String category_id) { + Store_wise_camera_DataGetterSetter data = new Store_wise_camera_DataGetterSetter(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Store_wise_camera " + + "where Store_id='" + store_id + "' and Category_id='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + data.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Store_id"))); + data.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Category_id"))); + data.setCamera1(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera1"))); + data.setCamera2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera2"))); + data.setCamera3(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera3"))); + data.setCamera4(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera4"))); + data.setCheckSaveStatus(dbcursor.getString(dbcursor.getColumnIndexOrThrow("checkSaveStatus"))); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return data; + } + } catch (Exception e) { + Log.d("Exception ", "get Stock Facing Planogram server upload !" + e.toString()); + return data; + } + return data; + } + + //check if table is empty + @SuppressLint("Recycle") + public boolean isFilledIRPDdata(String store_id, String visit_date, String category_id) { + boolean filled = false; + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_IRPD + + " WHERE " + CommonString.KEY_STORE_ID + "=" + store_id + " AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + + "' AND " + CommonString.KEY_CATEGORY_ID + "=" + category_id, null); + if (dbcursor != null) { + dbcursor.moveToFirst(); + String value = dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IRPD_IMAGES)); + if (value != null && !value.isEmpty()) { + filled = true; + } + dbcursor.close(); + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + + return filled; + } + + public void updateStore_wise_camera(Store_wise_camera_DataGetterSetter data) { + ContentValues values = new ContentValues(); + try { + //values.put("Store_id", data.getStore_id()); + //values.put("Category_id", data.getCategory_id()); + values.put("Camera1", data.getCamera1()); + values.put("Camera2", data.getCamera2()); + values.put("Camera3", data.getCamera3()); + values.put("Camera4", data.getCamera4()); + + db.update(CommonString.TABLE_INSERT_STORE_CAMERA, values, + " Store_id='" + data.getStore_id() + "' and Category_id='" + data.getCategory_id() + "'", null); + } catch (Exception ex) { + Log.d("Exception ", " Store_wise_camera " + ex.toString()); + } + } + + + //Stock Facing Planogram Server Upload Data + public ArrayList getStoreWiseCameraServerUploadData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Store_wise_camera " + + "where Store_id='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + Store_wise_camera_DataGetterSetter data = new Store_wise_camera_DataGetterSetter(); + + data.setStore_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Store_id"))); + data.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Category_id"))); + data.setCamera1(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera1"))); + data.setCamera2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera2"))); + data.setCamera3(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera3"))); + data.setCamera4(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Camera4"))); + + list.add(data); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get Stock Facing Planogram server upload !" + e.toString()); + return list; + } + return list; + } + + //Stock_facing Planogram Add Sku + public ArrayList getPlanogramAddSkuHeaderData( + 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 + "' AND BR.COMPANY_ID = 1 " + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StockFacing_PlanogramTrackerDataGetterSetter cd = new StockFacing_PlanogramTrackerDataGetterSetter(); + + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + 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"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get Planogram Add Sku Header!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getPlanogramAddSkuChildData( + 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); + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StockFacing_PlanogramTrackerDataGetterSetter cd = new StockFacing_PlanogramTrackerDataGetterSetter(); + + 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.setCheckbox_sku("0"); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + + } + return list; + } + + // get T2P Compliance data + public ArrayList getT2pCompliancedaletedata(String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_T2P_COMPLIANCE + " where " + + CommonString.KEY_STORE_ID + "='" + store_id + "'", null); + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + T2PGetterSetter tp = new T2PGetterSetter(); + + tp.setKey_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ID))); + list.add(tp); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + } + return list; + } + + + // get CATEGORY PICTURE data + public ArrayList getCategoryPicturedata(String visit_date, String categoryId, String key_account_id, String store_type_id, String class_id, String store_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + if (key_account_id != null) { + dbcursor = db.rawQuery("SELECT DISTINCT ifnull(T.IRPD_IMAGES,'')as IRPD_IMAGES, ifnull(SB.PD_SUB_CATEGORY_CODE,'')AS PD_SUB_CATEGORY_CODE,SB.SUB_CATEGORY_ID, MIA.IMAGE_ALLOW,SB.SUB_CATEGORY FROM " + + tableName + " 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" + + " INNER JOIN MAPPING_SUB_CATEGORY_IMAGE_ALLOW MIA ON SB.SUB_CATEGORY_ID=MIA.SUB_CATEGORY_ID " + + " LEFT JOIN (SELECT * FROM " + CommonString.TABLE_IRPD + " WHERE " + CommonString.KEY_STORE_ID + "=" + store_id + + " AND " + CommonString.KEY_CATEGORY_ID + "=" + categoryId + " AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + + "')AS T ON T.CATEGORY_ID=CA.CATEGORY_ID AND T.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID " + + "WHERE M.KEYACCOUNT_ID = '" + key_account_id + " ' AND M.STORETYPE_ID = '" + store_type_id + + "' AND M.CLASS_ID = '" + class_id + "' AND CA.CATEGORY_ID = '" + categoryId + "'", null); + + } else { + dbcursor = db.rawQuery("SELECT DISTINCT ifnull(T.IRPD_IMAGES,'')as IRPD_IMAGES,ifnull(SB.PD_SUB_CATEGORY_CODE,'')AS PD_SUB_CATEGORY_CODE,SB.SUB_CATEGORY_ID, MIA.IMAGE_ALLOW,SB.SUB_CATEGORY FROM MAPPING_STOCK_STOREWISE 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" + + " INNER JOIN MAPPING_SUB_CATEGORY_IMAGE_ALLOW MIA ON SB.SUB_CATEGORY_ID=MIA.SUB_CATEGORY_ID " + + + " LEFT JOIN (SELECT * FROM " + CommonString.TABLE_IRPD + " WHERE " + CommonString.KEY_STORE_ID + "=" + store_id + + " AND " + CommonString.KEY_CATEGORY_ID + "=" + categoryId + " AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + + "') AS T ON T.CATEGORY_ID=CA.CATEGORY_ID AND T.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID " + + + "WHERE M.STORE_ID = '" + store_id + "' AND CA.CATEGORY_ID = '" + categoryId + "'", null); + + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CategoryPictureGetterSetter CPGS = new CategoryPictureGetterSetter(); + CPGS.setSUB_CATEGORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY"))); + CPGS.setSUB_CATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + CPGS.setImage_allow(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE_ALLOW"))); + CPGS.setSubCatCode(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PD_SUB_CATEGORY_CODE"))); + String imgs = dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IRPD_IMAGES)); + CPGS.setImageUris(imgs != null && !imgs.isEmpty() ? (ArrayList) Arrays.stream(imgs.split(", ")) + .map(img -> new ImageUri(img, new File(img).getName())) // Extract file name as second parameter + .collect(Collectors.toList()) : new ArrayList<>()); + + CPGS.setSubCategoryCamera1(""); + CPGS.setSubCategoryCamera2(""); + list.add(CPGS); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get Planogram Shelf Header After Save !" + e.toString()); + // return list; + } + return list; + } + + public ArrayList getPlanogramAddShelfHeaderAfterSaveData( + String store_id, String category_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Facing_Planogram_Header_Data " + + "where Store_id='" + store_id + "' and category_id='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StockFacing_PlanogramTrackerDataGetterSetter cd = new StockFacing_PlanogramTrackerDataGetterSetter(); + cd.setKey_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("KEY_ID"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("category_id"))); + cd.setSp_addShelf_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_id"))); + cd.setSp_addShelf(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf"))); + cd.setSp_shelfPosition(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_Position"))); + list.add(cd); + dbcursor.moveToNext(); + } + + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Planogram Shelf Header After Save !" + e.toString()); + + } + return list; + } + + + public void InsertCategoryPictureData(CategoryPictureGetterSetter gettersetter, ArrayList skulist, String categoryId) { + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + try { + + db.delete(CommonString.TABLE_INSERT_CATEGORY_PICTURE, + "Store_Id='" + gettersetter.getStore_ID() + "' And categoryId='" + categoryId + "' ", null); + db.delete(CommonString.TABLE_INSERT_CATEGORY_PICTURE_LIST, + "Store_Id='" + gettersetter.getStore_ID() + "' And categoryId='" + categoryId + "' ", null); + + values.put("Store_Id", gettersetter.getStore_ID()); + values.put("categoryId", categoryId); + values.put("CategoryImage1", gettersetter.getCategoryImage1()); + values.put("CategoryImage2", gettersetter.getCategoryImage2()); + values.put("CategoryImage3", gettersetter.getCategoryImage3()); + values.put("CategoryImage4", gettersetter.getCategoryImage4()); + values.put("camera_allow", gettersetter.getCamera_allow()); + + + long key_id = db.insert(CommonString.TABLE_INSERT_CATEGORY_PICTURE, null, values); + + if (skulist != null) { + + for (int j = 0; j < skulist.size(); j++) { + values1.put(CommonString.KEY_Common_ID, key_id); + values1.put("Store_Id", gettersetter.getStore_ID()); + values1.put("categoryId", categoryId); + values1.put("SUB_CategoryImage1", skulist.get(j).getSubCategoryCamera1()); + values1.put("SUB_CategoryImage2", skulist.get(j).getSubCategoryCamera2()); + values1.put("SUB_Category", skulist.get(j).getSUB_CATEGORY()); + values1.put("SUB_Category_ID", skulist.get(j).getSUB_CATEGORY_ID()); + + + db.insert(CommonString.TABLE_INSERT_CATEGORY_PICTURE_LIST, null, values1); + } + } + + } catch (Exception ex) { + Log.d("Database Exception ", ex.getMessage()); + } + + } + + + public ArrayList getCategoryPictureData(String store_id, String categoryId) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + cursordata = db.rawQuery("Select * from Stock_CATEGORY_PICTURE " + "where categoryId='" + categoryId + "' and Store_Id='" + store_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + CategoryPictureGetterSetter sb = new CategoryPictureGetterSetter(); + + sb.setKEY_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("KEY_ID"))); + + sb.setCamera_allow(cursordata.getString(cursordata + .getColumnIndexOrThrow("camera_allow"))); + + sb.setCategoryImage1(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage1"))); + + sb.setCategoryImage2(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage2"))); + + sb.setCategoryImage3(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage3"))); + + + sb.setCategoryImage4(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage4"))); + + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + + public ArrayList getCategoryPictureListData(String store_id, String categoryId, String key_id) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + cursordata = db.rawQuery("Select * from Stock_CATEGORY_PICTURE_LIST " + "where categoryId = '" + categoryId + "' and Store_Id = '" + store_id + "' and COMMON_ID = '" + key_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + CategoryPictureGetterSetter sb = new CategoryPictureGetterSetter(); + + + sb.setSubCategoryCamera1(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_CategoryImage1"))); + + sb.setSubCategoryCamera2(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_CategoryImage2"))); + + sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_Category_ID"))); + + sb.setSUB_CATEGORY(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_Category"))); + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + + public ArrayList getCategoryPictureUpload(String store_id) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + cursordata = db.rawQuery("Select * from Stock_CATEGORY_PICTURE " + "where Store_Id='" + store_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + CategoryPictureGetterSetter sb = new CategoryPictureGetterSetter(); + + + sb.setKEY_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("KEY_ID"))); + + sb.setCamera_allow(cursordata.getString(cursordata + .getColumnIndexOrThrow("camera_allow"))); + + sb.setCategoryId(cursordata.getString(cursordata + .getColumnIndexOrThrow("categoryId"))); + + + sb.setCategoryImage1(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage1"))); + + sb.setCategoryImage2(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage2"))); + + sb.setCategoryImage3(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage3"))); + + + sb.setCategoryImage4(cursordata.getString(cursordata + .getColumnIndexOrThrow("CategoryImage4"))); + + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + + public ArrayList getCategoryPictureListUploaded(String key_id) { + Cursor cursordata = null; + ArrayList productData = new ArrayList(); + + try { + + cursordata = db.rawQuery("Select * from Stock_CATEGORY_PICTURE_LIST " + "where COMMON_ID = '" + key_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + CategoryPictureGetterSetter sb = new CategoryPictureGetterSetter(); + + sb.setCOMMON_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("COMMON_ID"))); + + sb.setSubCategoryCamera1(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_CategoryImage1"))); + + sb.setSubCategoryCamera2(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_CategoryImage2"))); + + sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_Category_ID"))); + + sb.setSUB_CATEGORY(cursordata.getString(cursordata + .getColumnIndexOrThrow("SUB_Category"))); + + productData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return productData; + + } + + + public boolean isCategoryPictureData(String store_id, String category_id) { + boolean filled = false; + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_CATEGORY_PICTURE " + "where categoryId='" + category_id + "' and Store_Id='" + store_id + "'", null); + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + + public ArrayList getStockAndFacingPlanogramAfterSKUData( + String key_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + //Select * from Stock_Facing_Planogram_Child_Data where Shelf_id=1 and Shelf_Position=3 + + dbcursor = db.rawQuery("Select * from Stock_Facing_Planogram_Child_Data " + + "where common_id='" + key_id + "'", null); + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StockFacing_PlanogramTrackerDataGetterSetter cd = new StockFacing_PlanogramTrackerDataGetterSetter(); + + cd.setSp_addShelf_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_id"))); + cd.setSp_addShelf(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf"))); + cd.setSp_shelfPosition(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_Position"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("sku_id"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("sku"))); + cd.setCheckbox_sku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("checkbox_sku"))); + + 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 getStockAndFacingPlanogramAfterSKU_PerShelfData( + String shelf_id, String shelf_position) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Facing_Planogram_Child_Data " + + "where Shelf_id='" + shelf_id + "' and Shelf_Position='" + shelf_position + "'", null); + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + StockFacing_PlanogramTrackerDataGetterSetter cd = new StockFacing_PlanogramTrackerDataGetterSetter(); + + cd.setSp_addShelf_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_id"))); + cd.setSp_addShelf(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf"))); + cd.setSp_shelfPosition(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Shelf_Position"))); + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("sku_id"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("sku"))); + cd.setCheckbox_sku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("checkbox_sku"))); + + 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 void deletePlanogramListStoreAndCategorywise(String storeId, String categoryId, + List hashMapListHeaderData, + HashMap> hashMapListChildData) { + for (int i1 = 0; i1 < hashMapListHeaderData.size(); i1++) { + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD, + "common_id='" + hashMapListHeaderData.get(i1).getKey_id() + "'", null); + } + //Delete Header shelf data + db.delete(CommonString.TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER, + "store_id='" + storeId + "' And category_id='" + categoryId + "' ", null); + } + + + // get NonWorking data + public ArrayList getNonWorkingEntryAllowData() { + + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM NON_WORKING_REASON_NEW WHERE ENTRY_ALLOW=1", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + NonWorkingReasonGetterSetter sb = new NonWorkingReasonGetterSetter(); + + sb.setREASON_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REASON_ID"))); + + sb.setREASON(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REASON"))); + + sb.setENTRY_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ENTRY_ALLOW"))); + + sb.setIMAGE_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("IMAGE_ALLOW"))); + + sb.setREMARK_REQUIRED(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_REQUIRED"))); + sb.setREMARK_TYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_TYPE"))); + sb.setREMARK_LABEL(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_LABEL"))); + sb.setREMARK_MANDATORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_MANDATORY"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + + return list; + } + + + return list; + } + + public ArrayList getCoverageWithStoreID_Data(String store_id, String visitDate) { + + ArrayList list = new ArrayList(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("SELECT * from " + CommonString.TABLE_COVERAGE_DATA + " where " + CommonString.KEY_STORE_ID + "='" + store_id + "' AND " + CommonString.KEY_VISIT_DATE + "='" + visitDate + "'", + null); + + + if (dbcursor != null) { + + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CoverageBean sb = new CoverageBean(); + + sb.setStoreId(dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + sb.setUserId((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_USER_ID)))); + sb.setInTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IN_TIME))))); + sb.setOutTime(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_OUT_TIME))))); + sb.setVisitDate((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_VISIT_DATE)))))); + sb.setLatitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LATITUDE))))); + sb.setLongitude(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_LONGITUDE))))); + sb.setStatus((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_STATUS)))))); + sb.setImage((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_IMAGE)))))); + sb.setReason((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON)))))); + sb.setReasonid((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_REASON_ID)))))); + sb.setMID(Integer.parseInt(((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_ID)))))); + if (dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)) == null) { + sb.setRemark(""); + } else { + sb.setRemark((((dbcursor.getString(dbcursor + .getColumnIndexOrThrow(CommonString.KEY_COVERAGE_REMARK)))))); + } + + sb.setFlag_from(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_FLAG))); + + String keyAccountId = dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_KEYACCOUNT_ID)); + sb.setStoreTypeId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORETYPE_ID)) : null); + sb.setClassId((keyAccountId != null && !keyAccountId.equals("0")) ? dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CLASS_ID)) : null); + sb.setKeyAccountId((keyAccountId != null && !keyAccountId.equals("0")) ? keyAccountId : null); + sb.setMappingStk(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STOCK_MAPPING))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception get JCP!", e.toString()); + return list; + } + return list; + } + + + public boolean isPlanogramAddShelfSaveData(String store_id, String category_id) { + boolean filled = false; + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from Stock_Facing_Planogram_Header_Data " + + "where Store_id='" + store_id + "' and category_id='" + category_id + "'", null); + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + int icount = dbcursor.getInt(0); + dbcursor.close(); + if (icount > 0) { + filled = true; + } else { + filled = false; + } + } + } catch (Exception e) { + Log.d("Exception ", " when fetching Records!!!!!!!!!!!!!!!!!!!!! " + e.toString()); + return filled; + } + return filled; + } + + public void InsertMappingSubCategoryImageAllow(MappingSubCategoryImageAllowGetterSetter data) { + db.delete("MAPPING_SUB_CATEGORY_IMAGE_ALLOW", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSUB_CATEGORY_ID().size(); i++) { + + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + values.put("IMAGE_ALLOW", data.getIMAGE_ALLOW().get(i)); + + db.insert("MAPPING_SUB_CATEGORY_IMAGE_ALLOW", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_SUB_CATEGORY_IMAGE_ALLOW " + ex.toString()); + } + } + + //MAPPING_CATEGORY_IMAGE_ALLOW + public void InsertMappingCategoryImageAllow(MappingCategoryImageAllowGetterSetter data) { + db.delete("MAPPING_CATEGORY_IMAGE_ALLOW", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCATEGORY_ID().size(); i++) { + + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("IMAGE1_ALLOW", data.getIMAGE1_ALLOW().get(i)); + values.put("IMAGE2_ALLOW", data.getIMAGE2_ALLOW().get(i)); + values.put("IMAGE3_ALLOW", data.getIMAGE3_ALLOW().get(i)); + values.put("IMAGE4_ALLOW", data.getIMAGE4_ALLOW().get(i)); + + db.insert("MAPPING_CATEGORY_IMAGE_ALLOW", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_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, String store_id, String tableName, String tableMappingSOS, String store_flag_facing_hide) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + if (keyAccount_id != null) { + if (store_flag_facing_hide.equals("1")) { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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 + "' AND MUST_HAVE = '" + 1 + "'" + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null); + + } else { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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); + } + } else { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from MAPPING_STOCK_STOREWISE 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.STORE_ID = '" + store_id + "'" + + " order by SB.SUB_CATEGORY_SEQUENCE_SA, BR.BRAND_SEQUENCE_SA", 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 getStockEntryHeaderData( + String country_Id, String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName, String tableMappingSOS, String store_flag_facing_hide) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + if (keyAccount_id != null) { + if (store_flag_facing_hide.equals("1")) { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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 + "' AND BR.COMPANY_ID ='" + 1 + "'" + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null); + + } else { + /*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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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,BR.COMPANY_ID ," + + " (SELECT SUM(SOS_TARGET) FROM " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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 + "' AND BR.COMPANY_ID ='" + 1 + "'" + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null); + } + } else { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from MAPPING_STOCK_STOREWISE 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.STORE_ID = '" + store_id + "'" + + " order by SB.SUB_CATEGORY_SEQUENCE_SA, BR.BRAND_SEQUENCE_SA", 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 getOrderTaking_StockFacingHeaderData( + String country_id, String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName, String tableMappingSOS, String store_flag_facing_hide) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + if (keyAccount_id != null) { + if (store_flag_facing_hide.equals("1")) { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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 + "' AND MUST_HAVE = '" + 1 + "'" + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null); + + } else { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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); + } + } else { + if (country_id.equals("17")) { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from MAPPING_STOCK_STOREWISE 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.STORE_ID = '" + store_id + "' AND BR.COMPANY_ID = '" + 1 + "' AND SB.SUB_CATEGORY_ID = '1'" + + " order by SB.SUB_CATEGORY_SEQUENCE_SA, BR.BRAND_SEQUENCE_SA", null); + } else { + 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 " + tableMappingSOS + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from MAPPING_STOCK_STOREWISE 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.STORE_ID = '" + store_id + "' AND BR.COMPANY_ID = '" + 1 + "'" + + " order by SB.SUB_CATEGORY_SEQUENCE_SA, BR.BRAND_SEQUENCE_SA", 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 subCategoryId, String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id, String store_id, + String tableName, String store_flag_facing_hide) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + if (keyAccount_id != null) { + if (store_flag_facing_hide.equals("1")) { + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 MUST_HAVE = '" + 1 + + "' AND M.CLASS_ID = '" + class_id + "' order by M.MUST_HAVE DESC", null); + + } else { + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 + "' order by M.MUST_HAVE DESC", null); + } + + } else { + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID," + + "M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from MAPPING_STOCK_STOREWISE 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "' AND SUB_CATEGORY_ID ='" + + subCategoryId + "')AS PE on PE.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.STORE_ID = '" + store_id + "' order by SK.SKU_SEQUENCE_SA", 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.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + 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_StockFacingSKUDataNewUpdate( + String subCategoryId, String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id, String store_id, + String tableName, String store_flag_facing_hide, String visit_date, boolean stk) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + String table = CommonString.TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING; + String quary = "SELECT T.*,ifnull(W.FACING,'')as FACING,Ifnull(W.STOCK,'')as STOCK," + + "Ifnull(W.PRICING,'')as PRICING," + "Ifnull(W.TOGGLE_VALUE,1)as TOGGLE_VALUE"; + if (stk) { + table = CommonString.TABLE_INSERT_STOCK; + quary = "SELECT T.*,Ifnull(W.STOCK,'')as STOCK,Ifnull(W.TOGGLE_VALUE,1)as TOGGLE_VALUE"; + } + if (keyAccount_id != null) { + if (store_flag_facing_hide.equals("1")) { + ////new query update + dbcursor = db.rawQuery(quary + + " FROM (" + + ////old query + "Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 MUST_HAVE = '" + 1 + + "' AND M.CLASS_ID = '" + class_id + "' order by M.MUST_HAVE DESC" + + ////new query update + ")as T OUTER left join (Select * from " + table + " where category_id='" + category_id + + "' and Brand_Id='" + brand_id + "' AND Store_Id='" + store_id + "' AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + "')W" + + " on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_ID", null); + + } else { + dbcursor = db.rawQuery(quary + + " FROM (" + + ////old query + "Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 + "' order by M.MUST_HAVE DESC" + + ////new query update + ")as T OUTER left join (Select * from " + table + " where category_id='" + category_id + + "' and Brand_Id='" + brand_id + "' AND Store_Id='" + store_id + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "')W" + + " on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_ID", null); + } + } else { + dbcursor = db.rawQuery(quary + + " FROM (" + + ////old query + "Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID," + + "M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT " + + "from MAPPING_STOCK_STOREWISE 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "' AND SUB_CATEGORY_ID ='" + + subCategoryId + "')AS PE on PE.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.STORE_ID = '" + store_id + "' order by SK.SKU_SEQUENCE_SA" + + ////new query update + ")as T OUTER left join (Select * from " + table + " where category_id='" + category_id + + "' and Brand_Id='" + brand_id + "' AND Store_Id='" + store_id + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "')W" + + " on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_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.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING_DEFAULT"))); + cd.setToggleValue(dbcursor.getString(dbcursor.getColumnIndexOrThrow("TOGGLE_VALUE"))); + if (!stk) { + cd.setPricingStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FACING"))); + } + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK"))); + + 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 getStock_Entry_SKUDataNewUpdate( + String subCategoryId, String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id, String store_id, + String tableName, String store_flag_facing_hide, String visit_date, boolean stk) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + String table = CommonString.TABLE_INSERT_STOCK_ENTRY; + // String table = CommonString.TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING; + String quary = "SELECT T.*,ifnull(W.FACING,'')as FACING,Ifnull(W.STOCK,'')as STOCK,Ifnull(W.POSM_STOCK,'')as POSM_STOCK,Ifnull(W.WAREHOUSE_STOCK,'')as WAREHOUSE_STOCK," + + "Ifnull(W.PRICING,'')as PRICING," + "Ifnull(W.TOGGLE_VALUE,1)as TOGGLE_VALUE"; + if (stk) { + table = CommonString.TABLE_INSERT_STOCK; + quary = "SELECT T.*,Ifnull(W.STOCK,'')as STOCK,Ifnull(W.TOGGLE_VALUE,1)as TOGGLE_VALUE"; + } + if (keyAccount_id != null) { + if (store_flag_facing_hide.equals("1")) { + ////new query update + dbcursor = db.rawQuery(quary + + " FROM (" + + ////old query + "Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 MUST_HAVE = '" + 1 + + "' AND M.CLASS_ID = '" + class_id + "' order by M.MUST_HAVE DESC" + + ////new query update + ")as T OUTER left join (Select * from " + table + " where category_id='" + category_id + + "' and Brand_Id='" + brand_id + "' AND Store_Id='" + store_id + "' AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + "')W" + + " on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_ID", null); + + } else { + dbcursor = db.rawQuery(quary + + " FROM (" + + ////old query + "Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 + "' order by M.MUST_HAVE DESC" + + ////new query update + ")as T OUTER left join (Select * from " + table + " where category_id='" + category_id + + "' and Brand_Id='" + brand_id + "' AND Store_Id='" + store_id + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "')W" + + " on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_ID", null); + } + } else { + dbcursor = db.rawQuery(quary + + " FROM (" + + ////old query + "Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID," + + "M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT " + + "from MAPPING_STOCK_STOREWISE 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "' AND SUB_CATEGORY_ID ='" + + subCategoryId + "')AS PE on PE.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.STORE_ID = '" + store_id + "' order by SK.SKU_SEQUENCE_SA" + + ////new query update + ")as T OUTER left join (Select * from " + table + " where category_id='" + category_id + + "' and Brand_Id='" + brand_id + "' AND Store_Id='" + store_id + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "')W" + + " on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_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.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING_DEFAULT"))); + cd.setToggleValue(dbcursor.getString(dbcursor.getColumnIndexOrThrow("TOGGLE_VALUE"))); + if (!stk) { + cd.setPricingStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FACING"))); + } + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK"))); + cd.setPosmStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.POSM_STOCK))); + cd.setWarehouseStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.WAREHOUSE_STOCK))); + + 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 getORDERTAKING_StockFacingSKUData( + String subCategoryId, String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id, String store_id, + String tableName, String store_flag_facing_hide) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + if (keyAccount_id != null) { + if (store_flag_facing_hide.equals("1")) { + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 MUST_HAVE = '" + 1 + + "' AND M.CLASS_ID = '" + class_id + "' AND BR.COMPANY_ID = '" + 1 + "' order by M.MUST_HAVE DESC", null); + + } else { + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 + "' AND BR.COMPANY_ID = '" + 1 + "' order by M.MUST_HAVE DESC", null); + } + } else { + /*dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID," + + "M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from MAPPING_STOCK_STOREWISE 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "' AND SUB_CATEGORY_ID ='" + + subCategoryId + "')AS PE on PE.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.STORE_ID = '" + store_id + "' + order by SK.SKU_SEQUENCE_SA", null);*/ + + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from " + tableName + " 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 " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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.STORE_ID = '" + store_id + "' AND BR.COMPANY_ID = '" + 1 + "' order by M.MUST_HAVE DESC", 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.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + 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 getOrderReceivedSKUData( + String subCategoryId, String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id, String store_id, + String tableName, String store_flag_facing_hide) { + 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,M.MUST_HAVE,OS.ORDERQTY," + + "ifnull(PE.SUB_CATEGORY_ID,0) as PRICING " + + "from " + tableName + " 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 ORDER_RECEIVED_STATUS OS " + + "on SK.SKU_ID=OS.SKU_ID " + + "inner join SUB_CATEGORY_MASTER SB " + + "on BR.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID " + + "left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + + "' AND SUB_CATEGORY_ID ='" + subCategoryId + "')AS PE on PE.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 + "' order by M.MUST_HAVE DESC", null); + + Log.e("cursordata", String.valueOf(dbcursor)); + + 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.setOrderqty(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ORDERQTY"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ORDERQTY"))); + 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.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + cd.setToggleValue("1"); + 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"))); + cd.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricingStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING_DEFAULT"))); + 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 ArrayList getOrder_TAKING_SKU_AfterSaveData( + String category_id, String brand_id, String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from ORDER_TAKING_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.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + cd.setSku_sequence(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_SEQUENCE"))); + cd.setIsExist(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("IsExist"))); + cd.setSys_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Sys_PO_No"))); + cd.setStore_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Store_PO_No"))); + cd.setPO_Img(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_IMAGE"))); + cd.setPO_Date(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_Date"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Order_Qty"))); + 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 ArrayList getOrder_RECEIVED_SKU_AfterSaveData( + String category_id, String brand_id, String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from ORDER_RECEIVED_STATUS_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.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + cd.setSku_sequence(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_SEQUENCE"))); + cd.setSys_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Sys_PO_No"))); + cd.setStore_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Store_PO_No"))); + cd.setPO_Date(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_Date"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ACTUAL_Qty"))); + cd.setOrderqty(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_Qty"))); + cd.setPOID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("POID"))); + 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()); + if (data.getFacing().equals("")) { + values.put("FACING", "0"); + } else { + values.put("FACING", data.getFacing()); + } + values.put("STOCK", data.getStock()); + values.put("COMPANY_ID", data.getCompany_id()); + values.put("MUST_HAVE", data.getMust_have()); + values.put("PRICING_DEFAULT", data.getPricing()); + if (data.getPricingStock().equals("")) { + values.put("PRICING", "0"); + } else { + values.put("PRICING", data.getPricingStock()); + } + 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 InsertMSL_Availability_StockFacingNew(String visit_date, + String storeId, String categoryId, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + db.delete(CommonString.TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING, CommonString.KEY_VISIT_DATE + "<>'" + visit_date + "'", null); + 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(CommonString.KEY_VISIT_DATE, visit_date); + 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()); + if (data.getFacing().equals("")) { + values.put("FACING", "0"); + } else { + values.put("FACING", data.getFacing()); + } + values.put("STOCK", data.getStock()); + values.put("COMPANY_ID", data.getCompany_id()); + values.put("MUST_HAVE", data.getMust_have()); + values.put("PRICING_DEFAULT", data.getPricing()); + if (data.getPricingStock().equals("")) { + values.put("PRICING", "0"); + } else { + values.put("PRICING", data.getPricingStock()); + } + 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 InsertStock_EntryNew(String visit_date, + String storeId, String categoryId, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + db.delete(CommonString.TABLE_INSERT_STOCK_ENTRY, CommonString.KEY_VISIT_DATE + "<>'" + visit_date + "'", null); + 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(CommonString.KEY_VISIT_DATE, visit_date); + 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()); + if (data.getFacing().equals("")) { + values.put("FACING", "0"); + } else { + values.put("FACING", data.getFacing()); + } + values.put("STOCK", data.getStock()); + values.put("COMPANY_ID", data.getCompany_id()); + values.put("MUST_HAVE", data.getMust_have()); + values.put("PRICING_DEFAULT", data.getPricing()); + if (data.getPosmStock().equals("")) { + values.put(CommonString.POSM_STOCK, "0"); + } else { + values.put(CommonString.POSM_STOCK, data.getPosmStock()); + } + if (data.getWarehouseStock().equals("")) { + values.put(CommonString.WAREHOUSE_STOCK, "0"); + } else { + values.put(CommonString.WAREHOUSE_STOCK, data.getWarehouseStock()); + } + if (data.getPricingStock().equals("")) { + values.put("PRICING", "0"); + } else { + values.put("PRICING", data.getPricingStock()); + } + db.insert(CommonString.TABLE_INSERT_STOCK_ENTRY, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability_StockFacing " + ex.toString()); + } + } + + public void InsertOrderTakingData( + String img_str, String isExist, String storepo, String sys_po_number, String date, 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); + if (isExist.equalsIgnoreCase("yes")) { + values.put("IsExist", 1); + values.put("Sys_PO_No", sys_po_number); + values.put("Store_PO_No", storepo); + values.put("PO_IMAGE", img_str); + values.put("PO_Date", date); + values.put("Store_Id", storeId); + values.put("Category_Id", categoryId); + values.put("SKU_ID", data.getSku_id()); + values.put("SKU", data.getSku()); + values.put("SKU_SEQUENCE", data.getSku_sequence()); + values.put("BRAND_ID", hashMapListHeaderData.get(i).getBrand_id()); + values.put("Order_Qty", data.getFacing()); + values.put("COMPANY_ID", data.getCompany_id()); + } else { + values.put("IsExist", 0); + values.put("Sys_PO_No", sys_po_number); + values.put("Store_PO_No", ""); + values.put("PO_Date", ""); + values.put("PO_IMAGE", ""); + values.put("Store_Id", storeId); + values.put("Category_Id", categoryId); + values.put("SKU_ID", data.getSku_id()); + values.put("SKU", data.getSku()); + values.put("SKU_SEQUENCE", data.getSku_sequence()); + values.put("BRAND_ID", hashMapListHeaderData.get(i).getBrand_id()); + values.put("Order_Qty", ""); + values.put("COMPANY_ID", data.getCompany_id()); + } + db.insert(CommonString.TABLE_INSERT_ORDER_TAKING_DATA, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert TABLE_INSERT_ORDER_TAKING_DATA " + ex.toString()); + } + } + + public void InsertOrderReceivedStatusData( + String POID, String storepo, String sys_po_number, String date, 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("Sys_PO_No", sys_po_number); + values.put("Store_PO_No", storepo); + values.put("PO_Date", date); + values.put("Store_Id", storeId); + values.put("Category_Id", categoryId); + values.put("SKU_ID", data.getSku_id()); + values.put("SKU", data.getSku()); + values.put("SKU_SEQUENCE", data.getSku_sequence()); + values.put("BRAND_ID", hashMapListHeaderData.get(i).getBrand_id()); + values.put("PO_Qty", data.getOrderqty()); + values.put("ACTUAL_Qty", data.getFacing()); + values.put("COMPANY_ID", data.getCompany_id()); + values.put("POID", POID); + db.insert(CommonString.TABLE_INSERT_ORDER_RECEIVED_DATA, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert TABLE_INSERT_ORDER_TAKING_DATA " + ex.toString()); + } + } + + + public void updateOrder_taking_data( + String img_str, String isExist, String storepo, String sys_po_number, String date, 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); + if (isExist.equalsIgnoreCase("yes")) { + values.put("IsExist", 1); + values.put("Order_Qty", data.getFacing()); + values.put("Store_PO_No", storepo); + values.put("PO_IMAGE", img_str); + } else { + values.put("IsExist", 0); + values.put("Order_Qty", ""); + values.put("Store_PO_No", ""); + values.put("PO_IMAGE", ""); + } + db.update(CommonString.TABLE_INSERT_ORDER_TAKING_DATA, 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()); + } + } + + public void updateOrder_Received_data( + String storepo, String sys_po_number, String date, 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("ACTUAL_Qty", data.getFacing()); + values.put("Store_PO_No", storepo); + + db.update(CommonString.TABLE_INSERT_ORDER_RECEIVED_DATA, 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()); + } + } + + 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("STOCK", data.getStock()); + values.put("PRICING_DEFAULT", data.getPricing()); + + if (data.getFacing().equals("")) { + values.put("FACING", "0"); + } else { + values.put("FACING", data.getFacing()); + } + if (data.getPricingStock().equals("")) { + values.put("PRICING", "0"); + } else { + values.put("PRICING", data.getPricingStock()); + } + + 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()); + } + } + + public void updateMSL_Availability_StockFacingNew(String visit_date, + 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("STOCK", data.getStock()); + values.put("PRICING_DEFAULT", data.getPricing()); + + if (data.getFacing().equals("")) { + values.put("FACING", "0"); + } else { + values.put("FACING", data.getFacing()); + } + if (data.getPricingStock().equals("")) { + values.put("PRICING", "0"); + } else { + values.put("PRICING", data.getPricingStock()); + } + + 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 + + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", null); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability_StockFacing " + ex.toString()); + } + } + + public void updateStock_Entry_FacingNew(String visit_date, + 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("STOCK", data.getStock()); + values.put("PRICING_DEFAULT", data.getPricing()); + values.put(CommonString.POSM_STOCK, data.getPosmStock()); + values.put(CommonString.WAREHOUSE_STOCK, data.getWarehouseStock()); + + if (data.getFacing().equals("")) { + values.put("FACING", "0"); + } else { + values.put("FACING", data.getFacing()); + } + if (data.getPricingStock().equals("")) { + values.put("PRICING", "0"); + } else { + values.put("PRICING", data.getPricingStock()); + } + + db.update(CommonString.TABLE_INSERT_STOCK_ENTRY, values, + "Brand_Id ='" + hashMapListHeaderData.get(i).getBrand_id() + "' AND SKU_ID ='" + data.getSku_id() + + "' AND Category_Id='" + categoryId + "' AND Store_Id='" + storeId + + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", null); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert STOCK_ENTRY " + 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; + } + + @SuppressLint("LongLogTag") + public boolean checkMsl_Availability_StockFacingDataNew(String store_id, String category_id, String visit_date) { + 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 + "'AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", 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; + } + + @SuppressLint("LongLogTag") + public boolean checkStock_Entry_FacingDataNew(String store_id, String category_id, String visit_date) { + Log.d("MSL_Availability ", "Stock data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from STOCK_ENTRY " + + "where category_id='" + category_id + "' and Store_Id='" + store_id + "'AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", 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("STOCK_ENTRY ", "midday---------------------->Stop<-----------"); + return false; + } + + + @SuppressLint("LongLogTag") + public boolean checkOrder_taking_Data(String store_id, String category_id) { + Log.d("ORDER_TAKING_DATA ", "Stock data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from ORDER_TAKING_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("ORDER_TAKING_DATA ", "midday---------------------->Stop<-----------"); + return false; + } + + @SuppressLint("LongLogTag") + public boolean checkOrder_Received_Data(String store_id, String category_id) { + Log.d("ORDER_TAKING_DATA ", "Stock data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from ORDER_RECEIVED_STATUS_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("ORDER_TAKING_DATA ", "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"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FACING"))); + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK"))); + cd.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricingStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING_DEFAULT"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + + 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; + } + + public ArrayList + getMSL_Availability_StockFacing_UploadServerDataNew(String store_id, + String visit_date, String keyAccountId, + String storeTypeId, String clasId, String mappingStkTable) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + if (keyAccountId != null) { + dbcursor = db.rawQuery(" SELECT T.*,ifnull(W.FACING,0)as FACING,ifnull(W.STOCK,0)as STOCK,ifnull(W.PRICING,0)as PRICING," + + " W.TOGGLE_VALUE,W.category_id FROM" + + " (Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT" + + " from " + mappingStkTable + " 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 left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "')AS PE" + + " on PE.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID inner join CATEGORY_MASTER CA on SB.CATEGORY_ID=CA.CATEGORY_ID " + + + " where M.KEYACCOUNT_ID =" + keyAccountId + " AND M.STORETYPE_ID =" + storeTypeId + " AND M.CLASS_ID =" + clasId + + + " order by M.MUST_HAVE DESC) AS T" + + " inner join" + + " (Select * from Msl_Availability_Stock_Facing_Data where Store_Id='" + store_id + "'AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + + "')W on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_ID", null); + + } else { + dbcursor = db.rawQuery(" SELECT T.*,ifnull(W.FACING,0)as FACING,ifnull(W.STOCK,0)as STOCK,ifnull(W.PRICING,0)as PRICING," + + " W.TOGGLE_VALUE,W.category_id FROM" + + " (Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT" + + " from " + mappingStkTable + " 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 left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "')AS PE" + + " on PE.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID inner join CATEGORY_MASTER CA on SB.CATEGORY_ID=CA.CATEGORY_ID " + + " order by M.MUST_HAVE DESC) AS T" + + " inner join" + + " (Select * from Msl_Availability_Stock_Facing_Data where Store_Id='" + store_id + "'AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + + "')W on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_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_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.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricingStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING_DEFAULT"))); + 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; + } + + public ArrayList + getStock_Entry_UploadServerDataNew(String store_id, + String visit_date, String keyAccountId, + String storeTypeId, String clasId, String mappingStkTable) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + if (keyAccountId != null) { + dbcursor = db.rawQuery(" SELECT T.*,ifnull(W.FACING,0)as FACING,ifnull(W.STOCK,0)as STOCK,Ifnull(W.POSM_STOCK,0)as POSM_STOCK,Ifnull(W.WAREHOUSE_STOCK,0)as WAREHOUSE_STOCK,ifnull(W.PRICING,0)as PRICING," + + " W.TOGGLE_VALUE,W.category_id FROM" + + " (Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT" + + " from " + mappingStkTable + " 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 left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "')AS PE" + + " on PE.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID inner join CATEGORY_MASTER CA on SB.CATEGORY_ID=CA.CATEGORY_ID " + + + " where M.KEYACCOUNT_ID =" + keyAccountId + " AND M.STORETYPE_ID =" + storeTypeId + " AND M.CLASS_ID =" + clasId + + + " order by M.MUST_HAVE DESC) AS T" + + " inner join" + + " (Select * from STOCK_ENTRY where Store_Id='" + store_id + "'AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + + "')W on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_ID", null); + + } else { + dbcursor = db.rawQuery(" SELECT T.*,ifnull(W.FACING,0)as FACING,ifnull(W.STOCK,0)as STOCK,Ifnull(W.POSM_STOCK,0)as POSM_STOCK,Ifnull(W.WAREHOUSE_STOCK,0)as WAREHOUSE_STOCK,ifnull(W.PRICING,0)as PRICING," + + " W.TOGGLE_VALUE,W.category_id FROM" + + " (Select DISTINCT BR.BRAND_ID,SK.SKU_ID,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE,ifnull(PE.SUB_CATEGORY_ID,0) as PRICING_DEFAULT" + + " from " + mappingStkTable + " 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 left join (SELECT * FROM MAPPING_SKU_PRICING_ENABLE WHERE STORE_ID ='" + store_id + "')AS PE" + + " on PE.SUB_CATEGORY_ID=SB.SUB_CATEGORY_ID inner join CATEGORY_MASTER CA on SB.CATEGORY_ID=CA.CATEGORY_ID " + + " order by M.MUST_HAVE DESC) AS T" + + " inner join" + + " (Select * from STOCK_ENTRY where Store_Id='" + store_id + "'AND " + + CommonString.KEY_VISIT_DATE + "='" + visit_date + + "')W on T.SKU_ID=W.SKU_ID and T.BRAND_ID=W.BRAND_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_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.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + cd.setPricingStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING"))); + cd.setPricing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICING_DEFAULT"))); + cd.setPosmStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.POSM_STOCK))); + cd.setWarehouseStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.WAREHOUSE_STOCK))); + 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; + } + + + public ArrayList getOrder_TAKING_UploadServerData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select * from ORDER_TAKING_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.setIsExist(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("IsExist"))); + cd.setSys_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Sys_PO_No"))); + cd.setStore_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Store_PO_No"))); + cd.setPO_Date(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_Date"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Order_Qty"))); + cd.setPO_Img(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_IMAGE"))); + 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; + } + + public ArrayList getOrder_TAKING_CategoryData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select distinct c.CATEGORY_ID,c.IsExist from ORDER_TAKING_DATA c " + + "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.setIsExist(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("IsExist"))); + 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; + } + + public ArrayList getOrder_RECEIVED_UploadServerData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select * from ORDER_RECEIVED_STATUS_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.setSys_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Sys_PO_No"))); + cd.setStore_PO_No(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Store_PO_No"))); + cd.setPO_Date(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_Date"))); + cd.setFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ACTUAL_Qty"))); + cd.setOrderqty(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_Qty"))); + cd.setPOID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("POID"))); + 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; + } + + //get Sub Category Master + public ArrayList getSubCategoryMaster( + String category_id, String store_id, String countery_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + //kenya + if (countery_id.equalsIgnoreCase("7") || countery_id.equalsIgnoreCase("8")) { + dbcursor = db.rawQuery("SELECT DISTINCT BR.sub_category_id, SUB_Category FROM SKU_MASTER SK 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 " + + "INNER JOIN " + + "(SELECT DISTINCT SKU_ID FROM MAPPING_STOCK_STOREWISE WHERE STORE_ID = '" + store_id + "') A " + + "ON SK.SKU_ID = A.SKU_ID " + + "WHERE BR.COMPANY_ID =1 AND CA.CATEGORY_ID ='" + category_id + "'", null); + } else { + dbcursor = db.rawQuery("SELECT * FROM SUB_CATEGORY_MASTER WHERE CATEGORY_ID = '" + category_id + "'", 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"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + //Sku Group Master Data for No camera + + public ArrayList getSkuGroupMasterData(String category_id, String sub_category_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList<>(); + + try { + cursordata = db.rawQuery("SELECT * FROM SKUGROUP_MASTER " + + "WHERE CATEGORY_ID ='" + category_id + "' AND SUB_CATEGORY_ID ='" + sub_category_id + "' ORDER BY SKUGROUP_SEQUENCE", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + NoCameraDataGetterSetter sb = new NoCameraDataGetterSetter(); + + sb.setSKUGROUP_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SKUGROUP_ID"))); + + sb.setSKUGROUP_NAME(cursordata.getString(cursordata.getColumnIndexOrThrow("SKUGROUP_NAME"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + Log.d("Exception ", " in Insert NO CAMERA " + ex.toString()); + } + return Data; + + } + + //insert no camera category data drag drop + public void InsertNoCameraAddedData( + String storeId, String categoryId, String sub_category_id, int row_count, HashMap> hashMapRowData) { + + db.delete(CommonString.TABLE_INSERT_NO_CAMERA_FACING_DATA, " STORE_ID = '" + storeId + + "' AND CATEGORY_ID = '" + categoryId + "' AND SUB_CATEGORY_ID = '" + sub_category_id + "'", null); + + ContentValues values = new ContentValues(); + + try { + db.beginTransaction(); + for (int i = 1; i <= row_count; i++) { + + for (int j = 0; j < hashMapRowData.get(i).size(); j++) { + NoCameraDataGetterSetter data = hashMapRowData.get(i).get(j); + + values.put(CommonString.KEY_STORE_ID, storeId); + values.put(CommonString.KEY_CATEGORY_ID, categoryId); + values.put(CommonString.KEY_SUB_CATEGORY_ID, sub_category_id); + values.put(CommonString.KEY_SKU_GROUP_ID, data.getSKUGROUP_ID()); + values.put(CommonString.KEY_ROW_NO, i); + values.put(CommonString.KEY_COLUMN_NO, j + 1); + values.put(CommonString.KEY_FACING, data.getFacing()); + values.put(CommonString.KEY_ISVERTICAL, data.isVertical()); + + db.insert(CommonString.TABLE_INSERT_NO_CAMERA_FACING_DATA, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert NO CAMERA " + ex.toString()); + } + } + + //get no camera category drag drop + //get for specific sub category id + public ArrayList getNoCameraCategoryDataInserted( + String store_id, String category_id, String subcategory_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (subcategory_id == null) { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_NO_CAMERA_FACING_DATA + " WHERE " + CommonString.KEY_STORE_ID + " = '" + store_id + + "' AND " + CommonString.KEY_CATEGORY_ID + " ='" + category_id + + "'", null); + } else { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_NO_CAMERA_FACING_DATA + " WHERE " + CommonString.KEY_STORE_ID + " = '" + store_id + + "' AND " + CommonString.KEY_CATEGORY_ID + " ='" + category_id + + "' AND " + CommonString.KEY_SUB_CATEGORY_ID + " ='" + subcategory_id + "'", null); + } + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + NoCameraDataGetterSetter cd = new NoCameraDataGetterSetter(); + + cd.setSKUGROUP_ID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SKU_GROUP_ID)) + ""); + cd.setRow_no(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ROW_NO))); + cd.setColumn_no(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_COLUMN_NO))); + cd.setFacing(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_FACING))); + + + list.add(cd); + dbcursor.moveToNext(); + + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + //get no camera category drag drop + //get for specific sub category id + public ArrayList getNoCameraCategoryStoreWiseDataInserted( + String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_INSERT_NO_CAMERA_FACING_DATA + " WHERE " + + CommonString.KEY_STORE_ID + " = '" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + NoCameraDataGetterSetter cd = new NoCameraDataGetterSetter(); + + cd.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CATEGORY_ID))); + cd.setSUB_CATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_CATEGORY_ID))); + cd.setSKUGROUP_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SKU_GROUP_ID))); + cd.setRow_no(Integer.parseInt(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ROW_NO)))); + cd.setColumn_no(Integer.parseInt(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_COLUMN_NO)))); + cd.setFacing(Integer.parseInt(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_FACING)))); + cd.setVertical(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ISVERTICAL)) == 1); + + list.add(cd); + dbcursor.moveToNext(); + + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + //Sku Group Master + + public void InsertSkuGroupMaster(SkuGroupMasterGetterSetter data) { + db.delete("SKUGROUP_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSUB_CATEGORY_ID().size(); i++) { + + values.put("SKUGROUP_ID", data.getSKUGROUP_ID().get(i)); + values.put("SKUGROUP_NAME", data.getSKUGROUP_NAME().get(i)); + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("SKUGROUP_SEQUENCE", data.getSKUGROUP_SEQUENCE().get(i)); + + db.insert("SKUGROUP_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in SKUGROUP_MASTER " + ex.toString()); + } + } + + //get Row and column count no camera + public ArrayList getrowColumnNoCamera(String store_id, String category_id, String sub_category_id, String table_name) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("SELECT ROW_NO, MAX(COLUMN_NO) as COLUMN_NO FROM " + table_name + " WHERE " + + "STORE_ID = '" + store_id + "' AND CATEGORY_ID = '" + category_id + "' AND SUB_CATEGORY_ID = '" + sub_category_id + + "' GROUP BY ROW_NO", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + RowColumnGetterSetter rc = new RowColumnGetterSetter(); + + rc.setRow(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("ROW_NO"))); + rc.setColumn(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("COLUMN_NO"))); + + list.add(rc); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get row column!" + e.toString()); + return list; + } + return list; + } + + //get Sub group master for sub category id , row and column + + public NoCameraDataGetterSetter getRowSkuGroupCamera(String store_id, String category_id, String sub_category_id, int row, int column, String table_name) { + + NoCameraDataGetterSetter column_data = new NoCameraDataGetterSetter(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("SELECT NC.SKU_GROUP_ID, SM.SKUGROUP_NAME, NC.FACING, NC.IS_VERTICAL FROM " + table_name + " NC " + + "INNER JOIN SKUGROUP_MASTER SM ON NC.SKU_GROUP_ID = SM.SKUGROUP_ID " + + "WHERE NC.STORE_ID = '" + store_id + "' AND NC.CATEGORY_ID = '" + category_id + "' AND NC.SUB_CATEGORY_ID = '" + sub_category_id + "' AND ROW_NO = '" + + row + "' AND COLUMN_NO = '" + column + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + column_data.setSKUGROUP_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_GROUP_ID"))); + column_data.setSKUGROUP_NAME(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKUGROUP_NAME"))); + column_data.setFacing(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("FACING"))); + column_data.setVertical(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("IS_VERTICAL")) == 1); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return column_data; + } + } catch (Exception e) { + Log.d("Exception ", "get row column!" + e.toString()); + return column_data; + } + return column_data; + } + + //Category Images Allowed + public ArrayList getCategoryPictureAllowedData(String categoryId) { + Cursor cursordata = null; + ArrayList imageAllowData = new ArrayList<>(); + + try { + + cursordata = db.rawQuery("Select * from MAPPING_CATEGORY_IMAGE_ALLOW " + "where CATEGORY_ID ='" + categoryId + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + CategoryImagesAllowed sb = new CategoryImagesAllowed(); + + sb.setImg_cam1(cursordata.getString(cursordata + .getColumnIndexOrThrow("IMAGE1_ALLOW")).equals("1")); + sb.setImg_cam2(cursordata.getString(cursordata + .getColumnIndexOrThrow("IMAGE2_ALLOW")).equals("1")); + sb.setImg_cam3(cursordata.getString(cursordata + .getColumnIndexOrThrow("IMAGE3_ALLOW")).equals("1")); + sb.setImg_cam4(cursordata.getString(cursordata + .getColumnIndexOrThrow("IMAGE4_ALLOW")).equals("1")); + + imageAllowData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return imageAllowData; + + } + + //MAPPING_COUNTRYWISE_PLANOGRAM + public void InsertMappingCountrywisePlanogram(MappingPlanogramCountrywiseGetterSetter data) { + db.delete("MAPPING_COUNTRYWISE_PLANOGRAM", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCOUNTRY_ID().size(); i++) { + + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("FILE_PATH", data.getFILE_PATH().get(i)); + values.put("PLANOGRAM_URL", data.getPLANOGRAM_URL().get(i)); + + db.insert("MAPPING_COUNTRYWISE_PLANOGRAM", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_COUNTRYWISE_PLANOGRAM " + ex.toString()); + } + } + + //Stock N Facing + public ArrayList getStockFacingHeaderData( + String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName, String tableMappingSOSTarget) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (keyAccount_id != null) { + 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 " + tableMappingSOSTarget + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from " + tableName + " 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 + "' AND BR.COMPANY_ID='" + 1 + "' " + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null); + } else { + 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 " + tableMappingSOSTarget + " WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " + + "from MAPPING_STOCK_STOREWISE 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.STORE_ID = '" + store_id + + "' AND BR.COMPANY_ID='" + 1 + "' " + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,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 void deletePreviousCoverageData(String date) { + db.delete(CommonString.TABLE_COVERAGE_DATA, CommonString.KEY_VISIT_DATE + "<>'" + date + "'", null); + } + + //ADDITIONAL_QUESTION + public void InsertADDITIONALQUESTION(AdditionalQuestiongetterSetter data) { + db.delete("ADDITIONAL_QUESTION", null, null); + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCATEGORY_ID().size(); i++) { + values.put("QUESTION_ID", data.getQUESTION_ID().get(i)); + values.put("CULTURE_ID", data.getCULTURE_ID().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("QUESTION", data.getQUESTION().get(i)); + values.put("ANSWER_TYPE", data.getANSWER_TYPE().get(i)); + values.put("ANSWER_ID", data.getANSWER_ID().get(i)); + values.put("ANSWER", data.getANSWER().get(i)); + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + values.put("CAMERA_ALLOW", data.getCAMERA_ALLOW().get(i)); + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + values.put("NO_OF_CAMERA", data.getNO_OF_CAMERA().get(i)); + values.put("QTYPE", data.getTYPE().get(i)); + values.put("REMARK_ALLOW", data.getREMARK_ALLOW().get(i)); + values.put("REMARK_LEVEL", data.getREMARK_LEVEL().get(i)); + values.put("MAX_LENGTH", data.getMAX_LENGTH().get(i)); + values.put("CAMERA_MANDATORY", data.getCAMERA_MANDATORY().get(i)); + db.insert("ADDITIONAL_QUESTION", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in ADDITIONAL_QUESTION " + ex.toString()); + } + } + + //Category wise Audit + public ArrayList getAuditCategoryWise(String categoryId, String store_type_id) { + Cursor cursordata = null; + ArrayList auditData = new ArrayList<>(); + try { + // dbcursor = db.rawQuery("SELECT DISTINCT CHAT_ID, MESSAGE, MESSAGEDATE, STOREID FROM CHAT_MESSAGE WHERE STOREID='" + store_id + "' ORDER BY ORDERID", null); + + cursordata = db.rawQuery("Select DISTINCT QUESTION ,QUESTION_ID, ANSWER_TYPE, KEYACCOUNT_ID, QTYPE,MAX_LENGTH " + + "from ADDITIONAL_QUESTION " + "where CATEGORY_ID ='" + categoryId + "' AND STORETYPE_ID='" + store_type_id + "'", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + AuditDataGetterSetter sb = new AuditDataGetterSetter(); + sb.setQUESTION(cursordata.getString(cursordata + .getColumnIndexOrThrow("QUESTION"))); + sb.setQUESTION_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("QUESTION_ID"))); + sb.setANSWER_TYPE(cursordata.getString(cursordata + .getColumnIndexOrThrow("ANSWER_TYPE"))); + sb.setKEYACCOUNT_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("KEYACCOUNT_ID"))); + sb.setCHECK_TYPE(cursordata.getString(cursordata + .getColumnIndexOrThrow("QTYPE"))); + sb.setMaxlength(cursordata.getString(cursordata + .getColumnIndexOrThrow("MAX_LENGTH"))); + /*sb.setREMARK_ALLOW(cursordata.getString(cursordata + .getColumnIndexOrThrow("REMARK_ALLOW"))); + sb.setREMARK_LEVEL(cursordata.getString(cursordata + .getColumnIndexOrThrow("REMARK_LEVEL")));*/ + + auditData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + } + + } catch (Exception ex) { + Log.d("Exception ", " in ADDITIONAL_QUESTION " + ex.toString()); + } + return auditData; + + } + + public ArrayList getAuditAnswerData(String question_id, String categoryId, String store_type_id, String select) { + Log.d("Fetching", "Storedata--------------->Start<------------"); + + ArrayList list = new ArrayList<>(); + AuditDataGetterSetter sb1 = new AuditDataGetterSetter(); + sb1.setANSWER_ID("0"); + sb1.setANSWER(select); + list.add(0, sb1); + + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from ADDITIONAL_QUESTION " + + "where QUESTION_ID='" + question_id + "' AND CATEGORY_ID ='" + categoryId + "' AND STORETYPE_ID='" + store_type_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + AuditDataGetterSetter sb = new AuditDataGetterSetter(); + sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID"))); + sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER"))); + sb.setCAMERA_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CAMERA_ALLOW"))); + sb.setNO_OF_CAMERA(dbcursor.getString(dbcursor.getColumnIndexOrThrow("NO_OF_CAMERA"))); + sb.setREMARK_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_ALLOW"))); + sb.setREMARK_LEVEL(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_LEVEL"))); + sb.setMaxlength(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("MAX_LENGTH"))); + sb.setCAMERA_MANDATORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CAMERA_MANDATORY"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception", " answer " + e.toString()); + return list; + } + Log.d("Fetching", " audit answer-->Stop<-"); + return list; + } + + //save audit insert data + public void saveAuditQuestionAnswerData(ArrayList questionAnswerList, + String store_cd, String category_cd) { + db.delete(CommonString.TABLE_AUDIT_DATA_SAVE, "STORE_CD" + "='" + store_cd + "' AND CATEGORY_ID ='" + + category_cd + "'", null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < questionAnswerList.size(); i++) { + AuditDataGetterSetter data = questionAnswerList.get(i); + + values.put("STORE_CD", store_cd); + values.put("QUESTION_ID", data.getQUESTION_ID()); + values.put("QUESTION", data.getQUESTION()); + values.put("ANSWER_ID", data.getANSWER_ID()); + values.put("ANSWER", data.getANSWER().replaceAll("[&^<>{}'$]", "")); + values.put("ANSWER_TYPE", data.getANSWER_TYPE()); + values.put("CATEGORY_ID", category_cd); + values.put("ANS_CAM_IMAGE", data.getCAM_IMAGE()); + values.put("ANS_CAM_IMAGE2", data.getCAM_IMAGE2()); + values.put("CAMERA_ALLOW", data.getCAMERA_ALLOW()); + values.put("REMARK_ALLOW", data.getREMARK_ALLOW()); + values.put("REMARK_LEVEL", data.getREMARK_LEVEL()); + values.put("REMARK", data.getTXT_REMARK()); + values.put("MAX_LENGHT", data.getMaxlength()); + + db.insert(CommonString.TABLE_AUDIT_DATA_SAVE, null, values); + } + } catch (Exception ex) { + Log.d("Database ", "Exception while Insert Audit Data " + ex.toString()); + } + } + + //get inserted Audit data + public ArrayList getAfterSaveAuditQuestionAnswerData(String store_cd, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select * " + "From " + CommonString.TABLE_AUDIT_DATA_SAVE + + " where STORE_CD='" + store_cd + "' AND CATEGORY_ID ='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + AuditDataGetterSetter sb = new AuditDataGetterSetter(); + + sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID"))); + sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION"))); + sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID"))); + sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER"))); + sb.setANSWER_TYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_TYPE"))); + sb.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + sb.setCAM_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANS_CAM_IMAGE"))); + sb.setCAM_IMAGE2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANS_CAM_IMAGE2"))); + sb.setCAMERA_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CAMERA_ALLOW"))); + sb.setREMARK_ALLOW(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_ALLOW"))); + sb.setREMARK_LEVEL(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK_LEVEL"))); + sb.setTXT_REMARK(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK"))); + sb.setMaxlength(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MAX_LENGHT"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + e.printStackTrace(); + return list; + } + + return list; + } + + //Audit data for upload + public ArrayList getAuditDataForUpload(String store_cd) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select * " + "From " + CommonString.TABLE_AUDIT_DATA_SAVE + + " where STORE_CD='" + store_cd + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + AuditDataGetterSetter sb = new AuditDataGetterSetter(); + sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID"))); + sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION"))); + sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID"))); + sb.setANSWER_TYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_TYPE"))); + sb.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + sb.setCAM_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANS_CAM_IMAGE"))); + sb.setCAM_IMAGE2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANS_CAM_IMAGE2"))); + sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER"))); + sb.setTXT_REMARK(dbcursor.getString(dbcursor.getColumnIndexOrThrow("REMARK"))); + sb.setMaxlength(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MAX_LENGHT"))); + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + e.printStackTrace(); + return list; + } + + return list; + } + + //POG_QUESTION + public void InsertPOGQUESTION(POGQuestionGetterSetter data) { + db.delete("POG_QUESTION_NEW", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getQUESTION_ID().size(); i++) { + + values.put("QUESTION_ID", data.getQUESTION_ID().get(i)); + values.put("CULTURE_ID", data.getCULTURE_ID().get(i)); + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + values.put("QUESTION", data.getQUESTION().get(i)); + values.put("QTYPE_ID", data.getQTYPE_ID().get(i)); + values.put("ANSWER_ID", data.getANSWER_ID().get(i)); + values.put("ANSWER", data.getANSWER().get(i)); + values.put("QTYPE", data.getQTYPE().get(i)); + values.put("KPI", data.getKPI().get(i)); + values.put("POG_TYPE_ID", data.getPOG_TYPE_ID().get(i)); + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + + db.insert("POG_QUESTION_NEW", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in POG_QUESTION " + ex.toString()); + } + } + + //Sub Category wise POG + public ArrayList getPOGSubCategoryWise(String sub_category_id, String pog_type_id, String store_type_id, String planogramType) { + Cursor cursordata = null; + ArrayList pogData = new ArrayList<>(); + + try { + if (planogramType == null) { + cursordata = db.rawQuery("Select DISTINCT QUESTION , QUESTION_ID, QTYPE from POG_QUESTION_NEW " + "where SUB_CATEGORY_ID ='" + sub_category_id + "'AND POG_TYPE_ID='" + pog_type_id + "' " + + "AND STORETYPE_ID='" + store_type_id + "'", null); + } else { + cursordata = db.rawQuery("Select DISTINCT QUESTION , QUESTION_ID, QTYPE from POG_QUESTION_NEW " + "where SUB_CATEGORY_ID ='" + sub_category_id + "'AND POG_TYPE_ID='" + pog_type_id + "' " + + "AND STORETYPE_ID='" + store_type_id + "'AND QTYPE='" + planogramType + "'", null); + } + + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + POGGetterSetter sb = new POGGetterSetter(); + + sb.setQUESTION(cursordata.getString(cursordata + .getColumnIndexOrThrow("QUESTION"))); + sb.setQUESTION_ID(cursordata.getString(cursordata + .getColumnIndexOrThrow("QUESTION_ID"))); + sb.setQTYPE(cursordata.getString(cursordata + .getColumnIndexOrThrow("QTYPE"))); + + pogData.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + } + + } catch (Exception ex) { + Log.d("Exception ", " in ADDITIONAL_QUESTION " + ex.toString()); + } + return pogData; + + } + + //get POG Answer data + public ArrayList getPOGAnswerData(String question_id, String sub_category_id, String select) { + Log.d("Fetching", "Ansdata--------------->Start<------------"); + + ArrayList list = new ArrayList<>(); + POGGetterSetter sb1 = new POGGetterSetter(); + sb1.setANSWER_ID("0"); + sb1.setANSWER(select); + list.add(0, sb1); + + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select DISTINCT ANSWER_ID,ANSWER from POG_QUESTION_NEW " + + "where QUESTION_ID='" + question_id + "' AND SUB_CATEGORY_ID ='" + sub_category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + POGGetterSetter sb = new POGGetterSetter(); + + sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID"))); + sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception", " answer " + e.toString()); + return list; + } + Log.d("Fetching", " audit answer-->Stop<-"); + return list; + } + + //save audit insert data + public void savePOGQuestionAnswerData(HashMap> hashMapListChildData, + List headerDataList, + String store_cd, String category_cd) { + db.delete(CommonString.TABLE_POG_DATA_SAVE, "STORE_CD" + "='" + store_cd + "' AND CATEGORY_ID ='" + + category_cd + "'", null); + + ContentValues values = new ContentValues(); + try { + + for (int l = 0; l < headerDataList.size(); l++) { + List childList = hashMapListChildData.get(headerDataList.get(l)); + for (int i = 0; i < childList.size(); i++) { + POGGetterSetter data = childList.get(i); + + values.put("STORE_CD", store_cd); + values.put("QUESTION_ID", data.getQUESTION_ID()); + values.put("QUESTION", data.getQUESTION()); + values.put("ANSWER_ID", data.getANSWER_ID()); + values.put("SUB_CATEGORY_ID", headerDataList.get(l).getSub_category_id()); + values.put("QTYPE", data.getQTYPE()); + values.put("CATEGORY_ID", category_cd); + + db.insert(CommonString.TABLE_POG_DATA_SAVE, null, values); + } + } + + } catch (Exception ex) { + Log.d("Database ", "Exception while Insert Audit Data " + ex.toString()); + } + } + + public ArrayList getSubCategoryMasterForPOG( + String category_id, String store_type_id, String pog_type_id, String planogramType) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + //dbcursor = db.rawQuery("SELECT DISTINCT SM.SUB_CATEGORY_ID,SM.SUB_CATEGORY FROM SUB_CATEGORY_MASTER SM INNER JOIN POG_QUESTION PG ON SM.SUB_CATEGORY_ID = PG.SUB_CATEGORY_ID WHERE CATEGORY_ID = '" + category_id + "'", null); + + if (planogramType == null) { + dbcursor = db.rawQuery("SELECT DISTINCT SM.SUB_CATEGORY_ID,SM.SUB_CATEGORY FROM SUB_CATEGORY_MASTER SM INNER JOIN POG_QUESTION_NEW PG ON SM.SUB_CATEGORY_ID = PG.SUB_CATEGORY_ID " + + "WHERE CATEGORY_ID = '" + category_id + "' AND POG_TYPE_ID='" + pog_type_id + "' AND STORETYPE_ID='" + store_type_id + "'", null); + } else { + dbcursor = db.rawQuery("SELECT DISTINCT SM.SUB_CATEGORY_ID,SM.SUB_CATEGORY FROM SUB_CATEGORY_MASTER SM INNER JOIN POG_QUESTION_NEW PG ON SM.SUB_CATEGORY_ID = PG.SUB_CATEGORY_ID " + + "WHERE CATEGORY_ID = '" + category_id + "' AND POG_TYPE_ID='" + pog_type_id + "' AND STORETYPE_ID='" + store_type_id + "' AND QTYPE='" + planogramType + "'", 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"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + //get inserted POG data + public ArrayList getAfterSavePOGQuestionAnswerData(String store_cd, String category_id, String sub_category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select * " + "From " + CommonString.TABLE_POG_DATA_SAVE + + " where STORE_CD='" + store_cd + "' AND CATEGORY_ID ='" + category_id + "' AND SUB_CATEGORY_ID ='" + sub_category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + POGGetterSetter sb = new POGGetterSetter(); + + sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID"))); + sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION"))); + sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID"))); + sb.setQTYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QTYPE"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + e.printStackTrace(); + return list; + } + + return list; + } + + //get POG Data + public ArrayList getAfterSavePOGUploadQuestionAnswerData(String store_cd, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select * " + "From " + CommonString.TABLE_POG_DATA_SAVE + + " where STORE_CD='" + store_cd + "' AND CATEGORY_ID ='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + POGGetterSetter sb = new POGGetterSetter(); + + sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID"))); + sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION"))); + sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID"))); + sb.setQTYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QTYPE"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + e.printStackTrace(); + return list; + } + + return list; + } + + //get POG Data for Upload + public ArrayList getAfterSavePOGForUploadData(String store_cd) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("Select * " + "From " + CommonString.TABLE_POG_DATA_SAVE + + " where STORE_CD='" + store_cd + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + POGGetterSetter sb = new POGGetterSetter(); + + sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID"))); + sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION"))); + sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID"))); + sb.setSUB_CATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + sb.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + e.printStackTrace(); + return list; + } + + return list; + } + + //NON_T2P_REASON + public void InsertNON_T2P_REASON(NonT2pReasonGetterSetter data) { + db.delete("NON_T2P_REASON", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getTREASON_ID().size(); i++) { + + values.put("TREASON_ID", data.getTREASON_ID().get(i)); + values.put("TREASON", data.getTREASON().get(i)); + + db.insert("NON_T2P_REASON", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in NON_T2P_REASON " + ex.toString()); + } + } + + // get Non T2P Reason data + public ArrayList getNonT2pReasonData() { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM NON_T2P_REASON", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + NonT2pReasonGetterSetter BG = new NonT2pReasonGetterSetter(); + + BG.setTREASON_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("TREASON_ID"))); + BG.setTREASON(dbcursor.getString(dbcursor.getColumnIndexOrThrow("TREASON"))); + + list.add(BG); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get NON_T2P_REASON!" + e.toString()); + } + return list; + } + + public void InsertAdhoc_JCP(JourneyPlanGetterSetter data) { + db.delete("ADHOC_JOURNEYPLAN", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("EMP_ID", data.getEMP_ID().get(i)); + + values.put("STORE_NAME", data.getSTORE_NAME().get(i)); + + values.put("CITY", data.getCITY().get(i)); + + values.put("VISIT_DATE", data.getVISIT_DATE().get(i)); + + values.put("ADDRESS", data.getADDRESS().get(i)); + + values.put("UPLOAD_STATUS", data.getUPLOAD_STATUS().get(i)); + + values.put("STORETYPE", data.getSTORETYPE().get(i)); + + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + + + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + + values.put("CHECKOUT_STATUS", data.getCHECKOUT_STATUS().get(i)); + + values.put("CLASSIFICATION", data.getCLASSIFICATION().get(i)); + + values.put("KEYACCOUNT", data.getKEYACCOUNT().get(i)); + values.put("CLASS_ID", data.getCLASS_ID().get(i)); + + values.put("CAMERA_ALLOW", data.getCAMERA_ALLOW().get(i)); + values.put("GEO_TAG", data.getGEO_TAG().get(i)); + + values.put("VISIT_ORDER", data.getVISIT_ORDER().get(i)); + values.put("LATITUDE", data.getLATITUDE().get(i)); + values.put("LONGITUDE", data.getLONGITUDE().get(i)); + values.put("POG_TYPE_ID", data.getPOG_TYPE_ID().get(i)); + values.put("FACING_HIDE", data.getFACING_HIDE().get(i)); + + db.insert("ADHOC_JOURNEYPLAN", null, values); + + } + + } catch (Exception ex) { + Log.d("Exception in ADHOC_JCP", ex.toString()); + } + } + + public void InsertVisit_Type_Status(Visit_Type_Master_GetterSetter data) { + db.delete("VISIT_TYPE_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getVISIT_TYPE_ID().size(); i++) { + + values.put("VISIT_TYPE_ID", data.getVISIT_TYPE_ID().get(i)); + values.put("VISIT_TYPE", data.getVISIT_TYPE().get(i)); + + db.insert("VISIT_TYPE_MASTER", null, values); + + } + + } catch (Exception ex) { + Log.d("Exception in VISIT_TYPE_MASTER", ex.toString()); + } + } + + public void InserChatMessage(ChatMessageDownloadGetterSetter data) { + db.delete("CHAT_MESSAGE", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getSENDERID().size(); i++) { + + values.put("REC_ID", data.getREC_ID().get(i)); + values.put("CHAT_ID", data.getCHAT_ID().get(i)); + + values.put("MESSAGE", data.getMESSAGE().get(i)); + + values.put("MESSAGEDATE", data.getMESSAGEDATE().get(i)); + + values.put("SENDERID", data.getSENDERID().get(i)); + + values.put("SENDER", data.getSENDER().get(i)); + + /*values.put("RECEIVERID", data.getRECEIVERID().get(i)); + + values.put("RECEIVER", data.getRECEIVER().get(i));*/ + + try { + values.put("COMMENTDATE", data.getCOMMENTDATE().get(i)); + + values.put("COMMENT", data.getCOMMENT().get(i)); + } catch (IndexOutOfBoundsException e) { + System.out.println(e.toString()); + } + + values.put("STOREID", data.getSTOREID().get(i)); + + values.put("ORDERID", data.getORDERID().get(i)); + values.put("SENDER_USERID", data.getSENDER_USERID().get(i)); + + db.insert("CHAT_MESSAGE", null, values); + + } + + } catch (Exception ex) { + Log.d("Excep in CHAT_MESSAGE", ex.toString()); + } + } + + // get Chat Message data + public ArrayList getChatMessageData(String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + //dbcursor = db.rawQuery("SELECT DISTINCT CHAT_ID, MESSAGE, MESSAGEDATE, SENDERID, SENDER, STOREID FROM CHAT_MESSAGE WHERE STOREID='" + store_id +"' ORDER BY ORDERID", null); + dbcursor = db.rawQuery("SELECT DISTINCT CHAT_ID, MESSAGE, MESSAGEDATE, STOREID FROM CHAT_MESSAGE WHERE STOREID='" + store_id + "' ORDER BY ORDERID", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + ChatMessageGetterSetter msg = new ChatMessageGetterSetter(); + + msg.setCHAT_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CHAT_ID"))); + msg.setMESSAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MESSAGE"))); + msg.setMESSAGEDATE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MESSAGEDATE"))); + /*msg.setSENDERID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SENDERID"))); + msg.setSENDER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SENDER")));*/ + /*msg.setRECEIVERID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("RECEIVERID"))); + msg.setRECEIVER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("RECEIVER")));*/ + msg.setSTOREID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOREID"))); + + list.add(msg); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + // get Chat Message data + public ArrayList getChatMessageCommentsData(String store_id, String chat_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT CHAT_ID, MESSAGE, MESSAGEDATE, SENDERID, SENDER, STOREID, COMMENTDATE, COMMENT, SENDER_USERID FROM CHAT_MESSAGE WHERE STOREID='" + store_id + "' AND CHAT_ID ='" + chat_id + "' AND COMMENT <>'' ORDER BY ORDERID", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + ChatMessageGetterSetter msg = new ChatMessageGetterSetter(); + + msg.setCHAT_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CHAT_ID"))); + msg.setMESSAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MESSAGE"))); + msg.setMESSAGEDATE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MESSAGEDATE"))); + msg.setSENDERID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SENDERID"))); + msg.setSENDER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SENDER"))); + msg.setSTOREID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOREID"))); + msg.setCOMMENTDATE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMMENTDATE"))); + msg.setCOMMENT(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMMENT"))); + msg.setSENDER_USERID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SENDER_USERID"))); + + list.add(msg); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + //CONFIGURATION_COUNTRY_WISE + public void InsertCONFIGURATION_COUNTRY_WISE(ConfigurationContrywiseGetterSetter data) { + db.delete("CONFIGURATION_COUNTRY_WISE", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCOUNTRY_ID().size(); i++) { + + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("ADHOC_REPORTING", data.getADHOC_REPORTING().get(i)); + values.put("PDF_ALLOW", data.getPDF_ALLOW().get(i)); + + db.insert("CONFIGURATION_COUNTRY_WISE", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in CONFIGURATION_COUNTRY_WISE " + ex.toString()); + } + } + + // get Chat Message data + public ArrayList getConfigurationData(String country_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * FROM CONFIGURATION_COUNTRY_WISE WHERE COUNTRY_ID='" + country_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + ConfigurationContrywiseGetterSetter msg = new ConfigurationContrywiseGetterSetter(); + + msg.setCOUNTRY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COUNTRY_ID"))); + msg.setADHOC_REPORTING(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ADHOC_REPORTING"))); + + list.add(msg); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + //NO_CAMERA_LAST_VISIT_DATA + public void InsertNO_CAMERA_LAST_VISIT_DATA(NoCameraLastVisitGetterSetter data, String tableName) { + db.delete(tableName, null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSKUGROUP_ID().size(); i++) { + + values.put("MID", data.getMID().get(i)); + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("VISIT_DATE", data.getVISIT_DATE().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + values.put("SKU_GROUP_ID", data.getSKUGROUP_ID().get(i)); + values.put("ROW_NO", data.getROW_NO().get(i)); + values.put("COLUMN_NO", data.getCOLUMN_NO().get(i)); + values.put("FACING", data.getFACING().get(i)); + values.put("IS_VERTICAL", data.getIS_VERTICAL().get(i)); + + db.insert(tableName, null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in NO_CAMERA_LAST_VISIT_DATA " + ex.toString()); + } + } + + //get no camera category drag drop + //get for specific sub category id + public ArrayList getNoCameraLastVisitCategoryData( + String store_id, String category_id, String subcategory_id, String tableName) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("SELECT * FROM " + tableName + " WHERE " + CommonString.KEY_STORE_ID + " = '" + store_id + + "' AND " + CommonString.KEY_CATEGORY_ID + " ='" + category_id + + "' AND " + CommonString.KEY_SUB_CATEGORY_ID + " ='" + subcategory_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + NoCameraDataGetterSetter cd = new NoCameraDataGetterSetter(); + + cd.setSKUGROUP_ID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SKU_GROUP_ID)) + ""); + cd.setRow_no(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ROW_NO))); + cd.setColumn_no(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_COLUMN_NO))); + cd.setFacing(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_FACING))); + + list.add(cd); + dbcursor.moveToNext(); + + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + //GEO_FENCING + public void InsertGeoTag_DATA(GeoFencingGetterSetter data) { + db.delete("GEO_FENCING", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCOUNTRY_ID().size(); i++) { + + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("DISTANCE_MTR", data.getDISTANCE_MTR().get(i)); + values.put("GEO_FENCING", data.getGEO_FENCING().get(i)); + + db.insert("GEO_FENCING", null, values); + + } + } catch (Exception ex) { + Log.d("Exception ", " in GEO_FENCING " + ex.toString()); + } + } + + //get Geo Fencing + public ArrayList getGeoFencing(String country_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * from GEO_FENCING where COUNTRY_ID ='" + country_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + GeoFencingGetterSetter sb = new GeoFencingGetterSetter(); + + sb.setCOUNTRY_ID(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("COUNTRY_ID"))); + + sb.setDISTANCE_MTR((dbcursor.getString(dbcursor + .getColumnIndexOrThrow("DISTANCE_MTR")))); + + sb.setGEO_FENCING(dbcursor.getString(dbcursor + .getColumnIndexOrThrow("GEO_FENCING"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + Log.d("Excep get geofencing!", e.toString()); + return list; + } + + + return list; + } + + //NON_WORKING_SUB_REASON data + + public void insertNonWorkingSubreasonData(NonWorkingSubReasonGetterSetter data) { + db.delete("NON_WORKING_SUB_REASON", null, null); + ContentValues values = new ContentValues(); + + try { + + for (int i = 0; i < data.getREASON_ID().size(); i++) { + + values.put("REASON_ID", Integer.parseInt(data.getREASON_ID().get(i))); + values.put("SUB_REASON_ID", data.getSUB_REASON_ID().get(i)); + values.put("SUB_REASON", data.getSUB_REASON().get(i)); + + db.insert("NON_WORKING_SUB_REASON", null, values); + + } + + } catch (Exception ex) { + Log.d("Database Exception ", ex.toString()); + } + + } + + // get NonWorking Sub reason data + public ArrayList getNonWorkingSubReasonData(String reason_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM NON_WORKING_SUB_REASON WHERE REASON_ID ='" + reason_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + NonWorkingSubReasonGetterSetter sb = new NonWorkingSubReasonGetterSetter(); + + sb.setSUB_REASON_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_REASON_ID"))); + + sb.setSUB_REASON(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_REASON"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + + return list; + } + + return list; + } + + //SUPERVISOR_LIST data + + public void insertSUPERVISOR_LIST_DATA(SupervisorListGetterSetter data) { + db.delete("SUPERVISOR_LIST", null, null); + ContentValues values = new ContentValues(); + + try { + + for (int i = 0; i < data.getEMP_ID().size(); i++) { + + values.put("EMP_ID", Integer.parseInt(data.getEMP_ID().get(i))); + values.put("SUPERVISOR", data.getSUPERVISOR().get(i)); + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("COACHING_VISIT", data.getCOACHING_VISIT().get(i)); + values.put("CHECK_VISIT", data.getCHECK_VISIT().get(i)); + + db.insert("SUPERVISOR_LIST", null, values); + + } + + } catch (Exception ex) { + Log.d("Database Exception ", ex.toString()); + } + + } + + + // get Supervisor data for coaching visit + public ArrayList getSupervisorListData() { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + // dbcursor = db.rawQuery("SELECT * FROM SUPERVISOR_LIST ", null); + dbcursor = db.rawQuery("SELECT * FROM SUPERVISOR_LIST where COACHING_VISIT = 1", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + SupervisorListGetterSetter sb = new SupervisorListGetterSetter(); + + sb.setEMP_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("EMP_ID"))); + + sb.setSUPERVISOR(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUPERVISOR"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + + return list; + } + + + return list; + } + + public ArrayList getSupervisorcheckListData() { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + // dbcursor = db.rawQuery("SELECT * FROM SUPERVISOR_LIST ", null); + dbcursor = db.rawQuery("SELECT * FROM SUPERVISOR_LIST where CHECK_VISIT = 1", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + SupervisorListGetterSetter sb = new SupervisorListGetterSetter(); + + sb.setEMP_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("EMP_ID"))); + + sb.setSUPERVISOR(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUPERVISOR"))); + + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + + } catch (Exception e) { + + return list; + } + + return list; + } + + public void insertVisitTypeData(String visitdate, String store_id, String visit_type_id) { + db.delete(CommonString.TABLE_VISIT_TYPE, "STORE_ID" + "='" + store_id + "' AND VISIT_DATE ='" + visitdate + "'", null); + ContentValues values = new ContentValues(); + try { + values.put(CommonString.KEY_VISIT_DATE, visitdate); + values.put(CommonString.KEY_STORE_ID, store_id); + values.put(CommonString.KEY_VISIT_ID, visit_type_id); + db.insert(CommonString.TABLE_VISIT_TYPE, null, values); + } catch (Exception ex) { + Log.d("Database Exception", ex.toString()); + } + } + + public void insertCoachingVisitData(CoachingVisitGetterSetter data, String store_id) { + db.delete("COACHING_VISIT", "STORE_ID" + "='" + store_id + "' AND EMP_ID ='" + data.getEmp_id() + "'", null); + ContentValues values = new ContentValues(); + + try { + values.put(CommonString.KEY_EMP_ID, Integer.parseInt(data.getEmp_id())); + values.put(CommonString.KEY_STORE_ID, store_id); + values.put(CommonString.KEY_IMAGE, data.getImg_path()); + + int exist; + if (data.isExists()) { + exist = 1; + } else { + exist = 0; + } + values.put(CommonString.KEY_EXIST, exist); + + db.insert("COACHING_VISIT", null, values); + + } catch (Exception ex) { + Log.d("Database Exception ", ex.toString()); + } + + } + + + public void insertCoachingVisitStoreData(CoachingVisitGetterSetter data, String store_id) { + db.delete("COACHING_VISIT_STORE", "STORE_ID" + "='" + store_id + "' AND EMP_ID ='" + data.getEmp_id() + "'", null); + ContentValues values = new ContentValues(); + + try { + values.put(CommonString.KEY_EMP_ID, Integer.parseInt(data.getEmp_id())); + values.put(CommonString.KEY_STORE_ID, store_id); + values.put(CommonString.KEY_IMAGE, data.getImg_path()); + + int exist; + if (data.isExists()) { + exist = 1; + } else { + exist = 0; + } + values.put(CommonString.KEY_EXIST, exist); + + db.insert("COACHING_VISIT_STORE", null, values); + + } catch (Exception ex) { + Log.d("Database Exception ", ex.toString()); + } + + } + + // get coaching visit data + public ArrayList getCoachingVisitData(String store_id) { + + ArrayList coachingVisitList = new ArrayList<>(); + + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM COACHING_VISIT where STORE_ID" + "='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + CoachingVisitGetterSetter sb = new CoachingVisitGetterSetter(); + + sb.setEmp_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_EMP_ID))); + + sb.setImg_path(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE))); + sb.setExists(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_EXIST)) == 1); + + coachingVisitList.add(sb); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return coachingVisitList; + } + + } catch (Exception e) { + + return coachingVisitList; + } + return coachingVisitList; + } + + public ArrayList getCoachingVisitStoreData(String store_id) { + + ArrayList coachingVisitList = new ArrayList<>(); + + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM COACHING_VISIT_STORE where STORE_ID" + "='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + CoachingVisitGetterSetter sb = new CoachingVisitGetterSetter(); + sb.setEmp_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_EMP_ID))); + sb.setImg_path(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE))); + sb.setExists(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_EXIST)) == 1); + + coachingVisitList.add(sb); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return coachingVisitList; + } + + } catch (Exception e) { + + return coachingVisitList; + } + return coachingVisitList; + } + + //CONFIGURATION_MASTER + public void InsertCONFIGURATION_MASTER(ConfigurationMasterGetterSetter data) { + db.delete("CONFIGURATION_MASTER", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getCOUNTRY_ID().size(); i++) { + + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("CONFIGURE", data.getCONFIGURE().get(i)); + values.put("ACTIVE", data.getACTIVE().get(i)); + + db.insert("CONFIGURATION_MASTER", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in CONFIGURATION_MASTER " + ex.toString()); + } + } + + // get Configuration Master data + public ArrayList getConfigurationMasterData(String country_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * FROM CONFIGURATION_MASTER WHERE COUNTRY_ID='" + country_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + ConfigurationMasterGetterSetter msg = new ConfigurationMasterGetterSetter(); + + msg.setCONFIGURE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CONFIGURE"))); + msg.setACTIVE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ACTIVE"))); + + list.add(msg); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + //DELIVERY_CALLS + public void InsertDeliveryCalls(DeliveryCallsGetterSetter data) { + //db.delete("DELIVERY_CALLS", null, null); + + ContentValues values = new ContentValues(); + try { + values.put(CommonString.KEY_STORE_NAME, data.getSTORE_NAME()); + values.put(CommonString.KEY_ADDRESS, data.getADDRESS()); + values.put(CommonString.KEY_IMAGE, data.getIN_TIME_IMAGE()); + values.put(CommonString.KEY_IMAGE1, data.getOUT_TIME_IMAGE()); + values.put(CommonString.KEY_UPLOAD_STATUS, data.getUPLOAD_STATUS()); + values.put(CommonString.KEY_VISIT_DATE, data.getVISIT_DATE()); + values.put(CommonString.KEY_IN_TIME, data.getIn_time()); + values.put(CommonString.KEY_LATITUDE, data.getLATITUDE()); + values.put(CommonString.KEY_LONGITUDE, data.getLONGITUDE()); + + db.insert("DELIVERY_CALLS", null, values); + + } catch (Exception ex) { + Log.d("Exception ", " in DELIVERY_CALLS " + ex.toString()); + } + } + + public void updateDeliveryCallsOut(DeliveryCallsGetterSetter deliveryCallData, String status, String out_time_image) { + + ContentValues values = new ContentValues(); + + try { + + values.put(CommonString.KEY_IMAGE1, out_time_image); + values.put(CommonString.KEY_UPLOAD_STATUS, status); + values.put(CommonString.KEY_OUT_TIME, deliveryCallData.getOut_time()); + + db.update(CommonString.TABLE_DELIVERY_CALLS, values, CommonString.KEY_ID + "='" + deliveryCallData.getId() + "'", null); + + } catch (Exception ex) { + + } + + } + + // get Delivery Calls data + public ArrayList getDeliveryCallsData(String visit_date) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + if (visit_date == null) { + dbcursor = db.rawQuery("SELECT * FROM DELIVERY_CALLS ", null); + } else { + dbcursor = db.rawQuery("SELECT * FROM DELIVERY_CALLS WHERE VISIT_DATE='" + visit_date + "'", null); + } + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + DeliveryCallsGetterSetter msg = new DeliveryCallsGetterSetter(); + + msg.setADDRESS(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ADDRESS))); + msg.setSTORE_NAME(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_NAME))); + msg.setIN_TIME_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE))); + msg.setOUT_TIME_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE1))); + msg.setUPLOAD_STATUS(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_UPLOAD_STATUS))); + msg.setId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_ID))); + msg.setIn_time(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IN_TIME))); + msg.setOut_time(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_OUT_TIME))); + msg.setVISIT_DATE(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_VISIT_DATE))); + msg.setLATITUDE(Double.parseDouble(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_LATITUDE)))); + msg.setLONGITUDE(Double.parseDouble(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_LONGITUDE)))); + + list.add(msg); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + public void updateDeliveryCallsUploadStatus(String key_id) { + + ContentValues values = new ContentValues(); + + try { + values.put(CommonString.KEY_UPLOAD_STATUS, CommonString.KEY_U); + db.update(CommonString.TABLE_DELIVERY_CALLS, values, CommonString.KEY_ID + "='" + key_id + "'", null); + + } catch (Exception ex) { + + } + + } + + public void InsertMappingStockSTOREWISE(MappingStockStorewiseGetterSetter data) { + + try { + db.delete("MAPPING_STOCK_STOREWISE", null, null); + + ContentValues values = new ContentValues(); + + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("SKU_ID", data.getSKU_ID().get(i)); + values.put("MUST_HAVE", data.getMUST_HAVE().get(i)); + values.put("MBQ", data.getMBQ().get(i)); + values.put("SHOW_ADDITIONAL_VISIBILITY", data.getSHOW_ADDITIONAL_VISIBILITY().get(i)); + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + + db.insert("MAPPING_STOCK_STOREWISE", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_STOCK_STOREWISE " + ex.toString()); + } + } + + public ArrayList getBrandMasterDataBySubCategory(String sub_category_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT DISTINCT BM.BRAND_ID, BM.BRAND FROM BRAND_MASTER BM INNER JOIN " + + "SKU_MASTER SM ON BM.BRAND_ID = SM.BRAND_ID INNER JOIN " + + "MAPPING_STOCK_STOREWISE M ON M.SKU_ID = SM.SKU_ID WHERE SUB_CATEGORY_ID ='" + sub_category_id + "' AND COMPANY_ID ='1' ORDER BY BRAND_SEQUENCE", 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; + } + + //insert Addditional Promo SKU wise + public void InsertPromoSKUwiseData(ArrayList promoSkuwiseListData, String category_id, String store_id, boolean exists) { + + try { + db.delete(CommonString.TABLE_INSERT_PROMO_SKUWISE, "STORE_ID = '" + store_id + "' AND CATEGORY_ID ='" + category_id + "'", null); + db.delete(CommonString.TABLE_INSERT_PROMO_SKUWISE_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_PROMO_SKUWISE_EXISTS, null, values1); + + + db.beginTransaction(); + for (int i = 0; i < promoSkuwiseListData.size(); i++) { + PromoComplianceSkuwiseGetterSetter data = promoSkuwiseListData.get(i); + + values.put("STORE_ID", Integer.parseInt(store_id)); + values.put("CATEGORY_ID", Integer.parseInt(category_id)); + values.put("SKU_ID", Integer.parseInt(data.getSku_id())); + values.put("SKU", data.getSku()); + values.put("BRAND_ID", Integer.parseInt(data.getBrand_id())); + values.put("BRAND", data.getBrand()); + values.put("SUB_CATEGORY_ID", Integer.parseInt(data.getSub_category_id())); + values.put("SUB_CATEGORY", data.getSub_category()); + values.put("DISCOUNT_VALUE", data.getDiscount_value()); + values.put("PRICE", data.getPrice()); + values.put("PROMO_IMAGE", data.getImg()); + values.put("PRICE_FLASHER_AVAILABLE", data.getPrice_flasher()); + values.put("COMMON_ID", id); + + db.insert(CommonString.TABLE_INSERT_PROMO_SKUWISE, null, values); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " Promo_SKUwise_Data " + ex.toString()); + } + } + + public ArrayList getPromoComplianceSkuwiseAfterData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (category_id == null) { + //common_id is passed in variable store_id in this case + dbcursor = db.rawQuery("Select * from Promo_SKUwise_Data " + + "where COMMON_ID='" + store_id + "'", null); + } else { + dbcursor = db.rawQuery("Select * from Promo_SKUwise_Data " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + PromoComplianceSkuwiseGetterSetter cd = new PromoComplianceSkuwiseGetterSetter(); + + cd.setSku_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + cd.setBrand_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + cd.setBrand(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND"))); + cd.setSub_category_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + cd.setSub_category(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY"))); + cd.setDiscount_value(dbcursor.getString(dbcursor.getColumnIndexOrThrow("DISCOUNT_VALUE"))); + cd.setPrice(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICE"))); + cd.setImg(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PROMO_IMAGE"))); + cd.setCategory_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setPrice_flasher(Integer.parseInt(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PRICE_FLASHER_AVAILABLE")))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuwiseAfterData!" + e.toString()); + return list; + } + return list; + } + + public ArrayList getPromoComplianceSkuwiseExistsAfterData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (category_id == null) { + dbcursor = db.rawQuery("Select * from Promo_SKUwise_Exists_Data " + + "where STORE_ID='" + store_id + "'", null); + } else { + dbcursor = db.rawQuery("Select * from Promo_SKUwise_Exists_Data " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + PromoComplianceSkuwiseGetterSetter cd = new PromoComplianceSkuwiseGetterSetter(); + + 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 ", "getPromoComplianceSkuwiseAfterData!" + e.toString()); + return list; + } + return list; + } + + //get Sub Category Master + public ArrayList getSubCategoryMasterSKUwise( + String category_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT DISTINCT SC.SUB_CATEGORY_ID, SUB_CATEGORY FROM SUB_CATEGORY_MASTER SC INNER JOIN " + + "BRAND_MASTER BM ON SC.SUB_CATEGORY_ID = BM.SUB_CATEGORY_ID INNER JOIN " + + "SKU_MASTER SM ON BM.BRAND_ID = SM.BRAND_ID INNER JOIN " + + "MAPPING_STOCK_STOREWISE M ON M.SKU_ID = SM.SKU_ID WHERE CATEGORY_ID = '" + category_id + "'", 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"))); + + 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 getSKUMasterNewData(String brand_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT DISTINCT SM.SKU_ID, SM.SKU,SM.BRAND_ID,SM.SKU_SEQUENCE,SM.MRP FROM BRAND_MASTER BM INNER JOIN " + + "SKU_MASTER SM ON BM.BRAND_ID = SM.BRAND_ID INNER JOIN " + + "MAPPING_STOCK_STOREWISE M ON M.SKU_ID = SM.SKU_ID WHERE BM.BRAND_ID = '" + brand_id + "' ORDER BY SKU_SEQUENCE", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + SkuMasterGetterSetter sb = new SkuMasterGetterSetter(); + + sb.setSKU_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SKU_ID"))); + + sb.setSKU(cursordata.getString(cursordata.getColumnIndexOrThrow("SKU"))); + + sb.setBRAND_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("BRAND_ID"))); + + + sb.setMRP(cursordata.getString(cursordata.getColumnIndexOrThrow("MRP"))); + + sb.setSKU_SEQUENCE(cursordata.getString(cursordata.getColumnIndexOrThrow("SKU_SEQUENCE"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + public void InsertMAPPING_PLANOGRAM_STORE_WISE(MappingPlanogramStorewiseGetterSetter data) { + db.delete("MAPPING_PLANOGRAM_STORE_WISE", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("PLANOGRAM_IMAGE", data.getPLANOGRAM_IMAGE().get(i)); + values.put("IMAGE_PATH", data.getIMAGE_PATH().get(i)); + + db.insert("MAPPING_PLANOGRAM_STORE_WISE", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " MAPPING_PLANOGRAM_STORE_WISE " + ex.toString()); + } + } + + //Adhoc is filled + public boolean isFilledAdhoc(String store_id, String visitDate) { + //Log.d("MAPPING_STOCK_ADHOC ", "MAPPING_STOCK_ADHOC data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_IS_ADHOC_SAVED + " where " + + CommonString.KEY_STORE_ID + "='" + store_id + "' AND " + + CommonString.KEY_VISIT_DATE + "='" + visitDate + "'", null); + + if (dbcursor != null) { + if (dbcursor.moveToFirst()) { + do { + JourneyPlanGetterSetter tp = new JourneyPlanGetterSetter(); + + tp.setSTORE_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_ID))); + list.add(tp); + } while (dbcursor.moveToNext()); + } + dbcursor.close(); + + if (list.size() > 0) { + return true; + } else { + return false; + } + } + } catch (Exception e) { + Log.d("Exception ", "when fetching Records!!!!" + e.toString()); + return false; + } + + return false; + } + + public void InsertAdhocFilled(String store_id, String visitDate) { + db.delete(CommonString.TABLE_IS_ADHOC_SAVED, null, null); + + ContentValues values = new ContentValues(); + try { + + values.put(CommonString.KEY_STORE_ID, store_id); + values.put(CommonString.KEY_VISIT_DATE, visitDate); + + db.insert(CommonString.TABLE_IS_ADHOC_SAVED, null, values); + + } catch (Exception ex) { + Log.d("Exception ", " in " + CommonString.TABLE_IS_ADHOC_SAVED + ex.toString()); + } + } + + public ArrayList getPogType( + String category_id, String store_type_id, String pog_type_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + //dbcursor = db.rawQuery("SELECT DISTINCT SM.SUB_CATEGORY_ID,SM.SUB_CATEGORY FROM SUB_CATEGORY_MASTER SM INNER JOIN POG_QUESTION PG ON SM.SUB_CATEGORY_ID = PG.SUB_CATEGORY_ID WHERE CATEGORY_ID = '" + category_id + "'", null); + dbcursor = db.rawQuery("SELECT DISTINCT PG.QTYPE FROM SUB_CATEGORY_MASTER SM INNER JOIN POG_QUESTION_NEW PG ON SM.SUB_CATEGORY_ID = PG.SUB_CATEGORY_ID " + + "WHERE CATEGORY_ID = '" + category_id + "' AND POG_TYPE_ID='" + pog_type_id + "' AND STORETYPE_ID='" + store_type_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + String qType; + + qType = dbcursor.getString(dbcursor.getColumnIndexOrThrow("QTYPE")); + + list.add(qType); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + //insert Counterfeit Product + public void InsertCounterfeitProductData(ArrayList counterfeitProductListData, String category_id, String store_id, boolean exists) { + + try { + db.delete(CommonString.TABLE_INSERT_COUNTERFEIT_PRODUCT, "STORE_ID = '" + store_id + "' AND CATEGORY_ID ='" + category_id + "'", null); + db.delete(CommonString.TABLE_INSERT_COUNTERFEIT_PRODUCT_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_COUNTERFEIT_PRODUCT_EXISTS, null, values1); + + + db.beginTransaction(); + for (int i = 0; i < counterfeitProductListData.size(); i++) { + CounterfeitProductGetterSetter 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("SKU", data.getSkuName()); + values.put("STOCK", data.getStock()); + 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_COUNTERFEIT_PRODUCT, null, values); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", "Counterfeit Data " + ex.toString()); + } + } + + //get Counterfeit Product inserted data + public ArrayList getCounterfeitProductExistsAfterData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (category_id == null) { + dbcursor = db.rawQuery("Select * from COUNTERFEIT_PRODUCT_EXISTS " + + "where STORE_ID='" + store_id + "'", null); + } else { + dbcursor = db.rawQuery("Select * from COUNTERFEIT_PRODUCT_EXISTS " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CounterfeitProductGetterSetter cd = new CounterfeitProductGetterSetter(); + + 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 getCounterfeitProductAfterData(String store_id, String category_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + if (category_id == null) { + //common_id is passed in variable store_id in this case + dbcursor = db.rawQuery("Select * from COUNTERFEIT_PRODUCT " + + "where COMMON_ID='" + store_id + "'", null); + } else { + dbcursor = db.rawQuery("Select * from COUNTERFEIT_PRODUCT " + + "where STORE_ID='" + store_id + "' AND CATEGORY_ID='" + category_id + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CounterfeitProductGetterSetter cd = new CounterfeitProductGetterSetter(); + + 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.setStock(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("STOCK"))); + 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 getBrandData(String category_id) { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT DISTINCT BR.BRAND_ID, BR.BRAND FROM BRAND_MASTER BR " + + "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 COMPANY_ID =1 AND SB.CATEGORY_ID ='" + category_id + "'", 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"))); + + + /*sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + + sb.setSUB_CATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + + sb.setCOMPANY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("COMPANY_ID"))); + + sb.setBRAND_SEQUENCE(cursordata.getString(cursordata.getColumnIndexOrThrow("BRAND_SEQUENCE")));*/ + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + + } + + + } catch (Exception ex) { + + } + return Data; + + } + + @SuppressLint("LongLogTag") + public boolean checkStockData(String store_id, String category_id, String visit_date) { + Log.d("MSL_Availability ", "Stock data--------------->Start<------------"); + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from " + CommonString.TABLE_INSERT_STOCK + + " where category_id='" + category_id + "' and Store_Id='" + store_id + + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", 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; + } + +//-------------------------------------------------------------------------------------------------------------- + + public void updateStockData( + String storeId, String categoryId, String visit_date, 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("STOCK", data.getStock()); + + db.update(CommonString.TABLE_INSERT_STOCK, values, + "Brand_Id ='" + hashMapListHeaderData.get(i).getBrand_id() + + "' AND SKU_ID ='" + data.getSku_id() + + "' AND Category_Id='" + categoryId + + "' AND Store_Id='" + storeId + "'AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", null); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert Stock " + ex.toString()); + } + } + + +//------------------------------------------------------------------------------------------------------------------------------- + + public void InsertStockData( + String storeId, String categoryId, String visit_date, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + db.delete(CommonString.TABLE_INSERT_STOCK, CommonString.KEY_VISIT_DATE + "<>'" + visit_date + "'", null); + + 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(CommonString.KEY_VISIT_DATE, visit_date); + 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("STOCK", data.getStock()); + values.put("COMPANY_ID", data.getCompany_id()); + values.put("MUST_HAVE", data.getMust_have()); + + db.insert(CommonString.TABLE_INSERT_STOCK, null, values); + } + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert Stock" + ex.toString()); + } + } + + +//--------------------------------------------------------------------------------------------------------------------------------------- + + public ArrayList getStockAfterSaveData( + String category_id, String brand_id, String store_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from " + CommonString.TABLE_INSERT_STOCK + + " 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.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK"))); + cd.setCompany_id(dbcursor.getString(dbcursor.getColumnIndexOrThrow("COMPANY_ID"))); + cd.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + + 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; + } + + //Insert Additional Journey Plan + public void InsertAdditionalJCP(JourneyPlanGetterSetter data) { + db.delete("JOURNEY_PLAN_ADDITIONAL", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("EMP_ID", data.getEMP_ID().get(i)); + + values.put("STORE_NAME", data.getSTORE_NAME().get(i)); + + values.put("CITY", data.getCITY().get(i)); + + values.put("VISIT_DATE", data.getVISIT_DATE().get(i)); + + values.put("ADDRESS", data.getADDRESS().get(i)); + + values.put("UPLOAD_STATUS", data.getUPLOAD_STATUS().get(i)); + + values.put("STORETYPE", data.getSTORETYPE().get(i)); + + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + + + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + + values.put("CHECKOUT_STATUS", data.getCHECKOUT_STATUS().get(i)); + + values.put("CLASSIFICATION", data.getCLASSIFICATION().get(i)); + + values.put("KEYACCOUNT", data.getKEYACCOUNT().get(i)); + values.put("CLASS_ID", data.getCLASS_ID().get(i)); + + values.put("CAMERA_ALLOW", data.getCAMERA_ALLOW().get(i)); + values.put("GEO_TAG", data.getGEO_TAG().get(i)); + + values.put("VISIT_ORDER", data.getVISIT_ORDER().get(i)); + values.put("LATITUDE", data.getLATITUDE().get(i)); + values.put("LONGITUDE", data.getLONGITUDE().get(i)); + values.put("POG_TYPE_ID", data.getPOG_TYPE_ID().get(i)); + + db.insert("JOURNEY_PLAN_ADDITIONAL", null, values); + + } + + } catch (Exception ex) { + Log.d("Exception in ADHOC_JCP", ex.toString()); + } + } + + //MSL_Availability_StockFacing Server Upload Data + public ArrayList getStockUploadServerData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from " + CommonString.TABLE_INSERT_STOCK + + " 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"))); + cd.setStock(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STOCK"))); + cd.setMust_have(dbcursor.getString(dbcursor.getColumnIndexOrThrow("MUST_HAVE"))); + + 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; + } + + public void insertMappingPahrmaQuestion(MappingPharmaQuestionGetterSetter data) { + db.delete("MAPPING_PHARMA_QUESTION", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getQUESTION_ID().size(); i++) { + + values.put("QUESTION_ID", data.getQUESTION_ID().get(i)); + values.put("QUESTION", data.getQUESTION().get(i)); + values.put("BRAND_ID", data.getBRAND_ID().get(i)); + values.put("BRAND", data.getBRAND().get(i)); + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + values.put("SUB_CATEGORY", data.getSUB_CATEGORY().get(i)); + values.put("QUESTION_SEQUENCE", data.getQUESTION_SEQUENCE().get(i)); + + db.insert("MAPPING_PHARMA_QUESTION", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_PHARMA_QUESTION " + ex.toString()); + } + } + + //Insert PHARMA Journey Plan + public void InsertPharmaJCP(JourneyPlanGetterSetter data) { + db.delete("JOURNEY_PLAN_PHARMA", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("EMP_ID", data.getEMP_ID().get(i)); + + values.put("STORE_NAME", data.getSTORE_NAME().get(i)); + + values.put("CITY", data.getCITY().get(i)); + + values.put("VISIT_DATE", data.getVISIT_DATE().get(i)); + + values.put("ADDRESS", data.getADDRESS().get(i)); + + values.put("UPLOAD_STATUS", data.getUPLOAD_STATUS().get(i)); + + values.put("STORETYPE", data.getSTORETYPE().get(i)); + + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + + + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + + values.put("CHECKOUT_STATUS", data.getCHECKOUT_STATUS().get(i)); + + values.put("CLASSIFICATION", data.getCLASSIFICATION().get(i)); + + values.put("KEYACCOUNT", data.getKEYACCOUNT().get(i)); + values.put("CLASS_ID", data.getCLASS_ID().get(i)); + + values.put("CAMERA_ALLOW", data.getCAMERA_ALLOW().get(i)); + values.put("GEO_TAG", data.getGEO_TAG().get(i)); + + values.put("VISIT_ORDER", data.getVISIT_ORDER().get(i)); + values.put("LATITUDE", data.getLATITUDE().get(i)); + values.put("LONGITUDE", data.getLONGITUDE().get(i)); + values.put("POG_TYPE_ID", data.getPOG_TYPE_ID().get(i)); + + db.insert("JOURNEY_PLAN_PHARMA", null, values); + + } + + } catch (Exception ex) { + Log.d("Exception in ADHOC_JCP", ex.toString()); + } + } + + // get MAPPING_PHARMA_QUESTION Data + public ArrayList getPharmaQuestionsData() { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + //dbcursor = db.rawQuery("SELECT DISTINCT CHAT_ID, MESSAGE, MESSAGEDATE, SENDERID, SENDER, STOREID FROM CHAT_MESSAGE WHERE STOREID='" + store_id +"' ORDER BY ORDERID", null); + dbcursor = db.rawQuery("SELECT DISTINCT QUESTION_ID, QUESTION FROM MAPPING_PHARMA_QUESTION ORDER BY QUESTION_SEQUENCE", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MappingPharmaQuestionGetterSetter qns = new MappingPharmaQuestionGetterSetter(); + + qns.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID"))); + qns.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION"))); + + + list.add(qns); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + + // get MAPPING_PHARMA_QUESTION Answer data + public ArrayList getPharmaAnswerData(String questionId) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + //dbcursor = db.rawQuery("SELECT DISTINCT CHAT_ID, MESSAGE, MESSAGEDATE, SENDERID, SENDER, STOREID FROM CHAT_MESSAGE WHERE STOREID='" + store_id +"' ORDER BY ORDERID", null); + dbcursor = db.rawQuery("SELECT * FROM MAPPING_PHARMA_QUESTION WHERE QUESTION_ID='" + questionId + "' ORDER BY QUESTION_SEQUENCE", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MappingPharmaQuestionGetterSetter qns = new MappingPharmaQuestionGetterSetter(); + + qns.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID"))); + qns.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION"))); + qns.setBRAND_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND_ID"))); + qns.setBRAND(dbcursor.getString(dbcursor.getColumnIndexOrThrow("BRAND"))); + qns.setSUB_CATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY_ID"))); + qns.setSUB_CATEGORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY"))); + + list.add(qns); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + Log.d("Exception ", "get Chat Message" + e.toString()); + } + return list; + } + + //Insert Store Detail Pharma stores + public void InsertStoreDetailPharma( + String storeId, List hashMapListHeaderData, + HashMap> hashMapListChildData, + ImageGetterSetter imageData) { + + db.delete(CommonString.TABLE_INSERT_STORE_PROFILE_DATA, CommonString.KEY_STORE_ID + "='" + storeId + "'", null); + db.delete(CommonString.TABLE_INSERT_PHARMA_IMAGE_DATA, CommonString.KEY_STORE_ID + "='" + storeId + "'", null); + + ContentValues values = new ContentValues(); + ContentValues values1 = new ContentValues(); + + values1.put(CommonString.KEY_STORE_ID, storeId); + values1.put(CommonString.KEY_IMAGE1, imageData.getImage1()); + values1.put(CommonString.KEY_IMAGE2, imageData.getImage2()); + values1.put(CommonString.KEY_IMAGE3, imageData.getImage3()); + values1.put(CommonString.KEY_IMAGE4, imageData.getImage4()); + + db.insert(CommonString.TABLE_INSERT_PHARMA_IMAGE_DATA, null, values1); + + try { + //db.beginTransaction(); + for (int i = 0; i < hashMapListHeaderData.size(); i++) { + + for (int j = 0; j < hashMapListChildData.get(hashMapListHeaderData.get(i)).size(); j++) { + MappingPharmaQuestionGetterSetter data = hashMapListChildData.get(hashMapListHeaderData.get(i)).get(j); + + values.put(CommonString.KEY_STORE_ID, storeId); + values.put(CommonString.KEY_QUESTION_ID, data.getQUESTION_ID().get(0)); + values.put(CommonString.KEY_QUESTION, data.getQUESTION().get(0)); + values.put(CommonString.KEY_SUB_CATEGORY_ID, data.getSUB_CATEGORY_ID().get(0)); + values.put(CommonString.KEY_SUB_CATEGORY, data.getSUB_CATEGORY().get(0)); + values.put(CommonString.KEY_BRAND_ID, data.getBRAND_ID().get(0)); + values.put(CommonString.KEY_BRAND, data.getBRAND().get(0)); + values.put(CommonString.KEY_IMAGE, data.getImgPath()); + values.put(CommonString.KEY_PRESENT, data.getIsChecked()); + + db.insert(CommonString.TABLE_INSERT_STORE_PROFILE_DATA, null, values); + } + } + /*db.setTransactionSuccessful(); + db.endTransaction();*/ + } catch (Exception ex) { + Log.d("Exception ", " in Insert MSL_Availability_StockFacing " + ex.toString()); + } + } + + //Get Pharma Store detail for SOS Data + public ArrayList getStoreDetailPharmaForSOSData(String store_id, String questionId) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select Distinct SP.QUESTION_ID , SP.BRAND, SP.BRAND_ID, SP.SUB_CATEGORY_ID, SP.SUB_CATEGORY, ifnull(SS.GSK_FACING,'') GSK_FACING, ifnull(SS.COMPETITION_FACING,'') COMPETITION_FACING " + + " from " + CommonString.TABLE_INSERT_STORE_PROFILE_DATA + " SP LEFT JOIN " + CommonString.TABLE_INSERT_SOS_PHARMA_DATA + + " SS ON (SP.SUB_CATEGORY_ID = SS.SUB_CATEGORY_ID) AND (SP.BRAND_ID = SS.BRAND_ID) where SP.STORE_ID ='" + store_id + "' AND SP.QUESTION_ID='" + questionId + "' AND " + + CommonString.KEY_PRESENT + "='1'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + PharmaSOSGetterSetter cd = new PharmaSOSGetterSetter(); + + cd.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_QUESTION_ID))); + cd.setBRAND(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND))); + cd.setBRAND_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + cd.setSUB_CATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_CATEGORY_ID))); + cd.setSUB_CATEGORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_CATEGORY))); + cd.setGskFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_GSK_FACING))); + cd.setCompetitorFacing(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_COMPETITION_FACING))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get SOS Question Data!" + e.toString()); + return list; + } + return list; + } + + //Get Pharma Store detail Question Inserted Data + public ArrayList getStoreDetailPharmaQuestionInsertedData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select DISTINCT QUESTION_ID, QUESTION from " + CommonString.TABLE_INSERT_STORE_PROFILE_DATA + + " where " + CommonString.KEY_STORE_ID + "='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MappingPharmaQuestionGetterSetter cd = new MappingPharmaQuestionGetterSetter(); + + cd.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_QUESTION_ID))); + cd.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_QUESTION))); + + 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; + } + + //Get Pharma Store detail Answer Inserted Data + public ArrayList getStoreDetailPharmaAnswerInsertedData(String store_id, String questionId) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + if (questionId == null) { + dbcursor = db.rawQuery("Select * from " + CommonString.TABLE_INSERT_STORE_PROFILE_DATA + + " where " + CommonString.KEY_STORE_ID + "='" + store_id + "'", null); + } else { + dbcursor = db.rawQuery("Select * from " + CommonString.TABLE_INSERT_STORE_PROFILE_DATA + + " where " + CommonString.KEY_STORE_ID + "='" + store_id + "' AND " + CommonString.KEY_QUESTION_ID + "='" + questionId + "'", null); + } + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + MappingPharmaQuestionGetterSetter cd = new MappingPharmaQuestionGetterSetter(); + + cd.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_QUESTION_ID))); + cd.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_QUESTION))); + cd.setBRAND(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND))); + cd.setBRAND_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + cd.setSUB_CATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_CATEGORY_ID))); + cd.setSUB_CATEGORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_CATEGORY))); + cd.setImgPath(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE))); + cd.setIsChecked(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_PRESENT))); + + 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; + } + + //Insert SOS Pharma stores + public void InsertSOSPharma( + String storeId, List sosListData) { + + db.delete(CommonString.TABLE_INSERT_SOS_PHARMA_DATA, CommonString.KEY_STORE_ID + "='" + storeId + "'", null); + + ContentValues values = new ContentValues(); + + try { + //db.beginTransaction(); + + for (int j = 0; j < sosListData.size(); j++) { + PharmaSOSGetterSetter data = sosListData.get(j); + + values.put(CommonString.KEY_STORE_ID, storeId); + values.put(CommonString.KEY_QUESTION_ID, data.getQUESTION_ID()); + values.put(CommonString.KEY_QUESTION, data.getQUESTION()); + values.put(CommonString.KEY_SUB_CATEGORY_ID, data.getSUB_CATEGORY_ID()); + values.put(CommonString.KEY_SUB_CATEGORY, data.getSUB_CATEGORY()); + values.put(CommonString.KEY_BRAND_ID, data.getBRAND_ID()); + values.put(CommonString.KEY_BRAND, data.getBRAND()); + values.put(CommonString.KEY_GSK_FACING, data.getGskFacing()); + values.put(CommonString.KEY_COMPETITION_FACING, data.getCompetitorFacing()); + + db.insert(CommonString.TABLE_INSERT_SOS_PHARMA_DATA, null, values); + } + + /*db.setTransactionSuccessful(); + db.endTransaction();*/ + } catch (Exception ex) { + Log.d("Exception ", " in Insert SOS Pharma " + ex.toString()); + } + } + + //Insert Pharma MSL + public void InsertPharmaMSL( + String storeId, List hashMapListHeaderData, + HashMap> hashMapListChildData) { + + db.delete(CommonString.TABLE_INSERT_PHARMA_MSL_DATA, CommonString.KEY_STORE_ID + "='" + storeId + "'", null); + + 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++) { + PharmaMSLInsertedGetterSetter data = hashMapListChildData.get(hashMapListHeaderData.get(i)).get(j); + + values.put(CommonString.KEY_STORE_ID, storeId); + values.put(CommonString.KEY_BRAND_ID, hashMapListHeaderData.get(i).getBrand_id()); + values.put(CommonString.KEY_SKU, data.getSku()); + values.put(CommonString.KEY_SKU_ID, data.getSkuId()); + values.put(CommonString.KEY_PRESENT, data.getPresent()); + + db.insert(CommonString.TABLE_INSERT_PHARMA_MSL_DATA, null, values); + + } + } +// db.setTransactionSuccessful(); +// db.endTransaction(); + } catch (Exception ex) { + Log.d("Exception ", " in Insert Pharma MSL " + ex.toString()); + } + } + + //insert MAPPING_PHARMA_MSL + public void InsertMAPPING_PHARMA_MSL(MappingPharmaMSLGetterSetter data) { + db.delete("MAPPING_PHARMA_MSL", null, null); + + ContentValues values = new ContentValues(); + try { + for (int i = 0; i < data.getSKU_ID().size(); i++) { + + values.put("COUNTRY_ID", data.getCOUNTRY_ID().get(i)); + values.put("SKU_ID", data.getSKU_ID().get(i)); + + db.insert("MAPPING_PHARMA_MSL", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", " in MAPPING_PHARMA_MSL " + ex.toString()); + } + } + + //Pharma MSL Header + public ArrayList getPharmaMSLHeaderData() { + + 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 " + + "from MAPPING_PHARMA_MSL 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 BR.COMPANY_ID='" + 1 + "' " + + "order by SB.SUB_CATEGORY,BR.COMPANY_ID,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; + } + + //get Pharma MSL default data + public ArrayList getPharmaMSLSKUData(String brand_id) { + + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU " + + "from MAPPING_PHARMA_MSL 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 BR.BRAND_ID='" + brand_id + + "' order by SK.SKU_SEQUENCE ", null); + + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + PharmaMSLInsertedGetterSetter cd = new PharmaMSLInsertedGetterSetter(); + + cd.setSkuId(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + cd.setSku(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SKU"))); + + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_AvailabilityHeader!" + e.toString()); + return list; + } + return list; + } + + //Get Pharma Store detail Image Inserted Data + public ImageGetterSetter getStoreDetailPharmaImageInsertedData(String store_id) { + ImageGetterSetter cd = new ImageGetterSetter(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from " + CommonString.TABLE_INSERT_PHARMA_IMAGE_DATA + + " where " + CommonString.KEY_STORE_ID + "='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + + cd.setImage1(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE1))); + cd.setImage2(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE2))); + cd.setImage3(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE3))); + cd.setImage4(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IMAGE4))); + + dbcursor.moveToNext(); + } + dbcursor.close(); + return cd; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_Availability server upload Data!" + e.toString()); + return cd; + } + return cd; + } + + //Get Pharma Store MSL Inserted Data + public ArrayList getPharmaMSLInsertedData(String store_id) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + + dbcursor = db.rawQuery("Select * from " + CommonString.TABLE_INSERT_PHARMA_MSL_DATA + + " where " + CommonString.KEY_STORE_ID + "='" + store_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + PharmaMSLInsertedGetterSetter data = new PharmaMSLInsertedGetterSetter(); + + data.setBrandId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_BRAND_ID))); + data.setSkuId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SKU_ID))); + data.setPresent(dbcursor.getInt(dbcursor.getColumnIndexOrThrow(CommonString.KEY_PRESENT))); + + list.add(data); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "get MSL_Availability server upload Data!" + e.toString()); + return list; + } + return list; + } + + //Insert ADHOC_JOURNEYPLAN_ADDITIONAL + public void InsertAdditionalAdhocJCP(JourneyPlanGetterSetter data) { + db.delete("ADHOC_JOURNEYPLAN_ADDITIONAL", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("EMP_ID", data.getEMP_ID().get(i)); + + values.put("STORE_NAME", data.getSTORE_NAME().get(i)); + + values.put("CITY", data.getCITY().get(i)); + + values.put("VISIT_DATE", data.getVISIT_DATE().get(i)); + + values.put("ADDRESS", data.getADDRESS().get(i)); + + values.put("UPLOAD_STATUS", data.getUPLOAD_STATUS().get(i)); + + values.put("STORETYPE", data.getSTORETYPE().get(i)); + + values.put("KEYACCOUNT_ID", data.getKEYACCOUNT_ID().get(i)); + + + values.put("STORETYPE_ID", data.getSTORETYPE_ID().get(i)); + + values.put("CHECKOUT_STATUS", data.getCHECKOUT_STATUS().get(i)); + + values.put("CLASSIFICATION", data.getCLASSIFICATION().get(i)); + + values.put("KEYACCOUNT", data.getKEYACCOUNT().get(i)); + values.put("CLASS_ID", data.getCLASS_ID().get(i)); + + values.put("CAMERA_ALLOW", data.getCAMERA_ALLOW().get(i)); + values.put("GEO_TAG", data.getGEO_TAG().get(i)); + + values.put("VISIT_ORDER", data.getVISIT_ORDER().get(i)); + values.put("LATITUDE", data.getLATITUDE().get(i)); + values.put("LONGITUDE", data.getLONGITUDE().get(i)); + values.put("POG_TYPE_ID", data.getPOG_TYPE_ID().get(i)); + + db.insert("ADHOC_JOURNEYPLAN_ADDITIONAL", null, values); + + } + + } catch (Exception ex) { + + } + } + + //usk + public void InsertComptionPromotData(ArrayList 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) { + + } + } + + + public void InsertCATEGORYWISE_SOS_TARGET(STORE_CATEGORY_WISEGetterSetter data) { + db.delete("CATEGORYWISE_SOS_TARGET", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getCATEGORY_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("CATEGORY_ID", data.getCATEGORY_ID().get(i)); + values.put("SUB_CATEGORY", data.getSUB_CATEGORY().get(i)); + values.put("SOS_TARGET", data.getSOS_TARGET().get(i)); + db.insert("CATEGORYWISE_SOS_TARGET", null, values); + + } + + } catch (Exception ex) { + + } + } + + public ArrayList getCATEGORYWISE_SOS_TARGETData() { + Cursor cursordata = null; + ArrayList Data = new ArrayList(); + + try { + + cursordata = db.rawQuery("SELECT * FROM CATEGORYWISE_SOS_TARGET", null); + + if (cursordata != null) { + cursordata.moveToFirst(); + while (!cursordata.isAfterLast()) { + STORE_CATEGORY_WISEGetterSetter sb = new STORE_CATEGORY_WISEGetterSetter(); + + sb.setCATEGORY_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("CATEGORY_ID"))); + sb.setSOS_TARGET(cursordata.getString(cursordata.getColumnIndexOrThrow("SOS_TARGET"))); + sb.setSTORE_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("STORE_ID"))); + sb.setSUB_CATEGORY(cursordata.getString(cursordata.getColumnIndexOrThrow("SUB_CATEGORY"))); + + Data.add(sb); + cursordata.moveToNext(); + } + cursordata.close(); + } + + } catch (Exception ex) { + + } + return Data; + + } + + + public ArrayList getSTORE_CATEGORY_WISE(String store_id, String category_id, String tableName) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + + try { + dbcursor = db.rawQuery("Select * from " + tableName + + " where STORE_ID='" + store_id + "' and CATEGORY_ID='" + category_id + "'", null); + + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + STORE_CATEGORY_WISEGetterSetter cd = new STORE_CATEGORY_WISEGetterSetter(); + + cd.setSTORE_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + cd.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + cd.setSUB_CATEGORY(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SUB_CATEGORY"))); + cd.setSOS_TARGET(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SOS_TARGET"))); + list.add(cd); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + Log.d("Exception ", "getPromoComplianceSkuData!" + e.toString()); + return list; + } + return list; + } + + + public void InsertMAPPING_SKU_PRICING_ENABLE(MAPPING_SKU_PRICING_ENABLEGetterSetter data) { + db.delete("MAPPING_SKU_PRICING_ENABLE", null, null); + + ContentValues values = new ContentValues(); + try { + + for (int i = 0; i < data.getSTORE_ID().size(); i++) { + + values.put("STORE_ID", data.getSTORE_ID().get(i)); + values.put("SUB_CATEGORY_ID", data.getSUB_CATEGORY_ID().get(i)); + db.insert("MAPPING_SKU_PRICING_ENABLE", null, values); + } + } catch (Exception ex) { + Log.d("Exception ", "MAPPING_SKU_PRICING_ENABLE!" + ex.toString()); + } + } + + public ArrayList getOrderstatusData(String storeid, String categoryid) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("select APP_PONUMBER, PO_DATE, STORE_PONUMBER,CATEGORY_ID,SKU_ID,STORE_ID,ORDERQTY, STATUS,POID,count(SKU_ID) as Lines from Order_Received_Status where STORE_ID = '" + storeid + "'AND CATEGORY_ID" + "='" + categoryid + "'group by APP_PONUMBER, PO_DATE, STORE_PONUMBER", null); + // dbcursor = db.rawQuery("select APP_PONUMBER, PO_DATE, STORE_PONUMBER,CATEGORY_ID,SKU_ID,STORE_ID,ORDERQTY, STATUS, count(SKU_ID) as Lines from Order_Received_Status where STORE_ID = '" + storeid + "'group by APP_PONUMBER, PO_DATE, STORE_PONUMBER", null); + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + OrderReceivedStatus sb = new OrderReceivedStatus(); + sb.setORDERQTY(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("Lines"))); + sb.setPodate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("PO_DATE"))); + sb.setStorepo(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STORE_PONUMBER"))); + sb.setSys_gen_po(dbcursor.getString(dbcursor.getColumnIndexOrThrow("APP_PONUMBER"))); + sb.setSKU_ID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("SKU_ID"))); + sb.setStatus(dbcursor.getString(dbcursor.getColumnIndexOrThrow("STATUS"))); + sb.setStoreid(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("STORE_ID"))); + sb.setCATEGORY_ID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("CATEGORY_ID"))); + sb.setPOID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("POID"))); + list.add(sb); + dbcursor.moveToNext(); + } + dbcursor.close(); + return list; + } + } catch (Exception e) { + + return list; + } + return list; + } + + public long updateStockMapping(String id, String visit_date, String table_mapping) { + ContentValues values = new ContentValues(); + long l = 0; + try { + values.put(CommonString.KEY_STOCK_MAPPING, table_mapping); + l = db.update(CommonString.TABLE_COVERAGE_DATA, values, CommonString.KEY_STORE_ID + "='" + id + "' AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", null); + } catch (Exception e) { + Log.d("Excep update checkout", e.toString()); + } + + return l; + } + + + public long InsertPdImageData( + String visit_date, String storeId, String categoryId, List _list) { + ContentValues values = new ContentValues(); + long l = 0; + try { + db.delete(CommonString.TABLE_IRPD, + CommonString.KEY_STORE_ID + "=" + storeId + " AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "' AND " + + CommonString.KEY_CATEGORY_ID + "=" + categoryId, null); + + db.beginTransaction(); + for (int i = 0; i < _list.size(); i++) { + values.put(CommonString.KEY_STORE_ID, storeId); + values.put(CommonString.KEY_VISIT_DATE, visit_date); + values.put(CommonString.KEY_CATEGORY_ID, categoryId); + values.put(CommonString.KEY_SUB_CATEGORY_ID, _list.get(i).getSUB_CATEGORY_ID()); + values.put(CommonString.KEY_SUB_CATEGORY_CODE, _list.get(i).getSubCatCode()); + List info = _list.get(i).getImageUris().stream().map(ImageUri::getModify_uri).collect(Collectors.toList()); + values.put(CommonString.KEY_IRPD_IMAGES, _list.get(i).getImageUris().stream().map(ImageUri::getUri).collect(Collectors.toList()).stream().collect(Collectors.joining(", "))); + values.put(CommonString.KEY_IRPD_MODIFY_IMAGES, _list.get(i).getImageUris().stream().map(ImageUri::getModify_uri).collect(Collectors.toList()).stream().collect(Collectors.joining(", "))); + l = db.insert(CommonString.TABLE_IRPD, null, values); + Log.e("data_d", info.toString()); + Log.e("data_d", values.toString()); + } + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (Exception ex) { + Log.d("data_d ", " in Insert TABLE_IRPD " + ex); + } + + return l; + } + + + public ArrayList getIrPDforUpload(String store_id, String visit_date) { + ArrayList list = new ArrayList<>(); + Cursor dbcursor = null; + try { + dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_IRPD + " WHERE " + + CommonString.KEY_STORE_ID + "=" + store_id + " AND " + CommonString.KEY_VISIT_DATE + "='" + visit_date + "'", null); + if (dbcursor != null) { + dbcursor.moveToFirst(); + while (!dbcursor.isAfterLast()) { + CategoryPictureGetterSetter cd = new CategoryPictureGetterSetter(); + cd.setCategoryId(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_CATEGORY_ID))); + cd.setSUB_CATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_CATEGORY_ID))); + cd.setSubCatCode(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_SUB_CATEGORY_CODE))); + cd.setSubCategoryCamera2(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IRPD_MODIFY_IMAGES))); + + String imgs = dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_IRPD_IMAGES)); + cd.setImageUris(imgs != null && !imgs.isEmpty() ? (ArrayList) Arrays.stream(imgs.split(", ")) + .map(img -> new ImageUri(img, new File(img).getName())) // Extract file name as second parameter + .collect(Collectors.toList()) : new ArrayList<>()); + + cd.setSubCategoryCamera1(imgs); + 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/GeoTag/GeoTagActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java new file mode 100644 index 0000000..f9b9e93 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java @@ -0,0 +1,1260 @@ +package cpm.com.gskmtorange.GeoTag; + +import static com.google.android.gms.location.LocationRequest.Builder.IMPLICIT_MIN_UPDATE_INTERVAL; + +import android.Manifest; +import android.app.AlertDialog; +import android.app.Dialog; +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.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.location.Geocoder; +import android.location.Location; +import android.location.LocationManager; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.os.Looper; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.provider.Settings; +import android.util.Log; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; +/*import com.google.android.gms.appindexing.Action; +import com.google.android.gms.appindexing.AppIndex; +import com.google.android.gms.appindexing.Thing;*/ +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import com.google.android.gms.appindexing.Action; +import com.google.android.gms.appindexing.AppIndex; +import com.google.android.gms.appindexing.Thing; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.Priority; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.StringReader; +import java.net.SocketException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.GeotaggingBeans; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.dailyentry.StoreimageActivity; +import cpm.com.gskmtorange.dailyentry.VisitTypeStatusActivity; +import cpm.com.gskmtorange.messgae.AlertMessage; +import cpm.com.gskmtorange.upload.Base64; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler; + +/** + * Created by ashishc on 27-12-2016. + */ + +public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { + private Context context; + String result, errormsg = ""; + private ProgressBar pb; + private GoogleMap mMap; + double latitude = 0.0; + double longitude = 0.0; + String country_id; + protected String diskpath = "", _path, _pathforcheck, img_str = "", status; + private Location mLastLocation; + private LocationManager locmanager = null; + FloatingActionButton fab, fabcarmabtn; + SupportMapFragment mapFragment; + SharedPreferences preferences; + String username, storeid, str, visitData, store_flag_str;//storename; + GSKOrangeDB db; + LocationManager locationManager; + Geocoder geocoder; + boolean enabled; + private Dialog dialog; + private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; + private GoogleApiClient mGoogleApiClient; + private LocationRequest mLocationRequest; + private static int UPDATE_INTERVAL = 500; // 5 sec + private static int FATEST_INTERVAL = 100; // 1 sec + private static int DISPLACEMENT = 5; // 10 meters + private static final String TAG = GeoTagActivity.class.getSimpleName(); + String defaultCameraPackage = ""; + File file; + String gallery_package = ""; + Uri outputFileUri; + private int factor, k; + ArrayList geotaglist = new ArrayList(); + ArrayList geotaglistImage = new ArrayList(); + Boolean markerflag = true; + private TextView percentage, message; + private FailureGetterSetter failureGetterSetter = null; + + private FusedLocationProviderClient fusedLocationProviderClient; + LocationRequest locationRequest; + /** + * ATTENTION: This was auto-generated to implement the App Indexing API. + * See https://g.co/AppIndexing/AndroidStudio for more information. + */ + private GoogleApiClient client; + + Toolbar toolbar; + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_geo_tag); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + context = this; + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); + username = preferences.getString(CommonString.KEY_USERNAME, null); + //storeid = preferences.getString(CommonString.KEY_STORE_ID, null); + //storename = preferences.getString(CommonString.KEY_STORE_NAME, null); + visitData = preferences.getString(CommonString.KEY_DATE, null); + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + storeid = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + + + final PackageManager packageManager = getPackageManager(); + + fab = (FloatingActionButton) findViewById(R.id.fab); + + fabcarmabtn = (FloatingActionButton) findViewById(R.id.camrabtn); + + db = new GSKOrangeDB(GeoTagActivity.this); + db.open(); + + //storeid = getIntent().getStringExtra("Storeid"); + str = CommonString.getImagesFolder(context); + + mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); + + mapFragment.getMapAsync(this); + + locationManager = (LocationManager) this + .getSystemService(LOCATION_SERVICE); + geocoder = new Geocoder(this); + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + + if (checkPlayServices()) { + + // Building the GoogleApi client + buildGoogleApiClient(); + + createLocationRequest(); + } + + locmanager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + enabled = locmanager.isProviderEnabled(LocationManager.GPS_PROVIDER); + + if (!enabled) { + AlertDialog.Builder alertDialog = new AlertDialog.Builder( + GeoTagActivity.this); + + // Setting Dialog Title + alertDialog.setTitle(getResources().getString(R.string.gps)); + + // Setting Dialog Message + alertDialog.setMessage(getResources().getString(R.string.gpsebale)); + + // Setting Positive "Yes" Button + alertDialog.setPositiveButton(getResources().getString(R.string.yes), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + Intent intent = new Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(intent); + } + }); + + // Setting Negative "NO" Button + alertDialog.setNegativeButton(getResources().getString(R.string.no), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // Write your code here to invoke NO event + dialog.cancel(); + finish(); + } + }); + + // Showing Alert Message + alertDialog.show(); + + } + + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (!img_str.equalsIgnoreCase("")) { + status = "Y"; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + db.updateStatus(storeid, status, latitude, longitude, CommonString.KEY_ADHOC_JOURNEY_PLAN); + } + else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + db.updateStatus(storeid, status, latitude, longitude, CommonString.KEY_JOURNEY_PLAN_ADDITIONAL); + } + else{ + db.updateStatus(storeid, status, latitude, longitude, CommonString.KEY_JOURNEY_PLAN); + } + + db.InsertSTOREgeotag(storeid, latitude, longitude, img_str, status); + img_str = ""; + + new GeoTagUpload(GeoTagActivity.this).execute(); + + + } else { + Snackbar.make(view, getResources().getString(R.string.takeimage), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + + } + + } + }); + + fabcarmabtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = storeid + "GeoTag" + visitData.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck; + startCameraActivity(); + + } + }); + // ATTENTION: This was auto-generated to implement the App Indexing API. + // See https://g.co/AppIndexing/AndroidStudio for more information. + // client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); + } + + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil + .isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { + GooglePlayServicesUtil.getErrorDialog(resultCode, this, + PLAY_SERVICES_RESOLUTION_REQUEST).show(); + } else { + Toast.makeText(context, getResources().getString(R.string.notsuppoted) + , Toast.LENGTH_LONG) + .show(); + finish(); + } + return false; + } + return true; + } + + protected synchronized void buildGoogleApiClient() { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API).build(); + } + + + protected void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + protected void startLocationUpdates() { + + + if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); + + } + + } + + /** + * Stopping location updates + */ + protected void stopLocationUpdates() { + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); + } + + @Override + public void onConnected(Bundle bundle) { + + /* if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + + if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mLastLocation != null) { + latitude = mLastLocation.getLatitude(); + longitude = mLastLocation.getLongitude(); + + mMap.setMyLocationEnabled(true); + + if(markerflag) + { + // Add a marker of latest location and move the camera + LatLng latLng = new LatLng(latitude, longitude); + mMap.addMarker(new MarkerOptions().position(latLng)); + mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); + mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); + + + } + + } + } + + + // if (mRequestingLocationUpdates) { + startLocationUpdates();*/ + + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + @Override + public void onLocationChanged(Location location) { + + } + + @Override + public void onConnectionFailed(ConnectionResult connectionResult) { + Log.i(TAG, "Connection failed: ConnectionResult.getErrorCode() = " + connectionResult.getErrorCode()); + } + + @Override + public void onMapReady(GoogleMap googleMap) { + mMap = googleMap; + } + + protected void onStart() { + super.onStart();// ATTENTION: This was auto-generated to implement the App Indexing API. +// See https://g.co/AppIndexing/AndroidStudio for more information. + // client.connect(); + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + // ATTENTION: This was auto-generated to implement the App Indexing API. + // See https://g.co/AppIndexing/AndroidStudio for more information. + // AppIndex.AppIndexApi.start(client, getIndexApiAction()); + } + + @Override + protected void onResume() { + super.onResume(); + + CommonFunctions.updateLangResources(context,preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getResources().getString(R.string.title_activity_store_geotag)); + locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 100000) + .setWaitForAccurateLocation(false) + .setMinUpdateIntervalMillis(IMPLICIT_MIN_UPDATE_INTERVAL) + .setMaxUpdateDelayMillis(1000) + .build(); + + + LocationCallback locationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult != null) { + if (locationResult == null) { + return; + } + //Showing the latitude, longitude and accuracy on the home screen. + for (Location location : locationResult.getLocations()) { + latitude = location.getLatitude(); + longitude = location.getLongitude(); + // Log.e("latitude_inside",location.getLatitude() + "," +location.getLongitude()); + } + + if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(GeoTagActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1); + ActivityCompat.requestPermissions(GeoTagActivity.this, new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION}, 2); + } + + mMap.setMyLocationEnabled(true); + + if(markerflag) + { + // Add a marker of latest location and move the camera + LatLng latLng = new LatLng(latitude, longitude); + mMap.addMarker(new MarkerOptions().position(latLng)); + mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); + mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); + } + } + } + }; + + fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); + + } + + @Override + protected void onStop() { + super.onStop();// ATTENTION: This was auto-generated to implement the App Indexing API. +// See https://g.co/AppIndexing/AndroidStudio for more information. + + + // AppIndex.AppIndexApi.end(client, getIndexApiAction()); + if (mGoogleApiClient.isConnected()) { + mGoogleApiClient.disconnect(); + } + + // client.disconnect(); + + } + + @Override + protected void onPause() { + super.onPause(); + //stopLocationUpdates(); + } + + /*public String getCurrentTimeNotUsed() { + + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + *//* String intime = m_cal.get(Calendar.HOUR_OF_DAY) + ":" + + m_cal.get(Calendar.MINUTE) + ":" + m_cal.get(Calendar.SECOND);*//* + + return cdate; + + }*/ + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + + return new String(chars); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KUWAIT)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_BAHRAIN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_OMAN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_QATAR)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LEBANON)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LIBIYA)) { + cdate = arabicToenglish(cdate); + } + return cdate; + } + + protected void startCameraActivity() { + try { + /*Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + Uri outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file); + + Intent intent = new Intent( + MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + + startActivityForResult(intent, 0);*/ + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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) { + //Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + //Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + } + + + 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: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + + fabcarmabtn.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.camera_green)); + + //fabcarmabtn.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#4DB6AC"))); + + img_str = _pathforcheck; + _pathforcheck = ""; + markerflag=false; + + } + } + + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + /** + * ATTENTION: This was auto-generated to implement the App Indexing API. + * See https://g.co/AppIndexing/AndroidStudio for more information. + * @return + */ + + + public class GeoTagUpload extends AsyncTask { + + private Context context; + + GeoTagUpload(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getResources().getString(R.string.dialog_title)); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected String doInBackground(Void... params) { + try { + + GSKOrangeDB db = new GSKOrangeDB(GeoTagActivity.this); + db.open(); + + geotaglist = db.getinsertGeotaggingData("Y"); + + // uploading Geotag + + SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + + String geo_xml = ""; + ArrayList geotemplist = new ArrayList(); + if (geotaglist.size() > 0) { + + for (int i = 0; i < geotaglist.size(); i++) { + + /* runOnUiThread(new Runnable() { + public void run() { + // TODO Auto-generated method stub + k = k + factor; + pb.setProgress(k); + percentage.setText(k + "%"); + message.setText(getResources().getString(R.string.geotagdata)); + } + });*/ + + String onXML = "[GeoTag_DATA][STORE_ID]" + + geotaglist.get(i).getStoreid() + + "[/STORE_ID]" + + "[LATTITUDE]" + + geotaglist.get(i).getLatitude() + + "[/LATTITUDE]" + + "[LONGITUDE]" + + geotaglist.get(i).getLongitude() + + "[/LONGITUDE]" + + "[FRONT_IMAGE]" + + geotaglist.get(i).getUrl1() + + "[/FRONT_IMAGE]" + + "[CREATED_BY]" + username + + "[/CREATED_BY][/GeoTag_DATA]"; + + geo_xml = geo_xml + onXML; + + // geotemplist.add(geotaglist.get(i).getStoreid()); + + } + + geo_xml = "[DATA]" + geo_xml + + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("MID", "0"); + request.addProperty("KEYS", "GEOTAG_NEW_DATA"); + request.addProperty("USERNAME", username); + + request.addProperty("XMLDATA", geo_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + androidHttpTransport.call( + CommonString.SOAP_ACTION_UPLOAD_ASSET_XMLDATA, envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_SUCCESS)) { + String statusD = "D"; + + for (int i = 0; i < geotaglist.size(); i++) { + db.updateGeoTagData(geotaglist.get(i).storeid, statusD); + + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + db.updateDataStatus(geotaglist.get(i), statusD, CommonString.KEY_ADHOC_JOURNEY_PLAN); + } + else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + db.updateDataStatus(geotaglist.get(i), statusD, CommonString.KEY_JOURNEY_PLAN_ADDITIONAL); + } + else { + db.updateDataStatus(geotaglist.get(i), statusD, CommonString.KEY_JOURNEY_PLAN); + } + } + + } else { + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + + // for failure + FailureXMLHandler failureXMLHandler = new FailureXMLHandler(); + xmlR.setContentHandler(failureXMLHandler); + + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(result + .toString())); + xmlR.parse(is); + + failureGetterSetter = failureXMLHandler + .getFailureGetterSetter(); + + if (failureGetterSetter.getStatus().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA + "," + + failureGetterSetter.getErrorMsg(); + + } else { + + } + } + } + + + return CommonString.KEY_SUCCESS; + + } catch (SocketException ex) { + ex.printStackTrace(); + if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2")){ + Intent intent = new Intent( + GeoTagActivity.this, + VisitTypeStatusActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + else{ + Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + GeoTagActivity.this.finish(); + } catch (Exception e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2")){ + Intent intent = new Intent( + GeoTagActivity.this, + VisitTypeStatusActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + else{ + Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + /* Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid);*/ + + // startActivity(intent); + + GeoTagActivity.this.finish(); + } + + + return ""; + + } + + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.dismiss(); + + if (result.equals(CommonString.KEY_SUCCESS)) { + + + new GeoTagImageUpload(GeoTagActivity.this).execute(); + + /* Intent intent = new Intent( + GeoTagActivity.this, + GeoTagStoreList.class); + + startActivity(intent); + + GeoTagActivity.this.finish();*/ + + } + else if(!result.equals(CommonString.KEY_SUCCESS)) + { + + AlertMessage message = new AlertMessage( + GeoTagActivity.this, AlertMessage.MESSAGE_DATA_NOT + + result, getResources().getString(R.string.failure), null); + message.showMessage(); + + + } + + else if (!result.equals("")) { + + + } + + } + + } + + public class GeoTagImageUpload extends AsyncTask { + + private Context context; + + GeoTagImageUpload(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getResources().getString(R.string.dialog_title)); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + + @Override + protected String doInBackground(Void... params) { + try { + + GSKOrangeDB db = new GSKOrangeDB(GeoTagActivity.this); + db.open(); + + + geotaglistImage = db.getinsertGeotaggingData("D"); + + // Uploading Geotag + + SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + + if (geotaglistImage.size() > 0) { + + for (int i = 0; i < geotaglistImage.size(); i++) { + + runOnUiThread(new Runnable() { + + public void run() { + // TODO Auto-generated method stub + k = k + factor; + pb.setProgress(k); + percentage.setText(k + "%"); + message.setText(getResources().getString(R.string.uploadimge)); + } + }); + + if (geotaglistImage.get(i).getUrl1() != null + && !geotaglistImage.get(i).getUrl1() + .equalsIgnoreCase("")) { + + if (new File(CommonString.getImagesFolder(context) + + geotaglistImage.get(i).getUrl1()).exists()) { + result = UploadGeoImage(geotaglistImage.get(i).getUrl1(), "GeotagImages"); + + + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return "GeotagImages"; + } + if (result.toString().equalsIgnoreCase(CommonString.KEY_FALSE)) { + + return CommonString.METHOD_Get_DR_STORE_IMAGES_GEO; + } else if (result + .equalsIgnoreCase(CommonString.KEY_FAILURE)) { + + return CommonString.METHOD_Get_DR_STORE_IMAGES_GEO + "," + errormsg; + } + } + } + + } + + + } + + + return CommonString.KEY_SUCCESS; + + } + catch (SocketException ex) { + + ex.printStackTrace(); + + Intent intent = new Intent( + GeoTagActivity.this, + GeoTagStoreList.class); + + startActivity(intent); + + GeoTagActivity.this.finish(); + + } + + catch (Exception e) { + e.printStackTrace(); + + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2")){ + Intent intent = new Intent( + GeoTagActivity.this, + VisitTypeStatusActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + else{ + Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + /* Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + + startActivity(intent);*/ + + GeoTagActivity.this.finish(); + + } + + return ""; + + } + + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.dismiss(); + + if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + + + //usk + //String Statustag = "U"; + String Statustag = "Y"; + db.open(); + + for (int i = 0; i < geotaglistImage.size(); i++) { + + + db.updateGeoTagData(geotaglistImage.get(i).getStoreid(), Statustag); + + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + db.updateDataStatus(geotaglistImage.get(i), Statustag, CommonString.KEY_ADHOC_JOURNEY_PLAN); + } + else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + db.updateDataStatus(geotaglistImage.get(i), Statustag, CommonString.KEY_JOURNEY_PLAN_ADDITIONAL); + } + else{ + db.updateDataStatus(geotaglistImage.get(i), Statustag, CommonString.KEY_JOURNEY_PLAN); + } + + + db.deleteGeoTagData(geotaglistImage.get(i).getStoreid()); + + } + + + + /* AlertMessage message = new AlertMessage( + GeoTagActivity.this, getResources().getString(R.string.uploadeddata) + + result, getResources().getString(R.string.success), null); + message.showMessage();*/ + + if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2")){ + Intent intent = new Intent( + GeoTagActivity.this, + VisitTypeStatusActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + else{ + Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + /* Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + + startActivity(intent);*/ + + GeoTagActivity.this.finish(); + + Toast.makeText(context,getResources().getString(R.string.success),Toast.LENGTH_LONG).show(); + + } + else if(!result.equals(CommonString.KEY_SUCCESS)) + { + + /* AlertMessage message = new AlertMessage( + GeoTagActivity.this, AlertMessage.MESSAGE_DATA_NOT + + result, getResources().getString(R.string.failure), null); + message.showMessage();*/ + Toast.makeText(context,getResources().getString(R.string.failure),Toast.LENGTH_LONG).show(); + + if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2")){ + Intent intent = new Intent( + GeoTagActivity.this, + VisitTypeStatusActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + else{ + Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + startActivity(intent); + } + /* Intent intent = new Intent( + GeoTagActivity.this, + StoreimageActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, storeid); + + startActivity(intent);*/ + + GeoTagActivity.this.finish(); + } + + + + else if (!result.equals("")) { + + } + + } + + } + + public String UploadGeoImage(String path, String folder) throws Exception { + + errormsg = ""; + BitmapFactory.Options o = new BitmapFactory.Options(); + o.inJustDecodeBounds = true; + BitmapFactory.decodeFile(CommonString.getImagesFolder(context) + path, o); + + // The new size we want to scale to + final int REQUIRED_SIZE = 1024; + + // Find the correct scale value. It should be the power of 2. + int width_tmp = o.outWidth, height_tmp = o.outHeight; + int scale = 1; + + while (true) { + if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE) + break; + width_tmp /= 2; + height_tmp /= 2; + scale *= 2; + } + + // Decode with inSampleSize + BitmapFactory.Options o2 = new BitmapFactory.Options(); + o2.inSampleSize = scale; + Bitmap bitmap = BitmapFactory.decodeFile(CommonString.getImagesFolder(context) + path, o2); + + ByteArrayOutputStream bao = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bao); + byte[] ba = bao.toByteArray(); + String ba1 = Base64.encodeBytes(ba); + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_IMAGE); + + request.addProperty("img", ba1); + request.addProperty("name", path); + request.addProperty("FolderName", folder); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + + androidHttpTransport.call(CommonString.SOAP_ACTION_UPLOAD_IMAGE, envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + new File(CommonString.getImagesFolder(context) + path).delete(); + + + + /*SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + // for failure + FailureXMLHandler failureXMLHandler = new FailureXMLHandler(); + xmlR.setContentHandler(failureXMLHandler); + + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(result.toString())); + xmlR.parse(is); + + failureGetterSetter = failureXMLHandler + .getFailureGetterSetter(); + + if (failureGetterSetter.getStatus().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + errormsg = failureGetterSetter.getErrorMsg(); + return CommonString.KEY_FAILURE; + }*/ + + } else if (result.toString().equalsIgnoreCase(CommonString.KEY_FALSE)) { + return CommonString.KEY_FALSE; + } else { + return CommonString.KEY_FAILURE; + } + + return result.toString(); + } + + + public Action getIndexApiAction() { + Thing object = new Thing.Builder() + .setName("GeoTag Page") // TODO: Define a title for the content shown. + // TODO: Make sure this auto-generated URL is correct. + .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]")) + .build(); + return new Action.Builder(Action.TYPE_VIEW) + .setObject(object) + .setActionStatus(Action.STATUS_TYPE_COMPLETED) + .build(); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagStoreList.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagStoreList.java new file mode 100644 index 0000000..1039172 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagStoreList.java @@ -0,0 +1,266 @@ +package cpm.com.gskmtorange.GeoTag; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.download.DownloadActivity; + +/** + * Created by ashishc on 27-12-2016. + */ + +public class GeoTagStoreList extends AppCompatActivity implements View.OnClickListener { + + private SharedPreferences preferences; + ArrayList storelist = new ArrayList(); + String date, visit_status; + GSKOrangeDB db; + // ListView list; + ValueAdapter adapter; + RecyclerView recyclerView; + private SharedPreferences.Editor editor = null; + LinearLayout parent_linear, nodata_linear; + LinearLayout linearlay; + FloatingActionButton fab; + Toolbar toolbar; + + private Context context; + protected void onCreate(Bundle savedInstanceState) { + // TODO Auto-generated method stub + super.onCreate(savedInstanceState); + setContentView(R.layout.geotagstorelistfab); + //list = (ListView) findViewById(R.id.list_id); + + recyclerView = (RecyclerView) findViewById(R.id.drawer_layout_recycle); + linearlay = (LinearLayout) findViewById(R.id.no_data_lay); + // nodata_linear = (LinearLayout) findViewById(R.id.no_data_lay); + //parent_linear = (LinearLayout) findViewById(R.id.parent_linear); + fab = (FloatingActionButton) findViewById(R.id.fab); + context = this; + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + date = preferences.getString(CommonString.KEY_DATE, null); + visit_status = preferences.getString(CommonString.KEY_STOREVISITED_STATUS, ""); + + db = new GSKOrangeDB(GeoTagStoreList.this); + db.open(); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent in = new Intent(context, DownloadActivity.class); + startActivity(in); + + finish(); + } + }); + + storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN); + + if (storelist.size() > 0) { + adapter = new ValueAdapter(context, storelist); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + } else { + recyclerView.setVisibility(View.INVISIBLE); + linearlay.setVisibility(View.VISIBLE); + fab.setVisibility(View.VISIBLE); + } + } + + @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) { + + finish(); + + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + // TODO Auto-generated method stub + /* Intent intent = new Intent(GeoTagStoreList.this, MainActivity.class); + + startActivity(intent);*/ + GeoTagStoreList.this.finish(); + } + + + public class ValueAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + List data = Collections.emptyList(); + + public ValueAdapter(Context context, List data) { + + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @Override + public ValueAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.geotagstorelist, parent, false); + + MyViewHolder holder = new MyViewHolder(view); + return holder; + } + + @Override + public void onBindViewHolder(final ValueAdapter.MyViewHolder viewHolder, final int position) { + final StoreBean current = data.get(position); + //viewHolder.txt.setText(current.txt); + + viewHolder.txt.setText(current.getSTORE_NAME()); + viewHolder.txt_storeAddress.setText(current.getADDRESS()); + + if (current.getGEO_TAG().equalsIgnoreCase("Y")) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.geopin); + } else if (current.getGEO_TAG().equalsIgnoreCase("D")) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation); + } else if (current.getGEO_TAG().equalsIgnoreCase("U")) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.tick); + } else if (current.getGEO_TAG().equalsIgnoreCase("P")) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation); + } else { + viewHolder.imageview.setVisibility(View.INVISIBLE); + } + + viewHolder.relativelayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (current.getGEO_TAG().equalsIgnoreCase("Y")) { + Snackbar.make(v, R.string.title_geo_tag_activity_geo_already_done, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else if (current.getGEO_TAG().equalsIgnoreCase("D")) { + Snackbar.make(v, R.string.title_geo_tag_activity_geo_data, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + } else if (current.getGEO_TAG().equalsIgnoreCase("U")) { + Snackbar.make(v, R.string.title_geo_tag_activity_upload_data, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + } else if (current.getGEO_TAG().equalsIgnoreCase("P")) { + Snackbar.make(v, R.string.title_geo_tag_activity_geo_data, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + } else { + // PUT IN PREFERENCES + editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME()); + editor.putString(CommonString.KEY_VISIT_DATE, current.getVISIT_DATE()); + editor.commit(); + + Intent in = new Intent(GeoTagStoreList.this, GeoTagActivity.class); + startActivity(in); + finish(); + } + } + }); + } + + @Override + public int getItemCount() { + return data.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + TextView txt, txt_storeAddress; + ImageView icon; + RelativeLayout relativelayout; + ImageView imageview; + + public MyViewHolder(View itemView) { + super(itemView); + txt = (TextView) itemView.findViewById(R.id.geolistviewxml_storename); + relativelayout = (RelativeLayout) itemView.findViewById(R.id.relativelayout); + imageview = (ImageView) itemView.findViewById(R.id.imageView1); + txt_storeAddress = (TextView) itemView.findViewById(R.id.txt_storeAddress); + } + } + } + + /*public List getdata() { + List data = new ArrayList<>(); + + storelist = db.getStoreData(date); + + StoreBean storelistdata = new StoreBean(); + + for (int i = 0; i < storelist.size(); i++) { + storelistdata.setSTORE_NAME(storelist.get(0).getSTORE_NAME()); + + data.add(storelistdata); + + } + + return data; + }*/ + + @Override + public void onClick(View arg0) { + // TODO Auto-generated method stub + + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getString(R.string.title_activity_store_geotag)); + } + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/AdditionalDialogGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/AdditionalDialogGetterSetter.java new file mode 100644 index 0000000..377d85e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/AdditionalDialogGetterSetter.java @@ -0,0 +1,254 @@ +package cpm.com.gskmtorange.GetterSetter; + +public class AdditionalDialogGetterSetter { + public String Display_id,display,brand_id,brand, trg_quantity, image1, image2, category_id, + image3, BEFORE_QTY, camera1, camera2, camera3, AFTER_QTY, store_id, stock_count, question_id, question, answer, type, + KEY_ID, unique_id,image_url, sku_id,quantity, process_id, sku_name, stock_flag; + + public String getCOMMON_ID() { + return COMMON_ID; + } + + public void setCOMMON_ID(String COMMON_ID) { + this.COMMON_ID = COMMON_ID; + } + + String COMMON_ID; + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + String categoryId; + + public String getStock_flag() { + return stock_flag; + } + + public void setStock_flag(String stock_flag) { + this.stock_flag = stock_flag; + } + + public String getSku_name() { + return sku_name; + } + + public void setSku_name(String sku_name) { + this.sku_name = sku_name; + } + + public String getProcess_id() { + return process_id; + } + + public void setProcess_id(String process_id) { + this.process_id = process_id; + } + + public String getSku_id() { + return sku_id; + } + + public void setSku_id(String sku_id) { + this.sku_id = sku_id; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } + + public String getImage_url() { + return image_url; + } + + public void setImage_url(String image_url) { + this.image_url = image_url; + } + + public String getUnique_id() { + return unique_id; + } + + public void setUnique_id(String unique_id) { + this.unique_id = unique_id; + } + + public String getKEY_ID() { + return KEY_ID; + } + + public void setKEY_ID(String kEY_ID) { + KEY_ID = kEY_ID; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getQuestion_id() { + return question_id; + } + + public void setQuestion_id(String question_id) { + this.question_id = question_id; + } + + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + + public String getStock_count() { + return stock_count; + } + + public void setStock_count(String stock_count) { + this.stock_count = stock_count; + } + + public String getStore_id() { + return store_id; + } + + public void setStore_id(String store_id) { + this.store_id = store_id; + } + + public String getCamera1() { + return camera1; + } + + public void setCamera1(String camera1) { + this.camera1 = camera1; + } + + public String getCamera2() { + return camera2; + } + + public void setCamera2(String camera2) { + this.camera2 = camera2; + } + + public String getCamera3() { + return camera3; + } + + public void setCamera3(String camera3) { + this.camera3 = camera3; + } + + public String getDisplay_id() { + return Display_id; + } + + public void setDisplay_id(String display_id) { + Display_id = display_id; + } + + public String getDisplay() { + return display; + } + + public void setDisplay(String display) { + this.display = display; + } + + 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 getTrg_quantity() { + return trg_quantity; + } + + public void setTrg_quantity(String trg_quantity) { + this.trg_quantity = trg_quantity; + } + + public String getImage1() { + return image1; + } + + public void setImage1(String image1) { + this.image1 = image1; + } + + public String getImage2() { + return image2; + } + + public void setImage2(String image2) { + this.image2 = image2; + } + + public String getImage3() { + return image3; + } + + public void setImage3(String image3) { + this.image3 = image3; + } + + public String getBEFORE_QTY() { + return BEFORE_QTY; + } + + public void setBEFORE_QTY(String bEFORE_QTY) { + BEFORE_QTY = bEFORE_QTY; + } + + public String getAFTER_QTY() { + return AFTER_QTY; + } + + public void setAFTER_QTY(String aFTER_QTY) { + AFTER_QTY = aFTER_QTY; + } + + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/AddittionalGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/AddittionalGetterSetter.java new file mode 100644 index 0000000..22b8728 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/AddittionalGetterSetter.java @@ -0,0 +1,122 @@ +package cpm.com.gskmtorange.GetterSetter; + +import java.util.ArrayList; + +/** + * Created by ashishc on 09-01-2017. + */ + +public class AddittionalGetterSetter { + + + public String getBrand() { + return Brand; + } + + public void setBrand(String brand) { + Brand = brand; + } + + public String getBrand_id() { + return Brand_id; + } + + public void setBrand_id(String brand_id) { + Brand_id = brand_id; + } + + public String getSku() { + return Sku; + } + + public void setSku(String sku) { + Sku = sku; + } + + public String getSku_id() { + return Sku_id; + } + + public void setSku_id(String sku_id) { + Sku_id = sku_id; + } + + public String getStore_id() { + return Store_id; + } + + public void setStore_id(String store_id) { + Store_id = store_id; + } + + public String getImage() { + return Image; + } + + public void setImage(String image) { + Image = image; + } + + String Brand,Brand_id,Sku,Sku_id,Store_id,Image=""; + + + String Image2=""; + + public String getImage3() { + return Image3; + } + + public void setImage3(String image3) { + Image3 = image3; + } + + public String getImage2() { + return Image2; + } + + public void setImage2(String image2) { + Image2 = image2; + } + + String Image3=""; + + public String getKey_id() { + return key_id; + } + + public void setKey_id(String key_id) { + this.key_id = key_id; + } + + String key_id; + + public String getBtn_toogle() { + return btn_toogle; + } + + public void setBtn_toogle(String btn_toogle) { + this.btn_toogle = btn_toogle; + } + + String btn_toogle; + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + String categoryId; + + ArrayList skuDialogList = new ArrayList<>(); + + public ArrayList getSkuDialogList() { + return skuDialogList; + } + + public void setSkuDialogList(ArrayList skuDialogList) { + this.skuDialogList = skuDialogList; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/BrandAvabilityGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/BrandAvabilityGetterSetter.java new file mode 100644 index 0000000..7a8bd25 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/BrandAvabilityGetterSetter.java @@ -0,0 +1,84 @@ +package cpm.com.gskmtorange.GetterSetter; + +import java.util.ArrayList; + +/** + * Created by ashishc on 07-02-2017. + */ + +public class BrandAvabilityGetterSetter { + + String BRAND_ID; + String BRAND; + String keyAccount_id; + String class_id; + String categoryId; + + public String getStore_id() { + return store_id; + } + + public void setStore_id(String store_id) { + this.store_id = store_id; + } + + String store_id; + + public String getStoreType_id() { + return storeType_id; + } + + public void setStoreType_id(String storeType_id) { + this.storeType_id = storeType_id; + } + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + public String getClass_id() { + return class_id; + } + + public void setClass_id(String class_id) { + this.class_id = class_id; + } + + public String getKeyAccount_id() { + return keyAccount_id; + } + + public void setKeyAccount_id(String keyAccount_id) { + this.keyAccount_id = keyAccount_id; + } + + String storeType_id; + + + public String getBRAND() { + return BRAND; + } + + public void setBRAND(String BRAND) { + this.BRAND = BRAND; + } + + public String getBRAND_ID() { + return BRAND_ID; + } + + public void setBRAND_ID(String BRAND_ID) { + this.BRAND_ID = BRAND_ID; + } + + + + + + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CategoryPictureGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CategoryPictureGetterSetter.java new file mode 100644 index 0000000..cb9e836 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CategoryPictureGetterSetter.java @@ -0,0 +1,182 @@ +package cpm.com.gskmtorange.GetterSetter; + +import java.util.ArrayList; + +import cpm.com.gskmtorange.adapter.data.ImageUri; + +/** + * Created by ashishc on 20-02-2017. + */ + +public class CategoryPictureGetterSetter { + String subCatCode = "", CategoryImage1 = "", CategoryImage2 = "", CategoryImage3 = "", CategoryImage4 = "", image_allow = "0",categoryId,COMMON_ID,KEY_ID; + + public String getSubCatCode() { + return subCatCode; + } + + public void setSubCatCode(String subCatCode) { + this.subCatCode = subCatCode; + } + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + public String getCOMMON_ID() { + return COMMON_ID; + } + + public void setCOMMON_ID(String COMMON_ID) { + this.COMMON_ID = COMMON_ID; + } + + public String getKEY_ID() { + return KEY_ID; + } + + public void setKEY_ID(String KEY_ID) { + this.KEY_ID = KEY_ID; + } + + public String getCamera_allow() { + return camera_allow; + } + + public void setCamera_allow(String camera_allow) { + this.camera_allow = camera_allow; + } + + public String getClass_id() { + return class_id; + } + + public void setClass_id(String class_id) { + this.class_id = class_id; + } + + public String getStore_type_id() { + return store_type_id; + } + + public void setStore_type_id(String store_type_id) { + this.store_type_id = store_type_id; + } + + public String getKey_account_id() { + return key_account_id; + } + + public void setKey_account_id(String key_account_id) { + this.key_account_id = key_account_id; + } + + String camera_allow, class_id, store_type_id, key_account_id; + + + public String getStore_ID() { + return Store_ID; + } + + public void setStore_ID(String store_ID) { + Store_ID = store_ID; + } + + String Store_ID; + + String SubCategoryCamera1; + + String SUB_CATEGORY_ID; + + public String getSUB_CATEGORY() { + return SUB_CATEGORY; + } + + public void setSUB_CATEGORY(String SUB_CATEGORY) { + this.SUB_CATEGORY = SUB_CATEGORY; + } + + 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; + } + + String SUB_CATEGORY; + + + public String getSubCategoryCamera1() { + return SubCategoryCamera1; + } + + public void setSubCategoryCamera1(String subCategoryCamera1) { + SubCategoryCamera1 = subCategoryCamera1; + } + + public String getSubCategoryCamera2() { + return SubCategoryCamera2; + } + + public void setSubCategoryCamera2(String subCategoryCamera2) { + SubCategoryCamera2 = subCategoryCamera2; + } + + String SubCategoryCamera2; + + public String getCategoryImage2() { + return CategoryImage2; + } + + public void setCategoryImage2(String categoryImage2) { + CategoryImage2 = categoryImage2; + } + + public String getCategoryImage1() { + return CategoryImage1; + } + + public void setCategoryImage1(String categoryImage1) { + CategoryImage1 = categoryImage1; + } + + public String getCategoryImage3() { + return CategoryImage3; + } + + public void setCategoryImage3(String categoryImage3) { + CategoryImage3 = categoryImage3; + } + + public String getCategoryImage4() { + return CategoryImage4; + } + + public void setCategoryImage4(String categoryImage4) { + CategoryImage4 = categoryImage4; + } + + + public String getImage_allow() { + return image_allow; + } + + public void setImage_allow(String image_allow) { + this.image_allow = image_allow; + } + + public ArrayList getImageUris() { + return imageUris; + } + + public void setImageUris(ArrayList imageUris) { + this.imageUris = imageUris; + } + + ArrayList imageUris = new ArrayList<>(); +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/ChatMessageGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/ChatMessageGetterSetter.java new file mode 100644 index 0000000..c0c5c2d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/ChatMessageGetterSetter.java @@ -0,0 +1,110 @@ +package cpm.com.gskmtorange.GetterSetter; + +public class ChatMessageGetterSetter { + + String REC_ID, CHAT_ID, MESSAGE, MESSAGEDATE , SENDERID, SENDER, RECEIVERID, RECEIVER, COMMENTDATE, COMMENT, STOREID, ORDERID, SENDER_USERID; + + public String getREC_ID() { + return REC_ID; + } + + public void setREC_ID(String REC_ID) { + this.REC_ID = REC_ID; + } + + public String getCHAT_ID() { + return CHAT_ID; + } + + public void setCHAT_ID(String CHAT_ID) { + this.CHAT_ID = CHAT_ID; + } + + public String getMESSAGE() { + return MESSAGE; + } + + public void setMESSAGE(String MESSAGE) { + this.MESSAGE = MESSAGE; + } + + public String getMESSAGEDATE() { + return MESSAGEDATE; + } + + public void setMESSAGEDATE(String MESSAGEDATE) { + this.MESSAGEDATE = MESSAGEDATE; + } + + public String getSENDERID() { + return SENDERID; + } + + public void setSENDERID(String SENDERID) { + this.SENDERID = SENDERID; + } + + public String getSENDER() { + return SENDER; + } + + public void setSENDER(String SENDER) { + this.SENDER = SENDER; + } + + public String getRECEIVERID() { + return RECEIVERID; + } + + public void setRECEIVERID(String RECEIVERID) { + this.RECEIVERID = RECEIVERID; + } + + public String getRECEIVER() { + return RECEIVER; + } + + public void setRECEIVER(String RECEIVER) { + this.RECEIVER = RECEIVER; + } + + public String getCOMMENTDATE() { + return COMMENTDATE; + } + + public void setCOMMENTDATE(String COMMENTDATE) { + this.COMMENTDATE = COMMENTDATE; + } + + public String getCOMMENT() { + return COMMENT; + } + + public void setCOMMENT(String COMMENT) { + this.COMMENT = COMMENT; + } + + public String getSTOREID() { + return STOREID; + } + + public void setSTOREID(String STOREID) { + this.STOREID = STOREID; + } + + public String getORDERID() { + return ORDERID; + } + + public void setORDERID(String ORDERID) { + this.ORDERID = ORDERID; + } + + public String getSENDER_USERID() { + return SENDER_USERID; + } + + public void setSENDER_USERID(String SENDER_USERID) { + this.SENDER_USERID = SENDER_USERID; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CoachingVisitGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CoachingVisitGetterSetter.java new file mode 100644 index 0000000..6ef3f9b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CoachingVisitGetterSetter.java @@ -0,0 +1,31 @@ +package cpm.com.gskmtorange.GetterSetter; + +public class CoachingVisitGetterSetter { + + String emp_id, img_path = ""; + boolean exists; + + public String getEmp_id() { + return emp_id; + } + + public void setEmp_id(String emp_id) { + this.emp_id = emp_id; + } + + public String getImg_path() { + return img_path; + } + + public void setImg_path(String img_path) { + this.img_path = img_path; + } + + public boolean isExists() { + return exists; + } + + public void setExists(boolean exists) { + this.exists = exists; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CoverageBean.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CoverageBean.java new file mode 100644 index 0000000..9ef30b4 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/CoverageBean.java @@ -0,0 +1,280 @@ +package cpm.com.gskmtorange.GetterSetter; + +public class CoverageBean { + protected int MID; + protected String process_id; + + public String flag_from; + + public String getGEO_TAG() { + return GEO_TAG; + } + + public void setGEO_TAG(String GEO_TAG) { + this.GEO_TAG = GEO_TAG; + } + + protected String GEO_TAG; + + public String getProcess_id() { + return process_id; + } + + public void setProcess_id(String process_id) { + this.process_id = process_id; + } + + protected String storeId; + protected String storename; + + public String getStorename() { + return storename; + } + + public void setStorename(String storename) { + this.storename = storename; + } + + protected String Remark; + + public String getRemark() { + return Remark; + } + + public void setRemark(String remark) { + Remark = remark; + } + + protected String userId; + protected String app_version; + protected String image_allow; + + public String getImage_allow() { + return image_allow; + } + + public void setImage_allow(String image_allow) { + this.image_allow = image_allow; + } + + public String getApp_version() { + return app_version; + } + + public void setApp_version(String app_version) { + this.app_version = app_version; + } + + protected String inTime; + + protected String outTime; + + protected String visitDate; + + protected String keycontactId; + + protected String isdDeploy; + + protected String uploadStatus; + + private String latitude; + + private String longitude; + + private String reasonid = ""; + + private String sub_reasonId = ""; + + public String getSub_reasonId() { + return sub_reasonId; + } + + public void setSub_reasonId(String sub_reasonId) { + this.sub_reasonId = sub_reasonId; + } + + private String reason = ""; + + private String status = "N"; + + private String image = ""; + + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public int getMID() { + return MID; + } + + public void setMID(int mID) { + MID = mID; + } + + public String getStoreId() { + return storeId; + } + + public void setStoreId(String storeId) { + this.storeId = storeId; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getInTime() { + return inTime; + } + + public void setInTime(String inTime) { + this.inTime = inTime; + } + + public String getOutTime() { + return outTime; + } + + public void setOutTime(String outTime) { + this.outTime = outTime; + } + + public String getVisitDate() { + return visitDate; + } + + public void setVisitDate(String visitDate) { + this.visitDate = visitDate; + } + + public String getKeycontactId() { + return keycontactId; + } + + public void setKeycontactId(String keycontactId) { + this.keycontactId = keycontactId; + } + + public String getIsdDeploy() { + return isdDeploy; + } + + public void setIsdDeploy(String isdDeploy) { + this.isdDeploy = isdDeploy; + } + + public String getUploadStatus() { + return uploadStatus; + } + + public void setUploadStatus(String uploadStatus) { + this.uploadStatus = uploadStatus; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getReasonid() { + return reasonid; + } + + public void setReasonid(String reasonid) { + this.reasonid = reasonid; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + String CheckOut_Image = ""; + + + public String getCheckOut_Image() { + return CheckOut_Image; + } + + public void setCheckOut_Image(String checkOut_Image) { + CheckOut_Image = checkOut_Image; + } + + public String getFlag_from() { + return flag_from; + } + + public void setFlag_from(String flag_from) { + this.flag_from = flag_from; + } + + String keyAccountId; + String classId; + + public String getKeyAccountId() { + return keyAccountId; + } + + public void setKeyAccountId(String keyAccountId) { + this.keyAccountId = keyAccountId; + } + + public String getClassId() { + return classId; + } + + public void setClassId(String classId) { + this.classId = classId; + } + + public String getStoreTypeId() { + return storeTypeId; + } + + public void setStoreTypeId(String storeTypeId) { + this.storeTypeId = storeTypeId; + } + + String storeTypeId; + + public String getMappingStk() { + return mappingStk; + } + + public void setMappingStk(String mappingStk) { + this.mappingStk = mappingStk; + } + + String mappingStk=""; +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/GeotaggingBeans.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/GeotaggingBeans.java new file mode 100644 index 0000000..d092510 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/GeotaggingBeans.java @@ -0,0 +1,78 @@ +package cpm.com.gskmtorange.GetterSetter; + +public class GeotaggingBeans { + + + + public String storeid; + public String url1; + public String url2; + public String status; + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } + + public String url3; + public double Latitude ; + public double Longitude; + + public String getStoreid() { + return storeid; + } + public void setStoreid(String storeid) { + this.storeid = storeid; + } + public double getLatitude() { + return Latitude; + } + public void setLatitude(double d) { + Latitude = d; + } + public double getLongitude() { + return Longitude; + } + public void setLongitude(double d) { + Longitude = d; + } + + + public void setUrl1(String url1) + { + + this.url1=url1; + } + + public String getUrl1() + { + + return url1; + } + + public void setUrl2(String url2) + { + + this.url2=url2; + } + + public String getUrl2() + { + + return url2; + } + + public void setUrl3(String url3) + { + + this.url3=url3; + } + + public String getUrl3() + { + + return url3; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/OrderReceivedStatus.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/OrderReceivedStatus.java new file mode 100644 index 0000000..14542ea --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/OrderReceivedStatus.java @@ -0,0 +1,102 @@ +package cpm.com.gskmtorange.GetterSetter; + +import android.widget.TextView; + +import java.io.Serializable; + +public class OrderReceivedStatus implements Serializable { + //TextView sys_gen_poTV,storepoTV,podateTV,lineItemTV,statusTV; + String sys_gen_po=""; + String storepo=""; + String podate=""; + String lineItem=""; + String status=""; + int SKU_ID; + int ORDERQTY; + int CATEGORY_ID; + int POID; + + public int getPOID() { + return POID; + } + + public void setPOID(int POID) { + this.POID = POID; + } + + + public int getStoreid() { + return Storeid; + } + + public void setStoreid(int storeid) { + Storeid = storeid; + } + + int Storeid; + + public int getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(int SKU_ID) { + this.SKU_ID = SKU_ID; + } + + public int getORDERQTY() { + return ORDERQTY; + } + + public void setORDERQTY(int ORDERQTY) { + this.ORDERQTY = ORDERQTY; + } + + public int getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(int CATEGORY_ID) { + this.CATEGORY_ID = CATEGORY_ID; + } + + + public String getSys_gen_po() { + return sys_gen_po; + } + + public void setSys_gen_po(String sys_gen_po) { + this.sys_gen_po = sys_gen_po; + } + + public String getStorepo() { + return storepo; + } + + public void setStorepo(String storepo) { + this.storepo = storepo; + } + + public String getPodate() { + return podate; + } + + public void setPodate(String podate) { + this.podate = podate; + } + + public String getLineItem() { + return lineItem; + } + + public void setLineItem(String lineItem) { + this.lineItem = lineItem; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/StoreBean.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/StoreBean.java new file mode 100644 index 0000000..baaa07f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GetterSetter/StoreBean.java @@ -0,0 +1,194 @@ +package cpm.com.gskmtorange.GetterSetter; + +import java.io.Serializable; + +/** + * Created by ashishc on 29-12-2016. + */ + +public class StoreBean implements Serializable{ + + String STORE_ID; + String EMP_ID; + String KEYACCOUNT; + String STORE_NAME; + String ADDRESS; + String CITY; + String STORETYPE; + String CLASSIFICATION; + String KEYACCOUNT_ID; + String STORETYPE_ID; + String CLASS_ID; + String VISIT_DATE; + String CAMERA_ALLOW; + String UPLOAD_STATUS; + String LATITUDE; + String LONGITUDE; + String POG_TYPE_ID; + + public String getFACING_HIDE() { + return FACING_HIDE; + } + + public void setFACING_HIDE(String FACING_HIDE) { + this.FACING_HIDE = FACING_HIDE; + } + + String FACING_HIDE; + + public String getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID = STORE_ID; + } + + public String getEMP_ID() { + return EMP_ID; + } + + public void setEMP_ID(String EMP_ID) { + this.EMP_ID = EMP_ID; + } + + public String getKEYACCOUNT() { + return KEYACCOUNT; + } + + public void setKEYACCOUNT(String KEYACCOUNT) { + this.KEYACCOUNT = KEYACCOUNT; + } + + public String getSTORE_NAME() { + return STORE_NAME; + } + + public void setSTORE_NAME(String STORE_NAME) { + this.STORE_NAME = STORE_NAME; + } + + public String getADDRESS() { + return ADDRESS; + } + + public void setADDRESS(String ADDRESS) { + this.ADDRESS = ADDRESS; + } + + public String getCITY() { + return CITY; + } + + public void setCITY(String CITY) { + this.CITY = CITY; + } + + public String getSTORETYPE() { + return STORETYPE; + } + + public void setSTORETYPE(String STORETYPE) { + this.STORETYPE = STORETYPE; + } + + public String getCLASSIFICATION() { + return CLASSIFICATION; + } + + public void setCLASSIFICATION(String CLASSIFICATION) { + this.CLASSIFICATION = CLASSIFICATION; + } + + public String getKEYACCOUNT_ID() { + return KEYACCOUNT_ID; + } + + public void setKEYACCOUNT_ID(String KEYACCOUNT_ID) { + this.KEYACCOUNT_ID = KEYACCOUNT_ID; + } + + public String getSTORETYPE_ID() { + return STORETYPE_ID; + } + + public void setSTORETYPE_ID(String STORETYPE_ID) { + this.STORETYPE_ID = STORETYPE_ID; + } + + public String getCLASS_ID() { + return CLASS_ID; + } + + public void setCLASS_ID(String CLASS_ID) { + this.CLASS_ID = CLASS_ID; + } + + public String getVISIT_DATE() { + return VISIT_DATE; + } + + public void setVISIT_DATE(String VISIT_DATE) { + this.VISIT_DATE = VISIT_DATE; + } + + public String getCAMERA_ALLOW() { + return CAMERA_ALLOW; + } + + public void setCAMERA_ALLOW(String CAMERA_ALLOW) { + this.CAMERA_ALLOW = CAMERA_ALLOW; + } + + public String getUPLOAD_STATUS() { + return UPLOAD_STATUS; + } + + public void setUPLOAD_STATUS(String UPLOAD_STATUS) { + this.UPLOAD_STATUS = UPLOAD_STATUS; + } + + public String getCHECKOUT_STATUS() { + return CHECKOUT_STATUS; + } + + public void setCHECKOUT_STATUS(String CHECKOUT_STATUS) { + this.CHECKOUT_STATUS = CHECKOUT_STATUS; + } + + public String getGEO_TAG() { + return GEO_TAG; + } + + public void setGEO_TAG(String GEO_TAG) { + this.GEO_TAG = GEO_TAG; + } + + String CHECKOUT_STATUS; + String GEO_TAG ; + + + public String getLATITUDE() { + return LATITUDE; + } + + public void setLATITUDE(String LATITUDE) { + this.LATITUDE = LATITUDE; + } + + public String getLONGITUDE() { + return LONGITUDE; + } + + public void setLONGITUDE(String LONGITUDE) { + this.LONGITUDE = LONGITUDE; + } + + public String getPOG_TYPE_ID() { + return POG_TYPE_ID; + } + + public void setPOG_TYPE_ID(String POG_TYPE_ID) { + this.POG_TYPE_ID = POG_TYPE_ID; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java new file mode 100644 index 0000000..5e1516c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java @@ -0,0 +1,1265 @@ +package cpm.com.gskmtorange; + +import android.Manifest; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.annotation.TargetApi; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentSender; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.location.Location; +import android.location.LocationManager; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.os.Looper; +import android.preference.PreferenceManager; +import android.text.TextUtils; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.inputmethod.EditorInfo; +import android.widget.ArrayAdapter; +import android.widget.AutoCompleteTextView; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.cardview.widget.CardView; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.ResultCallback; +import com.google.android.gms.common.api.Status; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.LocationSettingsRequest; +import com.google.android.gms.location.LocationSettingsResult; +import com.google.android.gms.location.LocationSettingsStatusCodes; +import com.google.android.gms.location.Priority; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.material.snackbar.Snackbar; +import com.google.firebase.analytics.FirebaseAnalytics; + +import com.google.firebase.crashlytics.FirebaseCrashlytics; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.IOException; +import java.io.StringReader; +import java.lang.reflect.Type; +import java.net.MalformedURLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import cpm.com.gskmtorange.autoupdate.AutoUpdateActivity; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.password.MPinActivity; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; +//import io.fabric.sdk.android.Fabric; + +import static android.Manifest.permission.READ_CONTACTS; +import static com.google.android.gms.location.LocationRequest.Builder.IMPLICIT_MIN_UPDATE_INTERVAL; + + +public class LoginActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, + GoogleApiClient.OnConnectionFailedListener, LocationListener { + private static final int MY_PERMISSIONS_REQUEST_CAMERA = 10; + private static final int MY_PERMISSIONS_REQUEST_LOCATION = 11; + private static final int MY_PERMISSIONS_REQUEST_STORAGE_READ = 12; + private static final int MY_PERMISSIONS_REQUEST_STORAGE_WRITE = 14; + private FirebaseAnalytics mFirebaseAnalytics; + + private static final int PERMISSION_ALL = 99; + + String app_ver; + LoginGetterSetter lgs = null; + static int counter = 1; + private SharedPreferences preferences = null; + private SharedPreferences.Editor editor = null; + /** + * Id to identity READ_CONTACTS permission request. + */ + private static final int REQUEST_READ_CONTACTS = 0; + + //New Location Changes + private FusedLocationProviderClient fusedLocationProviderClient; + LocationRequest locationRequest; + + /** + * A dummy authentication store containing known user names and passwords. + * TODO: remove after connecting to a real authentication system. + */ + double lat = 0.0; + double lon = 0.0; + // UI references. + private AutoCompleteTextView museridView; + private EditText mPasswordView; + private View mProgressView; + private View mLoginFormView; + private String userid, password; + private int versionCode; + int eventType; + CardView museridSignInButton; + + GoogleApiClient mGoogleApiClient; + private static int UPDATE_INTERVAL = 200; // 5 sec + private static int FATEST_INTERVAL = 100; // 1 sec + private static int DISPLACEMENT = 1; // 10 meters + private static final int REQUEST_LOCATION = 1; + private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; + private Location mLastLocation; + private LocationRequest mLocationRequest; + private Context context; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login); + context = this; + + TextView tv_version = (TextView) findViewById(R.id.tv_version_code); + try { + app_ver = String.valueOf(getPackageManager().getPackageInfo(getPackageName(), 0).versionName); + // login_version.setText("Parinaam Version " + app_ver); + } catch (PackageManager.NameNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + tv_version.setText("Version/Versiyon - " + app_ver); + preferences = PreferenceManager.getDefaultSharedPreferences(context); + editor = preferences.edit(); + // Set up the login form. + museridView = (AutoCompleteTextView) findViewById(R.id.userid); + //populateAutoComplete(); + mPasswordView = (EditText) findViewById(R.id.password); + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); + + //for lebanon + // museridView.setText("test.lebanon1"); + // mPasswordView.setText("cpm@123"); + // for EGYPT + // museridView.setText("test.egypt"); + // mPasswordView.setText("cpm123"); + /*museridView.setText("egypt.1"); + mPasswordView.setText("cpm123");*/ + + /* museridView.setText("DSR_Alex_61"); + mPasswordView.setText("cpm123");*/ + + /* museridView.setText("DSR_Delta_24"); + mPasswordView.setText("cpm123");*/ + + /* museridView.setText("mini_ka_84_1"); + mPasswordView.setText("cpm123");*/ + + //UAE + /* museridView.setText("testuae"); + mPasswordView.setText("cpm123");*/ + /* museridView.setText("testuae1"); + mPasswordView.setText("cpm123");*/ + + //KSA + /* museridView.setText("Esmail.d"); + mPasswordView.setText("cpm@123");*/ + /* museridView.setText("testksa"); + mPasswordView.setText("cpm123");*/ + /* museridView.setText("Ahmed.saied"); + mPasswordView.setText("cpm@123");*/ + /* museridView.setText("testksa"); + mPasswordView.setText("cpm123");*/ + + /* //turkey + museridView.setText("testmer"); + mPasswordView.setText("cpm123"); +*/ + //sa + /* museridView.setText("testsa"); + mPasswordView.setText("cpm123");*/ + + //Qatar + /* museridView.setText("test.qatar1"); + mPasswordView.setText("cpm123");*/ + + //Kenya + // museridView.setText("test.Kenya"); + // museridView.setText("testkenya"); + // mPasswordView.setText("cpm123"); + + /*museridView.setText("rajesh.r"); + mPasswordView.setText("cpm123");*/ + /* museridView.setText("testuae1"); + mPasswordView.setText("cpm123");*/ + + //nig + // museridView.setText("test.nig"); + /* museridView.setText("test.nigeria"); + mPasswordView.setText("cpm@123");*/ + + /* museridView.setText("test.jordan"); + mPasswordView.setText("cpm@123");*/ + + // museridView.setText("test.kuwait"); + // mPasswordView.setText("cpm@123"); + + // museridView.setText("test.oman"); + + /* museridView.setText("test.bahrain"); + mPasswordView.setText("cpm@123"); +*/ + + mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { + @Override + public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) { + if (id == R.id.login || id == EditorInfo.IME_NULL) { + attemptLogin(); + return true; + } + return false; + } + }); + + try { + app_ver = String.valueOf(getPackageManager().getPackageInfo(getPackageName(), 0).versionName); + // tv_version.setText("Version " + app_ver); + } catch (PackageManager.NameNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + FirebaseCrashlytics.getInstance().recordException(e); + } + + checkAndRequestPermissions(); + mFirebaseAnalytics = FirebaseAnalytics.getInstance(this); + FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true); + museridSignInButton = (CardView) findViewById(R.id.user_login_button); + museridSignInButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + //checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA); + attemptLogin(); + } + }); + + mLoginFormView = findViewById(R.id.login_form); + mProgressView = findViewById(R.id.login_progress); + } + + private void checkAndRequestPermissions() { + //int permissionwrite_storage = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); + int CAMERA = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA); + int ACCESS_NETWORK_STATE = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE); + int ACCESS_COARSE_LOCATION = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION); + int locationPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION); + //int READ_EXTERNAL_STORAGE = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE); + int READ_PHONE_STATE = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE); + List listPermissionsNeeded = new ArrayList<>(); + + if (CAMERA != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.CAMERA); + } + + if (ACCESS_NETWORK_STATE != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.ACCESS_NETWORK_STATE); + } + if (ACCESS_COARSE_LOCATION != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.ACCESS_COARSE_LOCATION); + } + if (locationPermission != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.ACCESS_FINE_LOCATION); + } + + if (READ_PHONE_STATE != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.READ_PHONE_STATE); + } + + if (!listPermissionsNeeded.isEmpty()) { + ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), PERMISSION_ALL); + } + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(context) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + Log.d("", "Permission callback called-------"); + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + if (requestCode == PERMISSION_ALL) { + Map perms = new HashMap<>(); + // Initialize the map with both permissions + perms.put(Manifest.permission.CAMERA, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.ACCESS_NETWORK_STATE, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.ACCESS_COARSE_LOCATION, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.ACCESS_FINE_LOCATION, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.READ_PHONE_STATE, PackageManager.PERMISSION_GRANTED); + // Fill with actual results from user + if (grantResults.length > 0) { + for (int i = 0; i < permissions.length; i++) + perms.put(permissions[i], grantResults[i]); + // Check for both permissions// + if (perms.get(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED + && perms.get(Manifest.permission.ACCESS_NETWORK_STATE) == PackageManager.PERMISSION_GRANTED + && perms.get(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED + && perms.get(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + && perms.get(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { + // imeiNumbers = imei.getDeviceImei(); + Log.d("", "sms & location services permission granted"); + // process the normal flow + //else any one or both the permissions are not granted + } else { + Log.d("", "Some permissions are not granted ask again "); + //permission is denied (this is the first time, when "never ask again" is not checked) so ask again explaining the usage of permission +// // shouldShowRequestPermissionRationale will return true + //show the dialog or snackbar saying its necessary and try again otherwise proceed with setup. + if ( + ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) || + ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_NETWORK_STATE) || + ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION) || + ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) || + ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE) || + ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) { + showDialogOK("Location,Photos,media,file,manage phone calls and Camera Services Permission required for this app", + (dialog, which) -> { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + checkAndRequestPermissions(); + break; + case DialogInterface.BUTTON_NEGATIVE: + // proceed with logic by disabling the related features or quit the app. + Intent startMain = new Intent(Intent.ACTION_MAIN); + startMain.addCategory(Intent.CATEGORY_HOME); + startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(startMain); + break; + } + }); + } + } + } + } + + } + + private void showDialogOK(String message, DialogInterface.OnClickListener okListener) { + new androidx.appcompat.app.AlertDialog.Builder(this).setMessage(message).setPositiveButton("OK", okListener).setNegativeButton("Cancel", okListener).create().show(); + } + + /** + * Attempts to sign in or register the account specified by the login form. + * If there are form errors (invalid userid, missing fields, etc.), the + * errors are presented and no actual login attempt is made. + */ + private void attemptLogin() { + // Reset errors. + museridView.setError(null); + mPasswordView.setError(null); + + // Store values at the time of the login attempt. + userid = museridView.getText().toString().trim(); + password = mPasswordView.getText().toString().trim(); + + boolean cancel = false; + View focusView = null; + + // Check for a valid password, if the user entered one. + if (TextUtils.isEmpty(password)) { + mPasswordView.setError(getString(R.string.error_invalid_password)); + focusView = mPasswordView; + cancel = true; + } + + // Check for a valid userid address. + if (TextUtils.isEmpty(userid)) { + museridView.setError(getString(R.string.error_field_required)); + focusView = museridView; + cancel = true; + } /*else if (!isuseridValid(userid)) { + museridView.setError(getString(R.string.error_invalid_userid)); + focusView = museridView; + cancel = true; + }*/ + + if (cancel) { + // There was an error; don't attempt login and focus the first + // form field with an error. + focusView.requestFocus(); + + } else if (!isuseridValid(userid)) { + Snackbar.make(museridView, getString(R.string.error_incorrect_username), Snackbar.LENGTH_SHORT).show(); + } else if (!isPasswordValid(password)) { + Snackbar.make(museridView, getString(R.string.error_incorrect_password), Snackbar.LENGTH_SHORT).show(); + } else { + new AuthenticateTask().execute(); + } + } + + private boolean isuseridValid(String userid) { + //TODO: Replace this with your own logic + + boolean flag = true; + + String u_id = preferences.getString(CommonString.KEY_USERNAME, ""); + + if (!u_id.equals("") && !userid.equalsIgnoreCase(u_id)) { + flag = false; + } + + return flag; + } + + private boolean isPasswordValid(String password) { + //TODO: Replace this with your own logic + boolean flag = true; + + String pw = preferences.getString(CommonString.KEY_PASSWORD, ""); + + if (!pw.equals("") && !password.equals(pw)) { + flag = false; + } + + return flag; + } + + /** + * Shows the progress UI and hides the login form. + */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) + private void showProgress(final boolean show) { + // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow + // for very easy animations. If available, use these APIs to fade-in + // the progress spinner. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { + int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime); + + mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); + mLoginFormView.animate().setDuration(shortAnimTime).alpha( + show ? 0 : 1).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); + } + }); + + mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); + mProgressView.animate().setDuration(shortAnimTime).alpha( + show ? 1 : 0).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); + } + }); + } else { + // The ViewPropertyAnimator APIs are not available, so simply show + // and hide the relevant UI components. + mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); + mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE); + } + } + + /* @Override + public Loader onCreateLoader(int i, Bundle bundle) { + return new CursorLoader(this, + // Retrieve data rows for the device user's 'profile' contact. + Uri.withAppendedPath(ContactsContract.Profile.CONTENT_URI, + ContactsContract.Contacts.Data.CONTENT_DIRECTORY), ProfileQuery.PROJECTION, + + // Select only userid addresses. + ContactsContract.Contacts.Data.MIMETYPE + + " = ?", new String[]{ContactsContract.CommonDataKinds.userid + .CONTENT_ITEM_TYPE}, + + // Show primary userid addresses first. Note that there won't be + // a primary userid address if the user hasn't specified one. + ContactsContract.Contacts.Data.IS_PRIMARY + " DESC"); + } + + @Override + public void onLoadFinished(Loader cursorLoader, Cursor cursor) { + List userids = new ArrayList<>(); + cursor.moveToFirst(); + while (!cursor.isAfterLast()) { + userids.add(cursor.getString(ProfileQuery.ADDRESS)); + cursor.moveToNext(); + } + + adduseridsToAutoComplete(userids); + } + + @Override + public void onLoaderReset(Loader cursorLoader) { + + }*/ + + private void adduseridsToAutoComplete(List useridAddressCollection) { + //Create adapter to tell the AutoCompleteTextView what to show in its dropdown list. + ArrayAdapter adapter = + new ArrayAdapter<>(LoginActivity.this, + android.R.layout.simple_dropdown_item_1line, useridAddressCollection); + + museridView.setAdapter(adapter); + } + + + /* private interface ProfileQuery { + String[] PROJECTION = { + ContactsContract.CommonDataKinds.userid.ADDRESS, + ContactsContract.CommonDataKinds.userid.IS_PRIMARY, + }; + + int ADDRESS = 0; + int IS_PRIMARY = 1; + }*/ + + /** + * Represents an asynchronous login/registration task used to authenticate + * the user. + */ + + private class AuthenticateTask extends AsyncTask { + private ProgressDialog dialog = null; + + @Override + protected void onPreExecute() { + super.onPreExecute(); + dialog = new ProgressDialog(LoginActivity.this); + dialog.setTitle("Login"); + dialog.setMessage("Authenticating...."); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + protected String doInBackground(Void... params) { + try { + Log.e("latitudedata",lat + ","+ lon); + versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; + String userauth_xml = "[DATA]" + "[USER_DATA][USER_ID]" + + userid + "[/USER_ID]" + "[PASSWORD]" + password + + "[/PASSWORD]" + "[IN_TIME]" + CommonFunctions.getCurrentTimeWithLanguage(context) + + "[/IN_TIME]" + "[LATITUDE]" + lat + + "[/LATITUDE]" + "[LONGITUDE]" + lon + + "[/LONGITUDE]" + "[APP_VERSION]" + app_ver + + "[/APP_VERSION]" + "[ATT_MODE]OnLine[/ATT_MODE]" + + "[NETWORK_STATUS]" + "LoginStatus" + + "[/NETWORK_STATUS]" + "[/USER_DATA][/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_LOGIN); + request.addProperty("onXML", userauth_xml); + Log.d("loginrequest", String.valueOf(request)); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + try { + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION_LOGIN, + envelope); + } catch (Exception e){ + Log.e("httpexception",e.getMessage()); + } + /*HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION_LOGIN, + envelope);*/ + + Object result = (Object) envelope.getResponse(); + + if (result.toString() + .equalsIgnoreCase(CommonString.KEY_FAILURE)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_FAILURE); + } + }); + + } else if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + runOnUiThread(new Runnable() { + @Override + public void run() { + showAlert(CommonString.MESSAGE_FALSE); + } + }); + + } else if (result.toString().equalsIgnoreCase( + CommonString.KEY_CHANGED)) { + runOnUiThread(new Runnable() { + @Override + public void run() { + showAlert(CommonString.MESSAGE_CHANGED); + } + }); + + } else { + + XmlPullParserFactory factory = XmlPullParserFactory + .newInstance(); + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + final FailureGetterSetter failureGetterSetter = XMLHandlers + .failureXMLHandler(xpp, eventType); + + if (failureGetterSetter.getStatus().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, CommonString.METHOD_LOGIN + + failureGetterSetter.getErrorMsg(), + "login", null);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.METHOD_LOGIN + + failureGetterSetter.getErrorMsg()); + } + }); + } else { + + try { + // For String source + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + lgs = XMLHandlers.loginXMLHandler(xpp, eventType); + + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + // PUT IN PREFERENCES + editor.putString(CommonString.KEY_USERNAME, userid); + editor.putString(CommonString.KEY_PASSWORD, password); + editor.putString(CommonString.KEY_VERSION, lgs.getAPP_VERSION()); + editor.putString(CommonString.KEY_PATH, lgs.getAPP_PATH()); + //editor.putString(CommonString.KEY_DATE, "12/05/2022"); + editor.putString(CommonString.KEY_DATE, lgs.getCURRENTDATE()); + //editor.putString(CommonString.KEY_DATE, "01/25/2019"); + editor.putString(CommonString.KEY_COUNTRY_ID, lgs.getCOUNTRY_ID()); + Log.e("countryid",lgs.getCOUNTRY_ID()); + editor.commit(); + setDataFromSharedPreferences(lgs); + + Bundle bundle = new Bundle(); + bundle.putString(FirebaseAnalytics.Param.ITEM_ID, userid); + bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, CommonString.KEY_LOGIN_DATA); + bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Data"); + bundle.putString(CommonString.KEY_LANGUAGE, preferences.getString(CommonString.KEY_LANGUAGE, "")); + mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); + FirebaseCrashlytics.getInstance().setUserId(userid.toLowerCase()); + return CommonString.KEY_SUCCESS; + } + } + + return ""; + + } catch (MalformedURLException e) { + FirebaseCrashlytics.getInstance().recordException(e); + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + + } catch (IOException e) { + FirebaseCrashlytics.getInstance().recordException(e); + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, + AlertMessage.MESSAGE_SOCKETEXCEPTION, "socket_login", e);*/ + + counter++; + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + if (counter < 3) { + new AuthenticateTask().execute(); + } else { + showAlert(getString(R.string.nonetwork)); + counter = 1; + } + } + }); + } catch (Exception e) { + FirebaseCrashlytics.getInstance().recordException(e); + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, AlertMessage.MESSAGE_EXCEPTION, + "acra_login", e);*/ + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception("My custom login Exception")); + runOnUiThread(new Runnable() { + @Override + public void run() { + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } + return ""; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + //Stop performance trace + /// myTrace.stop(); + + if (result.equals(CommonString.KEY_SUCCESS)) { + // manually set true for South Africa + 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.putExtra(CommonString.KEY_LOGIN_DATA, lgs); + startActivity(intent); + finish(); + } else { + setLanguageDataFromSharedPreferences(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + Intent in = new Intent(context, MPinActivity.class); + in.putExtra(CommonString.IS_PASSWORD_CHECK, false); + startActivity(in); + finish(); + //uploadPreviousImages(); + } + } else { + //for other than SA + if (preferences.getString(CommonString.KEY_VERSION, "").equals(Integer.toString(versionCode))) { + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equals("")) { + Intent intent = new Intent(getBaseContext(), SelectLanguageActivity.class); + intent.putExtra(CommonString.KEY_LOGIN_DATA, lgs); + startActivity(intent); + finish(); + } else { + setLanguageDataFromSharedPreferences(); + Intent in = new Intent(context, MPinActivity.class); + in.putExtra(CommonString.IS_PASSWORD_CHECK, false); + startActivity(in); + finish(); + //uploadPreviousImages(); + } + } else { + Intent intent = new Intent(getBaseContext(), AutoUpdateActivity.class); + intent.putExtra(CommonString.KEY_PATH, preferences.getString(CommonString.KEY_PATH, "")); + startActivity(intent); + finish(); + } + } + } + dialog.dismiss(); + } + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KUWAIT)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_BAHRAIN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_OMAN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_QATAR)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LEBANON)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LIBIYA)) { + cdate = arabicToenglish(cdate); + } + return cdate; + } + + + + private void setDataFromSharedPreferences(LoginGetterSetter lgs) { + Gson gson = new Gson(); + String jsonCurProduct = gson.toJson(lgs); + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(CommonString.KEY_LOOGIN_PREF, jsonCurProduct); + editor.commit(); + } + + void checkAppPermission(String permission, int requestCode) { + + boolean permission_flag = false; + // Here, thisActivity is the current activity + if (ContextCompat.checkSelfPermission(LoginActivity.this, + permission) + != PackageManager.PERMISSION_GRANTED) { + + // Permission is not granted + // Should we show an explanation? + if (ActivityCompat.shouldShowRequestPermissionRationale(LoginActivity.this, + permission)) { + // Show an explanation to the user *asynchronously* -- don't block + // this thread waiting for the user's response! After the user + // sees the explanation, try again to request the permission. + showOnPermissiondenied(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA, 1); + } else { + // No explanation needed; request the permission + ActivityCompat.requestPermissions(LoginActivity.this, + new String[]{permission}, + requestCode); + + // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an + // app-defined int constant. The callback method gets the + // result of the request. + } + } else { + // Permission has already been granted + if (requestCode == MY_PERMISSIONS_REQUEST_CAMERA) { + checkAppPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, MY_PERMISSIONS_REQUEST_STORAGE_WRITE); + } else if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_WRITE) { + checkAppPermission(Manifest.permission.READ_EXTERNAL_STORAGE, MY_PERMISSIONS_REQUEST_STORAGE_READ); + } else if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_READ) { + checkAppPermission(Manifest.permission.ACCESS_FINE_LOCATION, MY_PERMISSIONS_REQUEST_LOCATION); + } else { + + // Create a Folder for Images + + /* File file = new File(Environment.getExternalStorageDirectory(), ".GSK_MT_ORANGE_IMAGES"); + if (!file.isDirectory()) { + file.mkdir(); + } + File file_planogram = new File(Environment.getExternalStorageDirectory(), "GSK_MT_ORANGE_Planogram_Images"); + if (!file_planogram.isDirectory()) { + file_planogram.mkdir(); + }*/ + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + attemptLogin(); + } + + } + } + + void showOnPermissiondenied(final String permissionsRequired, final int request_code, final int check) { + AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); + builder.setTitle("Need Multiple Permissions"); + builder.setMessage("This app needs Camera, Storage and Location permissions."); + builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.cancel(); + if (check == 0) { + checkAppPermission(permissionsRequired, request_code); + } else { + ActivityCompat.requestPermissions(LoginActivity.this, + new String[]{permissionsRequired}, + request_code); + } + + } + }); + /* builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.cancel(); + finish(); + } + });*/ + builder.show(); + } + + @Override + protected void onResume() { + super.onResume(); + + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + + } + checkgpsEnableDevice(); + locationRequest= new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 100000) + .setWaitForAccurateLocation(false) + .setMinUpdateIntervalMillis(IMPLICIT_MIN_UPDATE_INTERVAL) + .setMaxUpdateDelayMillis(1000) + .build(); + LocationCallback locationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult != null) { + if (locationResult == null) { + return; + } + //Showing the latitude, longitude and accuracy on the home screen. + for (Location location : locationResult.getLocations()) { + lat = location.getLatitude(); + lon = location.getLongitude(); + // Log.e("latitude_inside",location.getLatitude() + "," +location.getLongitude()); + } + } + } + }; + if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(LoginActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1); + ActivityCompat.requestPermissions(LoginActivity.this, new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION}, 2); + } + fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); + } + + /*@Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA); + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + + } +*/ + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil + .isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { + GooglePlayServicesUtil.getErrorDialog(resultCode, this, + PLAY_SERVICES_RESOLUTION_REQUEST).show(); + } else { + Toast.makeText(context, getResources().getString(R.string.notsuppoted), Toast.LENGTH_LONG) + .show(); + finish(); + } + return false; + } + return true; + } + + protected synchronized void buildGoogleApiClient() { + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(context) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + } + + protected void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + @Override + public void onLocationChanged(Location location) { + LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); + + // Toast.makeText(this, " WORKS_lat_lon " + latLng, Toast.LENGTH_LONG).show(); + // updateLocation(latLng); + if (mGoogleApiClient != null) { + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); + } + + } + + protected void startLocationUpdates() { + + if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mGoogleApiClient != null) { + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); + // Toast.makeText(getApplicationContext(), "startLocation - Lat" + lat + "Long" + lon, Toast.LENGTH_LONG).show(); + } + } + + } + + public static int distFrom(double lat1, double lng1, double lat2, double lng2) { + double earthRadius = 6371000; //meters + double dLat = Math.toRadians(lat2 - lat1); + double dLng = Math.toRadians(lng2 - lng1); + double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * + Math.sin(dLng / 2) * Math.sin(dLng / 2); + double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + int dist = (int) (earthRadius * c); + + return dist; + } + + @Override + public void onConnected(Bundle bundle) { + Log.e("onConnectdata","true" + ","+mGoogleApiClient); + /*if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mLastLocation != null) { + lat = mLastLocation.getLatitude(); + lon = mLastLocation.getLongitude(); + // Toast.makeText(getApplicationContext(), "onconnected lat-" + lat + " Long-" + lon, Toast.LENGTH_SHORT).show(); + } + startLocationUpdates(); + }*/ + } + + @Override + public void onConnectionFailed(ConnectionResult connectionResult) { + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + } + + protected void onStart() { + super.onStart(); + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + } + + private boolean checkgpsEnableDevice() { + boolean flag = true; + if (!hasGPSDevice(context)) { + Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show(); + } + final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + enableLoc(); + flag = false; + } else if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + flag = true; + } + return flag; + } + + private boolean hasGPSDevice(Context context) { + final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + if (mgr == null) + return false; + final List providers = mgr.getAllProviders(); + if (providers == null) + return false; + return providers.contains(LocationManager.GPS_PROVIDER); + } + + private void enableLoc() { + LocationRequest locationRequest = LocationRequest.create(); + locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + locationRequest.setInterval(30 * 1000); + locationRequest.setFastestInterval(5 * 1000); + LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest); + builder.setAlwaysShow(true); + if (mGoogleApiClient != null) { + PendingResult result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build()); + result.setResultCallback(new ResultCallback() { + @Override + public void onResult(LocationSettingsResult result) { + final Status status = result.getStatus(); + switch (status.getStatusCode()) { + case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: + try { + // Show the dialog by calling startResolutionForResult(), + // and check the result in onActivityResult(). + status.startResolutionForResult((Activity) context, REQUEST_LOCATION); + } catch (IntentSender.SendIntentException e) { + // Ignore the error. + } + break; + } + } + }); + } + } + + ArrayList language, culture_id, notice_url; + + LoginGetterSetter login_data; + + private void setLanguageDataFromSharedPreferences() { + Gson gson = new Gson(); + login_data = new LoginGetterSetter(); + + String jsonPreferences = preferences.getString(CommonString.KEY_LOOGIN_PREF, ""); + + Type type = new TypeToken() { + }.getType(); + login_data = gson.fromJson(jsonPreferences, type); + + language = login_data.getCULTURE_NAME(); + culture_id = login_data.getCULTURE_ID(); + notice_url = login_data.getNOTICE_URL(); + + String lang = preferences.getString(CommonString.KEY_LANGUAGE, ""); + + if (language.size() > 0) { + for (int i = 0; i < language.size(); i++) { + if (lang.equals(language.get(i))) { + editor.putString(CommonString.KEY_LANGUAGE, language.get(i)); + editor.putString(CommonString.KEY_CULTURE_ID, culture_id.get(i)); + editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, notice_url.get(i)); + editor.commit(); + break; + } + } + } + + //return ; + } +} + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java new file mode 100644 index 0000000..59c1458 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java @@ -0,0 +1,494 @@ +package cpm.com.gskmtorange; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.graphics.Bitmap; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.ImageView; +import android.widget.TextView; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.view.GravityCompat; +import androidx.drawerlayout.widget.DrawerLayout; + +import com.google.android.material.navigation.NavigationView; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.ArrayList; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GeoTag.GeoTagStoreList; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.dailyentry.CounterfeitIndicatorWebActivity; +import cpm.com.gskmtorange.dailyentry.DeliveryCallActivity; +import cpm.com.gskmtorange.dailyentry.FutureJCPActivity; +import cpm.com.gskmtorange.dailyentry.PlanogramPDFActivity; +import cpm.com.gskmtorange.dailyentry.ServiceActivity; +import cpm.com.gskmtorange.dailyentry.SettingsActivity; +import cpm.com.gskmtorange.dailyentry.StoreListActivity; +import cpm.com.gskmtorange.download.DownloadActivity; +import cpm.com.gskmtorange.password.ChangePasswordActivity; +import cpm.com.gskmtorange.pharma_stores.PharmaActivity; +import cpm.com.gskmtorange.pharma_stores.PharmaActivityFragment; +import cpm.com.gskmtorange.upload.PreviousDataUploadActivity; +import cpm.com.gskmtorange.upload.UploadActivity; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; + +public class MainActivity extends AppCompatActivity + implements NavigationView.OnNavigationItemSelectedListener { + private Context context; + WebView webView; + ImageView imageView; + String date; + private SharedPreferences preferences = null; + GSKOrangeDB db; + String user_name, country_id; + ArrayList storelist = new ArrayList(); + View headerView; + ArrayList coverageList; + String error_msg; + Toolbar toolbar; + NavigationView navigationView; + + @SuppressLint("SetJavaScriptEnabled") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + context = this; + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + date = preferences.getString(CommonString.KEY_DATE, null); + imageView = (ImageView) findViewById(R.id.img_main); + webView = (WebView) findViewById(R.id.webview); + String url = preferences.getString(CommonString.KEY_NOTICE_BOARD_LINK, ""); + user_name = preferences.getString(CommonString.KEY_USERNAME, null); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null); + db = new GSKOrangeDB(MainActivity.this); + webView.setWebViewClient(new MyWebViewClient()); + webView.getSettings().setJavaScriptEnabled(true); + if (!url.isEmpty()) { + webView.loadUrl(url); + } + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( + this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawer.setDrawerListener(toggle); + toggle.syncState(); + navigationView = (NavigationView) findViewById(R.id.nav_view); + headerView = LayoutInflater.from(this).inflate(R.layout.nav_header_main, navigationView, false); + TextView tv_username = (TextView) headerView.findViewById(R.id.nav_user_name); + //tv_usertype = (TextView) headerView.findViewById(R.id.nav_user_type); + ImageView img_change_password = (ImageView) headerView.findViewById(R.id.img_change_password); + tv_username.setText(user_name); + //tv_usertype.setText(user_type); + + img_change_password.setOnClickListener(v -> { + Intent in = new Intent(context, ChangePasswordActivity.class); + startActivity(in); + }); + + navigationView.addHeaderView(headerView); + navigationView.setNavigationItemSelectedListener(this); + } + + @Override + protected void onResume() { + super.onResume(); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getString(R.string.main_menu_activity_name)); + db.open(); + //usk + navigationView = (NavigationView) findViewById(R.id.nav_view); + // get menu from navigationView + Menu menu = navigationView.getMenu(); + // find MenuItem you want to change + MenuItem nav_route_plan = menu.findItem(R.id.nav_route_plan); + nav_route_plan.setTitle(getResources().getString(R.string.menu_daily_route_plan)); + MenuItem nav_route_plan1 = menu.findItem(R.id.nav_download); + nav_route_plan1.setTitle(getResources().getString(R.string.menu_daily_download)); + MenuItem nav_route_plan2 = menu.findItem(R.id.nav_upload); + nav_route_plan2.setTitle(getResources().getString(R.string.menu_upload_data)); + MenuItem nav_route_plan3 = menu.findItem(R.id.nav_geotag); + nav_route_plan3.setTitle(getResources().getString(R.string.menu_geotag)); + MenuItem nav_route_plan4 = menu.findItem(R.id.nav_deviation); + nav_route_plan4.setTitle(getResources().getString(R.string.menu_deviation_data)); + MenuItem nav_route_plan5 = menu.findItem(R.id.nav_delivery_call); + nav_route_plan5.setTitle(getResources().getString(R.string.delivery_call)); + MenuItem nav_route_plan6 = menu.findItem(R.id.nav_future_jcp); + nav_route_plan6.setTitle(getResources().getString(R.string.future_route_plan)); + MenuItem nav_route_plan7 = menu.findItem(R.id.nav_planogram); + nav_route_plan7.setTitle(getResources().getString(R.string.category_performance_PLANOGRAM)); + MenuItem nav_route_plan8 = menu.findItem(R.id.nav_pharmacy_stores); + nav_route_plan8.setTitle(getResources().getString(R.string.pharma_stores)); + MenuItem nav_route_plan9 = menu.findItem(R.id.nav_additional_stores); + nav_route_plan9.setTitle(getResources().getString(R.string.additional_stores)); + MenuItem nav_route_plan10 = menu.findItem(R.id.nav_additional_adhoc_stores); + nav_route_plan10.setTitle(getResources().getString(R.string.additional_adhoc_stores)); + MenuItem nav_route_plan11 = menu.findItem(R.id.nav_counterfeit_indicator); + nav_route_plan11.setTitle(getResources().getString(R.string.title_activity_counterfeit_indicator_web)); + MenuItem nav_route_plan12 = menu.findItem(R.id.nav_exit); + nav_route_plan12.setTitle(getResources().getString(R.string.menu_exit)); + MenuItem nav_route_plan13 = menu.findItem(R.id.nav_setting); + nav_route_plan13.setTitle(getResources().getString(R.string.menu_setting)); + MenuItem nav_route_plan14 = menu.findItem(R.id.nav_services); + nav_route_plan14.setTitle(getResources().getString(R.string.menu_services)); + //Enable disable According to Configuration + ArrayList configurationData = db.getConfigurationMasterData(country_id); + if (!configurationData.isEmpty()) { + for (int i = 0; i < configurationData.size(); i++) { + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("ADHOC REPORTING") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + Menu nav_Menu = navigationView.getMenu(); + nav_Menu.findItem(R.id.nav_deviation).setVisible(true); + } + //temp remove it + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("PDF ALLOW") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + Menu nav_Menu = navigationView.getMenu(); + nav_Menu.findItem(R.id.nav_planogram).setVisible(true); + } + + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("DELIVERY CALLS") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + Menu nav_Menu = navigationView.getMenu(); + nav_Menu.findItem(R.id.nav_delivery_call).setVisible(true); + } + + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("ADDITIONAL STORE") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + Menu nav_Menu = navigationView.getMenu(); + nav_Menu.findItem(R.id.nav_additional_stores).setVisible(true); + } + + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("PHARMA STORE") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + Menu nav_Menu = navigationView.getMenu(); + nav_Menu.findItem(R.id.nav_pharmacy_stores).setVisible(true); + } + + + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("COUNTERFEIT INDICATORS") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + Menu nav_Menu = navigationView.getMenu(); + nav_Menu.findItem(R.id.nav_counterfeit_indicator).setVisible(true); + } + + } + } + + db.open(); + coverageList = db.getCoverageData(date, null); + storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN); + } + + @Override + public void onBackPressed() { + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + if (drawer.isDrawerOpen(GravityCompat.START)) { + drawer.closeDrawer(GravityCompat.START); + } else { + // super.onBackPressed(); + } + } + + @SuppressWarnings("StatementWithEmptyBody") + @Override + public boolean onNavigationItemSelected(MenuItem item) { + // Handle navigation view item clicks here. + int id = item.getItemId(); + if (id == R.id.nav_route_plan) { + Intent in_jcp = new Intent(this, StoreListActivity.class); + in_jcp.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_JCP); + startActivity(in_jcp); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (id == R.id.nav_download) { + downloadMethod(); + } else if (id == R.id.nav_upload) { + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(getResources().getString(R.string.want_to_upload)).setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), (dialog, id1) -> { + db.open(); + if (checkNetIsAvailable()) { + if (db.getSKUMasterData(null).isEmpty()) { + Snackbar.make(webView, R.string.title_store_list_download_data, Snackbar.LENGTH_SHORT) + .setAction("Action", null).show(); + } else { + if (coverageList.isEmpty()) { + Snackbar.make(webView, R.string.no_data_for_upload, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } else { + if (isStoreCheckedIn() && isValid()) { + Intent i = new Intent(getBaseContext(), UploadActivity.class); + startActivity(i); + } else { + Snackbar.make(webView, error_msg, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + } + } + } else { + Snackbar.make(webView, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + }).setNegativeButton(getResources().getString(R.string.cancel), (dialog, which) -> dialog.dismiss()); + AlertDialog alert = builder.create(); + alert.show(); + + } else if (id == R.id.nav_geotag) { + if (!storelist.isEmpty()) { + Intent startDownload = new Intent(this, GeoTagStoreList.class); + startActivity(startDownload); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + Snackbar.make(headerView, R.string.title_store_list_download_data, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + + } else if (id == R.id.nav_exit) { + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(getResources().getString(R.string.want_to_exit)).setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), (dialog, id12) -> { + ActivityCompat.finishAffinity(MainActivity.this); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + }).setNegativeButton(getResources().getString(R.string.cancel), (dialog, which) -> { + dialog.dismiss(); + }); + AlertDialog alert = builder.create(); + alert.show(); + + } else if (id == R.id.nav_setting) { + Intent startDownload = new Intent(this, SettingsActivity.class); + startActivity(startDownload); + finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (id == R.id.nav_services) { + Intent startservice = new Intent(this, ServiceActivity.class); + startActivity(startservice); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (id == R.id.nav_future_jcp) { + Intent startDownload = new Intent(this, FutureJCPActivity.class); + startActivity(startDownload); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (id == R.id.nav_planogram) { + if (checkNetIsAvailable()) { + Intent planogram_pdf = new Intent(this, PlanogramPDFActivity.class); + startActivity(planogram_pdf); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + Snackbar.make(webView, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + + } else if (id == R.id.nav_deviation) { + db.open(); + if (db.getSKUMasterData(null).isEmpty()) { + Snackbar.make(webView, R.string.title_store_list_download_data, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } else { + Intent in = new Intent(this, StoreListActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_DEVIATION); + startActivity(in); + } + } else if (id == R.id.nav_delivery_call) { + Intent in = new Intent(this, DeliveryCallActivity.class); + startActivity(in); + + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (id == R.id.nav_pharmacy_stores) { + Intent in = new Intent(this, StoreListActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_PHARMA); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (id == R.id.nav_additional_stores) { + db.open(); + if (db.getSKUMasterData(null).isEmpty()) { + Snackbar.make(webView, R.string.title_store_list_download_data, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } else { + Intent in = new Intent(this, StoreListActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_ADDITIONAL); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + } else if (id == R.id.nav_additional_adhoc_stores) { + db.open(); + if (db.getSKUMasterData(null).isEmpty()) { + Snackbar.make(webView, R.string.title_store_list_download_data, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } else { + Intent in = new Intent(this, StoreListActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_ADDITIONAL_ADHOC); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + } else if (id == R.id.nav_counterfeit_indicator) { + Intent intent = new Intent(this, CounterfeitIndicatorWebActivity.class); + startActivity(intent); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + return true; + } + + private class MyWebViewClient extends WebViewClient { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + imageView.setVisibility(View.INVISIBLE); + webView.setVisibility(View.VISIBLE); + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + + } + + public boolean checkNetIsAvailable() { + ConnectivityManager cm = + (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + + NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); + boolean isConnected = activeNetwork != null && + activeNetwork.isConnectedOrConnecting(); + return isConnected; + } + + public boolean isStoreCheckedIn() { + + boolean result_flag = true; + for (int i = 0; i < coverageList.size(); i++) { + + String status = coverageList.get(i).getStatus(); + if (status.equals(CommonString.KEY_INVALID) || status.equals(CommonString.KEY_VALID)) { + result_flag = false; + error_msg = getResources().getString(R.string.title_store_list_checkout_current); + break; + } + } + + return result_flag; + } + + public boolean isValid() { + boolean flag = false; + String storestatus = ""; + for (int i = 0; i < coverageList.size(); i++) { + + StoreBean store_data = db.getSpecificStoreData(date, coverageList.get(i).getStoreId(), coverageList.get(i).getFlag_from()); + + storestatus = store_data.getUPLOAD_STATUS(); + String coverage_status = store_data.getCHECKOUT_STATUS(); + + if (!storestatus.equalsIgnoreCase(CommonString.KEY_U) && !storestatus.equalsIgnoreCase(CommonString.KEY_UN)) { + if ((coverage_status.equalsIgnoreCase(CommonString.KEY_Y) || storestatus.equalsIgnoreCase(CommonString.KEY_P) || + storestatus.equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE))) { + flag = true; + break; + + } + } + } + + if (!flag) + error_msg = getResources().getString(R.string.no_data_for_upload); + + return flag; + } + + public boolean isPreviousValid(String visit_date) { + boolean isvalid = false; + ArrayList coverage_list = db.getPreviousCoverageData(visit_date, null); + for (int i = 0; i < coverage_list.size(); i++) { + StoreBean storeData = db.getSpecificStoreData(coverage_list.get(i).getVisitDate(), coverage_list.get(i).getStoreId(), coverage_list.get(i).getFlag_from()); + if (storeData.getSTORE_ID() != null) { + + if (!storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U) && !storeData.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_UN) && (storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_Y) || + storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_L) || storeData.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_P))) { + isvalid = true; + break; + } + } + } + return isvalid; + } + + //for download + public void downloadMethod() { + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(getResources().getString(R.string.want_to_download)).setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), (dialog, id) -> { + if (checkNetIsAvailable()) { + boolean previousflag = false; + if (db.isPreviousCoverageDataFilled(date)) { + if (isPreviousValid(date)) { + previousflag = true; + } else { + db.deletePreviousCoverageData(date); + } + } + + if (previousflag) { + AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this); + builder1.setTitle("Parinaam"); + builder1.setMessage(getResources().getString(R.string.previous_data_upload)).setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), (dialog1, id1) -> { + Intent in = new Intent(context, PreviousDataUploadActivity.class); + startActivity(in); + //finish(); + }); + AlertDialog alert = builder1.create(); + alert.show(); + + } else { + Intent in = new Intent(context, DownloadActivity.class); + startActivity(in); + } + } else { + Snackbar.make(webView, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + }).setNegativeButton(getResources().getString(R.string.cancel), (dialog, which) -> { + dialog.dismiss(); + }); + AlertDialog alert = builder.create(); + alert.show(); + + + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MovableFloatingActionButton.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MovableFloatingActionButton.java new file mode 100644 index 0000000..f0969a8 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MovableFloatingActionButton.java @@ -0,0 +1,98 @@ +package cpm.com.gskmtorange; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +public class MovableFloatingActionButton extends FloatingActionButton implements View.OnTouchListener { + + private final static float CLICK_DRAG_TOLERANCE = 10; // Often, there will be a slight, unintentional, drag when the user taps the FAB, so we need to account for this. + + private float downRawX, downRawY; + private float dX, dY; + + public MovableFloatingActionButton(Context context) { + super(context); + init(); + } + + public MovableFloatingActionButton(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public MovableFloatingActionButton(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(); + } + + private void init() { + setOnTouchListener(this); + } + + @Override + public boolean onTouch(View view, MotionEvent motionEvent){ + + int action = motionEvent.getAction(); + if (action == MotionEvent.ACTION_DOWN) { + + downRawX = motionEvent.getRawX(); + downRawY = motionEvent.getRawY(); + dX = view.getX() - downRawX; + dY = view.getY() - downRawY; + + return true; // Consumed + + } + else if (action == MotionEvent.ACTION_MOVE) { + + int viewWidth = view.getWidth(); + int viewHeight = view.getHeight(); + + View viewParent = (View)view.getParent(); + int parentWidth = viewParent.getWidth(); + int parentHeight = viewParent.getHeight(); + + float newX = motionEvent.getRawX() + dX; + newX = Math.max(0, newX); // Don't allow the FAB past the left hand side of the parent + newX = Math.min(parentWidth - viewWidth, newX); // Don't allow the FAB past the right hand side of the parent + + float newY = motionEvent.getRawY() + dY; + newY = Math.max(0, newY); // Don't allow the FAB past the top of the parent + newY = Math.min(parentHeight - viewHeight, newY); // Don't allow the FAB past the bottom of the parent + + view.animate() + .x(newX) + .y(newY) + .setDuration(0) + .start(); + + return true; // Consumed + + } + else if (action == MotionEvent.ACTION_UP) { + + float upRawX = motionEvent.getRawX(); + float upRawY = motionEvent.getRawY(); + + float upDX = upRawX - downRawX; + float upDY = upRawY - downRawY; + + if (Math.abs(upDX) < CLICK_DRAG_TOLERANCE && Math.abs(upDY) < CLICK_DRAG_TOLERANCE) { // A click + return performClick(); + } + else { // A drag + return true; // Consumed + } + + } + else { + return super.onTouchEvent(motionEvent); + } + + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Paralleldots/PdJavaImageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Paralleldots/PdJavaImageActivity.java new file mode 100644 index 0000000..39d975f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Paralleldots/PdJavaImageActivity.java @@ -0,0 +1,25 @@ +package cpm.com.gskmtorange.Paralleldots; + +import android.os.Bundle; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +import cpm.com.gskmtorange.R; + +public class PdJavaImageActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_pd_java_image); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java new file mode 100644 index 0000000..981130c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java @@ -0,0 +1,124 @@ +package cpm.com.gskmtorange; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Color; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.View; +import android.widget.Button; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; +import com.google.gson.Gson; + +import java.util.ArrayList; +import java.util.Locale; + +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.password.MPinActivity; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; + +public class SelectLanguageActivity extends AppCompatActivity implements View.OnClickListener { + Button btn_lang_1, btn_lang_2; + private Context context; + private SharedPreferences preferences = null; + private SharedPreferences.Editor editor = null; + LoginGetterSetter login_data; + ArrayList language, culture_id; + boolean selected_flag = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_select_language); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + editor = preferences.edit(); + btn_lang_1 = (Button) findViewById(R.id.btn_language_one); + btn_lang_2 = (Button) findViewById(R.id.btn_language_two); + login_data = (LoginGetterSetter) getIntent().getSerializableExtra(CommonString.KEY_LOGIN_DATA); + language = login_data.getCULTURE_NAME(); + culture_id = login_data.getCULTURE_ID(); + setDataFromSharedPreferences(login_data); + if (language.size() > 1) { + btn_lang_1.setText(language.get(0)); + btn_lang_2.setText(language.get(1)); + btn_lang_1.setOnClickListener(this); + btn_lang_2.setOnClickListener(this); + } + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (selected_flag) { + /* Intent intent = new Intent(getBaseContext(), + MainActivity.class); + intent.putExtra(CommonString.KEY_LOGIN_DATA, login_data); + startActivity(intent); + finish();*/ + + Intent in = new Intent(context, MPinActivity.class); + in.putExtra(CommonString.IS_PASSWORD_CHECK, false); + startActivity(in); + finish(); + + } else { + Snackbar.make(view, getString(R.string.select_language), Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + } + }); + } + + @Override + public void onClick(View view) { + int id = view.getId(); + + switch (id) { + case R.id.btn_language_one: + selected_flag = true; + CommonFunctions.updateLangResources(context, language.get(0)); + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + btn_lang_1.setTextColor(getResources().getColor(R.color.white)); + btn_lang_2.setTextColor(getResources().getColor(R.color.black)); + 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)); + editor.commit(); + break; + + case R.id.btn_language_two: + selected_flag = true; + CommonFunctions.updateLangResources(context, language.get(1)); + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.grey_background)); + btn_lang_1.setTextColor(getResources().getColor(R.color.black)); + btn_lang_2.setTextColor(getResources().getColor(R.color.white)); + btn_lang_2.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + editor.putString(CommonString.KEY_LANGUAGE, language.get(1)); + editor.putString(CommonString.KEY_CULTURE_ID, culture_id.get(1)); + editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, login_data.getNOTICE_URL().get(1)); + editor.commit(); + break; + } + } + + private void setDataFromSharedPreferences(LoginGetterSetter lgs) { + Gson gson = new Gson(); + String jsonCurProduct = gson.toJson(lgs); + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(CommonString.KEY_LOOGIN_PREF, jsonCurProduct); + editor.commit(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java new file mode 100644 index 0000000..68639dc --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java @@ -0,0 +1,149 @@ +package cpm.com.gskmtorange; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.PixelFormat; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import androidx.appcompat.app.AppCompatActivity; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.password.MPinActivity; + +public class SplashScreenActivity extends AppCompatActivity { + + private static int SPLASH_TIME_OUT = 3000; + LinearLayout linearLayout; + private Context context; + private SharedPreferences preferences = null; + + public void onAttachedToWindow() { + super.onAttachedToWindow(); + Window window = getWindow(); + window.setFormat(PixelFormat.RGBA_8888); + } + + /** + * Called when the activity is first created. + */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + setContentView(R.layout.activity_splash_main_layout); + + linearLayout = findViewById(R.id.lin_lay); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + context = this; + //StartAnimations(); + + sendToLogin(); + + /* File f = new File(CommonString.getImagesFolder(context)_OLD); + if(f!=null){ + File file[] = f.listFiles(); + if(file!=null){ + + for (int i=0;i0){ + UploadImageWithRetrofit.uploadedFiles = 0; + UploadImageWithRetrofit.totalFiles = file.length; + UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit( SplashScreenActivity.this); + uploadImg.UploadImageRecursive(SplashScreenActivity.this); + } + else { + sendToLogin(); + }*//* + }else { + sendToLogin(); + } + + } + else { + sendToLogin(); + } +*/ + + } + /* private void StartAnimations() { + Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); + anim.reset(); + LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay); + l.clearAnimation(); + l.startAnimation(anim); + + anim = AnimationUtils.loadAnimation(this, R.anim.translate); + anim.reset(); + ImageView iv = (ImageView) findViewById(R.id.logo); + iv.clearAnimation(); + iv.startAnimation(anim); + + }*/ + + public void sendToLogin() { + new Handler().postDelayed(new Runnable() { + + /* + * Showing splash screen with a timer. This will be useful when you + * want to show case your app logo / company + */ + + @Override + public void run() { + //after Mpin + String mpin = preferences.getString(CommonString.MPIN, null); + if (mpin != null) { + Intent in = new Intent(context, MPinActivity.class); + in.putExtra(CommonString.IS_PASSWORD_CHECK, true); + startActivity(in); + finish(); + } else { + Intent i = new Intent(context, LoginActivity.class); + startActivity(i); + finish(); + } + + } + }, SPLASH_TIME_OUT); + } + + public static String getCalculatedDate(String date, String dateFormat, int days) { + Calendar cal = Calendar.getInstance(); + @SuppressLint("SimpleDateFormat") SimpleDateFormat s = new SimpleDateFormat(dateFormat); + cal.add(Calendar.DAY_OF_YEAR, days); + try { + return s.format(new Date(s.parse(date).getTime())); + } catch (ParseException e) { + // TODO Auto-generated catch block + Log.e("TAG", "Error in Parsing Date : " + e.getMessage()); + } + return null; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/ListAdapter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/ListAdapter.java new file mode 100644 index 0000000..2812a42 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/ListAdapter.java @@ -0,0 +1,99 @@ +package cpm.com.gskmtorange.adapter; + +import android.content.ClipData; +import android.os.Build; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; + +import java.util.List; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.listener.DragListener; +import cpm.com.gskmtorange.listener.Listener; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; + +public class ListAdapter extends RecyclerView.Adapter + implements View.OnTouchListener { + + private List list; + private Listener listener; + + public ListAdapter(List list, Listener listener) { + this.list = list; + this.listener = listener; + } + + @Override + public ListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from( + parent.getContext()).inflate(R.layout.brand_item_top_item, parent, false); + return new ListViewHolder(view); + } + + @Override + public void onBindViewHolder(ListViewHolder holder, int position) { + holder.text.setText(list.get(position).getSKUGROUP_NAME()); + holder.linear_parent.setTag(position); + holder.linear_parent.setOnTouchListener(this); + holder.linear_parent.setOnDragListener(new DragListener(listener)); + } + + + @Override + public int getItemCount() { + return list.size(); + } + + @Override + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + ClipData data = ClipData.newPlainText("", ""); + View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + v.startDragAndDrop(data, shadowBuilder, v, 0); + } else { + v.startDrag(data, shadowBuilder, v, 0); + } + return true; + } + return false; + } + + public List getList() { + return list; + } + + void updateList(List list) { + this.list = list; + } + + public DragListener getDragInstance() { + if (listener != null) { + return new DragListener(listener); + } else { + Log.e("ListAdapter", "Listener wasn't initialized!"); + return null; + } + } + + class ListViewHolder extends RecyclerView.ViewHolder { + + TextView text; + LinearLayout linear_parent; + + ListViewHolder(View itemView) { + super(itemView); + + text = (TextView) itemView.findViewById(R.id.tv_brand); + linear_parent = (LinearLayout) itemView.findViewById(R.id.linear_parent); + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/MyAdapter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/MyAdapter.java new file mode 100644 index 0000000..1142a1c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/MyAdapter.java @@ -0,0 +1,148 @@ +package cpm.com.gskmtorange.adapter; + +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.Collections; +import java.util.List; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.listener.DragListener; +import cpm.com.gskmtorange.listener.Listener; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; + +/** + * Created by yadavendras on 17-10-2017. + */ + +public class MyAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + List data = Collections.emptyList(); + private Listener listener; + RecyclerView rec; + + public MyAdapter(Context context, List data, Listener listener, RecyclerView rec) { + + inflator = LayoutInflater.from(context); + this.data = data; + this.listener = listener; + this.rec = rec; + + } + + @Override + public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = inflator.inflate(R.layout.brand_item, parent, false); + + MyAdapter.MyViewHolder holder = new MyAdapter.MyViewHolder(view); + + return holder; + } + + @Override + public void onBindViewHolder(MyViewHolder holder, final int position) { + + final NoCameraDataGetterSetter current = data.get(position); + + if(current.getSKUGROUP_ID()!=null){ + if(current.getSKUGROUP_ID().equals("-1")){ + holder.parent_card.setVisibility(View.INVISIBLE); + } + else { + holder.parent_card.setVisibility(View.VISIBLE); + } + + LinearLayout.LayoutParams lprams = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.MATCH_PARENT); + + int width; + if(current.isVertical()){ + width = current.getFacing()* CommonString.UNIT_VERTICAL; + } + else { + width = current.getFacing()* CommonString.UNIT_HORIZONTAL; + } + + lprams.width = width; + lprams.setMargins(2,0,0,0); + holder.parent_card.setLayoutParams(lprams); + } + + final String name = current.getSKUGROUP_NAME(); + + holder.name.setText(name); + holder.tv_facing.setText(current.getFacing()+""); + + holder.linear_parent.setTag(position); + //holder.linear_parent.getLayoutParams().width = 100; + //holder.linear_parent.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); + holder.linear_parent.setOnDragListener(new DragListener(listener)); + + holder.linear_parent.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + //Blank item cannot be edited or deleted + if(!current.getSKUGROUP_ID().equals("-1")){ + listener.deleteItem(view, position, rec,current); + } + return false; + } + + }); + + } + + public DragListener getDragInstance() { + if (listener != null) { + return new DragListener(listener); + } else { + Log.e("ListAdapter", "Listener wasn't initialized!"); + return null; + } + } + + @Override + public int getItemCount() { + return data.size(); + } + + public List getList() { + return data; + } + + public void updateList(List list) { + this.data = list; + } + + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView name; + TextView tv_facing; + LinearLayout linear_parent; + CardView parent_card; + + public MyViewHolder(View itemView) { + super(itemView); + name = (TextView) itemView.findViewById(R.id.tv_brand); + tv_facing = (TextView) itemView.findViewById(R.id.tv_facing); + linear_parent = (LinearLayout) itemView.findViewById(R.id.linear_parent); + parent_card = (CardView) itemView.findViewById(R.id.parent_card); + + } + + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/SavedImagesAdapter.kt b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/SavedImagesAdapter.kt new file mode 100644 index 0000000..2f9a217 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/SavedImagesAdapter.kt @@ -0,0 +1,37 @@ +package cpm.com.gskmtorange.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.google.android.material.imageview.ShapeableImageView +import cpm.com.gskmtorange.R +import cpm.com.gskmtorange.adapter.data.ImageUri +import cpm.com.gskmtorange.constant.CommonUtils.imgPreviewwithError + +class SavedImagesAdapter(private val context: Context, private val images: List) : + RecyclerView.Adapter() { + + class SavedImageViewHolder(view: View) : RecyclerView.ViewHolder(view) { + val imageView: ShapeableImageView = view.findViewById(R.id.imageView) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SavedImageViewHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_image, parent, false) + return SavedImageViewHolder(view) + } + + override fun onBindViewHolder(holder: SavedImageViewHolder, position: Int) { + imgPreviewwithError( + context = context, + url = images[position].uri, + imgView = holder.imageView, + R.drawable.pdr + ) + } + + override fun getItemCount(): Int = images.size + +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/SubCatPdAdapter.kt b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/SubCatPdAdapter.kt new file mode 100644 index 0000000..c00b8fa --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/SubCatPdAdapter.kt @@ -0,0 +1,65 @@ +package cpm.com.gskmtorange.adapter + +import android.annotation.SuppressLint +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter +import cpm.com.gskmtorange.adapter.data.ImageUri +import cpm.com.gskmtorange.databinding.ItemSubcategoryPdBinding + +class SubCatPdAdapter( + val category: String?, + var context: Context, + private var subcates: ArrayList?, + private val btnlistener: BtnClickListener, +) : RecyclerView.Adapter() { + class CustomViewHolder(view: View) : RecyclerView.ViewHolder(view) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = CustomViewHolder( + ItemSubcategoryPdBinding.inflate(LayoutInflater.from(context), parent, false).root + ) + + @SuppressLint( + "NotifyDataSetChanged", "ClickableViewAccessibility", + "UseCompatLoadingForDrawables", "SetTextI18n" + ) + override fun onBindViewHolder(holder: CustomViewHolder, position: Int) { + ItemSubcategoryPdBinding.bind(holder.itemView).apply { + val subcat = subcates!![position] + tvSubCategory.text = "$category - ${subcat.suB_CATEGORY}" + imgStartSession.setOnClickListener { + btnlistener.onStartSessionClick(_pos = position, data = subcat) + } + + val savedImagesAdapter = + SavedImagesAdapter(context = context, images = subcat.imageUris) + imgRecycler.adapter = savedImagesAdapter + imgRecycler.setLayoutManager(GridLayoutManager(context, 3)) + } + } + + override fun getItemCount(): Int { + return subcates!!.size + } + + interface BtnClickListener { + fun onStartSessionClick(_pos: Int, data: CategoryPictureGetterSetter) + } + + @SuppressLint("NotifyDataSetChanged") + fun addsubCatItems(langList: ArrayList?) { + subcates = langList + notifyDataSetChanged() + } + + fun updateItem(position: Int, uris: List) { + subcates!![position].imageUris = (subcates!![position].imageUris + ?: ArrayList()).apply { addAll(uris as ArrayList) } + notifyItemChanged(position) + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/data/ImageUri.kt b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/data/ImageUri.kt new file mode 100644 index 0000000..f6b3a41 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/adapter/data/ImageUri.kt @@ -0,0 +1,3 @@ +package cpm.com.gskmtorange.adapter.data + +data class ImageUri(val uri: String, val modify_uri: String) diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/autoupdate/AutoUpdateActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/autoupdate/AutoUpdateActivity.java new file mode 100644 index 0000000..8341c9f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/autoupdate/AutoUpdateActivity.java @@ -0,0 +1,306 @@ +package cpm.com.gskmtorange.autoupdate; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.os.Bundle; +import android.util.Log; +import android.widget.ProgressBar; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.FileProvider; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.DecimalFormat; +import java.util.Locale; + +import cpm.com.gskmtorange.LoginActivity; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; + +public class AutoUpdateActivity extends AppCompatActivity { + private Context context; + String versionCode; + int length; + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private Data data; + String path = "", p, s; + ProgressBar progressBar; + private boolean status; + private SharedPreferences preferences; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login); + Intent intent = getIntent(); + context = this; + path = intent.getStringExtra(CommonString.KEY_PATH); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Parinaam"); + builder.setMessage(getString(R.string.new_update_available)) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + SharedPreferences preferences = PreferenceManager + .getDefaultSharedPreferences(AutoUpdateActivity.this); + SharedPreferences.Editor editor = preferences.edit(); + editor.clear(); + editor.commit(); + + /*new File( + "/data/data/com.cpm.gsk_mt/databases/GTMT_DATABASE") + .delete();*/ + + new DownloadTask(AutoUpdateActivity.this).execute(); + + } + }); + + AlertDialog alert = builder.create(); + + alert.show(); + + } + + private class DownloadTask extends AsyncTask { + + private Context context; + + DownloadTask(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom_layout); + dialog.setTitle("Download"); + dialog.setCancelable(false); + dialog.show(); + + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + + } + + @Override + protected String doInBackground(Void... params) { + + try { + data = new Data(); + data.name = "Downloading Application"; + publishProgress(data); + + versionCode = getPackageManager().getPackageInfo( + getPackageName(), 0).versionName; + + data.name = "Upgrading Version : " + versionCode; + publishProgress(data); + + // download application + URL url = new URL(path); + HttpURLConnection c = (HttpURLConnection) url.openConnection(); + c.setRequestMethod("GET"); + // c.setDoOutput(true); + c.getResponseCode(); + c.connect(); + length = c.getContentLength(); + + String size = new DecimalFormat("##.##") + .format((double) ((double) length / 1024) / 1024) + + " MB"; + Log.e("appsize",size); + + /*String PATH = Environment.getExternalStorageDirectory() + + "/download/";*/ + String PATH = CommonString.getApkFolder(context); + File file = new File(PATH); + // file.mkdirs(); + File outputFile = new File(file, "app.apk"); + FileOutputStream fos = new FileOutputStream(outputFile); + + InputStream is = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is.read(buffer)) != -1) { + + bytes = (bytes + len1); + + s = new DecimalFormat("##.##") + .format((double) ((double) (bytes / 1024)) / 1024); + + p = s.length() == 3 ? s + "0" : s; + + p = p + " MB"; + data.value = (int) ((double) (((double) bytes) / length) * 100); + + data.name = "Download " + p + "/" + size; + publishProgress(data); + + fos.write(buffer, 0, len1); + + } + fos.close(); + is.close(); + + return CommonString.KEY_SUCCESS; + + } catch (PackageManager.NameNotFoundException e) { + // TODO Auto-generated catch block + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_EXCEPTION, "download", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } catch (MalformedURLException e) { + + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_EXCEPTION, "download", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + + } catch (IOException e) { + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_SOCKETEXCEPTION, "update", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.MESSAGE_SOCKETEXCEPTION); + } + }); + } catch (Exception e) { + /* final AlertMessage message = new AlertMessage( + AutoUpdateActivity.this, + AlertMessage.MESSAGE_EXCEPTION, "download", e);*/ + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } + + return ""; + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + + } + + @Override + protected void onPostExecute(String result) { + + super.onPostExecute(result); + dialog.dismiss(); + + if (result.equals(CommonString.KEY_SUCCESS)) { + + /* File toInstall = new File(Environment.getExternalStorageDirectory() + + "/download/" + + "app.apk");*/ + File toInstall = new File(CommonString.getApkFolder(context) + "app.apk"); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Uri apkUri = FileProvider.getUriForFile(context, "cpm.com.gskmtorange.fileprovider", toInstall); + Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); + intent.setData(apkUri); + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + startActivity(intent); + } else { + Uri apkUri = Uri.fromFile(toInstall); + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + } + + AutoUpdateActivity.this.finish(); + } + + } + + } + + class Data { + int value; + String name; + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(AutoUpdateActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + finish(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BigButtonView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BigButtonView.java new file mode 100644 index 0000000..4dc4e49 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BigButtonView.java @@ -0,0 +1,241 @@ +package cpm.com.gskmtorange.blurlockview; + +import android.animation.ObjectAnimator; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Typeface; +import android.util.AttributeSet; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import cpm.com.gskmtorange.R; + + +/** + * Created by Weiping on 2016/3/16. + */ + +public class BigButtonView extends FrameLayout { + + private FrameLayout frameLayout; + private View clickEffect; + private TextView text; + private TextView subText; + private String textString = ""; + private String subTextString = ""; + private ObjectAnimator clickEffectAnimator; + private int duration = 500; + private OnPressListener onPressListener; + + public BigButtonView(Context context) { + this(context, null); + } + + public BigButtonView(Context context, AttributeSet attrs) { + super(context, attrs); + + LayoutInflater.from(context).inflate(R.layout.big_button_view, this, true); + + Resources resources = getResources(); + + frameLayout = (FrameLayout)findViewById(R.id.frame_layout); + + text = (TextView)findViewById(R.id.text); + text.setText(textString); + text.setTextColor(ContextCompat.getColor(context, R.color.default_big_button_text_color)); + text.setTextSize(resources.getInteger(R.integer.default_big_button_text_size)); + + subText = (TextView)findViewById(R.id.sub_text); + subText.setText(subTextString); + subText.setTextColor(ContextCompat.getColor(context, R.color.default_big_button_sub_text_color)); + subText.setTextSize(resources.getInteger(R.integer.default_big_button_sub_text_size)); + + clickEffect = findViewById(R.id.click_effect); + clickEffect.setAlpha(0); + clickEffectAnimator = ObjectAnimator.ofFloat(clickEffect, "alpha", 1f, 0f); + clickEffectAnimator.setDuration(duration); + } + + /** + * Set the listener, for returning what happened to BlurLockView. + * + * @param onPressListener OnPressListener. + */ + public void setOnPressListener(OnPressListener onPressListener) { + this.onPressListener = onPressListener; + } + + /** + * Set the width of the button. + * + * @param width Width, in pixels. + */ + public void setWidth(int width) { + ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams(); + layoutParams.width = width; + frameLayout.setLayoutParams(layoutParams); + } + + /** + * Set the height of the button. + * + * @param height Height, in pixels. + */ + public void setHeight(int height) { + ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams(); + layoutParams.height = height; + frameLayout.setLayoutParams(layoutParams); + } + + /** + * Set the resource of background. + * + * @param resourceId ResourceId. + */ + public void setBackground(int resourceId) { + frameLayout.setBackgroundResource(resourceId); + } + + /** + * Set the resource of click effect. + * + * @param resourceId ResourceId. + */ + public void setEffect(int resourceId) { + clickEffect.setBackgroundResource(resourceId); + } + + /** + * Set the duration of the effect. + * + * @param duration Duration, in ms. + */ + public void setEffectDuration(int duration) { + this.duration = duration; + } + + /** + * Set the text size of the main text. + * + * @param size Text size, in sp. + */ + public void setTextSize(int size) { + text.setTextSize(TypedValue.COMPLEX_UNIT_SP, size); + } + + /** + * Set the text size of the sub text. + * + * @param size Text size, in sp. + */ + public void setSubTextSize(int size) { + subText.setTextSize(TypedValue.COMPLEX_UNIT_SP, size); + } + + /** + * Set the text color of main text. + * + * @param color Color. + */ + public void setTextColor(int color) { + text.setTextColor(color); + } + + /** + * Set the text color of sub text. + * + * @param color Color. + */ + public void setSubTextColor(int color) { + subText.setTextColor(color); + } + + /** + * Set font of button. + * + * @param typeFace New font. + */ + public void setTypeFace(Typeface typeFace) { + text.setTypeface(typeFace); + subText.setTypeface(typeFace); + } + + /** + * Set the string of the text. + * + * @param textString The new string. + */ + public void setText(String textString) { + this.textString = textString; + if (text != null) text.setText(textString); + } + + /** + * Set the string of the sub text. + * + * @param subTextString The new string. + */ + public void setSubText(String subTextString) { + this.subTextString = subTextString; + if (subText != null) subText.setText(subTextString); + } + + /** + * Set the visibility of sub textview. + * + * @param visibility The visibility. + */ + public void setSubTextVisibility(int visibility) { + if (visibility == GONE) { + text.setGravity(Gravity.CENTER); + } else { + text.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM); + } + subText.setVisibility(visibility); + } + + /** + * Perform the click effect. + * + * @param event MotionEvent. + * @return + */ + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + switch(event.getAction()){ + case MotionEvent.ACTION_DOWN: + if (onPressListener != null) onPressListener.onPress(textString); + clickEffectAnimator.cancel(); + clickEffect.setAlpha(1); + break; + case MotionEvent.ACTION_UP: + clickEffectAnimator.start(); + break; + default:break; + } + + return super.dispatchTouchEvent(event); + } + + /** + * Clear the animation. + */ + public void clearAnimation() { + if (clickEffect.getAlpha() == 1) { + clickEffectAnimator.cancel(); + clickEffectAnimator.start(); + } + } + + public interface OnPressListener { + void onPress(String string); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurLockView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurLockView.java new file mode 100644 index 0000000..8e0163d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurLockView.java @@ -0,0 +1,871 @@ +package cpm.com.gskmtorange.blurlockview; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; +import android.app.Activity; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Point; +import android.graphics.Typeface; +import android.util.AttributeSet; +import android.view.Display; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.LinearLayout; +import android.widget.TextView; + + +import androidx.core.content.ContextCompat; + +import java.util.Stack; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.blurlockview.Directions.HideType; +import cpm.com.gskmtorange.blurlockview.Directions.ShowType; +import cpm.com.gskmtorange.blurlockview.Eases.EaseType; + +/** + * Created by Weiping on 2016/3/16. + */ +public class BlurLockView extends FrameLayout + implements + BigButtonView.OnPressListener, + SmallButtonView.OnPressListener { + + private final char CHARS[][] = { + {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}, + {'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'}, + { 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L' }, + { 'Z', 'X', 'C', 'V', 'B', 'N', 'M' } + }; + + private Password type = Password.NUMBER; + + private int passwordLength = 4; + private String correctPassword = null; + private int incorrectInputTimes = 0; + private Typeface typeface; + + private boolean animationIsPlaying = false; + + public boolean isIs_Password_Check_Mode() { + return is_Password_Check_Mode; + } + + public void setIs_Password_Check_Mode(boolean is_Password_Check_Mode) { + this.is_Password_Check_Mode = is_Password_Check_Mode; + } + + private boolean is_Password_Check_Mode = false; + + private Stack passwordStack = null; + + private TextView title; + private Indicator indicator; + + private BigButtonView[] bigButtonViews; + private SmallButtonView[][] smallButtonViews; + private BlurView mBlurView; + private TextView leftButton; + private TextView rightButton; + + private OnLeftButtonClickListener onLeftButtonClickListener; + private OnPasswordInputListener onPasswordInputListener; + + public BlurLockView(Context context) { + this(context, null); + } + + public BlurLockView(Context context, AttributeSet attrs) { + super(context, attrs); + + init(); + } + + /** + * Init. + */ + private void init() { + // number password + LayoutInflater.from(getContext()).inflate(R.layout.number_lock_view, this, true); + + bigButtonViews = new BigButtonView[10]; + bigButtonViews[0] = (BigButtonView)findViewById(R.id.button_0); + bigButtonViews[1] = (BigButtonView)findViewById(R.id.button_1); + bigButtonViews[2] = (BigButtonView)findViewById(R.id.button_2); + bigButtonViews[3] = (BigButtonView)findViewById(R.id.button_3); + bigButtonViews[4] = (BigButtonView)findViewById(R.id.button_4); + bigButtonViews[5] = (BigButtonView)findViewById(R.id.button_5); + bigButtonViews[6] = (BigButtonView)findViewById(R.id.button_6); + bigButtonViews[7] = (BigButtonView)findViewById(R.id.button_7); + bigButtonViews[8] = (BigButtonView)findViewById(R.id.button_8); + bigButtonViews[9] = (BigButtonView)findViewById(R.id.button_9); + + String[] texts = getResources().getStringArray(R.array.default_big_button_text); + String[] subTexts = getResources().getStringArray(R.array.default_big_button_sub_text); + for (int i = 0; i < 10; i++) { + bigButtonViews[i].setOnPressListener(this); + bigButtonViews[i].setText(texts[i]); + //bigButtonViews[i].setSubText(subTexts[i]); + } + + bigButtonViews[0].setSubTextVisibility(View.GONE); + bigButtonViews[1].setSubTextVisibility(View.INVISIBLE); + + // text password + smallButtonViews = new SmallButtonView[4][10]; + + // get screen width + Display display = ((Activity)getContext()).getWindowManager().getDefaultDisplay(); + Point size = new Point(); + display.getSize(size); + int width = size.x; + + int buttonHorizontalMargin = 6; + int buttonVerticalMargin = 24; + int buttonWidth = (width - 11 * buttonHorizontalMargin) / 10; + + // add buttons to lines + LinearLayout line1 = (LinearLayout)findViewById(R.id.line_1); + for (int i = 0; i < 10; i++) { + smallButtonViews[0][i] = new SmallButtonView(getContext()); + smallButtonViews[0][i].setOnPressListener(this); + smallButtonViews[0][i].setText(CHARS[0][i] + ""); + smallButtonViews[0][i].setWidth(buttonWidth); + smallButtonViews[0][i].setHeight(buttonWidth); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + buttonWidth, + buttonWidth + ); + if (i == 0) + params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + else if (i == 9) + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2); + else + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + line1.addView(smallButtonViews[0][i], params); + } + + LinearLayout line2 = (LinearLayout)findViewById(R.id.line_2); + for (int i = 0; i < 10; i++) { + smallButtonViews[1][i] = new SmallButtonView(getContext()); + smallButtonViews[1][i].setOnPressListener(this); + smallButtonViews[1][i].setText(CHARS[1][i] + ""); + smallButtonViews[1][i].setWidth(buttonWidth); + smallButtonViews[1][i].setHeight(buttonWidth); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + buttonWidth, + buttonWidth + ); + if (i == 0) + params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + else if (i == 9) + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2); + else + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + line2.addView(smallButtonViews[1][i], params); + } + + LinearLayout line3 = (LinearLayout)findViewById(R.id.line_3); + for (int i = 0; i < 9; i++) { + smallButtonViews[2][i] = new SmallButtonView(getContext()); + smallButtonViews[2][i].setOnPressListener(this); + smallButtonViews[2][i].setText(CHARS[2][i] + ""); + smallButtonViews[2][i].setWidth(buttonWidth); + smallButtonViews[2][i].setHeight(buttonWidth); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + buttonWidth, + buttonWidth + ); + + if (i == 0) + params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + else if (i == 8) + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2); + else + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + line3.addView(smallButtonViews[2][i], params); + } + + LinearLayout line4 = (LinearLayout)findViewById(R.id.line_4); + for (int i = 0; i < 7; i++) { + smallButtonViews[3][i] = new SmallButtonView(getContext()); + smallButtonViews[3][i].setOnPressListener(this); + smallButtonViews[3][i].setText(CHARS[3][i] + ""); + smallButtonViews[3][i].setWidth(buttonWidth); + smallButtonViews[3][i].setHeight(buttonWidth); + + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + buttonWidth, + buttonWidth + ); + + if (i == 0) + params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + else if (i == 6) + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2); + else + params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2); + line4.addView(smallButtonViews[3][i], params); + } + + passwordStack = new Stack<>(); + + mBlurView = (BlurView)findViewById(R.id.blurview); + mBlurView.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + + Resources resources = getResources(); + + indicator = (Indicator)findViewById(R.id.indicator); + indicator.setPasswordLength(passwordLength); + + title = (TextView)findViewById(R.id.title); + title.setTextColor(ContextCompat.getColor(getContext(), R.color.default_title_text_color)); + title.setTextSize(resources.getInteger(R.integer.default_title_text_size)); + + leftButton = (TextView)findViewById(R.id.left_button); + leftButton.setTextColor(ContextCompat.getColor(getContext(), R.color.default_left_button_text_color)); + leftButton.setTextSize(resources.getInteger(R.integer.default_left_button_text_size)); + leftButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (onLeftButtonClickListener != null) onLeftButtonClickListener.onClick(); + } + }); + + rightButton = (TextView)findViewById(R.id.right_button); + rightButton.setTextColor(ContextCompat.getColor(getContext(), R.color.default_right_button_text_color)); + rightButton.setTextSize(resources.getInteger(R.integer.default_right_button_text_size)); + rightButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (passwordStack.size() > 0) { + passwordStack.pop(); + indicator.delete(); + if (onPasswordInputListener != null){ + StringBuilder nowPassword = new StringBuilder(""); + for (String s : passwordStack) { + nowPassword.append(s); + } + onPasswordInputListener.clear(nowPassword.toString()); + } + + + } + } + }); + } + + /** + * Show the text keyboard smoothly or not. + * + * @param smoothly Smoothly or not. + */ + private void showText(boolean smoothly) { + if (animationIsPlaying) return; + animationIsPlaying = true; + if (smoothly) { + ObjectAnimator.ofFloat(findViewById(R.id.layout_123), "alpha", 1f, 0f) + .setDuration(500).start(); + ObjectAnimator.ofFloat(findViewById(R.id.layout_456), "alpha", 1f, 0f) + .setDuration(500).start(); + ObjectAnimator.ofFloat(findViewById(R.id.layout_789), "alpha", 1f, 0f) + .setDuration(500).start(); + ObjectAnimator.ofFloat(findViewById(R.id.button_0), "alpha", 1f, 0f) + .setDuration(500).start(); + ObjectAnimator showAnimator = + ObjectAnimator.ofFloat(findViewById(R.id.text_layout), "alpha", 0f, 1f); + showAnimator.setDuration(500).addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + super.onAnimationStart(animation); + findViewById(R.id.text_layout).setVisibility(VISIBLE); + } + + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + findViewById(R.id.layout_123).setVisibility(INVISIBLE); + findViewById(R.id.layout_456).setVisibility(INVISIBLE); + findViewById(R.id.layout_789).setVisibility(INVISIBLE); + findViewById(R.id.button_0).setVisibility(INVISIBLE); + animationIsPlaying = false; + } + }); + showAnimator.start(); + } else { + findViewById(R.id.layout_123).setVisibility(INVISIBLE); + findViewById(R.id.layout_456).setVisibility(INVISIBLE); + findViewById(R.id.layout_789).setVisibility(INVISIBLE); + findViewById(R.id.button_0).setVisibility(INVISIBLE); + findViewById(R.id.text_layout).setVisibility(VISIBLE); + animationIsPlaying = false; + } + } + + /** + * Show the number keyboard smoothly or not. + * + * @param smoothly Smoothly or not. + */ + private void showNumber(boolean smoothly) { + if (animationIsPlaying) return; + animationIsPlaying = true; + if (smoothly) { + ObjectAnimator.ofFloat(findViewById(R.id.layout_123), "alpha", 0f, 1f) + .setDuration(500).start(); + ObjectAnimator.ofFloat(findViewById(R.id.layout_456), "alpha", 0f, 1f) + .setDuration(500).start(); + ObjectAnimator.ofFloat(findViewById(R.id.layout_789), "alpha", 0f, 1f) + .setDuration(500).start(); + ObjectAnimator.ofFloat(findViewById(R.id.button_0), "alpha", 0f, 1f) + .setDuration(500).start(); + ObjectAnimator showAnimator = + ObjectAnimator.ofFloat(findViewById(R.id.text_layout), "alpha", 1f, 0f); + showAnimator.setDuration(500).addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + super.onAnimationStart(animation); + findViewById(R.id.layout_123).setVisibility(VISIBLE); + findViewById(R.id.layout_456).setVisibility(VISIBLE); + findViewById(R.id.layout_789).setVisibility(VISIBLE); + findViewById(R.id.button_0).setVisibility(VISIBLE); + } + + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + findViewById(R.id.text_layout).setVisibility(INVISIBLE); + animationIsPlaying = false; + } + }); + showAnimator.start(); + } else { + findViewById(R.id.layout_123).setVisibility(VISIBLE); + findViewById(R.id.layout_456).setVisibility(VISIBLE); + findViewById(R.id.layout_789).setVisibility(VISIBLE); + findViewById(R.id.button_0).setVisibility(VISIBLE); + findViewById(R.id.text_layout).setVisibility(INVISIBLE); + animationIsPlaying = false; + } + } + + /** + * Set the view that need to be blurred. + * + * @param blurredView The view. + */ + public void setBlurredView(View blurredView) { + mBlurView.setBlurredView(blurredView); + } + + /** + * Set the listener. + * + * @param onLeftButtonClickListener Listener. + */ + public void setOnLeftButtonClickListener(OnLeftButtonClickListener onLeftButtonClickListener) { + this.onLeftButtonClickListener = onLeftButtonClickListener; + } + + /** + * Set the listener. + * + * @param onPasswordInputListener Listener. + */ + public void setOnPasswordInputListener(OnPasswordInputListener onPasswordInputListener) { + this.onPasswordInputListener = onPasswordInputListener; + } + + /** + * From the button views. + * + * @param string The string from button views. + */ + @Override + public void onPress(String string) { + if (correctPassword == null) { + throw new RuntimeException("The correct password has NOT been set!"); + } + if (passwordStack.size() >= passwordLength) return; + passwordStack.push(string); + indicator.add(); + StringBuilder nowPassword = new StringBuilder(""); + for (String s : passwordStack) { + nowPassword.append(s); + } + String nowPasswordString = nowPassword.toString(); + if (correctPassword.equals(nowPasswordString)) { + // correct password + if (onPasswordInputListener != null) + onPasswordInputListener.correct(nowPasswordString); + } else { + if (correctPassword.length() > nowPasswordString.length()) { + // input right now + if (onPasswordInputListener != null) + onPasswordInputListener.input(nowPasswordString); + } else { + // incorrect password + if (onPasswordInputListener != null) + onPasswordInputListener.incorrect(nowPasswordString); + if(is_Password_Check_Mode){ + // perform the clear animation + incorrectInputTimes++; + indicator.clear(); + passwordStack.clear(); + } + } + } + } + + /** + * Prevent click 2 or above buttons at the same time. + * + * @param event + * @return + */ + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (event.getPointerCount() > 1) { + if (Password.NUMBER.equals(type)) { + for (int i = 0; i < bigButtonViews.length; i++) bigButtonViews[i].clearAnimation(); + } else if (Password.TEXT.equals(type)) { + for (int i = 0; i < smallButtonViews.length; i++) { + for (int j = 0; j < smallButtonViews[i].length; j++) { + if (smallButtonViews[i][j] != null) smallButtonViews[i][j].clearAnimation(); + } + } + } + return true; + } + return super.dispatchTouchEvent(event); + } + + /** + * Set big buttons' background. + * + * @param id + */ + public void setBigButtonViewsBackground(int id) { + for (int i = 0; i < 10; i++) bigButtonViews[i].setBackground(id); + } + + /** + * Set big buttons' click effect. + * + * @param id + */ + public void setBigButtonViewsClickEffect(int id) { + for (int i = 0; i < 10; i++) bigButtonViews[i].setEffect(id); + } + + /** + * Set the click effect duration. + * + * @param duration + */ + public void setBigButtonViewsClickEffectDuration(int duration) { + for (int i = 0; i < 10; i++) bigButtonViews[i].setEffectDuration(duration); + } + + /** + * Set small buttons' background. + * + * @param id + */ + public void setSmallButtonViewsBackground(int id) { + for (int i = 0; i < smallButtonViews.length; i++) + for (int j = 0; j < smallButtonViews[i].length; j++) + if (smallButtonViews[i][j] != null) + smallButtonViews[i][j].setBackground(id); + } + + /** + * Set small buttons' click effect. + * + * @param id + */ + public void setSmallButtonViewsClickEffect(int id) { + for (int i = 0; i < smallButtonViews.length; i++) + for (int j = 0; j < smallButtonViews[i].length; j++) + if (smallButtonViews[i][j] != null) + smallButtonViews[i][j].setEffect(id); + } + + /** + * Set the click effect duration. + * + * @param duration + */ + public void setSmallButtonViewsClickEffectDuration(int duration) { + for (int i = 0; i < smallButtonViews.length; i++) + for (int j = 0; j < smallButtonViews[i].length; j++) + if (smallButtonViews[i][j] != null) + smallButtonViews[i][j].setEffectDuration(duration); + } + + /** + * Set all the fonts. + * + * @param typeface + */ + public void setTypeface(Typeface typeface) { + this.typeface = typeface; + if (type.equals(Password.NUMBER)) { + for (int i = 0; i < 10; i++) bigButtonViews[i].setTypeFace(typeface); + } else if (type.equals(Password.TEXT)) { + for (int i = 0; i < smallButtonViews.length; i++) + for (int j = 0; j < smallButtonViews[i].length; j++) + if (smallButtonViews[i][j] != null) + smallButtonViews[i][j].setTypeFace(typeface); + } + title.setTypeface(typeface); + leftButton.setTypeface(typeface); + rightButton.setTypeface(typeface); + } + + /** + * Set all the text color. + * + * @param color + */ + public void setTextColor(int color) { + if (type.equals(Password.NUMBER)) { + for (int i = 0; i < 10; i++) { + bigButtonViews[i].setTextColor(color); + bigButtonViews[i].setSubTextColor(color); + } + } else if (type.equals(Password.TEXT)) { + for (int i = 0; i < smallButtonViews.length; i++) + for (int j = 0; j < smallButtonViews[i].length; j++) + if (smallButtonViews[i][j] != null) + smallButtonViews[i][j].setTextColor(color); + } + title.setTextColor(color); + leftButton.setTextColor(color); + rightButton.setTextColor(color); + } + + /** + * Set the length of the password. + * Default length is 4. + * + * @param passwordLength + */ + public void setPasswordLength(int passwordLength) { + this.passwordLength = passwordLength; + indicator.setPasswordLength(passwordLength); + passwordStack.clear(); + correctPassword = null; + } + + /** + * Get the password type. + * + * @return + */ + public Password getType() { + return type; + } + + /** + * Set the password type. + * + * @param type Number or text. + */ + public void setType(Password type, boolean smoothly) { + if (animationIsPlaying) return; + this.type = type; + indicator.clear(); + passwordStack.clear(); + if (Password.NUMBER.equals(type)) { + showNumber(smoothly); + } else if (Password.TEXT.equals(type)) { + showText(smoothly); + } + } + + /** + * Set the title text. + * + * @param string + */ + public void setTitle(String string) { + title.setText(string); + } + + /** + * Set the text of left button. + * + * @param string + */ + public void setLeftButton(String string) { + leftButton.setText(string); + } + + /** + * Set the text of right button. + * + * @param string + */ + public void setRightButton(String string) { + rightButton.setText(string); + } + + /** + * Set the target password. + * + * @param correctPassword The target password. + */ + public void setCorrectPassword(String correctPassword) { + setPasswordLength(correctPassword.length()); + this.correctPassword = correctPassword; + } + + /** + * You can use this to reset the incorrect input times. + * + * @param incorrectInputTimes The incorrect input times. + */ + public void setIncorrectInputTimes(int incorrectInputTimes) { + this.incorrectInputTimes = incorrectInputTimes; + } + + /** + * Return the incorrect input times. + * + * @return Incorrect input times. + */ + public int getIncorrectInputTimes() { + return incorrectInputTimes; + } + + /** + * Invalidate the blur view. + */ + public void update() { + mBlurView.invalidate(); + } + + /** + * Show this BlurLockView. + * + * @param duration Duration, in ms. + * @param showType Direction, in ShowType. + * @param easeType Ease type, in EaseType. + */ + public void show(int duration, ShowType showType, EaseType easeType) { + if (animationIsPlaying) return; + animationIsPlaying = true; + indicator.clear(); + passwordStack.clear(); + ObjectAnimator animator = null; + setVisibility(VISIBLE); + if (showType.equals(ShowType.FROM_TOP_TO_BOTTOM)) { + animator = ObjectAnimator.ofFloat(this, "translationY", + getTranslationY() - getHeight(), + getTranslationY()); + } else if (showType.equals(ShowType.FROM_RIGHT_TO_LEFT)) { + animator = ObjectAnimator.ofFloat(this, "translationX", + getTranslationX() + getWidth(), + getTranslationX()); + } else if (showType.equals(ShowType.FROM_BOTTOM_TO_TOP)) { + animator = ObjectAnimator.ofFloat(this, "translationY", + getTranslationY() + getHeight(), + getTranslationY()); + } else if (showType.equals(ShowType.FROM_LEFT_TO_RIGHT)) { + animator = ObjectAnimator.ofFloat(this, "translationX", + getTranslationX() - getWidth(), + getTranslationX()); + } else if (showType.equals(ShowType.FADE_IN)) { + animator = ObjectAnimator.ofFloat(this, "alpha", + 0, + 1); + } + animator.setDuration(duration); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + update(); + } + }); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + animationIsPlaying = false; + } + }); + animator.setInterpolator(InterpolatorFactory.getInterpolator(easeType)); + animator.start(); + } + + /** + * Hide this BlurLockView. + * + * @param duration Duration, in ms. + * @param hideType Direction, in HideType. + * @param easeType Ease type, in EaseType. + */ + public void hide(int duration, HideType hideType, EaseType easeType) { + if (animationIsPlaying) return; + animationIsPlaying = true; + ObjectAnimator animator = null; + final float originalX = getTranslationX(); + final float originalY = getTranslationY(); + if (hideType.equals(HideType.FROM_TOP_TO_BOTTOM)) { + animator = ObjectAnimator.ofFloat(this, "translationY", + getTranslationY(), + getTranslationY() + getHeight()); + } else if (hideType.equals(HideType.FROM_RIGHT_TO_LEFT)) { + animator = ObjectAnimator.ofFloat(this, "translationX", + getTranslationX(), + getTranslationX() - getWidth()); + } else if (hideType.equals(HideType.FROM_BOTTOM_TO_TOP)) { + animator = ObjectAnimator.ofFloat(this, "translationY", + getTranslationY(), + getTranslationY() - getHeight()); + } else if (hideType.equals(HideType.FROM_LEFT_TO_RIGHT)) { + animator = ObjectAnimator.ofFloat(this, "translationX", + getTranslationX(), + getTranslationX() + getWidth()); + } else if (hideType.equals(HideType.FADE_OUT)) { + animator = ObjectAnimator.ofFloat(this, "alpha", + 1, + 0); + } + animator.setDuration(duration); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + update(); + } + }); + animator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + setVisibility(INVISIBLE); + setTranslationX(originalX); + setTranslationY(originalY); + setAlpha(1); + animationIsPlaying = false; + } + }); + animator.setInterpolator(InterpolatorFactory.getInterpolator(easeType)); + animator.start(); + } + + public interface OnPasswordInputListener { + void correct(String inputPassword); + void incorrect(String inputPassword); + void input(String inputPassword); + void clear(String remainingPassword); + } + + public interface OnLeftButtonClickListener { + void onClick(); + } + + /** + * Get the title. + * @return + */ + public TextView getTitle() { + return title; + } + + /** + * Get the left button. + * @return + */ + public TextView getLeftButton() { + return leftButton; + } + + /** + * Get the right button. + * @return + */ + public TextView getRightButton() { + return rightButton; + } + + /** + * Get the numbers. + * @return + */ + public BigButtonView[] getBigButtonViews() { + return bigButtonViews; + } + + /** + * Get the texts. + * @return + */ + public SmallButtonView[][] getSmallButtonViews() { + return smallButtonViews; + } + + /** + * Set the blur radius. + */ + public void setBlurRadius(int blurRadius) { + mBlurView.setBlurRadius(blurRadius); + update(); + } + + /** + * Get the blur radius. + * @return + */ + public int getBlurRadius() { + return mBlurView.getBlurRadius(); + } + + /** + * Set the downsample factor. + * @param downsampleFactor + */ + public void setDownsampleFactor(int downsampleFactor) { + mBlurView.setDownsampleFactor(downsampleFactor); + update(); + } + + /** + * Get the downsample factor. + * @return + */ + public int getDownsampleFactor() { + return mBlurView.getDownsampleFactor(); + } + + /** + * Set the overlay color. + * @param color + */ + public void setOverlayColor(int color) { + mBlurView.setOverlayColor(color); + update(); + } + + /** + * Get the overlay color. + * @return + */ + public int getOverlayColor() { + return mBlurView.getmOverlayColor(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurView.java new file mode 100644 index 0000000..6a111c9 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurView.java @@ -0,0 +1,194 @@ +package cpm.com.gskmtorange.blurlockview; + +import android.content.Context; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.renderscript.Allocation; +import android.renderscript.Element; +import android.renderscript.RenderScript; +import android.renderscript.ScriptIntrinsicBlur; +import android.util.AttributeSet; +import android.view.View; + +import cpm.com.gskmtorange.R; + + +/** + * Created by Weiping on 2016/3/16. + */ +public class BlurView extends View { + + private int mBlurRadius; + private int mDownsampleFactor; + private int mOverlayColor; + + private View mBlurredView; + private int mBlurredViewWidth, mBlurredViewHeight; + + private boolean mDownsampleFactorChanged; + private Bitmap mBitmapToBlur, mBlurredBitmap; + private Canvas mBlurringCanvas; + private RenderScript mRenderScript; + private ScriptIntrinsicBlur mBlurScript; + private Allocation mBlurInput, mBlurOutput; + + public BlurView(Context context) { + this(context, null); + } + + public BlurView(Context context, AttributeSet attrs) { + super(context, attrs); + + final Resources res = getResources(); + final int defaultBlurRadius = res.getInteger(R.integer.default_blur_radius); + final int defaultDownsampleFactor = res.getInteger(R.integer.default_downsample_factor); + final int defaultOverlayColor = res.getColor(R.color.default_overlay_color); + + initializeRenderScript(context); + + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.BlurView); + setBlurRadius(a.getInt(R.styleable.BlurView_blurRadius, defaultBlurRadius)); + setDownsampleFactor(a.getInt(R.styleable.BlurView_downsampleFactor, + defaultDownsampleFactor)); + setOverlayColor(a.getColor(R.styleable.BlurView_overlayColor, defaultOverlayColor)); + a.recycle(); + } + + public void setBlurredView(View blurredView) { + mBlurredView = blurredView; + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if (mBlurredView != null) { + if (prepare()) { + // If the background of the blurred view is a color drawable, we use it to clear + // the blurring canvas, which ensures that edges of the child views are blurred + // as well; otherwise we clear the blurring canvas with a transparent color. + if (mBlurredView.getBackground() != null && mBlurredView.getBackground() instanceof ColorDrawable) { + mBitmapToBlur.eraseColor(((ColorDrawable) mBlurredView.getBackground()).getColor()); + } else { + mBitmapToBlur.eraseColor(Color.TRANSPARENT); + } + + int[] mBlurredViewXY = new int[2]; + mBlurredView.getLocationOnScreen(mBlurredViewXY); + int[] mBlurringViewXY = new int[2]; + getLocationOnScreen(mBlurringViewXY); + + mBlurredView.draw(mBlurringCanvas); + blur(); + + canvas.save(); + + // modify here to get the correct bitmap when the blurring view is in a parent + canvas.translate(mBlurredViewXY[0] - mBlurringViewXY[0], mBlurredViewXY[1] - mBlurringViewXY[1]); + canvas.scale(mDownsampleFactor, mDownsampleFactor); + canvas.drawBitmap(mBlurredBitmap, 0, 0, null); + canvas.restore(); + } + canvas.drawColor(mOverlayColor); + } + } + + public void setBlurRadius(int radius) { + mBlurRadius = radius; + mBlurScript.setRadius(mBlurRadius); + } + + public int getBlurRadius() { + return mBlurRadius; + } + + public void setDownsampleFactor(int factor) { + if (factor <= 0) { + throw new IllegalArgumentException("Downsample factor must be greater than 0."); + } + + if (mDownsampleFactor != factor) { + mDownsampleFactor = factor; + mDownsampleFactorChanged = true; + } + } + + public int getDownsampleFactor() { + return mDownsampleFactor; + } + + public void setOverlayColor(int color) { + mOverlayColor = color; + } + + public int getmOverlayColor() { + return mOverlayColor; + } + + private void initializeRenderScript(Context context) { + mRenderScript = RenderScript.create(context); + mBlurScript = ScriptIntrinsicBlur.create(mRenderScript, Element.U8_4(mRenderScript)); + } + + protected boolean prepare() { + final int width = mBlurredView.getWidth(); + final int height = mBlurredView.getHeight(); + + if (mBlurringCanvas == null || mDownsampleFactorChanged + || mBlurredViewWidth != width || mBlurredViewHeight != height) { + mDownsampleFactorChanged = false; + + mBlurredViewWidth = width; + mBlurredViewHeight = height; + + int scaledWidth = width / mDownsampleFactor; + int scaledHeight = height / mDownsampleFactor; + + // The following manipulation is to avoid some RenderScript artifacts at the edge. + scaledWidth = scaledWidth - scaledWidth % 4 + 4; + scaledHeight = scaledHeight - scaledHeight % 4 + 4; + + if (mBlurredBitmap == null + || mBlurredBitmap.getWidth() != scaledWidth + || mBlurredBitmap.getHeight() != scaledHeight) { + mBitmapToBlur = Bitmap.createBitmap(scaledWidth, scaledHeight, + Bitmap.Config.ARGB_8888); + if (mBitmapToBlur == null) { + return false; + } + + mBlurredBitmap = Bitmap.createBitmap(scaledWidth, scaledHeight, + Bitmap.Config.ARGB_8888); + if (mBlurredBitmap == null) { + return false; + } + } + + mBlurringCanvas = new Canvas(mBitmapToBlur); + mBlurringCanvas.scale(1f / mDownsampleFactor, 1f / mDownsampleFactor); + mBlurInput = Allocation.createFromBitmap(mRenderScript, mBitmapToBlur, + Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT); + mBlurOutput = Allocation.createTyped(mRenderScript, mBlurInput.getType()); + } + return true; + } + + protected void blur() { + mBlurInput.copyFrom(mBitmapToBlur); + mBlurScript.setInput(mBlurInput); + mBlurScript.forEach(mBlurOutput); + mBlurOutput.copyTo(mBlurredBitmap); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (mRenderScript != null) { + mRenderScript.destroy(); + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/HideType.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/HideType.java new file mode 100644 index 0000000..dfabcda --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/HideType.java @@ -0,0 +1,20 @@ +package cpm.com.gskmtorange.blurlockview.Directions; + +/** + * Created by Weiping on 2016/3/17. + */ +public enum HideType { + + FROM_TOP_TO_BOTTOM(0), + FROM_RIGHT_TO_LEFT(1), + FROM_BOTTOM_TO_TOP(2), + FROM_LEFT_TO_RIGHT(3), + FADE_OUT(4); + + int type; + + HideType(int type) { + this.type = type; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/ShowType.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/ShowType.java new file mode 100644 index 0000000..cef41fb --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/ShowType.java @@ -0,0 +1,20 @@ +package cpm.com.gskmtorange.blurlockview.Directions; + +/** + * Created by Weiping on 2016/3/17. + */ +public enum ShowType { + + FROM_TOP_TO_BOTTOM(0), + FROM_RIGHT_TO_LEFT(1), + FROM_BOTTOM_TO_TOP(2), + FROM_LEFT_TO_RIGHT(3), + FADE_IN(4); + + int type; + + ShowType(int type) { + this.type = type; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Dot.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Dot.java new file mode 100644 index 0000000..c5392c3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Dot.java @@ -0,0 +1,87 @@ +package cpm.com.gskmtorange.blurlockview; + +import android.animation.ObjectAnimator; +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.FrameLayout; + +import cpm.com.gskmtorange.R; + + +/** + * Created by Weiping on 2016/3/17. + */ +public class Dot extends FrameLayout { + + private View selected; + private View unselected; + + private ObjectAnimator selectedAnimator; + private ObjectAnimator unselectedAnimator; + + private boolean isSelected = false; + + public Dot(Context context) { + this(context, null); + } + + public Dot(Context context, AttributeSet attrs) { + super(context, attrs); + + LayoutInflater.from(context).inflate(R.layout.dot_view, this, true); + + selected = findViewById(R.id.selected); + unselected = findViewById(R.id.unselected); + + clear(); + } + + /** + * Set this dot to selected or not. + * + * @param isSelected Selected or not. + */ + public void setSelected(boolean isSelected) { + if (!(this.isSelected ^ isSelected)) return; + this.isSelected = isSelected; + if (isSelected) { + // change to selected + selected.setAlpha(0); + unselected.setAlpha(1); + if (selectedAnimator != null) selectedAnimator.cancel(); + if (unselectedAnimator != null) unselectedAnimator.cancel(); + + selectedAnimator = ObjectAnimator.ofFloat(selected, "alpha", 0f, 1f); + selectedAnimator.setDuration(300); + selectedAnimator.start(); + + unselectedAnimator = ObjectAnimator.ofFloat(unselected, "alpha", 1f, 0f); + unselectedAnimator.setDuration(300); + unselectedAnimator.start(); + } else { + // change to unselected + selected.setAlpha(1); + unselected.setAlpha(0); + if (selectedAnimator != null) selectedAnimator.cancel(); + if (unselectedAnimator != null) unselectedAnimator.cancel(); + + selectedAnimator = ObjectAnimator.ofFloat(selected, "alpha", 1f, 0f); + selectedAnimator.setDuration(300); + selectedAnimator.start(); + + unselectedAnimator = ObjectAnimator.ofFloat(unselected, "alpha", 0f, 1f); + unselectedAnimator.setDuration(300); + unselectedAnimator.start(); + } + } + + /** + * Clear the dot. + */ + public void clear() { + selected.setAlpha(0); + unselected.setAlpha(1); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/CubicBezier.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/CubicBezier.java new file mode 100644 index 0000000..71ad2c7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/CubicBezier.java @@ -0,0 +1,82 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +import android.graphics.PointF; + +/** + * Created by Weiping on 2016/3/3. + */ +public abstract class CubicBezier { + + private PointF start; + private PointF end; + private PointF a = new PointF(); + private PointF b = new PointF(); + private PointF c = new PointF(); + + /** + * init the 4 values of the cubic-bezier + * @param startX x of start + * @param startY y of start + * @param endX x of end + * @param endY y of end + */ + public void init(float startX, float startY, float endX, float endY) { + setStart(new PointF(startX, startY)); + setEnd(new PointF(endX, endY)); + } + + public void init(double startX, double startY, double endX, double endY) { + init((float) startX, (float) startY, (float) endX, (float) endY); + } + + public float getOffset(float offset) { + return getBezierCoordinateY(getXForTime(offset)); + } + + private float getBezierCoordinateY(float time) { + c.y = 3 * start.y; + b.y = 3 * (end.y - start.y) - c.y; + a.y = 1 - c.y - b.y; + return time * (c.y + time * (b.y + time * a.y)); + } + + private float getXForTime(float time) { + float x = time; + float z; + for (int i = 1; i < 14; i++) { + z = getBezierCoordinateX(x) - time; + if (Math.abs(z) < 1e-3) { + break; + } + x -= z / getXDerivate(x); + } + return x; + } + + private float getXDerivate(float t) { + return c.x + t * (2 * b.x + 3 * a.x * t); + } + + private float getBezierCoordinateX(float time) { + c.x = 3 * start.x; + b.x = 3 * (end.x - start.x) - c.x; + a.x = 1 - c.x - b.x; + return time * (c.x + time * (b.x + time * a.x)); + } + + public PointF getStart() { + return start; + } + + public void setStart(PointF start) { + this.start = start; + } + + public PointF getEnd() { + return end; + } + + public void setEnd(PointF end) { + this.end = end; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBack.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBack.java new file mode 100644 index 0000000..ceca4ae --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBack.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInBack extends CubicBezier { + + public EaseInBack() { + init(0.6, -0.28, 0.735, 0.045); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBounce.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBounce.java new file mode 100644 index 0000000..3600817 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBounce.java @@ -0,0 +1,32 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInBounce extends CubicBezier { + + public EaseInBounce() { + + } + + public float getOffset(float t) { + float b = 0; + float c = 1; + float d = 1; + return c - easeOutBounce(d-t, 0, c, d) + b; + } + + private float easeOutBounce(float t, float b, float c, float d) { + if ((t/=d) < (1/2.75f)) { + return c*(7.5625f*t*t) + b; + } else if (t < (2/2.75f)) { + return c*(7.5625f*(t-=(1.5f/2.75f))*t + .75f) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625f*(t-=(2.25f/2.75f))*t + .9375f) + b; + } else { + return c*(7.5625f*(t-=(2.625f/2.75f))*t + .984375f) + b; + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCirc.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCirc.java new file mode 100644 index 0000000..6ef60d6 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCirc.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInCirc extends CubicBezier { + + public EaseInCirc() { + init(0.6, 0.04, 0.98, 0.335); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCubic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCubic.java new file mode 100644 index 0000000..a7c21b5 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCubic.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInCubic extends CubicBezier { + + public EaseInCubic() { + init(0.55, 0.055, 0.675, 0.19); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInElastic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInElastic.java new file mode 100644 index 0000000..fa65cd4 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInElastic.java @@ -0,0 +1,24 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInElastic extends CubicBezier { + + public EaseInElastic() { + + } + + public float getOffset(float t) { + float b = 0; + float c = 1; + float d = 1; + if (t==0) return b; if ((t/=d)==1) return b+c; + float p=d*.3f; + float a=c; + float s=p/4; + return -(a*(float) Math.pow(2,10*(t-=1)) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p )) + b; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInExpo.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInExpo.java new file mode 100644 index 0000000..b5d26f0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInExpo.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInExpo extends CubicBezier { + + public EaseInExpo() { + init(0.95, 0.05, 0.795, 0.035); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBack.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBack.java new file mode 100644 index 0000000..60693bd --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBack.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutBack extends CubicBezier { + + public EaseInOutBack() { + init(0.68, -0.55, 0.265, 1.55); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBounce.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBounce.java new file mode 100644 index 0000000..019c9d7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBounce.java @@ -0,0 +1,39 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutBounce extends CubicBezier { + + public EaseInOutBounce() { + + } + + public float getOffset(float t) { + float b = 0; + float c = 1; + float d = 1; + if (t < d / 2) + return easeInBounce(t * 2, 0, c, d) * .5f + b; + else + return easeOutBounce(t * 2 - d, 0, c, d) * .5f + c * .5f + b; + } + + private float easeInBounce(float t, float b, float c, float d) { + return c - easeOutBounce(d - t, 0, c, d) + b; + } + + private float easeOutBounce(float t, float b, float c, float d) { + if ((t/=d) < (1/2.75f)) { + return c*(7.5625f*t*t) + b; + } else if (t < (2/2.75f)) { + return c*(7.5625f*(t-=(1.5f/2.75f))*t + .75f) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625f*(t-=(2.25f/2.75f))*t + .9375f) + b; + } else { + return c*(7.5625f*(t-=(2.625f/2.75f))*t + .984375f) + b; + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCirc.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCirc.java new file mode 100644 index 0000000..bb53687 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCirc.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutCirc extends CubicBezier { + + public EaseInOutCirc() { + init(0.785, 0.135, 0.15, 0.86); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCubic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCubic.java new file mode 100644 index 0000000..1c371f7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCubic.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutCubic extends CubicBezier { + + public EaseInOutCubic() { + init(0.645, 0.045, 0.355, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutElastic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutElastic.java new file mode 100644 index 0000000..c43481d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutElastic.java @@ -0,0 +1,25 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutElastic extends CubicBezier { + + public EaseInOutElastic() { + + } + + public float getOffset(float t) { + float b = 0; + float c = 1; + float d = 1; + if (t==0) return b; if ((t/=d/2)==2) return b+c; + float p=d*(.3f*1.5f); + float a=c; + float s=p/4; + if (t < 1) return -.5f*(a*(float) Math.pow(2,10*(t-=1)) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p )) + b; + return a*(float) Math.pow(2,-10*(t-=1)) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p )*.5f + c + b; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutExpo.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutExpo.java new file mode 100644 index 0000000..d1c8342 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutExpo.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutExpo extends CubicBezier { + + public EaseInOutExpo() { + init(1, 0, 0, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuad.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuad.java new file mode 100644 index 0000000..7287d5c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuad.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutQuad extends CubicBezier { + + public EaseInOutQuad() { + init(0.455, 0.03, 0.515, 0.955); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuart.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuart.java new file mode 100644 index 0000000..2102070 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuart.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutQuart extends CubicBezier { + + public EaseInOutQuart() { + init(0.77, 0, 0.175, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuint.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuint.java new file mode 100644 index 0000000..4633bb4 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuint.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutQuint extends CubicBezier { + + public EaseInOutQuint() { + init(0.86, 0, 0.07, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutSine.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutSine.java new file mode 100644 index 0000000..98b0a94 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutSine.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInOutSine extends CubicBezier { + + public EaseInOutSine() { + init(0.445, 0.05, 0.55, 0.95); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuad.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuad.java new file mode 100644 index 0000000..57eae82 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuad.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInQuad extends CubicBezier { + + public EaseInQuad() { + init(0.55, 0.085, 0.68, 0.53); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuart.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuart.java new file mode 100644 index 0000000..ac42006 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuart.java @@ -0,0 +1,12 @@ +package cpm.com.gskmtorange.blurlockview.Eases; +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInQuart extends CubicBezier { + + public EaseInQuart() { + init(0.895, 0.03, 0.685, 0.22); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuint.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuint.java new file mode 100644 index 0000000..3235233 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuint.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInQuint extends CubicBezier { + + public EaseInQuint() { + init(0.755, 0.05, 0.855, 0.06); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInSine.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInSine.java new file mode 100644 index 0000000..885b63e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInSine.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseInSine extends CubicBezier { + + public EaseInSine() { + init(0.47, 0, 0.745, 0.715); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBack.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBack.java new file mode 100644 index 0000000..876c0ca --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBack.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutBack extends CubicBezier { + + public EaseOutBack() { + init(0.175, 0.885, 0.32, 1.275); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBounce.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBounce.java new file mode 100644 index 0000000..727f943 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBounce.java @@ -0,0 +1,27 @@ +package cpm.com.gskmtorange.blurlockview.Eases; +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutBounce extends CubicBezier { + + public EaseOutBounce() { + + } + + public float getOffset(float t) { + float b = 0; + float c = 1; + float d = 1; + if ((t/=d) < (1/2.75f)) { + return c*(7.5625f*t*t) + b; + } else if (t < (2/2.75f)) { + return c*(7.5625f*(t-=(1.5f/2.75f))*t + .75f) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625f*(t-=(2.25f/2.75f))*t + .9375f) + b; + } else { + return c*(7.5625f*(t-=(2.625f/2.75f))*t + .984375f) + b; + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCirc.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCirc.java new file mode 100644 index 0000000..ae0cb57 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCirc.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutCirc extends CubicBezier { + + public EaseOutCirc() { + init(0.075, 0.82, 0.165, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCubic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCubic.java new file mode 100644 index 0000000..c14b774 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCubic.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutCubic extends CubicBezier { + + public EaseOutCubic() { + init(0.215, 0.61, 0.355, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutElastic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutElastic.java new file mode 100644 index 0000000..27002c2 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutElastic.java @@ -0,0 +1,25 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutElastic extends CubicBezier { + + public EaseOutElastic() { + + } + + public float getOffset(float t) { + float b = 0; + float c = 1; + float d = 1; + if (t==0) return b; if ((t/=d)==1) return b+c; + float p=d*.3f; + float a=c; + float s=p/4; + return (a*(float) Math.pow(2,-10*t) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p ) + c + b); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutExpo.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutExpo.java new file mode 100644 index 0000000..f7c72d9 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutExpo.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutExpo extends CubicBezier { + + public EaseOutExpo() { + init(0.19, 1, 0.22, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuad.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuad.java new file mode 100644 index 0000000..0eb3eee --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuad.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutQuad extends CubicBezier { + + public EaseOutQuad() { + init(0.25, 0.46, 0.45, 0.94); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuart.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuart.java new file mode 100644 index 0000000..e45cdef --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuart.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutQuart extends CubicBezier { + + public EaseOutQuart() { + init(0.165, 0.84, 0.44, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuint.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuint.java new file mode 100644 index 0000000..67d3db8 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuint.java @@ -0,0 +1,14 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutQuint extends CubicBezier { + + public EaseOutQuint() { + init(0.23, 1, 0.32, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutSine.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutSine.java new file mode 100644 index 0000000..b51737b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutSine.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class EaseOutSine extends CubicBezier { + + public EaseOutSine() { + init(0.39, 0.575, 0.565, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseType.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseType.java new file mode 100644 index 0000000..473dc68 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseType.java @@ -0,0 +1,70 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public enum EaseType { + + EaseInSine(EaseInSine.class), + EaseOutSine(EaseOutSine.class), + EaseInOutSine(EaseInOutSine.class), + + EaseInQuad(EaseInQuad.class), + EaseOutQuad(EaseOutQuad.class), + EaseInOutQuad(EaseInOutQuad.class), + + EaseInCubic(EaseInCubic.class), + EaseOutCubic(EaseOutCubic.class), + EaseInOutCubic(EaseInOutCubic.class), + + EaseInQuart(EaseInQuart.class), + EaseOutQuart(EaseOutQuart.class), + EaseInOutQuart(EaseInOutQuart.class), + + EaseInQuint(EaseInQuint.class), + EaseOutQuint(EaseOutQuint.class), + EaseInOutQuint(EaseInOutQuint.class), + + EaseInExpo(EaseInExpo.class), + EaseOutExpo(EaseOutExpo.class), + EaseInOutExpo(EaseInOutExpo.class), + + EaseInCirc(EaseInCirc.class), + EaseOutCirc(EaseOutCirc.class), + EaseInOutCirc(EaseInOutCirc.class), + + EaseInBack(EaseInBack.class), + EaseOutBack(EaseOutBack.class), + EaseInOutBack(EaseInOutBack.class), + + EaseInElastic(EaseInElastic.class), + EaseOutElastic(EaseOutElastic.class), + EaseInOutElastic(EaseInOutElastic.class), + + EaseInBounce(EaseInBounce.class), + EaseOutBounce(EaseOutBounce.class), + EaseInOutBounce(EaseInOutBounce.class), + + Linear(Linear.class); + + private Class easingType; + + /** + * ease animation helps to make the movement more real + * @param easingType + */ + EaseType(Class easingType) { + this.easingType = easingType; + } + + public float getOffset(float offset) { + try { + return ((CubicBezier) easingType.getConstructor().newInstance()).getOffset(offset); + } catch (Exception e) { + e.printStackTrace(); + throw new Error("CubicBezier init error."); + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/Linear.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/Linear.java new file mode 100644 index 0000000..501e25b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/Linear.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.blurlockview.Eases; + +/** + * Created by Weiping on 2016/3/3. + */ + +public class Linear extends CubicBezier { + + public Linear() { + init(0, 0, 1, 1); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Indicator.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Indicator.java new file mode 100644 index 0000000..2828735 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Indicator.java @@ -0,0 +1,69 @@ +package cpm.com.gskmtorange.blurlockview; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.LinearLayout; + +import cpm.com.gskmtorange.R; + + +/** + * Created by Weiping on 2016/3/17. + */ +public class Indicator extends LinearLayout { + + private Dot[] dots; + private int number = 0; + + public Indicator(Context context) { + super(context); + } + + public Indicator(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public void setPasswordLength(int length) { + removeAllViews(); + dots = new Dot[length]; + + for(int i = 0; i < length; i++) { + Dot view = new Dot(getContext()); + + view.setBackgroundResource(R.drawable.indicator_background); + + LayoutParams params = new LayoutParams( + 30, + 30 + ); + params.setMargins(20, 10, 20, 10); + addView(view, params); + dots[i] = view; + } + } + + /** + * Add a dot. + */ + public void add() { + if (number == dots.length) return; + dots[number++].setSelected(true); + } + + /** + * Delete a dot. + */ + public void delete() { + if (number == 0) return; + dots[--number].setSelected(false); + } + + /** + * Clear all dots. + */ + public void clear() { + number = 0; + for (int i = 0; i < dots.length; i++) dots[i].setSelected(false); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/InterpolatorFactory.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/InterpolatorFactory.java new file mode 100644 index 0000000..57d1e5d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/InterpolatorFactory.java @@ -0,0 +1,31 @@ +package cpm.com.gskmtorange.blurlockview; + +import android.view.animation.Interpolator; + +import cpm.com.gskmtorange.blurlockview.Eases.EaseType; + + +/** + * Created by Weiping on 2016/3/17. + */ +public class InterpolatorFactory { + + public static BLVInterpolator getInterpolator(EaseType easeType) { + return new BLVInterpolator(easeType); + } + + public static class BLVInterpolator implements Interpolator { + + private EaseType easeType; + + public BLVInterpolator(EaseType easeType) { + this.easeType = easeType; + } + + @Override + public float getInterpolation(float input) { + return easeType.getOffset(input); + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Password.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Password.java new file mode 100644 index 0000000..1c5af26 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Password.java @@ -0,0 +1,17 @@ +package cpm.com.gskmtorange.blurlockview; + +/** + * Created by Weiping on 2016/3/17. + */ +public enum Password { + + NUMBER(0), + TEXT(1); + + private int type; + + private Password(int type) { + this.type = type; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/SmallButtonView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/SmallButtonView.java new file mode 100644 index 0000000..017751e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/SmallButtonView.java @@ -0,0 +1,196 @@ +package cpm.com.gskmtorange.blurlockview; + +import android.animation.ObjectAnimator; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Typeface; +import android.util.AttributeSet; +import android.util.TypedValue; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import cpm.com.gskmtorange.R; + + +/** + * Created by Weiping on 2016/3/16. + */ + +public class SmallButtonView extends FrameLayout { + + private FrameLayout frameLayout; + private View clickEffect; + private TextView text; + private String textString = ""; + private ObjectAnimator clickEffectAnimator; + private int duration = 500; + private OnPressListener onPressListener; + + public SmallButtonView(Context context) { + this(context, null); + } + + public SmallButtonView(Context context, AttributeSet attrs) { + super(context, attrs); + + LayoutInflater.from(context).inflate(R.layout.small_button_view, this, true); + + Resources resources = getResources(); + + frameLayout = (FrameLayout)findViewById(R.id.frame_layout); + + text = (TextView)findViewById(R.id.text); + text.setText(textString); + text.setTextColor(ContextCompat.getColor(context, R.color.default_small_button_text_color)); + text.setTextSize(resources.getInteger(R.integer.default_small_button_text_size)); + + clickEffect = findViewById(R.id.click_effect); + clickEffect.setAlpha(0); + clickEffectAnimator = ObjectAnimator.ofFloat(clickEffect, "alpha", 1f, 0f); + clickEffectAnimator.setDuration(duration); + } + + /** + * Set the listener, for returning what happened to BlurLockView. + * + * @param onPressListener OnPressListener. + */ + public void setOnPressListener(OnPressListener onPressListener) { + this.onPressListener = onPressListener; + } + + /** + * Set the width of the button. + * + * @param width Width, in pixels. + */ + public void setWidth(int width) { + ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams(); + layoutParams.width = width; + frameLayout.setLayoutParams(layoutParams); + layoutParams = clickEffect.getLayoutParams(); + layoutParams.width = width; + clickEffect.setLayoutParams(layoutParams); + } + + /** + * Set the height of the button. + * + * @param height Height, in pixels. + */ + public void setHeight(int height) { + ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams(); + layoutParams.height = height; + frameLayout.setLayoutParams(layoutParams); + layoutParams = clickEffect.getLayoutParams(); + layoutParams.height = height; + clickEffect.setLayoutParams(layoutParams); + } + + /** + * Set the resource of background. + * + * @param resourceId ResourceId. + */ + public void setBackground(int resourceId) { + frameLayout.setBackgroundResource(resourceId); + } + + /** + * Set the resource of click effect. + * + * @param resourceId ResourceId. + */ + public void setEffect(int resourceId) { + clickEffect.setBackgroundResource(resourceId); + } + + /** + * Set the duration of the effect. + * + * @param duration Duration, in ms. + */ + public void setEffectDuration(int duration) { + this.duration = duration; + } + + /** + * Set the text size of the main text. + * + * @param size Text size, in sp. + */ + public void setTextSize(int size) { + text.setTextSize(TypedValue.COMPLEX_UNIT_SP, size); + } + + /** + * Set the text color of main text. + * + * @param color Color. + */ + public void setTextColor(int color) { + text.setTextColor(color); + } + + /** + * Set font of button. + * + * @param typeFace New font. + */ + public void setTypeFace(Typeface typeFace) { + text.setTypeface(typeFace); + } + + /** + * Set the string of the text. + * + * @param textString The new string. + */ + public void setText(String textString) { + this.textString = textString; + if (text != null) text.setText(textString); + } + + /** + * Perform the click effect. + * + * @param event MotionEvent. + * @return + */ + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + switch(event.getAction()){ + case MotionEvent.ACTION_DOWN: + if (onPressListener != null) onPressListener.onPress(textString); + clickEffectAnimator.cancel(); + clickEffect.setAlpha(1); + break; + case MotionEvent.ACTION_UP: + clickEffectAnimator.start(); + break; + default:break; + } + + return super.dispatchTouchEvent(event); + } + + /** + * Clear the animation. + */ + public void clearAnimation() { + if (clickEffect.getAlpha() == 1) { + clickEffectAnimator.cancel(); + clickEffectAnimator.start(); + } + } + + public interface OnPressListener { + void onPress(String string); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/comparators/StatusCompare.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/comparators/StatusCompare.java new file mode 100644 index 0000000..576a83e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/comparators/StatusCompare.java @@ -0,0 +1,13 @@ +package cpm.com.gskmtorange.comparators; + +import java.util.Comparator; + +import cpm.com.gskmtorange.GetterSetter.StoreBean; + +public class StatusCompare implements Comparator { + + @Override + public int compare(StoreBean o1, StoreBean o2) { + return o1.getUPLOAD_STATUS().compareTo(o2.getUPLOAD_STATUS()); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java new file mode 100644 index 0000000..1c84ffa --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java @@ -0,0 +1,213 @@ +package cpm.com.gskmtorange.constant; + +import android.annotation.SuppressLint; +import android.app.Activity; +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.Bitmap; +import android.graphics.BitmapFactory; +import android.net.Uri; +import android.preference.PreferenceManager; +import android.view.ViewTreeObserver; +import android.widget.ImageView; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Locale; + +import android.app.AlertDialog; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.interfaces.DialogCallbackListener; + +/** + * Created by yadavendras on 13-11-2017. + */ + +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)) { + lang = CommonString.KEY_RETURE_LANGUAGE_OMAN; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_EGYPT)) { + lang = CommonString.KEY_RETURN_LANGUAGE_EGYPT; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KUWAIT)) { + lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_BAHRAIN)) { + lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_OMAN)) { + lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_QATAR)) { + lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LIBIYA)) { + lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; + } else if (language.equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LEBANON)) { + lang = CommonString.KEY_RETURE_LANGUAGE_ARABIC_KSA; + } 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; + } + + public static String getCurrentTimeWithLanguage(Context context) { + @SuppressLint("SimpleDateFormat") SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); + Calendar m_cal = Calendar.getInstance(); + String cdate = formatter.format(m_cal.getTime()); + //SharedPreferences preferences = preferences = PreferenceManager.getDefaultSharedPreferences(context); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA) + ////aDDED NEW COUNTRY FOR TIME BY JP + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KUWAIT) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_BAHRAIN) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_OMAN) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_QATAR) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LEBANON) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LIBIYA) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_EGYPT)) { + cdate = arabicToenglish(cdate); + } + return cdate; + } + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } + + public static void setScaledImage(ImageView imageView, final String path) { + final ImageView iv = imageView; + ViewTreeObserver viewTreeObserver = iv.getViewTreeObserver(); + viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { + public boolean onPreDraw() { + iv.getViewTreeObserver().removeOnPreDrawListener(this); + int imageViewHeight = iv.getMeasuredHeight(); + int imageViewWidth = iv.getMeasuredWidth(); + iv.setImageBitmap(decodeSampledBitmapFromPath(path, imageViewWidth, imageViewHeight)); + return true; + } + }); + } + + private static Bitmap decodeSampledBitmapFromPath(String path, int reqWidth, int reqHeight) { + // First decode with inJustDecodeBounds = true to check dimensions + final BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + //BitmapFactory.decodeResource(res, resId, options); + BitmapFactory.decodeFile(path, options); + // Calculate inSampleSize + options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); + // Decode bitmap with inSampleSize set + options.inJustDecodeBounds = false; + return BitmapFactory.decodeFile(path, options); + } + + private static int calculateInSampleSize( + BitmapFactory.Options options, int reqWidth, int reqHeight) { + // Raw height and width of image + final int height = options.outHeight; + final int width = options.outWidth; + int inSampleSize = 1; + if (height > reqHeight || width > reqWidth) { + + final int halfHeight = height / 2; + final int halfWidth = width / 2; + // Calculate the largest inSampleSize value that is a power of 2 and keeps both + // height and width larger than the requested height and width. + while ((halfHeight / inSampleSize) > reqHeight + && (halfWidth / inSampleSize) > reqWidth) { + inSampleSize *= 2; + } + } + + return inSampleSize; + } + + public static void showAlertDialog(final Context context, String msg) { + final DialogCallbackListener[] mListener = new DialogCallbackListener[1]; + try { + // Instantiate the NoticeDialogListener so we can send events to the host + mListener[0] = (DialogCallbackListener) context; + } catch (ClassCastException e) { + Activity activity = (Activity) context; + // The activity doesn't implement the interface, throw exception + throw new ClassCastException(activity.getClass() + " must implement DialogCallbackListener"); + } + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); + alertDialogBuilder.setTitle(context.getResources().getString(R.string.dialog_title)); + // set dialog message + alertDialogBuilder.setMessage(msg) + .setCancelable(false) + .setPositiveButton(context.getResources().getString(R.string.yes), (dialog, id) -> { + mListener[0].onSelect(true); + dialog.cancel(); + }).setNegativeButton(context.getResources().getString(R.string.no), (dialog, id) -> { + // if this button is clicked, just close + // the dialog box and do nothing + mListener[0].onSelect(false); + dialog.cancel(); + }); + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + // show it + alertDialog.show(); + } + + public static void savefile(Uri sourceuri, String _path) { + String sourceFilename = sourceuri.getPath(); + BufferedInputStream bis = null; + BufferedOutputStream bos = null; + try { + bis = new BufferedInputStream(new FileInputStream(sourceFilename)); + bos = new BufferedOutputStream(new FileOutputStream(_path, false)); + byte[] buf = new byte[1024]; + bis.read(buf); + do { + bos.write(buf); + } while (bis.read(buf) != -1); + } catch (IOException e) { + e.fillInStackTrace(); + } finally { + try { + if (bis != null) bis.close(); + if (bos != null) bos.close(); + } catch (IOException e) { + e.fillInStackTrace(); + } + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java new file mode 100644 index 0000000..db2fdc5 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java @@ -0,0 +1,1582 @@ +package cpm.com.gskmtorange.constant; + +import android.content.Context; +import android.os.Environment; + +import cpm.com.gskmtorange.AppUtils; + +/** + * Created by yadavendras on 19-12-2016. + */ +public class CommonString { + public static final String BACKUP_PATH = Environment.getExternalStorageDirectory().getPath() + "/gsk_orange_backup"; + // webservice constants + // preferenec keys + public static final String PD_PROJECT_iD = "4f57635b-6b07-45bf-bfba-c61c2826b6db"; + public static final String KEY_USERNAME = "username"; + public static final String KEY_PASSWORD = "password"; + public static final String KEY_DATE = "date"; + public static final String KEY_COUNTRY_ID = "COUNTRY_ID"; + public static final String KEY_STOREVISITED_STATUS = "STOREVISITED_STATUS"; + + + public static final String KEY_PATH = "path"; + public static final String KEY_VERSION = "APP_VERSION"; + + + public static final String KEY_LANGUAGE = "LANGUAGE"; + public static final String KEY_NOTICE_BOARD_LINK = "NOTICE_BOARD_LINK"; + public static final String KEY_LOGIN_DATA = "LOGIN_DATA"; + public static final String KEY_CULTURE_ID = "CULTURE_ID"; + public static final String KEY_STORE_ID = "STORE_ID"; + public static final String KEY_Common_ID = "COMMON_ID"; + + public static final String KEY_STORE_NAME = "STORE_NAME"; + public static final String KEY_VISIT_DATE = "VISIT_DATE"; + public static final String KEY_CAMERA_ALLOW = "CAMERA_ALLOW"; + public static final String KEY_CHECKOUT_STATUS = "CHECKOUT_STATUS"; + public static final String KEY_CLASS_ID = "CLASS_ID"; + public static final String KEY_EMP_ID = "EMP_ID"; + public static final String KEY_GEO_TAG = "GEO_TAG"; + public static final String KEY_KEYACCOUNT_ID = "KEYACCOUNT_ID"; + public static final String KEY_STORETYPE_ID = "STORETYPE_ID"; + public static final String KEY_UPLOAD_STATUS = "UPLOAD_STATUS"; + public static final String KEY_STORE_IN_TIME = "STORE_IN_TIME"; + public static final String KEY_USER_ID = "USER_ID"; + public static final String KEY_IN_TIME = "IN_TIME"; + public static final String KEY_OUT_TIME = "OUT_TIME"; + public static final String KEY_LATITUDE = "LATITUDE"; + public static final String KEY_LONGITUDE = "LONGITUDE"; + public static final String KEY_COVERAGE_STATUS = "Coverage"; + public static final String KEY_REASON_ID = "REASON_ID"; + public static final String KEY_SUB_REASON_ID = "SUB_REASON_ID"; + public static final String KEY_REASON = "REASON"; + public static final String KEY_COVERAGE_REMARK = "REMARK"; + public static final String KEY_CHECKOUT_IMAGE = "Checkout_Image"; + public static final String KEY_IMAGE = "IMAGE"; + public static final String KEY_IMAGE1 = "IMAGE1"; + public static final String KEY_IMAGE2 = "IMAGE2"; + public static final String KEY_IMAGE3 = "IMAGE3"; + public static final String KEY_IMAGE4 = "IMAGE4"; + public static final String KEY_IMAGE_URL = "IMAGE_URL"; + public static final String KEY_IMAGE_PATH = "IMAGE_PATH"; + public static final String KEY_ID = "Id"; + public static final String KEY_MERCHANDISER_ID = "MERCHANDISER_ID"; + public static final String KEY_POG_TYPE_ID = "POG_TYPE_ID"; + + public static final String KEY_LOOGIN_PREF = "LOGIN_PREF"; + + public static final String KEY_LOGIN_DONE = "IS_LOGGED_IN"; + public static final String KEY_DOWNLOAD_DONE = "IS_DOWNLOAD_DONE"; + public static final String KEY_STOCK_MAPPING = "STOCK_MAPPING"; + + //KEYS RELATED TO T2P COMPLIANCE + + public static final String KEY_DISPLAY = "DISPLAY"; + public static final String KEY_REMARK = "REMARK"; + public static final String KEY_PRESENT = "PRESENT"; + public static final String KEY_QTY = "QTY"; + public static final String KEY_FLAG_QUANTITY = "FLAG_QUANTITY"; + public static final String KEY_COMMON_ID = "COMMON_ID"; + public static final String KEY_CHECKLIST_ID = "CHECKLIST_ID"; + public static final String KEY_CHECKLIST = "CHECKLIST"; + public static final String KEY_SKU = "SKU"; + public static final String KEY_STOCK = "STOCK"; + public static final String KEY_BRAND = "BRAND"; + public static final String KEY_BRAND_ID = "BRAND_ID"; + public static final String KEY_DISPLAY_ID = "DISPLAY_ID"; + public static final String KEY_QUANTITY = "QUANTITY"; + public static final String KEY_SKU_ID = "SKU_ID"; + public static final String KEY_SKU_GROUP_ID = "SKU_GROUP_ID"; + public static final String KEY_SKUNAME = "SKUNAME"; + public static final String UNIQUE_KEY_ID = "UNIQUE_KEY_ID"; + public static final String KEY_CATEGORY_ID = "CATEGORY_ID"; + public static final String KEY_PROCESS_ID = "PROCESS_ID"; + public static final String KEY_CATEGORY_FIXTURE = "CATEGORY_FIXTURE"; + public static final String KEY_STORE_LIST = "STORE_LIST"; + + public static final String KEY_NON_T2P_REASON_ID = "TREASON_ID"; + + public static final String KEY_JOURNEY_PLAN = "JOURNEY_PLAN"; + public static final String KEY_ADHOC_JOURNEY_PLAN = "ADHOC_JOURNEYPLAN"; + public static final String KEY_JOURNEY_PLAN_ADDITIONAL = "JOURNEY_PLAN_ADDITIONAL"; + public static final String KEY_JOURNEY_PLAN_PHARMA = "JOURNEY_PLAN_PHARMA"; + public static final String KEY_ADHOC_JOURNEYPLAN_ADDITIONAL = "ADHOC_JOURNEYPLAN_ADDITIONAL"; + public static final String KEY_STORE_FLAG = "STORE_FLAG"; + public static final String KEY_STORE_FLAG_FACING_HIDE = "STORE_FLAG_FACING_HIDE"; + public static final String FROM_DEVIATION = "DEVIATION"; + public static final String FROM_JCP = "JCP"; + public static final String FROM_ADDITIONAL = "ADDITIONAL"; + public static final String FROM_PHARMA = "PHARMA"; + public static final String FROM_ADDITIONAL_ADHOC = "ADDITIONAL_ADHOC"; + public static final String TABLE_INSERT_STOCK_DIALOG = "STOCK_DIALOG"; + + public static final String KEY_P = "P"; + public static final String KEY_D = "D"; + public static final String KEY_U = "U"; + public static final String KEY_UN = "UN"; + public static final String KEY_C = "C"; + public static final String KEY_Y = "Y"; + public static final String KEY_L = "Leave"; + public static final String KEY_N = "NOT_VISITED"; + public static final String KEY_INVALID = "INVALID"; + public static final String STORE_STATUS_LEAVE = "L"; + public static final String KEY_VALID = "Valid"; + public static final String DATA_DELETE_ALERT_MESSAGE = "Saved data will be lost - Do you want to continue?"; + public static final String KEY_CHECK_IN = "I"; + // webservice constants + + public static final String KEY_SUCCESS = "Success"; + public static final String KEY_FAILURE = "Failure"; + public static final String KEY_FALSE = "False"; + public static final String KEY_CHANGED = "Changed"; + + public static final String KEY_NUMBER_OF_ROWS = "NUMBER_OF_ROWS"; + public static final String KEY_SUB_CATEGORY = "SUB_CATEGORY"; + public static final String KEY_SUB_CATEGORY_ID = "SUB_CATEGORY_ID"; + public static final String KEY_SUB_CATEGORY_CODE = "SUB_CATEGORY_CODE"; + public static final String KEY_FROM = "FROM"; + public static final String KEY_CHAT_ID = "CHAT_ID"; + public static final String KEY_MESSAGE = "MESSAGE"; + + public static final String KEY_NO_DATA = "NODATA"; + + public static final int COUNTRY_ID_EGYPT = 6; + + public static final int UNIT_VERTICAL = 50; + public static final int UNIT_HORIZONTAL = 200; + + // public static String URL = "http://gskme.parinaam.in/Gskwebservice.asmx"; + public static String URL = "http://gskmeIR.parinaam.in/Gskwebservice.asmx"; + // public static String URL = "https://gskme1.parinaam.in/Gskwebservice.asmx"; + //Added new Test url for Turkey + // public static String URL = "http://gskmetest.parinaam.in/Gskwebservice.asmx"; + + // public static String URL = "https://haleonme.parinaam.in/Gskwebservice.asmx"; + //public static String URL = " https://gskme1.parinaam.in/Gskwebservice.asmx"; + //public static String URL = "https://gskme-test.parinaam.in/Gskwebservice.asmx"; + + public static final String NAMESPACE = "http://tempuri.org/"; + public static final String METHOD_LOGIN = "UserLoginDetail"; + public static final String SOAP_ACTION_LOGIN = "http://tempuri.org/" + + METHOD_LOGIN; + + public static final String METHOD_NAME_UNIVERSAL_DOWNLOAD = "Download_Universal"; + public static final String SOAP_ACTION_UNIVERSAL = "http://tempuri.org/" + + METHOD_NAME_UNIVERSAL_DOWNLOAD; + public static final String METHOD_UPLOAD_STOCK_XML_DATA = "DrUploadXml"; + + public static final String METHOD_UPLOAD_CURRENT_DATA = "CurrentLocation"; + public static final String METHOD_UPLOAD_CURRENT_DATA_ADDITIONAL = "CurrentLocation_Additional"; + public static final String METHOD_UPLOAD_CURRENT_DATA_PHARMA = "CurrentLocation_Pharma"; + + public static final String SOAP_ACTION_UPLOAD_CURRRENT_DATA = "http://tempuri.org/" + + METHOD_UPLOAD_CURRENT_DATA; + + public static final String METHOD_UPLOAD_CHAT_DATA = "UPLOAD_Chat"; + + public static final String SOAP_ACTION_UPLOAD_CHAT_DATA = "http://tempuri.org/" + + METHOD_UPLOAD_CHAT_DATA; + + public static final String SOAP_ACTION_UPLOAD_ASSET_XMLDATA = "http://tempuri.org/" + + METHOD_UPLOAD_STOCK_XML_DATA; + + + public static final String METHOD_UPLOAD_ASSET = "Upload_Stock_Availiablity_V1"; + public static final String METHOD_Get_DR_POSM_IMAGES = "GetImageNew"; + public static final String SOAP_ACTION_Get_DR_POSM_IMAGES = "http://tempuri.org/" + + METHOD_Get_DR_POSM_IMAGES; + public static final String METHOD_Get_DR_STORE_IMAGES_GEO = "Upload_StoreGeoTag_IMAGES"; + public static final String SOAP_ACTION_DR_STORE_IMAGES_GEO = "http://tempuri.org/" + + METHOD_Get_DR_STORE_IMAGES_GEO; + + //public static final String METHOD_UPLOAD_COVERAGE = "UPLOAD_COVERAGENEW"; + public static final String METHOD_UPLOAD_COVERAGE = "UPLOAD_COVERAGENEW1"; + public static final String METHOD_UPLOAD_COVERAGE_NEW = "UPLOAD_COVERAGENEW2"; + public static final String METHOD_UPLOAD_COVERAGE_NEW_ADDITIONAL = "UPLOAD_COVERAGENEW2_Additional"; + public static final String METHOD_UPLOAD_COVERAGE_NEW_PHARMA = "UPLOAD_COVERAGENEW2_Pharma"; + public static final String METHOD_UPLOAD_CHECKOUT_STATUS = "Upload_Store_ChecOut_Status"; + public static final String METHOD_UPLOAD_CHECKOUT_STATUS_ADDITIONAL = "Upload_Store_ChecOut_Status_Additional"; + public static final String METHOD_UPLOAD_CHECKOUT_STATUS_PHARMA = "Upload_Store_ChecOut_Status_Pharma"; + + public static final String METHOD_UPLOAD_COVERAGE_STATUS = "UploadCoverage_Status"; + public static final String METHOD_UPLOAD_COVERAGE_STATUS_ADDITIONAL = "UploadCoverage_Status_Additional"; + public static final String METHOD_UPLOAD_COVERAGE_STATUS_PHARMA = "UploadCoverage_Status_Pharma"; + + public static final String SOAP_ACTION = "http://tempuri.org/"; + + public static final String SOAP_ACTION_UPLOAD_STORE_COVERAGE = "http://tempuri.org/" + + METHOD_UPLOAD_COVERAGE; + + public static final String SOAP_ACTION_UPLOAD_STORE_COVERAGE_NEW = "http://tempuri.org/" + + METHOD_UPLOAD_COVERAGE_NEW; + + public static final String METHOD_UPLOAD_IMAGE = "GetImageWithFolderName"; + + public static final String SOAP_ACTION_UPLOAD_IMAGE = "http://tempuri.org/" + METHOD_UPLOAD_IMAGE; + + public static final String METHOD_UPDATE_PASSWORD = "Update_Password"; + public static final String SOAP_ACTION_UPDATE_PASSWORD = "http://tempuri.org/" + + METHOD_UPDATE_PASSWORD; + + //Alert Messages + public static final String MESSAGE_FAILURE = "Server Error.Please Access After Some Time"; + public static final String MESSAGE_FALSE = "Invalid User"; + public static final String MESSAGE_CHANGED = "Invalid UserId Or Password / Password Has Been Changed."; + + public static final String MESSAGE_EXCEPTION = "Problem Occured : Report The Problem To Parinaam "; + public static final String MESSAGE_SOCKETEXCEPTION = "Network Communication Failure. Check Your Network Connection"; + public static final String MESSAGE_XmlPull = "Problem Occured xml pull: Report The Problem To Parinaam"; + + public static final String TABLE_STORE_GEOTAGGING = "STORE_GEOTAGGING"; + public static final String TABLE_COVERAGE_DATA = "COVERAGE_DATA"; + + + public static final String CREATE_TABLE_COVERAGE_DATA = "CREATE TABLE IF NOT EXISTS " + TABLE_COVERAGE_DATA + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER,USER_ID VARCHAR, " + + KEY_IN_TIME + " VARCHAR," + + KEY_OUT_TIME + " VARCHAR," + + KEY_VISIT_DATE + " VARCHAR," + + KEY_LATITUDE + " VARCHAR," + + KEY_LONGITUDE + " VARCHAR," + + KEY_MERCHANDISER_ID + " VARCHAR," + + KEY_COVERAGE_STATUS + " VARCHAR," + + KEY_IMAGE + " VARCHAR," + + KEY_GEO_TAG + " VARCHAR," + + KEY_REASON_ID + " INTEGER," + + KEY_SUB_REASON_ID + " INTEGER," + + KEY_COVERAGE_REMARK + " VARCHAR," + + KEY_CHECKOUT_IMAGE + " VARCHAR," + + KEY_STORE_FLAG + " VARCHAR," + + KEY_KEYACCOUNT_ID + " INTEGER," + + KEY_STORETYPE_ID + " INTEGER," + + KEY_CLASS_ID + " INTEGER," + + KEY_REASON + " VARCHAR," + + KEY_STOCK_MAPPING + " VARCHAR)"; + + + public static final String TABLE_COACHING_VISIT = "COACHING_VISIT"; + public static final String KEY_EXIST = "EXIST"; + + + public static final String CREATE_TABLE_COACHING_VISIT = "CREATE TABLE IF NOT EXISTS " + TABLE_COACHING_VISIT + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER,USER_ID VARCHAR, " + + KEY_EMP_ID + " VARCHAR," + + KEY_IMAGE + " VARCHAR," + + KEY_EXIST + " INTEGER)"; + + + public static final String TABLE_DELIVERY_CALLS = "DELIVERY_CALLS"; + + public static final String KEY_ADDRESS = "ADDRESS"; + + public static final String CREATE_TABLE_DELIVERY_CALLS = "CREATE TABLE IF NOT EXISTS " + TABLE_DELIVERY_CALLS + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_NAME + " NVARCHAR," + + KEY_ADDRESS + " VARCHAR," + + KEY_IMAGE + " VARCHAR," + + KEY_IMAGE1 + " VARCHAR," + + KEY_IN_TIME + " VARCHAR," + + KEY_OUT_TIME + " VARCHAR," + + KEY_UPLOAD_STATUS + " VARCHAR," + + KEY_LATITUDE + " VARCHAR," + + KEY_LONGITUDE + " VARCHAR," + + KEY_VISIT_DATE + " VARCHAR)"; + + public static final String CREATE_TABLE_STORE_GEOTAGGING = "CREATE TABLE IF NOT EXISTS " + + TABLE_STORE_GEOTAGGING + + " (" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " VARCHAR," + + + "LATITUDE" + + " VARCHAR," + + + "LONGITUDE" + + " VARCHAR," + + + "GEO_TAG" + + " VARCHAR," + + + "STATUS" + + " VARCHAR," + + + "FRONT_IMAGE" + " VARCHAR)"; + + + //Gagan Code Start + + //File Path + public static final String FILE_PATH = Environment.getExternalStorageDirectory() + "/.GSK_MT_ORANGE_IMAGES/"; + public static final String FILE_PATH_PLANOGRAM = Environment.getExternalStorageDirectory() + "/GSK_MT_ORANGE_Planogram_Images/"; + public static final String FILE_PATH_OLD = Environment.getExternalStorageDirectory() + "/GSK_MT_ORANGE_IMAGES/"; + public static final String FILE_PATH_PDF = Environment.getExternalStorageDirectory() + "/GSK_MT_ORANGE_Planogram/"; + + + //Table + public static final String TABLE_INSERT_MSL_AVAILABILITY = "Msl_Availability_Data"; + + public static final String CREATE_TABLE_INSERT_MSL_AVAILABILITY = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_MSL_AVAILABILITY + + "(" + + "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," + + + "TOGGLE_VALUE" + + " VARCHAR" + + + ")"; + + + public static final String TABLE_INSERT_STOCK_FACING_HEADER = "Stock_Facing_Header_Data"; + + public static final String CREATE_TABLE_INSERT_STOCK_FACING_HEADER = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STOCK_FACING_HEADER + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "Store_Id" + + " VARCHAR," + + + "Category_Id" + + " VARCHAR," + + + "COMPANY_ID" + + " VARCHAR," + + + "SUB_CATEGORY_ID" + + " VARCHAR," + + + "SUB_CATEGORY" + + " VARCHAR," + + + "BRAND_ID" + + " VARCHAR," + + + "BRAND" + + " VARCHAR," + + + "SOS_TARGET" + + " VARCHAR," + + + "IMAGE1" + + " VARCHAR," + + + "IMAGE2" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_STOCK_FACING_CHILD = "Stock_Facing_Child_Data"; + + public static final String CREATE_TABLE_INSERT_STOCK_FACING_CHILD = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STOCK_FACING_CHILD + + "(" + + "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," + + + "STOCK_VALUE" + + " VARCHAR," + + + "FACEUP_VALUE" + + " VARCHAR" + + + ")"; + + + public static final String CREATE_TABLE_STOCK_DIALOG = "CREATE TABLE " + + TABLE_INSERT_STOCK_DIALOG + " (" + KEY_ID + + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_STORE_ID + " VARCHAR," + + KEY_BRAND_ID + " VARCHAR," + KEY_BRAND + " VARCHAR," + + KEY_DISPLAY_ID + " VARCHAR," + + KEY_SKU_ID + " VARCHAR," + KEY_QUANTITY + " VARCHAR," + KEY_Common_ID + " VARCHAR," + + "categoryId" + " VARCHAR," + + KEY_SKUNAME + " VARCHAR," + + KEY_PROCESS_ID + " VARCHAR)"; + + + public static final String TABLE_INSERT_STOCK_ADDITIONAL = "Stock_Additional_visibility"; + + public static final String CREATE_TABLE_INSERT_STOCK_ADDITIONAL_VISIBILITY = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STOCK_ADDITIONAL + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "Store_Id" + + " VARCHAR," + + + "brand_name" + + " VARCHAR," + + + "brand_id" + + " VARCHAR," + + + "image_url" + + " VARCHAR," + + "image_url2" + + " VARCHAR," + + "image_url3" + + " VARCHAR," + + + "sku_id" + + " VARCHAR," + + + "sku_name" + + " VARCHAR," + + + "toggle_value" + + " VARCHAR," + + + "categoryId" + + " VARCHAR" + + + ")"; + + + public static final String TABLE_INSERT_ADDITIONAL_PROMO_COMPLIANCE = "Additional_Promo_Compliance_Data"; + + public static final String CREATE_TABLE_INSERT_ADDITIONAL_PROMO_COMPLIANCE = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_ADDITIONAL_PROMO_COMPLIANCE + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " VARCHAR," + + + "SKU_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "PROMO_ID" + + " INTEGER," + + + "PROMO" + + " VARCHAR," + + + "IN_STOCK_VALUE" + + " INTEGER," + + + "PROMO_ANNOUNCER_VALUE" + + " INTEGER," + + + "RUNNING_POS_VALUE" + + " INTEGER," + + + "ADD_PROMO_IMAGE" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_PROMO_SKU = "Promo_SKU_Data"; + + public static final String CREATE_TABLE_INSERT_PROMO_SKU = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_PROMO_SKU + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER," + + + "SKU_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "PROMO_ID" + + " INTEGER," + + + "PROMO" + + " VARCHAR," + + + "IN_STOCK_VALUE" + + " INTEGER," + + + "PROMO_ANNOUNCER_VALUE" + + " INTEGER," + + + "RUNNING_POS_VALUE" + + " INTEGER," + + + "PROMO_IMAGE" + + " VARCHAR" + + + ")"; + + //Gagan Code End + + public static final String TABLE_INSERT_PROMO_SKUWISE = "Promo_SKUwise_Data"; + + public static final String CREATE_TABLE_INSERT_PROMO_SKUWISE = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_PROMO_SKUWISE + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER," + + + "COMMON_ID" + + " INTEGER," + + + "SKU_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "BRAND_ID" + + " INTEGER," + + + "BRAND" + + " VARCHAR," + + + "SUB_CATEGORY_ID" + + " INTEGER," + + + "SUB_CATEGORY" + + " VARCHAR," + + + "PRICE" + + " VARCHAR," + + + "DISCOUNT_VALUE" + + " VARCHAR," + + + "PRICE_FLASHER_AVAILABLE" + + " INTEGER," + + + "PROMO_IMAGE" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_PROMO_SKUWISE_EXISTS = "Promo_SKUwise_Exists_Data"; + + public static final String CREATE_TABLE_INSERT_PROMO_SKUWISE_EXISTS = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_PROMO_SKUWISE_EXISTS + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER," + + + "Existss" + + " INTEGER" + + + ")"; + + public static final String TABLE_INSERT_STOCK_ADDITIONAL_DATA = "ADDITIONAL_STOCK_DATA"; + public static final String CREATE_TABLE_STOCK_ADDITIONAL_STOCK_DATA = "CREATE TABLE " + + TABLE_INSERT_STOCK_ADDITIONAL_DATA + " (" + KEY_ID + + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_STORE_ID + " VARCHAR," + + KEY_BRAND_ID + " VARCHAR," + KEY_BRAND + " VARCHAR," + + KEY_SKU_ID + " VARCHAR," + + KEY_SKUNAME + " VARCHAR," + + KEY_IMAGE + " VARCHAR)"; + + + public static final String TABLE_INSERT_STOCK_ADDITIONAL_MAIN = "Stock_Additional_visibility_Main"; + + public static final String CREATE_TABLE_INSERT_STOCK_ADDITIONAL_VISIBILITY_MAIN = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STOCK_ADDITIONAL_MAIN + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "Store_Id" + + " VARCHAR," + + + "brand_name" + + " VARCHAR," + + + "brand_id" + + " VARCHAR," + + + "image_url" + + " VARCHAR," + + "image_url2" + + " VARCHAR," + + "image_url3" + + " VARCHAR," + + + "sku_id" + + " VARCHAR," + + + "sku_name" + + " VARCHAR," + + + "toggle_value" + + " VARCHAR," + + + "categoryId" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_STOCK_DIALOG_MAIN = "STOCK_DIALOG_MAIN"; + public static final String CREATE_TABLE_STOCK_DIALOG_MAIN = "CREATE TABLE " + + TABLE_INSERT_STOCK_DIALOG_MAIN + " (" + KEY_ID + + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_STORE_ID + " VARCHAR," + + KEY_BRAND_ID + " VARCHAR," + KEY_BRAND + " VARCHAR," + + KEY_DISPLAY_ID + " VARCHAR," + + KEY_SKU_ID + " VARCHAR," + KEY_QUANTITY + " VARCHAR," + KEY_Common_ID + " VARCHAR," + + "categoryId" + " VARCHAR," + + KEY_SKUNAME + " VARCHAR," + + KEY_PROCESS_ID + " VARCHAR)"; + + //Tables related to T2p Compliance + + public static final String TABLE_INSERT_T2P_COMPLIANCE = "T2P_COMPLIANCE"; + + public static final String CREATE_TABLE_INSERT_T2P_COMPLIANCE = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_T2P_COMPLIANCE + + "(" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER," + + KEY_CATEGORY_ID + " INTEGER," + + KEY_BRAND_ID + " INTEGER," + + KEY_DISPLAY_ID + " INTEGER," + + KEY_BRAND + " VARCHAR," + + KEY_IMAGE_URL + " VARCHAR," + + KEY_IMAGE_PATH + " VARCHAR," + + KEY_DISPLAY + " VARCHAR," + + KEY_IMAGE + " VARCHAR," + + KEY_IMAGE1 + " VARCHAR," + + KEY_IMAGE2 + " VARCHAR," + + KEY_REMARK + " VARCHAR," + + KEY_PRESENT + " VARCHAR," + + KEY_QTY + " VARCHAR," + + KEY_FLAG_QUANTITY + " INTEGER," + + KEY_NON_T2P_REASON_ID + " INTEGER," + + KEY_CATEGORY_FIXTURE + " INTEGER" + + ")"; + + + public static final String TABLE_INSERT_T2P_GAPS = "T2P_GAPS"; + + public static final String CREATE_TABLE_INSERT_T2P_GAPS = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_T2P_GAPS + + "(" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_COMMON_ID + " INTEGER," + + KEY_CHECKLIST_ID + " INTEGER," + + KEY_DISPLAY_ID + " INTEGER," + + KEY_CHECKLIST + " VARCHAR," + + KEY_PRESENT + " VARCHAR" + + ")"; + + + public static final String TABLE_INSERT_T2P_SKU = "T2P_SKU"; + + public static final String CREATE_TABLE_INSERT_T2P_SKU = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_T2P_SKU + + "(" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_COMMON_ID + " INTEGER," + + KEY_SKU_ID + " INTEGER," + + KEY_BRAND_ID + " INTEGER," + + KEY_STOCK + " INTEGER," + + KEY_BRAND + " VARCHAR," + + KEY_SKU + " VARCHAR" + + ")"; + + + public static final String TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER = "Stock_Facing_Planogram_Header_Data"; + + public static final String CREATE_TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_HEADER + + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + "store_id" + + " VARCHAR," + + + "category_id" + + " VARCHAR," + + + "company_id" + + " VARCHAR," + + + "brand_id" + + " VARCHAR," + + + "sub_category_id" + + " VARCHAR," + + + "Shelf" + + " VARCHAR," + + + "Shelf_id" + + " VARCHAR," + + + "Shelf_Position" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD = "Stock_Facing_Planogram_Child_Data"; + + public static final String CREATE_TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STOCK_FACING_PLANOGRAM_TRACKER_CHILD + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "common_id" + + " VARCHAR," + + + "Shelf" + + " VARCHAR," + + + "Shelf_id" + + " VARCHAR," + + + "Shelf_Position" + + " VARCHAR," + + + "sku" + + " VARCHAR," + + + "sku_id" + + " VARCHAR," + + + "checkbox_sku" + + " VARCHAR" + + + ")"; + + + public static final String TABLE_INSERT_STORE_CAMERA = "Store_wise_camera"; + + public static final String CREATE_TABLE_INSERT_STORE_CAMERA = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STORE_CAMERA + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "Store_id" + + " VARCHAR," + + + "Category_id" + + " VARCHAR," + + + "Camera1" + + " VARCHAR," + + + "Camera2" + + " VARCHAR," + + + "Camera3" + + " VARCHAR," + + + "Camera4" + + " VARCHAR," + + + "checkSaveStatus" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_BRAND_AVAIBILITY_DATA = "Camera_Not_Allowed"; + + public static final String CREATE_TABLE_INSERT_BRAND_AVAIBILITY_DATA = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_BRAND_AVAIBILITY_DATA + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "COMMON_ID" + + " INTEGER," + + + "BRAND_NAME" + + " VARCHAR," + + + "BRAND_ID" + + " INTEGER" + + + ")"; + + + public static final String TABLE_INSERT_CATEGORY_PICTURE = "Stock_CATEGORY_PICTURE"; + + public static final String CREATE_TABLE_INSERT_CATEGORY_PICTURE = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_CATEGORY_PICTURE + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "Store_Id" + + " VARCHAR," + + + "categoryId" + + " VARCHAR," + + + "CategoryImage1" + + " VARCHAR," + + + "CategoryImage2" + + " VARCHAR," + + "CategoryImage3" + + " VARCHAR," + + "CategoryImage4" + + " VARCHAR," + + + "camera_allow" + + " VARCHAR" + + + ")"; + + + public static final String TABLE_INSERT_CATEGORY_PICTURE_LIST = "Stock_CATEGORY_PICTURE_LIST"; + + public static final String CREATE_TABLE_INSERT_CATEGORY_PICTURE_LIST = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_CATEGORY_PICTURE_LIST + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "COMMON_ID" + + " INTEGER," + + + "Store_Id" + + " VARCHAR," + + + "categoryId" + + " VARCHAR," + + + "SUB_CategoryImage1" + + " VARCHAR," + + "SUB_CategoryImage2" + + " VARCHAR," + + "SUB_Category" + + " VARCHAR," + + + "SUB_Category_ID" + + " INTEGER" + + + ")"; + + public static final String KEY_LANGUAGE_DEFAULT = ""; + public static final String KEY_RETURN_LANGUAGE_DEFAULT = "EN"; + + public static final String KEY_LANGUAGE_ENGLISH = "English"; + public static final String KEY_RETURE_LANGUAGE_ENGLISH = "EN"; + + public static final String KEY_LANGUAGE_ARABIC_KSA = "ARABIC-KSA"; + public static final String KEY_RETURE_LANGUAGE_ARABIC_KSA = "AR"; + + public static final String KEY_LANGUAGE_TURKISH = "TURKISH"; + public static final String KEY_RETURE_LANGUAGE_TURKISH = "TR"; + public static final String KEY_LANGUAGE_ARABIC_KUWAIT = "ARABIC-KUWAIT"; + public static final String KEY_LANGUAGE_ARABIC_BAHRAIN = "ARABIC-BAHRAIN"; + public static final String KEY_LANGUAGE_ARABIC_OMAN = "ARABIC-OMAN"; + public static final String KEY_LANGUAGE_ARABIC_QATAR = "ARABIC-QATAR"; + public static final String KEY_LANGUAGE_ARABIC_LEBANON = "ARABIC-LEBANON"; + public static final String KEY_LANGUAGE_ARABIC_LIBIYA = "ARABIC-LIBYA"; + public static final String KEY_LANGUAGE_OMAN = "English"; + public static final String KEY_RETURE_LANGUAGE_OMAN = "EN"; + + public static final String KEY_RETURN_LANGUAGE_EGYPT = "AR"; + public static final String KEY_LANGUAGE_ARABIC_UAE = "ARABIC-UAE"; + public static final String KEY_LANGUAGE_ARABIC_EGYPT = "ARABIC-EGYPT"; + public static final String KEY_LANGUAGE_ARABIC_JORDAN = "ARABIC-JORDAN"; + public static final String KEY_RETURE_LANGUAGE_UAE_ARABIC = "AR"; + + public static final String TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING = "Msl_Availability_Stock_Facing_Data"; + public static final String TABLE_INSERT_STOCK_ENTRY = "STOCK_ENTRY"; + public static final String TABLE_INSERT_ORDER_TAKING_DATA = "ORDER_TAKING_DATA"; + public static final String TABLE_INSERT_ORDER_RECEIVED_DATA = "ORDER_RECEIVED_STATUS_DATA"; + public static final String POSM_STOCK = "POSM_STOCK"; + public static final String WAREHOUSE_STOCK = "WAREHOUSE_STOCK"; + + public static final String TABLE_INSERT_NO_CAMERA_FACING_DATA = "NO_CAMERA_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 ," + + + KEY_VISIT_DATE + + " VARCHAR," + + + "Store_Id" + + " INTEGER," + + + "Category_Id" + + " INTEGER," + + "Brand_Id" + + " VARCHAR," + + "SKU_ID" + + " INTEGER," + + "SKU" + + " VARCHAR," + + "SKU_SEQUENCE" + + " VARCHAR," + + "MBQ" + + " VARCHAR," + + "COMPANY_ID" + + " INTEGER," + + "FACING" + + " REAL," + + "STOCK" + + " INTEGER," + + "PRICING" + + " INTEGER," + + "PRICING_DEFAULT" + + " VARCHAR," + + "TOGGLE_VALUE" + + " VARCHAR," + + "MUST_HAVE" + + " VARCHAR" + + ")"; + + public static final String CREATE_TABLE_INSERT_STOCK = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_MSL_AVAILABILITY_STOCK_FACING + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + KEY_VISIT_DATE + + " VARCHAR," + + + "Store_Id" + + " INTEGER," + + + "Category_Id" + + " INTEGER," + + "Brand_Id" + + " VARCHAR," + + "SKU_ID" + + " INTEGER," + + "SKU" + + " VARCHAR," + + "SKU_SEQUENCE" + + " VARCHAR," + + "MBQ" + + " VARCHAR," + + "COMPANY_ID" + + " INTEGER," + + "FACING" + + " REAL," + + "STOCK" + + " INTEGER," + + "PRICING" + + " INTEGER," + + "PRICING_DEFAULT" + + " VARCHAR," + + "TOGGLE_VALUE" + + " VARCHAR," + + "MUST_HAVE" + + " VARCHAR" + + ")"; + + public static final String KEY_ROW_NO = "ROW_NO"; + public static final String KEY_COLUMN_NO = "COLUMN_NO"; + public static final String KEY_FACING = "FACING"; + public static final String KEY_ISVERTICAL = "IS_VERTICAL"; + + public static final String CREATE_TABLE_INSERT_NO_CAMERA_FACING_DATA = "CREATE TABLE IF NOT EXISTS " + TABLE_INSERT_NO_CAMERA_FACING_DATA + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER, " + + KEY_CATEGORY_ID + " INTEGER," + + KEY_SUB_CATEGORY_ID + " INTEGER," + + KEY_SKU_GROUP_ID + " INTEGER," + + KEY_ROW_NO + " INTEGER," + + KEY_COLUMN_NO + " INTEGER," + + KEY_ISVERTICAL + " INTEGER," + + KEY_FACING + " INTEGER)"; + + public static final String TABLE_AUDIT_DATA_SAVE = "Audit_Data_Save"; + public static final String CREATE_TABLE_AUDIT_DATA_SAVE = "CREATE TABLE IF NOT EXISTS " + + TABLE_AUDIT_DATA_SAVE + + " (" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_CD" + + " INTEGER," + + + "QUESTION_ID" + + " INTEGER," + + + "QUESTION" + + " VARCHAR," + + + "ANS_CAM_IMAGE" + + " VARCHAR," + + + "ANS_CAM_IMAGE2" + + " VARCHAR," + + + "CAMERA_ALLOW" + + " INTEGER," + + + "ANSWER_ID" + + " INTEGER," + + + "ANSWER" + + " VARCHAR," + + + "CATEGORY_ID" + + " INTEGER," + + + "ANSWER_TYPE" + + " VARCHAR," + + + "REMARK_ALLOW" + + " INTEGER," + + + "REMARK_LEVEL" + + " VARCHAR," + + + "REMARK" + + " VARCHAR," + + + "MAX_LENGHT" + + " INTEGER" + + + ")"; + + public static final String TABLE_POG_DATA_SAVE = "POG_Data_Save"; + public static final String CREATE_TABLE_POG_DATA_SAVE = "CREATE TABLE IF NOT EXISTS " + + TABLE_POG_DATA_SAVE + + " (" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_CD" + + " INTEGER," + + + "QUESTION_ID" + + " INTEGER," + + + "QUESTION" + + " VARCHAR," + + + "QTYPE" + + " VARCHAR," + + + "ANSWER_ID" + + " INTEGER," + + + "SUB_CATEGORY_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER" + + + ")"; + + public static String IS_PASSWORD_CHECK = "IS_PASSWORD_CHECK"; + public static String MPIN = "MPIN"; + public static String TABLE_MAPPING_STOCK_ADHOC = "MAPPING_STOCK_ADHOC"; + public static String TABLE_MAPPING_STOCK = "MAPPING_STOCK"; + public static String TABLE_MAPPING_STOCK_STOREWISE = "MAPPING_STOCK_STOREWISE"; + public static String TABLE_MAPPING_STOCK_ADDITIONAL = "MAPPING_STOCK_ADDITIONAL"; + public static String TABLE_MAPPING_T2P_ADHOC = "MAPPING_T2P_ADHOC"; + public static String TABLE_MAPPING_PROMOTION_ADHOC = "MAPPING_PROMOTION_ADHOC"; + public static String TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC = "MAPPING_ADDITIONAL_PROMOTION_ADHOC"; + 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_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 " + + TABLE_IS_ADHOC_SAVED + + " (" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + KEY_STORE_ID + + " INTEGER," + + + KEY_VISIT_DATE + + " VARCHAR" + + + ")"; + + public static String TABLE_MAPPING_PLANOGRAM = "MAPPING_PLANOGRAM"; + public static String TABLE_MAPPING_PLANOGRAM_STORE_WISE = "MAPPING_PLANOGRAM_STORE_WISE"; + public static String TABLE_MAPPING_T2P = "MAPPING_T2P"; + public static String TABLE_MAPPING_PROMOTION = "MAPPING_PROMOTION"; + public static String TABLE_MAPPING_ADDITIONAL_PROMOTION = "MAPPING_ADDITIONAL_PROMOTION"; + public static String TABLE_MAPPING_SOS_TARGET = "MAPPING_SOS_TARGET"; + + public static final String TABLE_INSERT_COUNTERFEIT_PRODUCT_EXISTS = "COUNTERFEIT_PRODUCT_EXISTS"; + + public static final String CREATE_TABLE_INSERT_COUNTERFEIT_PRODUCT_EXISTS = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_COUNTERFEIT_PRODUCT_EXISTS + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER," + + + "Existss" + + " INTEGER" + + + ")"; + + public static final String TABLE_INSERT_COUNTERFEIT_PRODUCT = "COUNTERFEIT_PRODUCT"; + + public static final String CREATE_TABLE_INSERT_COUNTERFEIT_PRODUCT = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_COUNTERFEIT_PRODUCT + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "STORE_ID" + + " INTEGER," + + + "CATEGORY_ID" + + " INTEGER," + + + "COMMON_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "BRAND_ID" + + " INTEGER," + + + "BRAND" + + " VARCHAR," + + + "STOCK" + + " INTEGER," + + + "IMAGE" + + " VARCHAR," + + + "IMAGE1" + + " VARCHAR," + + + "IMAGE2" + + " VARCHAR" + + + ")"; + + public static final String TABLE_INSERT_STOCK = "Stock_Data"; + + public static final String CREATE_TABLE_INSERT_STOCK_ENTRY = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_STOCK_ENTRY + + "(" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + KEY_VISIT_DATE + + " VARCHAR," + + + "Store_Id" + + " INTEGER," + + + "Category_Id" + + " INTEGER," + + + "Brand_Id" + + " VARCHAR," + + + "SKU_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "SKU_SEQUENCE" + + " VARCHAR," + + + "MBQ" + + " VARCHAR," + + + "COMPANY_ID" + + " INTEGER," + + + "FACING" + + " REAL," + + + "STOCK" + + " INTEGER," + + + "PRICING" + + " INTEGER," + + + "PRICING_DEFAULT" + + " VARCHAR," + + + POSM_STOCK + + " INTEGER," + + + WAREHOUSE_STOCK + + " INTEGER," + + + "TOGGLE_VALUE" + + " VARCHAR," + + + "MUST_HAVE" + + " VARCHAR" + + ")"; + + public static final String TABLE_INSERT_STORE_PROFILE_DATA = "Store_Profile_Data"; + public static final String TABLE_INSERT_PHARMA_IMAGE_DATA = "PHARMA_IMAGE_DATA"; + public static final String KEY_QUESTION_ID = "QUESTION_ID"; + public static final String KEY_QUESTION = "QUESTION"; + + public static final String CREATE_TABLE_INSERT_STORE_PROFILE_DATA = "CREATE TABLE IF NOT EXISTS " + TABLE_INSERT_STORE_PROFILE_DATA + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER, " + + KEY_QUESTION_ID + " INTEGER," + + KEY_QUESTION + " VARCHAR," + + KEY_SUB_CATEGORY_ID + " INTEGER," + + KEY_SUB_CATEGORY + " VARCHAR," + + KEY_BRAND_ID + " INTEGER," + + KEY_BRAND + " VARCHAR," + + KEY_IMAGE + " VARCHAR," + + KEY_PRESENT + " INTEGER)"; + + + public static final String CREATE_TABLE_INSERT_PHARMA_IMAGE_DATA = "CREATE TABLE IF NOT EXISTS " + TABLE_INSERT_PHARMA_IMAGE_DATA + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER, " + + KEY_IMAGE1 + " VARCHAR," + + KEY_IMAGE2 + " VARCHAR," + + KEY_IMAGE3 + " VARCHAR," + + KEY_IMAGE4 + " INTEGER)"; + + public static final String TABLE_INSERT_SOS_PHARMA_DATA = "SOS_PHARMA_DATA"; + public static final String KEY_GSK_FACING = "GSK_FACING"; + public static final String KEY_COMPETITION_FACING = "COMPETITION_FACING"; + + public static final String CREATE_TABLE_INSERT_SOS_PHARMA_DATA = "CREATE TABLE IF NOT EXISTS " + TABLE_INSERT_SOS_PHARMA_DATA + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER, " + + KEY_QUESTION_ID + " INTEGER," + + KEY_QUESTION + " VARCHAR," + + KEY_SUB_CATEGORY_ID + " INTEGER," + + KEY_SUB_CATEGORY + " VARCHAR," + + KEY_BRAND_ID + " INTEGER," + + KEY_BRAND + " VARCHAR," + + KEY_GSK_FACING + " INTEGER," + + KEY_COMPETITION_FACING + " INTEGER)"; + + public static final String TABLE_INSERT_PHARMA_MSL_DATA = "PHARMA_MSL_DATA"; + + public static final String CREATE_TABLE_INSERT_PHARMA_MSL_DATA = "CREATE TABLE IF NOT EXISTS " + TABLE_INSERT_PHARMA_MSL_DATA + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER, " + + KEY_BRAND_ID + " INTEGER," + + KEY_SKU_ID + " INTEGER," + + 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" + + + ")"; + + public static final String TABLE_COACHING_VISIT_STORE = "COACHING_VISIT_STORE"; + + public static final String CREATE_TABLE_COACHING_VISIT_STORE = "CREATE TABLE IF NOT EXISTS " + TABLE_COACHING_VISIT_STORE + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER,USER_ID VARCHAR, " + + KEY_EMP_ID + " VARCHAR," + + KEY_IMAGE + " VARCHAR," + + KEY_EXIST + " INTEGER)"; + + public static final String CREATE_TABLE_INSERT_ORDER_TAKING_DATA = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_ORDER_TAKING_DATA + + " (" + + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "IsExist" + + " INTEGER," + + + "Sys_PO_No" + + " VARCHAR," + + + "Store_PO_No" + + " VARCHAR," + + + "PO_Date" + + " VARCHAR," + + + "PO_IMAGE" + + " VARCHAR," + + + "Store_Id" + + " INTEGER," + + + "Category_Id" + + " INTEGER," + + + "BRAND_ID" + + " INTEGER," + + + "SKU_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "SKU_SEQUENCE" + + " VARCHAR," + + + "Order_Qty" + + " INTEGER," + + + "COMPANY_ID" + + " INTEGER)"; + + public static final String CREATE_TABLE_INSERT_ORDER_RECEIVED_DATA = "CREATE TABLE IF NOT EXISTS " + + TABLE_INSERT_ORDER_RECEIVED_DATA + + " (" + + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + + "Sys_PO_No" + + " VARCHAR," + + + "Store_PO_No" + + " VARCHAR," + + + "PO_Date" + + " VARCHAR," + + + "Store_Id" + + " INTEGER," + + + "Category_Id" + + " INTEGER," + + + "BRAND_ID" + + " INTEGER," + + + "SKU_ID" + + " INTEGER," + + + "SKU" + + " VARCHAR," + + + "SKU_SEQUENCE" + + " VARCHAR," + + + "PO_Qty" + + " INTEGER," + + + "ACTUAL_Qty" + + " INTEGER," + + + "COMPANY_ID" + + " INTEGER," + + + "POID" + + " INTEGER)"; + + public static final String TABLE_VISIT_TYPE = "VISIT_TYPE"; + public static final String KEY_VISIT_ID = "VISIT_TYPE_ID"; + + public static final String CREATE_TABLE_VISIT_TYPE = "CREATE TABLE IF NOT EXISTS " + TABLE_VISIT_TYPE + + " (" + + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + " INTEGER," + + KEY_VISIT_DATE + " VARCHAR," + + KEY_VISIT_ID + " INTEGER)"; + + + public static final String KEY_IRPD_IMAGES = "IRPD_IMAGES"; + public static final String KEY_IRPD_MODIFY_IMAGES = "IRPD_IMAGES_MODIFY"; + public static final String TABLE_IRPD = "DR_IRPD"; + public static final String CREATE_TABLE_IRPD = "CREATE TABLE IF NOT EXISTS " + + TABLE_IRPD + + " (" + + "KEY_ID" + + " INTEGER PRIMARY KEY AUTOINCREMENT ," + + KEY_STORE_ID + + " INTEGER," + + KEY_VISIT_DATE + + " VARCHAR," + + KEY_CATEGORY_ID + + " INTEGER," + + KEY_SUB_CATEGORY_ID + + " INTEGER," + + KEY_SUB_CATEGORY_CODE + + " VARCHAR," + + KEY_IRPD_MODIFY_IMAGES + + " VARCHAR," + + KEY_IRPD_IMAGES + + " VARCHAR)"; + + public static final String BACKUP_FOLDER_NAME = "HaleonMT_Backup"; + public static final String IMAGE_FOLDER_NAME = "HaleonMT_Images"; + public static final String Download_IMAGE_FOLDER = "Downloaded_HaleonMT_Images"; + public static final String ApkFolder = "HaleonMT_ApkFolder"; + + public static String getApkFolder(Context context) { + return AppUtils.getInternalDirectory(context, ApkFolder).getAbsolutePath() + "/"; + } + + public static String getImagesFolder(Context context) { + return AppUtils.getInternalDirectory(context, IMAGE_FOLDER_NAME).getAbsolutePath() + "/"; + } + + public static String getDownloadedImageFolder(Context context) { + return AppUtils.getInternalDirectory(context, Download_IMAGE_FOLDER).getAbsolutePath() + "/"; + } + + public static String getBackupFolder(Context context) { + return AppUtils.getInternalDirectory(context, BACKUP_FOLDER_NAME).getAbsolutePath() + "/"; + } + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonUtils.kt b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonUtils.kt new file mode 100644 index 0000000..e2498e4 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonUtils.kt @@ -0,0 +1,71 @@ +package cpm.com.gskmtorange.constant + +import android.content.Context +import android.net.Uri +import android.util.Patterns +import android.widget.ImageView +import androidx.swiperefreshlayout.widget.CircularProgressDrawable +import com.bumptech.glide.Glide +import com.bumptech.glide.Priority +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.request.RequestOptions +import com.sj.camera_lib_android.utils.CameraSDK.init +import java.io.File + +object CommonUtils { + fun initializePDSDK(context: Context?, _userId: String?) { + if (context != null) { + if (_userId != null) { + init(context, CommonString.PD_PROJECT_iD, _userId) + } + } + } + + fun imgPreviewwithError(context: Context, url: String, imgView: ImageView, resId: Int) { + val circularProgressDrawable = CircularProgressDrawable(context).apply { + strokeWidth = 5f + centerRadius = 30f + start() + } + val options: RequestOptions = + RequestOptions().centerCrop().placeholder(circularProgressDrawable).error(resId) + .diskCacheStrategy(DiskCacheStrategy.ALL).priority(Priority.HIGH) + + Glide.with(context).load(url).apply(options).into(imgView) + } + + fun isValidUrl(url: String): Boolean { + return Patterns.WEB_URL.matcher(url).matches() + } + + fun deleteSpecificImage(context: Context,filePath: String?) { + val file = File(context.filesDir, "") + if (!filePath.isNullOrEmpty()) { + val file = File(filePath) + if (file.exists()) { + val directory = file.parent // Get the directory path + val imageName = file.name // Get the image file name + println("Directory: $directory") + println("Image Name: $imageName") + if (file.delete()) { + println("File deleted successfully: $filePath") + } else { + println("Failed to delete file: $filePath") + } + } else { + println("File does not exist: $filePath") + } + } + } + + fun deleteImage(context: Context, filePath: String) { + val uri = Uri.parse(filePath) + val contentResolver = context.contentResolver + val deleted = contentResolver.delete(uri, null, null) + if (deleted > 0) { + println("File deleted successfully: $filePath") + } else { + println("Failed to delete file: $filePath") + } + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalPromoSKUwiseActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalPromoSKUwiseActivity.java new file mode 100644 index 0000000..107b6dc --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalPromoSKUwiseActivity.java @@ -0,0 +1,1065 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Activity; +import android.app.AlertDialog; +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.text.method.DigitsKeyListener; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.CheckBox; +import android.widget.CompoundButton; +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 androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.DecimalFormat; +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.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PromoComplianceSkuwiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SelectGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuMasterGetterSetter; + +public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener, View.OnClickListener { + + private Context context; + GSKOrangeDB db; + String store_id, visit_date, username, intime, date; + String categoryName, categoryId; + String sub_category = "", sub_category_id = "0", brand = "", brand_id = "0", sku = "", sku_id = "0", discount = "", price = "", _pathforcheck = "", _path = "", img_str = "", country_id; + private SharedPreferences preferences; + Spinner spinner_sub_category_list, spinner_brand_list, spinner_sku_list, sp_flasher; + ArrayList sub_category_list; + ArrayList brand_list = new ArrayList<>(); + ArrayList sku_list = new ArrayList<>(); + Toolbar toolbar; + FloatingActionButton fab_save, fab_add; + + ArrayList exists_data = new ArrayList<>(); + ArrayList added_promo_list = new ArrayList<>(); + + RecyclerView rec_added_promo; + EditText et_discount, et_price; + String gallery_package = ""; + Uri outputFileUri; + ImageView img_cam; + boolean isdata_added = false, isExists = true, is_camera_compulsory = false; + LinearLayout lin_parent; + PromoAdapter promoAdapter; + int price_flasher_available = -1; + + ToggleButton btntoggle; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_additional_promo_skuwise); + toolbar = (Toolbar) findViewById(R.id.toolbar); + toolbar.setTitle(getResources().getString(R.string.title_activity_promo_compliance)); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + spinner_sub_category_list = (Spinner) findViewById(R.id.sp_sub_category); + spinner_brand_list = (Spinner) findViewById(R.id.sp_brand); + spinner_sku_list = (Spinner) findViewById(R.id.sp_sku); + sp_flasher = (Spinner) findViewById(R.id.sp_flasher); + fab_save = (FloatingActionButton) findViewById(R.id.fab); + fab_add = (FloatingActionButton) findViewById(R.id.fab_add); + rec_added_promo = (RecyclerView) findViewById(R.id.rec_added_promo_skuwise); + et_discount = (EditText) findViewById(R.id.et_discount); + et_price = (EditText) findViewById(R.id.et_price); + img_cam = (ImageView) findViewById(R.id.img_promotion_add); + lin_parent = (LinearLayout) findViewById(R.id.lin_parent_promo); + btntoggle = (ToggleButton) findViewById(R.id.btntoggle); + + context = this; + //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); + et_price.setKeyListener(DigitsKeyListener.getInstance(false, true)); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + db = new GSKOrangeDB(AdditionalPromoSKUwiseActivity.this); + db.open(); + + //Enable camera compulsory According to Configuration + ArrayList configurationData = db.getConfigurationMasterData(country_id); + if (configurationData.size() > 0) { + for (int i = 0; i < configurationData.size(); i++) { + + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("ADDITIONAL_PROMO_SKUWISE_IMAGE_MANDATORY") && configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + is_camera_compulsory = true; + } + } + } + + if (is_camera_compulsory) { + img_cam.setBackgroundResource(R.drawable.camera_orange_star_green); + } + + //Promo SKU List + exists_data = db.getPromoComplianceSkuwiseExistsAfterData(store_id, categoryId); + + if (exists_data.size() > 0) { + isExists = exists_data.get(0).isExists(); + if (exists_data.get(0).isExists()) { + added_promo_list = db.getPromoComplianceSkuwiseAfterData(store_id, categoryId); + } else { + fab_add.hide();//.setVisibility(View.GONE); + added_promo_list.clear(); + if (promoAdapter != null) { + promoAdapter.list.clear(); + promoAdapter.notifyDataSetChanged(); + } + + lin_parent.setVisibility(View.GONE); + } + } + + btntoggle.setChecked(isExists); + + if (added_promo_list.size() > 0) { + rec_added_promo.setLayoutManager(new LinearLayoutManager(context)); + promoAdapter = new PromoAdapter(added_promo_list); + rec_added_promo.setAdapter(promoAdapter); + } + + sub_category_list = db.getSubCategoryMasterSKUwise(categoryId); + + MSL_AvailabilityStockFacingGetterSetter sub_category = new MSL_AvailabilityStockFacingGetterSetter(); + String str = getResources().getString(R.string.select); + sub_category.setSub_category(str); + sub_category_list.add(0, sub_category); + CustomSubCategoryAdapter adapter = new CustomSubCategoryAdapter(AdditionalPromoSKUwiseActivity.this, R.layout.custom_spinner_item, sub_category_list); + + spinner_sub_category_list.setAdapter(adapter); + + spinner_sub_category_list.setOnItemSelectedListener(this); + + ArrayList ans_list = new ArrayList<>(); + SelectGetterSetter select = new SelectGetterSetter(); + select.setAns(getString(R.string.select)); + select.setAns_id(0); + ans_list.clear(); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.yes)); + select.setAns_id(1); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.no)); + select.setAns_id(2); + ans_list.add(select); + + CustomSpinnerAdapter ansAdapter = new CustomSpinnerAdapter(AdditionalPromoSKUwiseActivity.this, R.layout.custom_t2p_spinner_item, ans_list); + sp_flasher.setAdapter(ansAdapter); + sp_flasher.setOnItemSelectedListener(this); + + fab_add.setOnClickListener(this); + fab_save.setOnClickListener(this); + img_cam.setOnClickListener(this); + btntoggle.setOnClickListener(this); + } + + @Override + protected void onResume() { + super.onResume(); + toolbar.setTitle(getResources().getString(R.string.title_activity_promo_compliance)); + } + + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (parent.getId()) { + case R.id.sp_sub_category: + + if (position != 0) { + sub_category = sub_category_list.get(position).getSub_category(); + sub_category_id = sub_category_list.get(position).getSub_category_id(); + + brand_list = db.getBrandMasterDataBySubCategory(sub_category_id); + + 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(AdditionalPromoSKUwiseActivity.this, R.layout.custom_spinner_item, brand_list); + + spinner_brand_list.setAdapter(adapter); + spinner_brand_list.setOnItemSelectedListener(this); + } else { + + clearBrandSpinner(); + } + + break; + + case R.id.sp_brand: + + if (position != 0) { + brand = brand_list.get(position).getBRAND().get(0); + brand_id = brand_list.get(position).getBRAND_ID().get(0); + + sku_list = db.getSKUMasterNewData(brand_id); + + SkuMasterGetterSetter sku_select = new SkuMasterGetterSetter(); + String str = getResources().getString(R.string.select); + sku_select.setSKU(str); + sku_select.setSKU_ID("0"); + sku_list.add(0, sku_select); + CustomSkuAdapter adapter = new CustomSkuAdapter(AdditionalPromoSKUwiseActivity.this, R.layout.custom_spinner_item, sku_list); + + spinner_sku_list.setAdapter(adapter); + spinner_sku_list.setOnItemSelectedListener(this); + } else { + + clearSkuSpinner(); + } + + break; + + case R.id.sp_sku: + + if (position != 0) { + sku = sku_list.get(position).getSKU().get(0); + sku_id = sku_list.get(position).getSKU_ID().get(0); + } + + break; + + case R.id.sp_flasher: + + switch (position) { + + case 0: + + price_flasher_available = -1; + break; + + case 1: + price_flasher_available = 1; + break; + + case 2: + price_flasher_available = 0; + break; + } + + break; + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + + 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(AdditionalPromoSKUwiseActivity.this, R.layout.custom_spinner_item, brand_list); + + spinner_brand_list.setAdapter(adapter); + spinner_brand_list.setOnItemSelectedListener(this); + } + + void clearSkuSpinner() { + sku_list.clear(); + + SkuMasterGetterSetter sku_select = new SkuMasterGetterSetter(); + String str = getResources().getString(R.string.select); + sku_select.setSKU(str); + sku_select.setSKU_ID("0"); + sku_list.add(0, sku_select); + CustomSkuAdapter adapter = new CustomSkuAdapter(AdditionalPromoSKUwiseActivity.this, R.layout.custom_spinner_item, sku_list); + + spinner_sku_list.setAdapter(adapter); + spinner_sku_list.setOnItemSelectedListener(this); + } + + @Override + public void onClick(View v) { + int id = v.getId(); + + switch (id) { + + case R.id.fab: + + boolean valid_flag = true; + + if (isExists) { + if (added_promo_list.size() == 0) { + valid_flag = false; + } + } + + if (!valid_flag) { + Snackbar.make(rec_added_promo, R.string.title_activity_Want_add, Snackbar.LENGTH_SHORT).show(); + } else if (isdata_added) { + + db.InsertPromoSKUwiseData(added_promo_list, categoryId, store_id, isExists); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + /*String promotion_sku_wise_data_xml = "", add_promotion_data_xml = "", exists_xml = "", add_xml = ""; + + db.open(); + ArrayList promoComplianceSkuwiseGetterSetters, promoComplianceSkuwiseExistsGetterSetters; + promoComplianceSkuwiseExistsGetterSetters = db.getPromoComplianceSkuwiseExistsAfterData(store_id, null); + if (promoComplianceSkuwiseExistsGetterSetters.size() > 0) { + + for (int l = 0; l < promoComplianceSkuwiseExistsGetterSetters.size(); l++) { + + promoComplianceSkuwiseGetterSetters = db.getPromoComplianceSkuwiseAfterData(promoComplianceSkuwiseExistsGetterSetters.get(l).get_id(), null); + + for (int i1 = 0; i1 < promoComplianceSkuwiseGetterSetters.size(); i1++) { + if (!promoComplianceSkuwiseGetterSetters.get(i1).getCategory_id().equals("0")) { + + String discount_val = promoComplianceSkuwiseGetterSetters.get(i1).getDiscount_value(); + if (discount_val.equals("")) { + discount_val = "0"; + } + + add_xml = "[PROMOTION_DATA]" + + "[MID]" + "0" + "[/MID]" + + "[USER_ID]" + username + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getSub_category_id()) + "[/SUB_CATEGORY_ID]" + + "[SKU_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getSku_id()) + "[/SKU_ID]" + + "[BRAND_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getBrand_id()) + "[/BRAND_ID]" + + "[DISCOUNT_VALUE]" + discount_val + "[/DISCOUNT_VALUE]" + + "[PRICE]" + promoComplianceSkuwiseGetterSetters.get(i1).getPrice() + "[/PRICE]" + + "[PROMO_IMAGE]" + promoComplianceSkuwiseGetterSetters.get(i1).getImg() + "[/PROMO_IMAGE]" + + "[PRICE_FLASHER_AVAILABLE]" + promoComplianceSkuwiseGetterSetters.get(i1).getPrice_flasher() + "[/PRICE_FLASHER_AVAILABLE]" + + "[/PROMOTION_DATA]"; + add_promotion_data_xml = add_promotion_data_xml + add_xml; + } + } + + int exists = 0; + if (promoComplianceSkuwiseExistsGetterSetters.get(l).isExists()) { + exists = 1; + } + + exists_xml = "[ADDITIONAL_PROMOTION_SKUWISE_DATA]" + + "[MID]" + "0" + "[/MID]" + + "[USER_ID]" + username + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseExistsGetterSetters.get(l).getCategory_id()) + "[/CATEGORY_ID]" + + "[IS_EXISTS]" + exists + "[/IS_EXISTS]" + + "[ADDITIONAL_PROMOTION_DATA]" + add_promotion_data_xml + "[/ADDITIONAL_PROMOTION_DATA]" + + "[/ADDITIONAL_PROMOTION_SKUWISE_DATA]"; + + promotion_sku_wise_data_xml = promotion_sku_wise_data_xml + exists_xml; + + } + + final String sos_xml = "[DATA]" + promotion_sku_wise_data_xml + "[/DATA]"; + Log.d("sosdata", sos_xml); + }*/ + + } else { + finish(); + } + + break; + + case R.id.fab_add: + discount = et_discount.getText().toString(); + price = et_price.getText().toString(); + if (sub_category.equals("")) { + Snackbar.make(rec_added_promo, R.string.pls_select_sub_category, Snackbar.LENGTH_SHORT).show(); + } else if (brand.equals("")) { + Snackbar.make(rec_added_promo, R.string.pls_select_brand, Snackbar.LENGTH_SHORT).show(); + } else if (sku.equals("")) { + Snackbar.make(rec_added_promo, R.string.pls_select_sku, Snackbar.LENGTH_SHORT).show(); + }/*else if(discount.equals("")){ + Snackbar.make(rec_added_promo, R.string.pls_enter_discount,Snackbar.LENGTH_SHORT).show(); + }*/ else if (price.equals("")) { + Snackbar.make(rec_added_promo, R.string.pls_enter_price, Snackbar.LENGTH_SHORT).show(); + } else if (!price.equals("") && price.substring(0, 1).equals(".")) { + Snackbar.make(rec_added_promo, R.string.incorrect_price, Snackbar.LENGTH_SHORT).show(); + } else if (is_camera_compulsory && img_str.equals("")) { + Snackbar.make(rec_added_promo, R.string.click_image, Snackbar.LENGTH_SHORT).show(); + } else if (price_flasher_available == -1) { + Snackbar.make(rec_added_promo, R.string.pls_select_price, Snackbar.LENGTH_SHORT).show(); + } else { + PromoComplianceSkuwiseGetterSetter promo = new PromoComplianceSkuwiseGetterSetter(); + promo.setBrand(brand); + promo.setBrand_id(brand_id); + promo.setSub_category(sub_category); + promo.setSub_category_id(sub_category_id); + promo.setSku(sku); + promo.setSku_id(sku_id); + promo.setImg(img_str); + promo.setDiscount_value(discount); + promo.setPrice(price); + promo.setPrice_flasher(price_flasher_available); + added_promo_list.add(promo); + + rec_added_promo.setLayoutManager(new LinearLayoutManager(context)); + PromoAdapter gapAdapter = new PromoAdapter(added_promo_list); + rec_added_promo.setAdapter(gapAdapter); + + sub_category = ""; + sub_category_id = "0"; + brand = ""; + brand_id = "0"; + sku = ""; + sku_id = "0"; + discount = ""; + price = ""; + img_str = ""; + price_flasher_available = -1; + + et_discount.setText(""); + et_price.setText(""); + spinner_sub_category_list.setSelection(0); + clearBrandSpinner(); + clearSkuSpinner(); + sp_flasher.setSelection(0); + + if (is_camera_compulsory) { + img_cam.setBackgroundResource(R.drawable.camera_orange_star_green); + } else { + img_cam.setBackgroundResource(R.mipmap.camera_orange); + } + isdata_added = true; + } + + break; + + case R.id.img_promotion_add: + + _pathforcheck = "Additional_Promo_Skuwise_Image" + store_id + categoryId + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck; + + startCameraActivity(1); + break; + + case R.id.btntoggle: + isExists = btntoggle.isChecked(); + + if (isExists) { + lin_parent.setVisibility(View.VISIBLE); + fab_add.show();//.setVisibility(View.VISIBLE); + } else { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AdditionalPromoSKUwiseActivity.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) { + + fab_add.hide();//.setVisibility(View.GONE); + added_promo_list.clear(); + + rec_added_promo.setLayoutManager(new LinearLayoutManager(context)); + promoAdapter = new PromoAdapter(added_promo_list); + rec_added_promo.setAdapter(promoAdapter); + + /* if(promoAdapter!=null){ + promoAdapter.list.clear(); + promoAdapter.notifyDataSetChanged(); + }*/ + + lin_parent.setVisibility(View.GONE); + + sub_category = ""; + sub_category_id = "0"; + brand = ""; + brand_id = "0"; + sku = ""; + sku_id = "0"; + discount = ""; + price = ""; + img_str = ""; + + et_discount.setText(""); + et_price.setText(""); + spinner_sub_category_list.setSelection(0); + clearBrandSpinner(); + clearSkuSpinner(); + if (is_camera_compulsory) { + img_cam.setBackgroundResource(R.drawable.camera_orange_star_green); + } else { + img_cam.setBackgroundResource(R.mipmap.camera_orange); + } + 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; + } + } + + private void startCameraActivity(int pos) { + try { + + Log.i("Stock & Facing ", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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; + } + } + } + } + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + //startActivityForResult(intent, 1); + startActivityForResult(intent, pos); + //startActivityForResult(intent, position); + + } 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); + startActivityForResult(intent, pos); + + } 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: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(CommonString.getImagesFolder(context) + _pathforcheck).exists()) { + + img_cam.setBackgroundResource(R.mipmap.camera_green); + + img_str = _pathforcheck; + _pathforcheck = ""; + } + } + + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + public class CustomBrandAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + BrandMasterGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomBrandAdapter Constructor + *****************/ + public CustomBrandAdapter(AdditionalPromoSKUwiseActivity 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 CustomSkuAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + SkuMasterGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomSkuAdapter Constructor + *****************/ + public CustomSkuAdapter(AdditionalPromoSKUwiseActivity 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 = (SkuMasterGetterSetter) 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.getSKU().get(0)); + } + + return row; + } + } + + public class CustomSubCategoryAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + MSL_AvailabilityStockFacingGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomSubCategoryAdapter Constructor + *****************/ + public CustomSubCategoryAdapter(AdditionalPromoSKUwiseActivity 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 = (MSL_AvailabilityStockFacingGetterSetter) 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()); + } + + return row; + } + } + + public class PromoAdapter extends RecyclerView.Adapter { + + private ArrayList list; + + public PromoAdapter(ArrayList promoList) { + list = promoList; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_added_promo, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(final ViewHolder holder, int position) { + + final PromoComplianceSkuwiseGetterSetter mItem = list.get(position); + holder.tv_sub_category.setText(getString(R.string.sub_category) + " - " + mItem.getSub_category()); + holder.tv_brand.setText(getString(R.string.brand) + " - " + mItem.getBrand()); + holder.tv_sku.setText(getString(R.string.sku) + " - " + mItem.getSku()); + holder.tv_discount_val.setText(getString(R.string.discount_value) + " - " + mItem.getDiscount_value()); + holder.tv_price.setText(getString(R.string.price) + " - " + mItem.getPrice()); + String exists = ""; + if (mItem.getPrice_flasher() == 1) { + exists = getString(R.string.yes); + } else { + exists = getString(R.string.no); + } + holder.tv_promo_flasher_exists.setText(" - " + exists); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final TextView tv_sub_category, tv_brand, tv_sku, tv_discount_val, tv_price, tv_promo_flasher_exists; + + public ViewHolder(View view) { + super(view); + + mView = view; + + tv_sub_category = (TextView) mView.findViewById(R.id.tv_sub_category); + tv_brand = (TextView) mView.findViewById(R.id.tv_brand); + tv_sku = (TextView) mView.findViewById(R.id.tv_sku); + tv_discount_val = (TextView) mView.findViewById(R.id.tv_discount); + tv_price = (TextView) mView.findViewById(R.id.tv_price); + tv_promo_flasher_exists = (TextView) mView.findViewById(R.id.tv_promo_flasher_exists); + + + } + + } + } + + @Override + public void onBackPressed() { + ischanged(); + } + + /*@Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_promo_skuwise, menu); + + final CheckBox checkBox = (CheckBox) menu.findItem(R.id.menuShowDue).getActionView(); + checkBox.setText(R.string.exists); + checkBox.setChecked(isExists); + + checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + isExists = isChecked; + + if(isExists){ + lin_parent.setVisibility(View.VISIBLE); + fab_add.show();//.setVisibility(View.VISIBLE); + } + else { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AdditionalPromoSKUwiseActivity.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) { + + fab_add.hide();//.setVisibility(View.GONE); + added_promo_list.clear(); + + rec_added_promo.setLayoutManager(new LinearLayoutManager(getApplicationContext())); + promoAdapter = new PromoAdapter(added_promo_list); + rec_added_promo.setAdapter(promoAdapter); + + *//* if(promoAdapter!=null){ + promoAdapter.list.clear(); + promoAdapter.notifyDataSetChanged(); + }*//* + + lin_parent.setVisibility(View.GONE); + + sub_category = ""; + sub_category_id = "0"; + brand= ""; + brand_id = "0"; + sku = ""; + sku_id = "0"; + discount = ""; + price = ""; + img_str = ""; + + et_discount.setText(""); + et_price.setText(""); + spinner_sub_category_list.setSelection(0); + clearBrandSpinner(); + clearSkuSpinner(); + if(is_camera_compulsory){ + img_cam.setBackgroundResource(R.drawable.camera_orange_star_green); + } + else { + img_cam.setBackgroundResource(R.mipmap.camera_orange); + } + isdata_added = true; + + } + }) + .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + checkBox.setChecked(true); + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + } + } + }); + + return true; + }*/ + + @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(AdditionalPromoSKUwiseActivity.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); + } + } + + public class CustomSpinnerAdapter extends ArrayAdapter { + + SelectGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSpinnerAdapter(AdditionalPromoSKUwiseActivity 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 = (SelectGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getAns()); + } + + return row; + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalVisibility.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalVisibility.java new file mode 100644 index 0000000..a5009ab --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalVisibility.java @@ -0,0 +1,1865 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.drawable.ColorDrawable; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ListView; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.core.content.FileProvider; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.AdditionalDialogGetterSetter; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.interfaces.DialogCallbackListener; +import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; + +/** + * Created by ashishc on 05-01-2017. + */ + +public class AdditionalVisibility extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener, DialogCallbackListener { + ArrayList list = new ArrayList(); + private Context context; + ArrayList listdata = new ArrayList<>(); + ArrayList listMain = new ArrayList(); + ArrayList additionalVisibilitySkuList; + ArrayList additionalVisibilityinsertSkuList; + ArrayList uploadlist = new ArrayList(); + ArrayList defdata = new ArrayList(); + Spinner spinner_brand, spinner_sku; + Spinner spinner_brand_list, spinner_sku_list; + + AdditionalDialogGetterSetter additionalgeetersetter; + public static ArrayList data = new ArrayList(); + ToggleButton btntoggle; + ImageView btnimage, btnedit, btnimage1, btnimage2; + Button btnsku; //btnaddlayout; + GSKOrangeDB db; + ArrayList sku_list; + String brand_name = "", brand_id = "", SKU_name = "", SKU_ID = "", brand_list_name = "", brand_list_id = "", sku_list_name = "", sku_list_id = "", display_planogram_url=""; + public ListView listview; + LinearLayout linearlay; + CardView cardlay; + ArrayList brandList; + + ArrayList brand_list; + ArrayList DisplayMaster_list; + //ArrayList DisplayMaster_list; + + + ArrayList empty_list = new ArrayList<>(); + String _pathforcheck1, _pathforcheck2, _pathforcheck3, _path, str, msg; + private SharedPreferences preferences; + String store_id, date, intime, img_str1="", img_str2="", img_str3="", togglevalue = "1", CATEGORY_ID, camera_allow, store_type_id, class_id, key_account_id; + ImageView img_cam, img_clicked, img_planogram; + Button btn_add, btn_close; + EditText Edt_txt; + MyAdaptorStock adapterData; + ListView listviewlay; + String errormsg, categoryName, categoryId,country_id, store_flag_str; + MyAdaptorAdditionalStock adapteradditional; + AddittionalGetterSetter adGt, newadd; + LinearLayout brandlayout, diaplylayout, cameralayout; + FloatingActionButton fab, fab_add; + //RelativeLayout skulayout; + //CardView cardvew, maincard; + String gallery_package = ""; + Uri outputFileUri; + + Toolbar toolbar; + boolean editFlag = false; + + ////String brand_id,SKU_ID; + protected void onCreate(Bundle savedInstanceState) { + // TODO Auto-generated method stub + super.onCreate(savedInstanceState); + + setContentView(R.layout.additionalvisibilitylayout); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + store_type_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + key_account_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, ""); + + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + //store_id = "2"; + date = preferences.getString(CommonString.KEY_DATE, null); + intime = preferences.getString(CommonString.KEY_STORE_IN_TIME, ""); + + db = new GSKOrangeDB(AdditionalVisibility.this); + db.open(); + spinner_brand_list = (Spinner) findViewById(R.id.spinner_Brand1); + spinner_sku_list = (Spinner) findViewById(R.id.spinner_SkuMaster); + //cardvew = (CardView) findViewById(R.id.cardviewid); + btntoggle = (ToggleButton) findViewById(R.id.btntoggle); + btnimage = (ImageView) findViewById(R.id.btn_image); + btnimage1 = (ImageView) findViewById(R.id.btn_image2); + btnimage2 = (ImageView) findViewById(R.id.btn_image3); + + btnedit = (ImageView) findViewById(R.id.btn_edit); + btnsku = (Button) findViewById(R.id.btn_sku); + //btnaddlayout = (Button) findViewById(R.id.btadd); + listviewlay = (ListView) findViewById(R.id.listviewlv); + brandlayout = (LinearLayout) findViewById(R.id.tv_brandlayout); + diaplylayout = (LinearLayout) findViewById(R.id.tv_displaylayout); + cameralayout = (LinearLayout) findViewById(R.id.tv_cameralayout); + fab = (FloatingActionButton) findViewById(R.id.fab); + fab_add = (FloatingActionButton) findViewById(R.id.fab_add); + //maincard = (CardView) findViewById(R.id.cardviewid); + img_planogram = (ImageView) findViewById(R.id.img_planogram); + + img_planogram.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showPlanogram(display_planogram_url); + } + }); + + btntoggle.setChecked(true); + + str = CommonString.getImagesFolder(context); + + ///band List + + //brand_list = db.getBrandMasterData(store_type_id, class_id,key_account_id,categoryId,store_id); + brand_list = db.getBrandMasterDataNew(key_account_id,categoryId,store_type_id,class_id); + BrandMasterGetterSetter brand = new BrandMasterGetterSetter(); + String str = getResources().getString(R.string.select); + brand.setBRAND(str); + brand_list.add(0, brand); + CustomAdapter adapter = new CustomAdapter(AdditionalVisibility.this, R.layout.custom_spinner_item, brand_list); + spinner_brand_list.setAdapter(adapter); + + ///Display List + DisplayMaster_list = db.getADDITIONAL_DISPLAYData(categoryId); + ADDITIONAL_DISPLAY_MASTERGetterSetter select = new ADDITIONAL_DISPLAY_MASTERGetterSetter(); + select.setDISPLAY_ID(str); + DisplayMaster_list.add(0, select); + CustomSkuMasterAdpter skuadapter = new CustomSkuMasterAdpter(AdditionalVisibility.this, R.layout.custom_spinner_item, DisplayMaster_list); + spinner_sku_list.setAdapter(skuadapter); + + spinner_brand_list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + if (position != 0) { + brand_list_name = brand_list.get(position).getBRAND().get(0); + brand_list_id = brand_list.get(position).getBRAND_ID().get(0); + + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + spinner_sku_list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + + img_planogram.setEnabled(true); + sku_list_name = DisplayMaster_list.get(position).getDISPLAY().get(0); + sku_list_id = DisplayMaster_list.get(position).getDISPLAY_ID().get(0); + display_planogram_url = DisplayMaster_list.get(position).getIMAGE_PATH().get(0) + DisplayMaster_list.get(position).getIMAGE_URL().get(0); + + } + else { + img_planogram.setEnabled(false); + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + +/// maintable + + listdata = db.getAdditionalMainStock(store_id, categoryId); + + for (int k = 0; k < listdata.size(); k++) { + listdata.get(k).setSkuDialogList(db.getDialogStock(listdata.get(k).getKey_id())); + + String tooglevalue = listdata.get(k).getBtn_toogle(); + + /*if (tooglevalue.equalsIgnoreCase("0")) { + btnaddlayout.setVisibility(View.INVISIBLE); + cardvew.setVisibility(View.INVISIBLE); + listviewlay.setVisibility(View.INVISIBLE); + + maincard.setVisibility(View.INVISIBLE); + btntoggle.setChecked(false); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.INVISIBLE); + cameralayout.setVisibility(View.INVISIBLE); + btnsku.setVisibility(View.INVISIBLE); + }*/ + + if (tooglevalue.equalsIgnoreCase("0")) { + listviewlay.setVisibility(View.INVISIBLE); + //btnaddlayout.setVisibility(View.INVISIBLE); + fab_add.hide(); + + btntoggle.setChecked(false); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.INVISIBLE); + cameralayout.setVisibility(View.INVISIBLE); + btnsku.setVisibility(View.INVISIBLE); + } else { + adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata); + listviewlay.setAdapter(adapteradditional); + listviewlay.invalidateViews(); + //btnaddlayout.setVisibility(View.VISIBLE); + fab_add.show(); + listviewlay.setVisibility(View.VISIBLE); + } + + /* String KeyID = listdata.get(k).getKey_id(); + + uploadlist = db.getDialogStock(KeyID);*/ + + } + + /* listdata = db.getAdditionalStock(store_id, categoryId); + + for (int k = 0; k < listdata.size(); k++) { + + String tooglevalue = listdata.get(k).getBtn_toogle(); + + if (tooglevalue.equalsIgnoreCase("0")) { + btnaddlayout.setVisibility(View.INVISIBLE); + cardvew.setVisibility(View.INVISIBLE); + listviewlay.setVisibility(View.INVISIBLE); + + maincard.setVisibility(View.INVISIBLE); + btntoggle.setChecked(false); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.INVISIBLE); + cameralayout.setVisibility(View.INVISIBLE); + btnsku.setVisibility(View.INVISIBLE); + } + + }*/ + + + /*if (listdata.size() > 0) { + for (int i = 0; i < listdata.size(); i++) { + if (listdata.get(i).getBtn_toogle().equalsIgnoreCase("0")) { + listviewlay.setVisibility(View.INVISIBLE); + maincard.setVisibility(View.INVISIBLE); + cardvew.setVisibility(View.INVISIBLE); + btnaddlayout.setVisibility(View.INVISIBLE); + } else { + adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata); + listviewlay.setAdapter(adapteradditional); + listviewlay.invalidateViews(); + btnaddlayout.setVisibility(View.VISIBLE); + cardvew.setVisibility(View.VISIBLE); + listviewlay.setVisibility(View.VISIBLE); + maincard.setVisibility(View.VISIBLE); + } + } + + }*/ + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + if (togglevalue.equals("1")) { + + //listdata = db.getAdditionalStock(store_id, categoryId); + + if (listdata.size() > 0) { + + db.deleteStockEntryMainTable(store_id, categoryId); + + db.InsertMainListAdditionalData(listdata, categoryId); + + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + /* AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( + AdditionalVisibility.this); + // set title + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.title_activity_Want_save)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + db.deleteStockEntryMainTable(store_id, categoryId); + + *//*for (int J = 0; J < listdata.size(); J++) { + newadd = new AddittionalGetterSetter(); + newadd.setBrand(listdata.get(J).getBrand_id()); + newadd.setBrand_id(listdata.get(J).getBrand_id()); + newadd.setImage(listdata.get(J).getImage()); + newadd.setImage2(listdata.get(J).getImage2()); + newadd.setImage3(listdata.get(J).getImage3()); + newadd.setSku(listdata.get(J).getSku()); + newadd.setSku_id(listdata.get(J).getSku_id()); + newadd.setStore_id(listdata.get(J).getStore_id()); + newadd.setBtn_toogle(listdata.get(J).getBtn_toogle()); + newadd.setCategoryId(listdata.get(J).getCategoryId()); + String KeyID = listdata.get(J).getKey_id(); + + //additionalVisibilitySkuList = db.getDialogStock(KeyID); + + db.InsertMainListAdditionalData(listdata, additionalVisibilitySkuList, categoryId); + + KeyID = ""; + additionalVisibilitySkuList.clear(); + }*//* + db.InsertMainListAdditionalData(listdata, categoryId); + + 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) { + // if this button is clicked, just close + // the dialog box and do nothing + dialog.cancel(); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + + // show it + alertDialog.show();*/ + + } else { + Snackbar.make(view, getResources().getString(R.string.title_activity_Want_add), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + } else { + db.deleteStockEntryMainTable(store_id, categoryId); + + listdata.clear(); + + newadd = new AddittionalGetterSetter(); + newadd.setBrand(""); + newadd.setBrand_id(""); + newadd.setImage(""); + newadd.setImage2(""); + newadd.setImage3(""); + newadd.setSku(""); + newadd.setSku_id(""); + newadd.setStore_id(store_id); + newadd.setBtn_toogle(togglevalue); + newadd.setCategoryId(categoryId); + + listdata.add(newadd); + + db.InsertMainListAdditionalData(listdata, categoryId); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + /* AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( + AdditionalVisibility.this); + // set title + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.title_activity_Want_save)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + + db.deleteStockEntryMainTable(store_id, categoryId); + + listdata.clear(); + + newadd = new AddittionalGetterSetter(); + newadd.setBrand(""); + newadd.setBrand_id(""); + newadd.setImage(""); + newadd.setImage2(""); + newadd.setImage3(""); + newadd.setSku(""); + newadd.setSku_id(""); + newadd.setStore_id(store_id); + newadd.setBtn_toogle(togglevalue); + newadd.setCategoryId(categoryId); + + listdata.add(newadd); + + db.InsertMainListAdditionalData(listdata, categoryId); + 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) { + // if this button is clicked, just close + // the dialog box and do nothing + dialog.cancel(); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + + // show it + alertDialog.show();*/ + } + + + } + }); + + + fab_add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + adGt = new AddittionalGetterSetter(); + adGt.setBrand(brand_list_name); + adGt.setBrand_id(brand_list_id); + adGt.setImage(img_str1); + adGt.setImage2(img_str2); + adGt.setImage3(img_str3); + + adGt.setSku(sku_list_name); + adGt.setSku_id(sku_list_id); + adGt.setStore_id(store_id); + adGt.setBtn_toogle(togglevalue); + adGt.setCategoryId(categoryId); + + ArrayList listdataTemp = new ArrayList<>(); + listdataTemp.addAll(defdata); + adGt.setSkuDialogList(listdataTemp); + + if (validateData(adGt)) { + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( + AdditionalVisibility.this); + // set title + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.title_activity_Want_to_add)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + // db.InsertAdditionalData(adGt, defdata, categoryId); + + //Adding data to existing parent list + listdata.add(adGt); + editFlag = true; + + clearViews(); + + + //listdata = db.getAdditionalStock(store_id, categoryId); + if (listdata.size() > 0) { + for (int i = 0; i < listdata.size(); i++) { + if (listdata.get(i).getBtn_toogle().equalsIgnoreCase("0")) { + listviewlay.setVisibility(View.INVISIBLE); + //btnaddlayout.setVisibility(View.INVISIBLE); + fab_add.hide(); + } else { + adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata); + listviewlay.setAdapter(adapteradditional); + listviewlay.invalidateViews(); + //btnaddlayout.setVisibility(View.VISIBLE); + fab_add.show(); + listviewlay.setVisibility(View.VISIBLE); + } + } + } + + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // if this button is clicked, just close + // the dialog box and do nothing + dialog.cancel(); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + + // show it + alertDialog.show(); + + } else { + Snackbar.make(view, errormsg, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + + } + }); + + btntoggle.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + if (btntoggle.isChecked()) { + //listdata = db.getAdditionalStock(store_id, categoryId); + + /*if (listdata.size() > 0) { + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( + AdditionalVisibility.this); + // set title + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.data_will_be_lost)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + togglevalue = "1"; + btntoggle.setChecked(true); + db.deleteStockEntryall(store_id, categoryId); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.VISIBLE); + cameralayout.setVisibility(View.VISIBLE); + btnsku.setVisibility(View.VISIBLE); + btnaddlayout.setVisibility(View.VISIBLE); + cardvew.setVisibility(View.VISIBLE); + listviewlay.setVisibility(View.VISIBLE); + maincard.setVisibility(View.INVISIBLE); + + listdata = db.getAdditionalStock(store_id, categoryId); + + adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata); + listviewlay.setAdapter(adapteradditional); + listviewlay.invalidateViews(); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // if this button is clicked, just close + // the dialog box and do nothing + dialog.cancel(); + btntoggle.setChecked(false); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + // show it + alertDialog.show(); + + } else { + + listMain = db.getAdditionalMainStock(store_id, categoryId); + + if (listMain.size() > 0) { + + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( + AdditionalVisibility.this); + // set title + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.data_will_be_lost)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + db.deleteStockEntryall(store_id, categoryId); + togglevalue = "1"; + btntoggle.setChecked(true); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.VISIBLE); + cameralayout.setVisibility(View.VISIBLE); + btnsku.setVisibility(View.VISIBLE); + btnaddlayout.setVisibility(View.VISIBLE); + cardvew.setVisibility(View.VISIBLE); + listviewlay.setVisibility(View.INVISIBLE); + maincard.setVisibility(View.INVISIBLE); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // if this button is clicked, just close + // the dialog box and do nothing + dialog.cancel(); + btntoggle.setChecked(false); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + // show it + alertDialog.show(); + + } else { + togglevalue = "1"; + btntoggle.setChecked(true); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.VISIBLE); + cameralayout.setVisibility(View.VISIBLE); + btnsku.setVisibility(View.VISIBLE); + btnaddlayout.setVisibility(View.VISIBLE); + cardvew.setVisibility(View.VISIBLE); + listviewlay.setVisibility(View.INVISIBLE); + maincard.setVisibility(View.INVISIBLE); + + } + + + }*/ + + listdata.clear(); + + togglevalue = "1"; + btntoggle.setChecked(true); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.VISIBLE); + cameralayout.setVisibility(View.VISIBLE); + btnsku.setVisibility(View.VISIBLE); + //btnaddlayout.setVisibility(View.VISIBLE); + fab_add.show(); + listviewlay.setVisibility(View.INVISIBLE); + + } else { + + //listdata = db.getAdditionalStock(store_id, categoryId); + + if (listdata.size() > 0) { + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( + AdditionalVisibility.this); + // set title + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.data_will_be_lost)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + //db.deleteStockEntryall(store_id, categoryId); + /* togglevalue = "0"; + btntoggle.setChecked(false); +*/ + //clear both parent and child data lists + //defdata.clear(); + listdata.clear(); + + /* btnaddlayout.setVisibility(View.INVISIBLE); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.INVISIBLE); + cameralayout.setVisibility(View.INVISIBLE); + btnsku.setVisibility(View.INVISIBLE); + maincard.setVisibility(View.INVISIBLE);*/ + + // listdata = db.getAdditionalStock(store_id, categoryId); + + /* adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata); + listviewlay.setAdapter(adapteradditional); + listviewlay.invalidateViews();*/ + togglevalue = "0"; + btntoggle.setChecked(false); + defdata.clear(); + //btnaddlayout.setVisibility(View.INVISIBLE); + fab_add.hide(); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.INVISIBLE); + cameralayout.setVisibility(View.INVISIBLE); + btnsku.setVisibility(View.INVISIBLE); + listviewlay.setVisibility(View.INVISIBLE); + adapteradditional.notifyDataSetChanged(); + editFlag = true; + + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // if this button is clicked, just close + // the dialog box and do nothing + //btntoggle.setChecked(true); + dialog.cancel(); + + togglevalue = "1"; + btntoggle.setChecked(true); + /* brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.VISIBLE); + cameralayout.setVisibility(View.VISIBLE); + btnsku.setVisibility(View.VISIBLE); + btnaddlayout.setVisibility(View.VISIBLE); + cardvew.setVisibility(View.VISIBLE); + listviewlay.setVisibility(View.INVISIBLE); + maincard.setVisibility(View.INVISIBLE);*/ + + + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + // show it + alertDialog.show(); + + + }else { + togglevalue = "0"; + btntoggle.setChecked(false); + defdata.clear(); + //btnaddlayout.setVisibility(View.INVISIBLE); + fab_add.hide(); + brandlayout.setVisibility(View.GONE); + diaplylayout.setVisibility(View.INVISIBLE); + cameralayout.setVisibility(View.INVISIBLE); + btnsku.setVisibility(View.INVISIBLE); + listviewlay.setVisibility(View.INVISIBLE); + clearViews(); + } + } + } + }); + + + if (camera_allow.equals("1")) { + + btnimage.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck1 = store_id + categoryId + "AdditionalImage1" + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context)+ _pathforcheck1; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + + } + }); + + btnimage1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck2 = store_id + categoryId + "AdditionalImage2" + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context)+ _pathforcheck2; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + + } + }); + + btnimage2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck3 = store_id + categoryId + "AdditionalImage3" + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context)+ _pathforcheck3; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + + } + }); + + } else { + btnimage.setBackgroundResource(R.mipmap.camera_grey); + btnimage1.setBackgroundResource(R.mipmap.camera_grey); + btnimage2.setBackgroundResource(R.mipmap.camera_grey); + } + + + btnsku.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + showSkuDialog(); + } + }); + + } + + @Override + public void onBackPressed() { + //super.onBackPressed(); + showDataLostAlert(); + } + + void showDataLostAlert(){ + if(editFlag){ + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AdditionalVisibility.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 { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + void clearViews(){ + spinner_brand_list.setSelection(0); + spinner_sku_list.setSelection(0); + img_str1 = ""; + img_str2 = ""; + img_str3 = ""; + brand_list_name = ""; + brand_list_id = ""; + sku_list_name = ""; + sku_list_id = ""; + defdata.clear(); + + btnsku.setBackgroundResource(R.color.colorPrimary); + + if (camera_allow.equals("1")) { + btnimage.setBackgroundResource(R.drawable.camera_orange_star_green); + + btnimage1.setBackgroundResource(R.mipmap.camera_orange); + btnimage2.setBackgroundResource(R.mipmap.camera_orange); + + } else { + btnimage.setBackgroundResource(R.mipmap.camera_grey); + + btnimage1.setBackgroundResource(R.mipmap.camera_grey); + btnimage2.setBackgroundResource(R.mipmap.camera_grey); + } + + } + + public void showPlanogram(String planogram_image) { + + final Dialog dialog = new Dialog(AdditionalVisibility.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + //dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.planogram_dialog_layout); + dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + dialog.setCancelable(false); + + //ArrayList mp = db.getMappingPlanogramData(""); + + //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + + WebView webView = (WebView) dialog.findViewById(R.id.webview); + webView.setWebViewClient(new MyWebViewClient()); + + webView.getSettings().setAllowFileAccess(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setBuiltInZoomControls(true); + + + String html = ""; + webView.loadDataWithBaseURL("", html, "text/html", "utf-8", ""); + + dialog.show(); + + ImageView cancel = (ImageView) dialog.findViewById(R.id.img_cancel); + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + dialog.dismiss(); + } + }); + } + + @Override + public void onSelect(boolean flag) { + + } + + @Override + public void onSave(boolean flag) { + + } + + private class MyWebViewClient extends WebViewClient { + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + } + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + } + + return cdate; + } + + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + + public class CustomAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + BrandMasterGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomAdapter( + AdditionalVisibility 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 CustomSkuAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + SkuGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSkuAdapter( + AdditionalVisibility 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 = (SkuGetterSetter) 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.getSKU()); + } + + return row; + } + } + + public class CustomSkuMasterAdpter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + ADDITIONAL_DISPLAY_MASTERGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSkuMasterAdpter( + AdditionalVisibility 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 = (ADDITIONAL_DISPLAY_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.getDISPLAY().get(0)); + } + + return row; + } + } + + protected void startCameraActivity() { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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: + + if (_pathforcheck1 != null && !_pathforcheck1.equals("")) { + if (new File(str + _pathforcheck1).exists()) { + + btnimage.setBackgroundResource(R.mipmap.camera_green); + + img_str1 = _pathforcheck1; + _pathforcheck1 = ""; + } + } + if (_pathforcheck2 != null && !_pathforcheck2.equals("")) { + if (new File(str + _pathforcheck2).exists()) { + + btnimage1.setBackgroundResource(R.mipmap.camera_green); + + img_str2 = _pathforcheck2; + _pathforcheck2 = ""; + } + } + + if (_pathforcheck3 != null && !_pathforcheck3.equals("")) { + if (new File(str + _pathforcheck3).exists()) { + + btnimage2.setBackgroundResource(R.mipmap.camera_green); + + img_str3 = _pathforcheck3; + _pathforcheck3 = ""; + } + } + + + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + public void showSkuDialog() { + + final ArrayList brandList; + /* if(country_id.equals("]")){ + brandList = db.getBrandT2PData(null, null, null, categoryId, store_id); + } + else { + brandList = db.getBrandT2PData(store_type_id, class_id, key_account_id, categoryId, store_id); + }*/ + + if (country_id.equals("7")||country_id.equals("8") ||country_id.equals("11") || country_id.equals("17")) { + brandList = db.getBrandT2PData(null, null, null, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + brandList = db.getBrandT2PData(store_type_id, class_id, key_account_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + brandList = db.getBrandT2PData(store_type_id, class_id, key_account_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK); + } + + BrandMasterGetterSetter brand = new BrandMasterGetterSetter(); + brand.setBRAND(getResources().getString(R.string.select)); + brandList.add(0, brand); + + // ArrayList skuMasterGetterSetterArrayList = db.getSkuT2PData("1", "1", "1",) + final Dialog dialog = new Dialog(AdditionalVisibility.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.setContentView(R.layout.additionalvisibilitydialoglayout); + //pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + //dialog.setCancelable(false); + spinner_brand = (Spinner) dialog.findViewById(R.id.spinner_brand); + spinner_sku = (Spinner) dialog.findViewById(R.id.spinner_sku); + btn_add = (Button) dialog.findViewById(R.id.btn_add); + btn_close = (Button) dialog.findViewById(R.id.btn_cancel); + + Edt_txt = (EditText) dialog.findViewById(R.id.et_stock); + listview = (ListView) dialog.findViewById(R.id.lv); + linearlay = (LinearLayout) dialog.findViewById(R.id.list_layout); + cardlay = (CardView) dialog.findViewById(R.id.cardId); + + //list = db.getDialogStock(store_id); + + if (defdata.size() > 0) { + linearlay.setVisibility(View.VISIBLE); + cardlay.setVisibility(View.VISIBLE); + adapterData = new MyAdaptorStock(AdditionalVisibility.this, defdata); + listview.setAdapter(adapterData); + listview.invalidateViews(); + + } else { + linearlay.setVisibility(View.INVISIBLE); + cardlay.setVisibility(View.INVISIBLE); + } + + spinner_sku.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + + SKU_ID = sku_list.get(position).getSKU_ID(); + + SKU_name = sku_list.get(position).getSKU(); + + listview.invalidateViews(); + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + btn_close.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dialog.cancel(); + + if (defdata.size() > 0) { + // btn_add.setBackgroundResource(Color); + btnsku.setBackgroundResource(R.color.green); + + } else { + btnsku.setBackgroundResource(R.color.colorPrimary); + } + } + }); + + + btn_add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + AdditionalDialogGetterSetter ab = new AdditionalDialogGetterSetter(); + + ab.setBrand(brand_name); + ab.setBrand_id(brand_id); + //ab.setDisplay_id(data.get(position).getDisplay_id()); + ab.setStore_id(store_id); + // ab.setUnique_id(data.get(position).getUnique_id()); + ab.setSku_id(SKU_ID); + ab.setSku_name(SKU_name); + // ab.setProcess_id(process_id); + ab.setQuantity(Edt_txt.getText().toString().replaceFirst("^0+(?!$)", "")); + // ab.setCategory_id(category_id); + + if (validateDialogData(ab)) { + defdata.add(ab); + // db.InsertStockDialog(ab); + // spinner_brand.setSelection(0); + spinner_sku.setSelection(0); + Edt_txt.setText(""); + SKU_ID = ""; + SKU_name = ""; + // list = db.getDialogStock(store_id); + linearlay.setVisibility(View.VISIBLE); + cardlay.setVisibility(View.VISIBLE); + + adapterData = new MyAdaptorStock(AdditionalVisibility.this, defdata); + listview.setAdapter(adapterData); + listview.invalidateViews(); + + } else { + Snackbar.make(v, msg, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + // dialog.cancel(); + } + }); + + // Create custom adapter object ( see below CustomAdapter.java ) + CustomAdapter adapter = new CustomAdapter(AdditionalVisibility.this, R.layout.custom_spinner_item, brandList); + // Set adapter to spinner + spinner_brand.setAdapter(adapter); + + ArrayList empty_list = new ArrayList<>(); + SkuGetterSetter select = new SkuGetterSetter(); + select.setSKU(getResources().getString(R.string.select)); + empty_list.add(select); + CustomSkuAdapter skuadapter = new CustomSkuAdapter(AdditionalVisibility.this, R.layout.custom_spinner_item, empty_list); + spinner_sku.setAdapter(skuadapter); + + spinner_brand.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + + brand_id = brandList.get(position).getBRAND_ID().get(0); + brand_name = brandList.get(position).getBRAND().get(0); + + if(country_id.equals("7")||country_id.equals("8")||country_id.equals("11") ||country_id.equals("17")){ + sku_list = db.getSkuT2PData(null, null, null, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } + else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){ + sku_list = db.getSkuT2PData(store_type_id, class_id, key_account_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } + else { + sku_list = db.getSkuT2PData(store_type_id, class_id, key_account_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + + + SkuGetterSetter select = new SkuGetterSetter(); + select.setSKU(getResources().getString(R.string.select)); + sku_list.add(0, select); + // Create custom adapter object ( see below CustomSkuAdapter.java ) + CustomSkuAdapter skuadapter = new CustomSkuAdapter(AdditionalVisibility.this, R.layout.custom_spinner_item, sku_list); + // Set adapter to spinner + spinner_sku.setAdapter(skuadapter); + + spinner_sku.setSelection(0); + SKU_ID = ""; + + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + + if (defdata.size() > 0) { + // btn_add.setBackgroundResource(Color); + btnsku.setBackgroundResource(R.color.green); + + } else { + btnsku.setBackgroundResource(R.color.colorPrimary); + } + + + spinner_sku.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + + SKU_ID = sku_list.get(position).getSKU_ID(); + + SKU_name = sku_list.get(position).getSKU(); + + } else { + SKU_ID = ""; + SKU_name = ""; + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + + dialog.show(); + + } + + @Override + public void onClick(View arg0) { + // TODO Auto-generated method stub + + } + + @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) { + + // NavUtils.navigateUpFromSameTask(this); + /*finish(); + + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);*/ + showDataLostAlert(); + } + + return super.onOptionsItemSelected(item); + } + + public class MyAdaptorStock extends BaseAdapter { + + private LayoutInflater mInflater; + private Context mcontext; + private ArrayList list; + + public MyAdaptorStock(Activity activity, ArrayList list1) { + mInflater = LayoutInflater.from(getBaseContext()); + mcontext = activity; + list = list1; + } + + @Override + public int getCount() { + + return list.size(); + } + + @Override + public Object getItem(int position1) { + + return position1; + } + + @Override + public long getItemId(int position1) { + + return position1; + } + + class ViewHolder { + TextView brand, qty_bought, display; + Button save, delete; + + } + + @Override + public View getView(final int position1, View convertView, ViewGroup parent) { + final ViewHolder holder; + + if (convertView == null) { + + convertView = mInflater.inflate(R.layout.additionaldialoglayout, null); + holder = new ViewHolder(); + + holder.brand = (TextView) convertView.findViewById(R.id.brand_name); + holder.display = (TextView) convertView.findViewById(R.id.display_name); + holder.qty_bought = (TextView) convertView.findViewById(R.id.qty_bought); + + holder.delete = (Button) convertView.findViewById(R.id.delete_btn); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.delete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(AdditionalVisibility.this); + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + + // set dialog message + alertDialogBuilder.setMessage(getResources().getString(R.string.data_will_be_lost)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + // db.deletedialogStockEntry(list.get(position1).getKEY_ID()); + + defdata.remove(position1); + adapterData.notifyDataSetChanged(); + + /* list = db.getTOTStockEntryDetail(store_id, category_id, process_id, + list.get(position1).getDisplay_id(),list.get(position1).getUnique_id());*/ + //list = db.getDialogStock(store_id); + + //listview.setAdapter(new MyAdaptorStock(AdditionalVisibility.this, defdata)); + listview.invalidateViews(); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // if this button is clicked, just close + // the dialog box and do nothing + dialog.cancel(); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + + // show it + alertDialog.show(); + + } + }); + + + holder.brand.setText(list.get(position1).getBrand().toString()); + holder.display.setText(list.get(position1).getSku_name().toString()); + + holder.qty_bought.setText(list.get(position1).getQuantity()); + + + holder.brand.setId(position1); + holder.display.setId(position1); + holder.qty_bought.setId(position1); + holder.delete.setId(position1); + + return convertView; + } + } + + public class MyAdaptorAdditionalStock extends BaseAdapter { + + private LayoutInflater mInflater; + private Context mcontext; + private ArrayList list; + + public MyAdaptorAdditionalStock(Activity activity, ArrayList list1) { + + mInflater = LayoutInflater.from(getBaseContext()); + mcontext = activity; + list = list1; + } + + @Override + public int getCount() { + + return list.size(); + } + + @Override + public Object getItem(int position1) { + + return position1; + } + + @Override + public long getItemId(int position1) { + + return position1; + } + + class ViewHolder { + TextView brand, qty_bought, display; + Button save, delete; + + } + + @Override + public View getView(final int position1, View convertView, ViewGroup parent) { + final ViewHolder holder; + + if (convertView == null) { + convertView = mInflater.inflate(R.layout.additionallistlayout, null); + holder = new ViewHolder(); + + holder.brand = (TextView) convertView.findViewById(R.id.brand_name); + holder.display = (TextView) convertView.findViewById(R.id.display_name); + holder.qty_bought = (TextView) convertView.findViewById(R.id.qty_bought); + holder.delete = (Button) convertView.findViewById(R.id.delete_btn); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.delete.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(AdditionalVisibility.this); + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.data_will_be_lost)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + //db.deleteStockEntry(listdata.get(position1).getKey_id()); + + listdata.remove(position1); + adapteradditional.notifyDataSetChanged(); + listviewlay.invalidateViews(); + + /*listdata = db.getAdditionalStock(store_id, categoryId); + + + adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata); + listviewlay.setAdapter(adapteradditional); + + listviewlay.invalidateViews();*/ + + + if (listdata.size() > 0) { + + for (int i = 0; i < listdata.size(); i++) { + if (listdata.get(i).getBtn_toogle().equalsIgnoreCase("0")) { + listviewlay.setVisibility(View.INVISIBLE); + //btnaddlayout.setVisibility(View.INVISIBLE); + fab_add.hide(); + } else { + adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata); + listviewlay.setAdapter(adapteradditional); + listviewlay.invalidateViews(); + //btnaddlayout.setVisibility(View.VISIBLE); + fab_add.show(); + listviewlay.setVisibility(View.VISIBLE); + } + } + } + + + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + alertDialog.show(); + } + }); + + holder.brand.setText(list.get(position1).getBrand().toString()); + holder.display.setText(list.get(position1).getSku().toString()); + holder.brand.setId(position1); + holder.display.setId(position1); + holder.qty_bought.setId(position1); + holder.delete.setId(position1); + + return convertView; + } + } + + boolean validateData(AddittionalGetterSetter data) { + boolean flag = true; + + String brandid = data.getBrand_id(); + String skuid = data.getSku_id(); + + String imageu = data.getImage(); + String toggleid = data.getBtn_toogle(); + ArrayList skuList = data.getSkuDialogList(); + + if (toggleid.equalsIgnoreCase("0")) { + flag = true; + } else { + + if (/*brandid.equalsIgnoreCase("") ||*/ skuid.equalsIgnoreCase("")) { + flag = false; + + errormsg = getResources().getString(R.string.title_activity_select_dropdown); + + } else if (camera_allow.equals("1")) { + if (!country_id.equals("6") && (imageu == null || imageu.equalsIgnoreCase(""))) { + flag = false; + + errormsg = getResources().getString(R.string.title_activity_take_image); + + } else if (skuList.size() == 0) { + errormsg = getResources().getString(R.string.title_activity_fill_sku); + flag = false; + } + + } else if (skuList.size() == 0) { + + errormsg = getResources().getString(R.string.title_activity_fill_sku); + flag = false; + + + } else { + flag = true; + } + + + } + + + return flag; + } + + boolean validateDialogData(AdditionalDialogGetterSetter data) { + boolean flag = true; + + String brandid = data.getBrand_id(); + String displayid = data.getSku_id(); + String skuname = data.getSku_name(); + String QTy = data.getQuantity(); + + + if (brandid.equalsIgnoreCase("") || brandid == null) { + flag = false; + + msg = getResources().getString(R.string.title_activity_select_dropdown); + } else if (displayid == null || displayid.equalsIgnoreCase("") || skuname.equalsIgnoreCase("select")) { + flag = false; + msg = getResources().getString(R.string.title_activity_select_dropdown); + } else if (QTy.equalsIgnoreCase("") || QTy == null) { + flag = false; + msg = getResources().getString(R.string.title_activity_enter_quantity); + } else { + flag = true; + } + + + return flag; + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(categoryName); + + } + +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AuditActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AuditActivity.java new file mode 100644 index 0000000..5a9e401 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AuditActivity.java @@ -0,0 +1,802 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.AlertDialog; +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.text.InputFilter; +import android.text.InputType; +import android.text.Spanned; +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.ExpandableListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.Spinner; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.core.content.FileProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.AdditionalQuestiongetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.AuditDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.T2PGetterSetter; + +public class AuditActivity extends AppCompatActivity { + private Context context; + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + private SharedPreferences preferences; + String categoryName, categoryId, Error_Message = "", pathforcheck = "", _path = "", str, img_str = "", img_str2 = ""; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, store_flag_str, country_id = ""; + GSKOrangeDB db; + ArrayList question_list = new ArrayList<>(), childListData; + HashMap> hashMapAnsListChildData; + AnswerAdapter questionAdapter; + RecyclerView recyclerView; + Uri outputFileUri; + String gallery_package = ""; + int child_position = -1; + String error_msg = ""; + Toolbar toolbar; + LinearLayout no_data_lay; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_audit); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + no_data_lay = (LinearLayout) findViewById(R.id.no_data_lay); + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + toolbar.setTitle(getResources().getString(R.string.audit)); + str = CommonString.getImagesFolder(context); + recyclerView = (RecyclerView) findViewById(R.id.list); + + db = new GSKOrangeDB(this); + db.open(); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + //Header + question_list = db.getAfterSaveAuditQuestionAnswerData(store_id, categoryId); + if (question_list.size() == 0) { + question_list = getAuditQnsRemoved(); + } + + hashMapAnsListChildData = new HashMap<>(); + childListData = new ArrayList<>(); + + if (question_list.size() > 0) { + String select = getString(R.string.title_activity_select_dropdown); + // Adding child data + for (int i = 0; i < question_list.size(); i++) { + childListData = db.getAuditAnswerData(question_list.get(i).getQUESTION_ID(), categoryId, storeType_id, select); + ArrayList answerList = new ArrayList<>(); + for (int j = 0; j < childListData.size(); j++) { + answerList.add(childListData.get(j)); + } + + hashMapAnsListChildData.put(question_list.get(i), answerList); // Header, Child data + } + + questionAdapter = new AnswerAdapter(question_list, hashMapAnsListChildData); + recyclerView.setAdapter(questionAdapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + } else { + no_data_lay.setVisibility(View.VISIBLE); + fab.hide();//setVisibility(View.GONE); + recyclerView.setVisibility(View.GONE); + } + + recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() + { + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) + { + if (dy > 0 && fab.isShown()) + { + fab.hide(); + } + + if (dy < 0 && !fab.isShown()) + { + fab.show(); + } + } + + /* @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) + { + if (newState == RecyclerView.SCROLL_STATE_IDLE) + { + fab.show(); + } + + super.onScrollStateChanged(recyclerView, newState); + }*/ + }); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (question_list.size() > 0) { + recyclerView.clearFocus(); + if (validateData(question_list)) { + db.saveAuditQuestionAnswerData(question_list, store_id, categoryId); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } else { + questionAdapter.notifyDataSetChanged(); + Snackbar.make(recyclerView, error_msg, Snackbar.LENGTH_SHORT).show(); + } + } else { + Snackbar.make(recyclerView, getString(R.string.NodataAvailable), Snackbar.LENGTH_SHORT).show(); + } + } + }); + } + + ArrayList getAuditQnsRemoved() { + + boolean t2p_flag = false; + + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P); + } + + if (flag_t2p_mapping) { + if (db.isFilledT2P(store_id, categoryId)) { + ArrayList t2PList = db.getT2pComplianceData(store_id, categoryId); + + for (int i = 0; i < t2PList.size(); i++) { + if (t2PList.get(i).getPresent() == 1) { + t2p_flag = true; + break; + } + } + } + } + + if (!t2p_flag) { + if (db.additionalVisibilitydata(store_id, categoryId)) { + ArrayList additionalList = db.getAdditionalMainStock(store_id, categoryId); + for (int i = 0; i < additionalList.size(); i++) { + if (additionalList.get(i).getBtn_toogle().equals("1")) { + t2p_flag = true; + break; + } + } + } + } + + ArrayList question_list = db.getAuditCategoryWise(categoryId, storeType_id); + Iterator iterator = question_list.iterator(); + while (iterator.hasNext()) { + AuditDataGetterSetter item = iterator.next(); // must be called before you can call iterator.remove() + // Check condition + if (!item.getKEYACCOUNT_ID().equals("0") && !item.getKEYACCOUNT_ID().equals(keyAccount_id)) { + iterator.remove(); + } else if (!item.getCHECK_TYPE().equals("NA") && item.getCHECK_TYPE().equals("T2P")) { + + if (!t2p_flag) { + iterator.remove(); + } + } + } + + return question_list; + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getResources().getString(R.string.audit)); + } + + @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) { + if (question_list.size() > 0) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AuditActivity.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 { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + if (question_list.size() > 0) { + AlertDialog.Builder builder = new AlertDialog.Builder(AuditActivity.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) { + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + + public class DecimalDigitsInputFilter implements InputFilter { + + Pattern mPattern; + + public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero) { + mPattern = Pattern.compile("[0-9]{0," + (digitsBeforeZero - 1) + "}+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); + } + + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + + Matcher matcher = mPattern.matcher(dest); + if (!matcher.matches()) + return ""; + return null; + } + + } + + class AnswerAdapter extends RecyclerView.Adapter { + ArrayList questionList; + HashMap> answerHashMap; + + public AnswerAdapter(ArrayList questionList, + HashMap> answerHashMap) { + this.questionList = questionList; + this.answerHashMap = answerHashMap; + } + + public AnswerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.audit_question_list_item, parent, false); + return new ViewHolder(view); + } + + public void onBindViewHolder(final AnswerAdapter.ViewHolder holder, @SuppressLint("RecyclerView") final int position) { + holder.data = questionList.get(position); + holder.txt_question.setText(holder.data.getQUESTION()); + holder.txt_question.setId(position); + + // Log.e("mandate_data",holder.data.getCAMERA_ALLOW()+","+holder.data.getCAMERA_MANDATORY() + "," + holder.data.getQUESTION_ID()); + + ArrayList ans_list = answerHashMap.get(holder.data); + + if (holder.data.getANSWER_TYPE().equalsIgnoreCase("Dropdown")) { + holder.sp_auditAnswer.setVisibility(View.VISIBLE); + holder.sp_auditAnswer.setId(position); + holder.edt_answer.setVisibility(View.GONE); + holder.edt_answer.setId(position); + } + else if (holder.data.getANSWER_TYPE().equalsIgnoreCase("TEXTBOX")) { + int maxLength = Integer.parseInt(holder.data.getMaxlength()); + InputFilter[] fArray = new InputFilter[1]; + fArray[0] = new InputFilter.LengthFilter(maxLength); + holder.edt_answer.setFilters(fArray); + holder.edt_answer.setInputType(InputType.TYPE_CLASS_TEXT); + holder.edt_answer.setVisibility(View.VISIBLE); + holder.edt_answer.setId(position); + if (country_id.equals("4")) { + holder.edt_answer.setHint(R.string.pls_fill_stock_count); + holder.edt_answer.setId(position); + } + + holder.sp_auditAnswer.setVisibility(View.GONE); + holder.sp_auditAnswer.setId(position); + + } else if (holder.data.getANSWER_TYPE().equalsIgnoreCase("DECIMAL")) { + int maxLength = Integer.parseInt(holder.data.getMaxlength()); + holder.edt_answer.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED); + holder.edt_answer.setFilters(new InputFilter[]{new DecimalDigitsInputFilter(maxLength, 2)}); + + holder.edt_answer.setVisibility(View.VISIBLE); + holder.edt_answer.setId(position); + + if (country_id.equals("4")) { + holder.edt_answer.setHint(R.string.pls_fill_stock_count); + } + + holder.sp_auditAnswer.setVisibility(View.GONE); + holder.sp_auditAnswer.setId(position); + + } else if (holder.data.getANSWER_TYPE().equalsIgnoreCase("NUMBER")) { + int maxLength = Integer.parseInt(holder.data.getMaxlength()); + InputFilter[] fArray = new InputFilter[1]; + fArray[0] = new InputFilter.LengthFilter(maxLength); + holder.edt_answer.setFilters(fArray); + holder.edt_answer.setInputType(InputType.TYPE_CLASS_NUMBER); + + holder.edt_answer.setVisibility(View.VISIBLE); + holder.edt_answer.setId(position); + + if (country_id.equals("4")) { + holder.edt_answer.setHint(R.string.pls_fill_stock_count); + } + + holder.sp_auditAnswer.setVisibility(View.GONE); + holder.sp_auditAnswer.setId(position); + } + + if (holder.data.getCAMERA_ALLOW().equals("1")) { + holder.parent_cam_layout.setVisibility(View.VISIBLE); + holder.parent_cam_layout.setId(position); + } else { + holder.parent_cam_layout.setVisibility(View.GONE); + holder.parent_cam_layout.setId(position); + } + //text + if (holder.data.getREMARK_ALLOW().equals("1")) { + holder.edt_text.setVisibility(View.VISIBLE); + holder.edt_text.setId(position); + + holder.txt_leval.setVisibility(View.VISIBLE); + holder.txt_leval.setText(holder.data.getREMARK_LEVEL()); + holder.txt_leval.setId(position); + } else { + holder.edt_text.setVisibility(View.GONE); + holder.edt_text.setId(position); + holder.txt_leval.setVisibility(View.GONE); + holder.txt_leval.setId(position); + } + + holder.sp_auditAnswer.setAdapter(new AnswerSpinnerAdapter(AuditActivity.this, R.layout.custom_spinner_item, ans_list)); + + final ArrayList finalAns_list = ans_list; + holder.sp_auditAnswer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + AuditDataGetterSetter ans = finalAns_list.get(position); + holder.data.setANSWER_ID(ans.getANSWER_ID()); + holder.data.setANSWER(ans.getANSWER()); + holder.data.setCAMERA_ALLOW(ans.getCAMERA_ALLOW()); + holder.data.setREMARK_ALLOW(ans.getREMARK_ALLOW()); + holder.data.setREMARK_LEVEL(ans.getREMARK_LEVEL()); + holder.data.setCAMERA_MANDATORY(ans.getCAMERA_MANDATORY()); + + Log.e("mandate_data",holder.data.getCAMERA_ALLOW() + ","+ holder.data.getCAMERA_MANDATORY()); + + //text + if (holder.data.getREMARK_ALLOW().equals("1")) { + holder.edt_text.setVisibility(View.VISIBLE); + holder.txt_leval.setVisibility(View.VISIBLE); + holder.txt_leval.setText(holder.data.getREMARK_LEVEL()); + } else { + holder.edt_text.setVisibility(View.GONE); + holder.txt_leval.setVisibility(View.GONE); + holder.data.setTXT_REMARK(""); + } + + if (holder.data.getCAMERA_ALLOW().equals("1")) { + holder.parent_cam_layout.setVisibility(View.VISIBLE); + if (ans.getNO_OF_CAMERA().equals("2")) { + holder.img_cam2.setVisibility(View.VISIBLE); + } else { + holder.img_cam2.setVisibility(View.GONE); + } + } else { + holder.parent_cam_layout.setVisibility(View.GONE); + if (holder.data.getCAM_IMAGE() != null && holder.data.getCAM_IMAGE().equals("")) { + if (new File(str + holder.data.getCAM_IMAGE()).exists()) { + new File(str + holder.data.getCAM_IMAGE()).delete(); + } + } + if (holder.data.getCAM_IMAGE2() != null && holder.data.getCAM_IMAGE2().equals("")) { + if (new File(str + holder.data.getCAM_IMAGE2()).exists()) { + new File(str + holder.data.getCAM_IMAGE2()).delete(); + } + } + holder.data.setCAM_IMAGE(""); + holder.data.setCAM_IMAGE2(""); + holder.img_cam.setBackgroundResource(R.mipmap.camera_orange); + holder.img_cam2.setBackgroundResource(R.mipmap.camera_orange); + } + } + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + holder.img_cam.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + pathforcheck = store_id + "AuditAnsPic" + categoryId + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context)+ pathforcheck; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + child_position = position; + startCameraActivity(0); + } + }); + + holder.img_cam2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + pathforcheck = store_id + "AuditAnsPic2" + categoryId + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context)+ pathforcheck; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + child_position = position; + startCameraActivity(1); + } + }); + + holder.edt_answer.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (!hasFocus) { + if (holder.data.getANSWER_TYPE().equalsIgnoreCase("NUMBER")) { + holder.data.setANSWER_ID("0"); + holder.data.setANSWER(((EditText) v).getText().toString().replaceFirst("^0+.(?!$)", "")); + } else { + holder.data.setANSWER_ID("0"); + holder.data.setANSWER(((EditText) v).getText().toString().replaceAll("[&^<>{}'$]", "")); + } + + } + } + }); + + //set remark + holder.edt_text.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (!hasFocus) { + holder.data.setTXT_REMARK(((EditText) v).getText().toString().replaceAll("[&^<>{}'$]", "")); + } + } + }); + + for (int i = 0; i < ans_list.size(); i++) { + if (holder.data.getANSWER_TYPE().equalsIgnoreCase("Dropdown") + && ans_list.get(i).getANSWER_ID().equals(holder.data.getANSWER_ID())) { + holder.sp_auditAnswer.setSelection(i); + break; + } + } + + if (holder.data.getANSWER_TYPE().equalsIgnoreCase("TEXTBOX") + || holder.data.getANSWER_TYPE().equalsIgnoreCase("DECIMAL") + || holder.data.getANSWER_TYPE().equalsIgnoreCase("NUMBER")) { + holder.edt_answer.setText(holder.data.getANSWER()); + holder.edt_answer.setId(position); + } + + //set text + if (holder.data.getREMARK_ALLOW().equalsIgnoreCase("1")) { + holder.edt_text.setText(holder.data.getTXT_REMARK()); + holder.edt_text.setId(position); + } + + if (!img_str.equals("")) { + if (child_position == position) { + holder.data.setCAM_IMAGE(img_str); + img_str = ""; + child_position = -1; + } + } + + if (!img_str2.equals("")) { + if (child_position == position) { + holder.data.setCAM_IMAGE2(img_str2); + img_str2 = ""; + child_position = -1; + } + } + + if (holder.data.getCAM_IMAGE().equals("")) { + holder.img_cam.setBackgroundResource(R.mipmap.camera_orange); + holder.img_cam.setId(position); + + } else { + holder.img_cam.setBackgroundResource(R.mipmap.camera_green); + holder.img_cam.setId(position); + } + + if (holder.data.getCAM_IMAGE2().equals("")) { + holder.img_cam2.setBackgroundResource(R.mipmap.camera_orange); + holder.img_cam2.setId(position); + } else { + holder.img_cam2.setBackgroundResource(R.mipmap.camera_green); + holder.img_cam2.setId(position); + } + + + if (!checkflag) { + if (checkHeaderArray.contains(position)) { + holder.card_view.setBackgroundColor(getResources().getColor(R.color.red)); + holder.card_view.setId(position); + } else { + holder.card_view.setBackgroundColor(getResources().getColor(R.color.white)); + holder.card_view.setId(position); + } + } + } + + @Override + public int getItemCount() { + return questionList.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final TextView txt_question, txt_leval; + public final Spinner sp_auditAnswer; + public final EditText edt_answer, edt_text; + public final ImageView img_cam, img_cam2; + public final RelativeLayout parent_cam_layout; + CardView card_view; + AuditDataGetterSetter data; + + public ViewHolder(View view) { + super(view); + mView = view; + + txt_leval = (TextView) view.findViewById(R.id.txt_leval); + txt_question = (TextView) view.findViewById(R.id.txt_question); + sp_auditAnswer = (Spinner) view.findViewById(R.id.sp_auditAnswer); + card_view = (CardView) view.findViewById(R.id.card_view); + edt_text = (EditText) view.findViewById(R.id.edt_text); + edt_answer = (EditText) view.findViewById(R.id.edt_answer); + img_cam = (ImageView) view.findViewById(R.id.img_cam); + img_cam2 = (ImageView) view.findViewById(R.id.img_cam2); + parent_cam_layout = (RelativeLayout) view.findViewById(R.id.parent_cam_layout); + } + } + } + + + public class AnswerSpinnerAdapter extends ArrayAdapter { + List list; + Context context; + int resourceId; + + public AnswerSpinnerAdapter(Context context, int resourceId, ArrayList list) { + super(context, resourceId, list); + this.context = context; + this.list = list; + this.resourceId = resourceId; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + + View view = convertView; + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); + view = inflater.inflate(resourceId, parent, false); + AuditDataGetterSetter cm = list.get(position); + TextView txt_spinner = (TextView) view.findViewById(R.id.tv_text); + txt_spinner.setText(list.get(position).getANSWER()); + + return view; + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + View view = convertView; + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); + view = inflater.inflate(resourceId, parent, false); + + AuditDataGetterSetter cm = list.get(position); + + TextView txt_spinner = (TextView) view.findViewById(R.id.tv_text); + txt_spinner.setText(cm.getANSWER()); + + return view; + } + } + + boolean validateData(ArrayList data) { + //boolean flag = true; + checkHeaderArray.clear(); + + for (int i = 0; i < data.size(); i++) { + if (data.get(i).getANSWER_TYPE().equalsIgnoreCase("TEXTBOX") && data.get(i).getANSWER().equalsIgnoreCase("") + || data.get(i).getANSWER_TYPE().equalsIgnoreCase("DECIMAL") && data.get(i).getANSWER().equalsIgnoreCase("") + || data.get(i).getANSWER_TYPE().equalsIgnoreCase("NUMBER") && data.get(i).getANSWER().equalsIgnoreCase("")) { + error_msg = getString(R.string.pls_answer_all_qns); + checkflag = false; + } else if (data.get(i).getANSWER_TYPE().equalsIgnoreCase("DROPDOWN") && data.get(i).getANSWER_ID().equalsIgnoreCase("0")) { + error_msg = getString(R.string.pls_answer_all_qns); + checkflag = false; + } else if (data.get(i).getCAMERA_ALLOW().equals("1") && data.get(i).getCAMERA_MANDATORY().equals("1") && data.get(i).getCAM_IMAGE().equals("")) { + error_msg = getString(R.string.click_image); + checkflag = false; + } else if (data.get(i).getCAMERA_ALLOW().equals("1") && data.get(i).getCAMERA_MANDATORY().equals("1") + && data.get(i).getNO_OF_CAMERA().equals("2") && data.get(i).getCAM_IMAGE2().equals("")) { + error_msg = getString(R.string.click_image); + checkflag = false; + //text + } else if (data.get(i).getREMARK_ALLOW().equals("1") && data.get(i).getTXT_REMARK().equals("")) { + error_msg = getString(R.string.pleaseenterRemarks); + checkflag = false; + } else { + checkflag = true; + } + + if (checkflag == false) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + break; + } + } + return checkflag; + } + + protected void startCameraActivity(int code) { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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, code); + } 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, code); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + Log.i("MakeMachine", "resultCode: " + resultCode); + switch (resultCode) { + case 0: + Log.i("MakeMachine", "User cancelled"); + break; + + case -1: + + if (pathforcheck != null && !pathforcheck.equals("")) { + if (new File(str + pathforcheck).exists()) { + if (requestCode == 0) { + img_str = pathforcheck; + } else { + img_str2 = pathforcheck; + } + + pathforcheck = ""; + questionAdapter.notifyDataSetChanged(); + } + } + + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CategoryPicture.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CategoryPicture.java new file mode 100644 index 0000000..55b4eff --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CategoryPicture.java @@ -0,0 +1,661 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Activity; +import android.app.AlertDialog; +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.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Random; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryImagesAllowed; + +public class CategoryPicture extends AppCompatActivity { + private Context context; + String _pathforcheck1, _pathforcheck2, _pathforcheck3, _pathforcheck4, Camerapath1, Camerapath2, _path, CaMpath, str, msg, categoryName, categoryId; + ImageView im1, im2, im3, im4; + ListView listview; + String store_id, date, intime, img_str1 = "", img_str2 = "", img_str3 = "", img_str4 = "", togglevalue = "1", CATEGORY_ID, camera_allow, store_type_id, class_id, key_account_id, country_id, store_flag_str; + private SharedPreferences preferences; + Uri outputFileUri; + String gallery_package = ""; + GSKOrangeDB db; + ArrayList adddata = new ArrayList(); + int Adapterposition; + ArrayList listdat = new ArrayList(); + CategoryAdapter adapteradditional; + Toolbar toolbar; + + ArrayList categoryImagesAllowed = new ArrayList<>(); + + boolean editFlag = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_category_picture); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + store_type_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + key_account_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + date = preferences.getString(CommonString.KEY_DATE, null); + intime = preferences.getString(CommonString.KEY_STORE_IN_TIME, ""); + str = CommonString.getImagesFolder(context); + db = new GSKOrangeDB(CategoryPicture.this); + db.open(); + im1 = (ImageView) findViewById(R.id.image1); + im2 = (ImageView) findViewById(R.id.image2); + im3 = (ImageView) findViewById(R.id.image3); + im4 = (ImageView) findViewById(R.id.image4); + listview = (ListView) findViewById(R.id.listview); + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + + adddata = db.getCategoryPictureData(store_id, categoryId); + categoryImagesAllowed = db.getCategoryPictureAllowedData(categoryId); + if (categoryImagesAllowed.size() > 0) { + setCamAllowImage(categoryImagesAllowed.get(0).isImg_cam1(), im1); + setCamAllowImage(categoryImagesAllowed.get(0).isImg_cam2(), im2); + setCamAllowImage(categoryImagesAllowed.get(0).isImg_cam2(), im3); + setCamAllowImage(categoryImagesAllowed.get(0).isImg_cam3(), im4); + } + + if (adddata.size() != 0) { + + String key_id = adddata.get(0).getKEY_ID(); + + listdat = db.getCategoryPictureListData(store_id, categoryId, key_id); + + String image1 = adddata.get(0).getCategoryImage1(); + String image2 = adddata.get(0).getCategoryImage2(); + String image3 = adddata.get(0).getCategoryImage3(); + String image4 = adddata.get(0).getCategoryImage4(); + + if (image1 != null && !image1.equals("")) { + im1.setImageResource(R.mipmap.camera_green); + img_str1 = image1; + } + + if (image2 != null && !image2.equals("")) { + im2.setImageResource(R.mipmap.camera_green); + img_str2 = image2; + } + + if (image3 != null && !image3.equals("")) { + im3.setImageResource(R.mipmap.camera_green); + img_str3 = image3; + } + + if (image4 != null && !image4.equals("")) { + im4.setImageResource(R.mipmap.camera_green); + img_str4 = image4; + } + + } else { + db.open(); + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("11") || country_id.equals("17")) { + listdat = db.getCategoryPicturedata(date, categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + listdat = db.getCategoryPicturedata(date, categoryId, key_account_id, store_type_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + listdat = db.getCategoryPicturedata(date, categoryId, key_account_id, store_type_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + } + adapteradditional = new CategoryPicture.CategoryAdapter(CategoryPicture.this, listdat); + listview.setAdapter(adapteradditional); + + + fab.setOnClickListener(view -> { + final CategoryPictureGetterSetter CP = new CategoryPictureGetterSetter(); + CP.setCategoryImage1(img_str1); + CP.setCategoryImage2(img_str2); + CP.setCategoryImage3(img_str3); + CP.setCategoryImage4(img_str4); + CP.setStore_ID(store_id); + CP.setCamera_allow(camera_allow); + + if (validateData(CP, listdat)) { + db.open(); + db.InsertCategoryPictureData(CP, listdat, categoryId); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + /* AlertDialog.Builder builder = new AlertDialog.Builder(CategoryPicture.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(); + + db.InsertCategoryPictureData(CP, listdat, categoryId); + 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 { + Snackbar.make(view, R.string.title_activity_take_image, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + + } + + + }); + + im1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + + _pathforcheck1 = store_id + "CategoryPicture1" + categoryId + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck1; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + + } + }); + + im2.setOnClickListener(view -> { + + _pathforcheck2 = store_id + "CategoryPicture2" + categoryId + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck2; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + }); + im3.setOnClickListener(view -> { + + _pathforcheck3 = store_id + "CategoryPicture3" + categoryId + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck3; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + + + }); + im4.setOnClickListener(view -> { + + _pathforcheck4 = store_id + "CategoryPicture4" + categoryId + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck4; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + + + }); + } + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + cdate = arabicToenglish(cdate); + } + return cdate; + } + + + protected void startCameraActivity() { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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 (_pathforcheck1 != null && !_pathforcheck1.equals("")) { + if (new File(str + _pathforcheck1).exists()) { + + im1.setImageResource(R.mipmap.camera_green); + + img_str1 = _pathforcheck1; + _pathforcheck1 = ""; + } + } + if (_pathforcheck2 != null && !_pathforcheck2.equals("")) { + if (new File(str + _pathforcheck2).exists()) { + + im2.setImageResource(R.mipmap.camera_green); + + img_str2 = _pathforcheck2; + _pathforcheck2 = ""; + } + } + + if (_pathforcheck3 != null && !_pathforcheck3.equals("")) { + if (new File(str + _pathforcheck3).exists()) { + + im3.setImageResource(R.mipmap.camera_green); + + img_str3 = _pathforcheck3; + _pathforcheck3 = ""; + } + } + + if (_pathforcheck4 != null && !_pathforcheck4.equals("")) { + if (new File(str + _pathforcheck4).exists()) { + + im4.setImageResource(R.mipmap.camera_green); + + img_str4 = _pathforcheck4; + _pathforcheck4 = ""; + } + } + if (Camerapath1 != null && !Camerapath1.equals("")) { + if (new File(str + Camerapath1).exists()) { + + + listdat.get(Adapterposition).setSubCategoryCamera1(Camerapath1); + + Camerapath1 = ""; + listview.invalidateViews(); + } + } + + if (Camerapath2 != null && !Camerapath2.equals("")) { + if (new File(str + Camerapath2).exists()) { + + listdat.get(Adapterposition).setSubCategoryCamera2(Camerapath2); + + Camerapath2 = ""; + listview.invalidateViews(); + } + } + + + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + + public class CategoryAdapter extends BaseAdapter { + + private LayoutInflater mInflater; + private Context mcontext; + private ArrayList list; + + public CategoryAdapter(Activity activity, ArrayList list1) { + + mInflater = LayoutInflater.from(getBaseContext()); + mcontext = activity; + list = list1; + } + + @Override + public int getCount() { + + return list.size(); + } + + @Override + public Object getItem(int position1) { + + return position1; + } + + @Override + public long getItemId(int position1) { + + return position1; + } + + class ViewHolder { + TextView brand, qty_bought, display; + Button camera1, camera2, delete; + + } + + @Override + public View getView(final int position1, View convertView, ViewGroup parent) { + + final CategoryPicture.CategoryAdapter.ViewHolder holder; + + if (convertView == null) { + + convertView = mInflater + .inflate(R.layout.contentcatgoryadpterlayout, null); + holder = new CategoryPicture.CategoryAdapter.ViewHolder(); + holder.brand = (TextView) convertView.findViewById(R.id.textviewname); + holder.camera1 = (Button) convertView.findViewById(R.id.button3); + holder.camera2 = (Button) convertView.findViewById(R.id.cameranew); + convertView.setTag(holder); + } else { + holder = (CategoryPicture.CategoryAdapter.ViewHolder) convertView.getTag(); + } + + holder.camera1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + //Camerapath1 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID()+ date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + /* if(CommonFunctions.getCurrentTimeWithLanguage(mcontext).replace(":", "").contains("????")){ + Camerapath1 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID()+ date.replace("/", "") + new Random().nextInt(999999) + ".jpg"; + } + else{ + Camerapath1 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID()+ date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(mcontext).replace(":", "") + ".jpg"; + }*/ + + Camerapath1 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID() + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(mcontext).replace(":", "") + ".jpg"; + Adapterposition = position1; + // Log.e("Camimage",Camerapath1); + _path = CommonString.getImagesFolder(context) + Camerapath1; + // intime = CommonFunctions.getCurrentTimeWithLanguage(context); + intime = CommonFunctions.getCurrentTimeWithLanguage(mcontext); + startCameraActivity(); + listview.invalidateViews(); + } + }); + + holder.camera2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (listdat.get(position1).getImage_allow().equals("1") && listdat.get(position1).getSubCategoryCamera1().equalsIgnoreCase("")) { + Snackbar.make(listview, R.string.first_click_compulsory_image, Snackbar.LENGTH_LONG).show(); + } else { + // Camerapath2 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID().toString() + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + Camerapath2 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID().toString() + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(mcontext).replace(":", "") + ".jpg"; + Adapterposition = position1; + _path = CommonString.getImagesFolder(context) + Camerapath2; + intime = CommonFunctions.getCurrentTimeWithLanguage(mcontext); + // intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + listview.invalidateViews(); + } + } + }); + + holder.brand.setText(list.get(position1).getSUB_CATEGORY().toString()); + + + if (!listdat.get(position1).getSubCategoryCamera1().equalsIgnoreCase("")) { + + holder.camera1.setBackgroundResource(R.mipmap.camera_green); + + + } else if (listdat.get(position1).getImage_allow().equals("1")) { + holder.camera1.setBackgroundResource(R.drawable.camera_orange_star_green); + } else { + holder.camera1.setBackgroundResource(R.mipmap.camera_orange); + } + + if (!listdat.get(position1).getSubCategoryCamera2().equalsIgnoreCase("")) { + + + holder.camera2.setBackgroundResource(R.mipmap.camera_green); + + } else { + holder.camera2.setBackgroundResource(R.mipmap.camera_orange); + } + + holder.brand.setId(position1); + return convertView; + } + } + + + boolean validateData(CategoryPictureGetterSetter data, ArrayList list) { + boolean flag = true; + + if (categoryImagesAllowed.size() > 0) { + + if (categoryImagesAllowed.get(0).isImg_cam1()) { + if (data.getCategoryImage1().equals("")) { + flag = false; + } + } + + if (flag) { + if (categoryImagesAllowed.get(0).isImg_cam2()) { + if (data.getCategoryImage2().equals("")) { + flag = false; + } + } + } + + if (flag) { + if (categoryImagesAllowed.get(0).isImg_cam3()) { + if (data.getCategoryImage3().equals("")) { + flag = false; + } + } + } + + if (flag) { + if (categoryImagesAllowed.get(0).isImg_cam4()) { + if (data.getCategoryImage4().equals("")) { + flag = false; + } + } + } + } + + if (flag) { + for (int i = 0; i < list.size(); i++) { + + if (list.get(i).getImage_allow().equals("1")) { + + String imageu = list.get(i).getSubCategoryCamera1(); + + if (imageu.equalsIgnoreCase("")) { + + flag = false; + break; + } + } + + } + } + + return flag; + } + + @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) { + + showDataLossAlert(); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + void showDataLossAlert() { + if (editFlag) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(CategoryPicture.this); + builder.setTitle("Parinaam"); + builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false) + .setPositiveButton(getString(R.string.yes), 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.no), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + showDataLossAlert(); + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getResources().getString(R.string.title_activity_category_picture)); + } + + public void setCamAllowImage(boolean isAllowed, ImageView img_cam) { + + if (isAllowed) { + img_cam.setImageResource(R.drawable.camera_orange_star_green); + } else { + img_cam.setImageResource(R.mipmap.camera_orange); + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CheckoutActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CheckoutActivity.java new file mode 100644 index 0000000..75e666b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CheckoutActivity.java @@ -0,0 +1,268 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.adapter.data.ImageUri; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.constant.CommonUtils; +import cpm.com.gskmtorange.download.DownloadActivity; + +public class CheckoutActivity extends AppCompatActivity { + private Context context; + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private String username, visit_date, store_id, store_flag_str; + private Data data; + private SharedPreferences preferences = null; + GSKOrangeDB db; + CoverageBean coverageBean; + String lat, lon, checkOutImagePath = ""; + Toolbar toolbar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_checkout); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + db = new GSKOrangeDB(this); + db.open(); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + username = preferences.getString(CommonString.KEY_USERNAME, null); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + checkOutImagePath = getIntent().getStringExtra(CommonString.KEY_CHECKOUT_IMAGE); + lat = getIntent().getStringExtra(CommonString.KEY_LATITUDE); + lon = getIntent().getStringExtra(CommonString.KEY_LONGITUDE); + coverageBean = db.getCoverageSpecificData(visit_date, store_id); + new BackgroundTask(CheckoutActivity.this).execute(); + } + + private class BackgroundTask extends AsyncTask { + private Context context; + + BackgroundTask(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getString(R.string.title_activity_checkout)); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @SuppressWarnings("deprecation") + @Override + protected String doInBackground(Void... params) { + try { + //String result = ""; + data = new Data(); + data.value = 20; + data.name = "Checked out Data Uploading"; + publishProgress(data); + String onXML = "[STORE_CHECK_OUT_STATUS]" + "[USER_ID]" + username + "[/USER_ID]" + "[STORE_ID]" + store_id + "[/STORE_ID]" + "[LATITUDE]" + lat + "[/LATITUDE]" + "[LOGITUDE]" + lon + "[/LOGITUDE]" + "[CHECKOUT_DATE]" + visit_date + "[/CHECKOUT_DATE]" + "[CHECK_OUTTIME]" + CommonFunctions.getCurrentTimeWithLanguage(context) + "[/CHECK_OUTTIME]" + "[CHECK_INTIME]" + coverageBean.getInTime() + "[/CHECK_INTIME]" + "[CREATED_BY]" + username + "[/CREATED_BY]" + "[/STORE_CHECK_OUT_STATUS]"; + final String sos_xml = "[DATA]" + onXML + "[/DATA]"; + String service; + if (store_flag_str.equals(CommonString.FROM_ADDITIONAL) || store_flag_str.equals(CommonString.FROM_ADDITIONAL_ADHOC)) { + service = CommonString.METHOD_UPLOAD_CHECKOUT_STATUS_ADDITIONAL; + } else if (store_flag_str.equals(CommonString.FROM_PHARMA)) { + service = CommonString.METHOD_UPLOAD_CHECKOUT_STATUS_PHARMA; + } else { + service = CommonString.METHOD_UPLOAD_CHECKOUT_STATUS; + } + + SoapObject request = new SoapObject(CommonString.NAMESPACE, service); + request.addProperty("onXML", sos_xml); + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + service, envelope); + + Object result = (Object) envelope.getResponse(); + + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return service; + } + if (result.toString().equalsIgnoreCase(CommonString.KEY_NO_DATA)) { + return service; + } + if (result.toString().equalsIgnoreCase(CommonString.KEY_FAILURE)) { + return service; + } + + data.value = 100; + data.name = "Checkout Done"; + publishProgress(data); + + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + deleteIRURl(); + db.open(); + db.updateCheckoutOuttime(store_id, CommonFunctions.getCurrentTimeWithLanguage(context), CommonString.KEY_Y, checkOutImagePath); + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_ID, ""); + editor.putString(CommonString.KEY_STORE_NAME, ""); + editor.putString(CommonString.KEY_VISIT_DATE, ""); + editor.putString(CommonString.KEY_CAMERA_ALLOW, ""); + editor.putString(CommonString.KEY_CHECKOUT_STATUS, ""); + editor.putString(CommonString.KEY_CLASS_ID, ""); + editor.putString(CommonString.KEY_EMP_ID, ""); + editor.putString(CommonString.KEY_GEO_TAG, ""); + editor.putString(CommonString.KEY_KEYACCOUNT_ID, ""); + editor.putString(CommonString.KEY_STORETYPE_ID, ""); + editor.putString(CommonString.KEY_UPLOAD_STATUS, ""); + editor.commit(); + + String table; + switch (store_flag_str) { + case CommonString.FROM_JCP: + table = CommonString.KEY_JOURNEY_PLAN; + break; + case CommonString.FROM_ADDITIONAL: + table = CommonString.KEY_JOURNEY_PLAN_ADDITIONAL; + break; + case CommonString.FROM_PHARMA: + table = CommonString.KEY_JOURNEY_PLAN_PHARMA; + break; + case CommonString.FROM_ADDITIONAL_ADHOC: + table = CommonString.KEY_ADHOC_JOURNEYPLAN_ADDITIONAL; + break; + default: + table = CommonString.KEY_ADHOC_JOURNEY_PLAN; + break; + } + + db.updateCheckoutStatus(store_id, CommonString.KEY_Y, table); + + } else { + if (result.toString().equalsIgnoreCase(CommonString.KEY_FALSE)) { + return service; + } + } + return CommonString.KEY_SUCCESS; + + } catch (MalformedURLException e) { + runOnUiThread(() -> { + // TODO Auto-generated method stub + showAlert(CommonString.MESSAGE_EXCEPTION); + }); + } catch (IOException e) { + runOnUiThread(() -> showAlert(CommonString.MESSAGE_SOCKETEXCEPTION)); + } catch (Exception e) { + runOnUiThread(() -> { + // TODO Auto-generated method stub + showAlert(CommonString.MESSAGE_EXCEPTION); + }); + } + + return ""; + } + + @SuppressLint("SetTextI18n") + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + + } + + @Override + protected void onPostExecute(String result) { + // TODO Auto-generated method stub + super.onPostExecute(result); + dialog.dismiss(); + if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + showAlert(getString(R.string.checkout_successful)); + } else if (!result.equals("")) { + Toast.makeText(context, "Network Error Try Again", Toast.LENGTH_SHORT).show(); + finish(); + } + } + } + + class Data { + int value; + String name; + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getResources().getString(R.string.title_activity_checkout)); + } + + private void deleteIRURl() { + try { + ArrayList irList = db.getIrPDforUpload(store_id, visit_date); + if (irList != null && !irList.isEmpty()) { + for (int i = 0; i < irList.size(); i++) { + ArrayList uris = irList.get(i).getImageUris(); + if (uris != null && !uris.isEmpty()) { + for (int k = 0; k < uris.size(); k++) { + CommonUtils.INSTANCE.deleteSpecificImage(this,uris.get(k).getUri()); + } + } + } + } + } catch (Exception e) { + e.fillInStackTrace(); + } + } + + public void showAlert(String str) { + AlertDialog.Builder builder = new AlertDialog.Builder(CheckoutActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false).setPositiveButton("OK", (dialog, id) -> finish()); + AlertDialog alert = builder.create(); + alert.show(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CoachingVisitActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CoachingVisitActivity.java new file mode 100644 index 0000000..1a69c3f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CoachingVisitActivity.java @@ -0,0 +1,455 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.content.ActivityNotFoundException; +import android.content.Context; +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.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Spinner; +import android.widget.Toast; +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; + +import com.androidbuts.multispinnerfilter.KeyPairBoolData; +import com.androidbuts.multispinnerfilter.MultiSpinnerSearch; +import com.androidbuts.multispinnerfilter.SpinnerListener; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CoachingVisitGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter; + +public class CoachingVisitActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener, View.OnClickListener { + private Context context; + private GSKOrangeDB database; + ArrayList supervisorList; + private Spinner exist_spinner; //supervisor_spinner; + private ArrayAdapter exist_adapter, supervisor_adapter; + int coaching_visit; + LinearLayout linear_supervisor; + ImageView img_cam; + FloatingActionButton fab_next, fab_save; + String emp_id; + protected String _pathforcheck = "", _path, image_name = "", str, country_id, store_flag_str; + String visit_date, store_id, username; + private SharedPreferences preferences; + String gallery_package = ""; + Uri outputFileUri; + boolean saved_flag = false, update_flag = false; + ArrayList coachingVisitdata; + boolean coaching_visit_camera_flag = false; + MultiSpinnerSearch multi_spinner_supervisor; + ArrayList selectedSupervisorList = new ArrayList<>(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_coaching_visit); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + linear_supervisor = (LinearLayout) findViewById(R.id.linear_supervisor); + exist_spinner = (Spinner) findViewById(R.id.spinner_coaching_visit); + //supervisor_spinner = (Spinner) findViewById(R.id.spinner_supervisor); + img_cam = (ImageView) findViewById(R.id.img_cam); + + multi_spinner_supervisor = (MultiSpinnerSearch) findViewById(R.id.multi_spinner_supervisor); + context = this; + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + toolbar.setTitle(getResources().getString(R.string.title_activity_coaching_visit)); + + str = CommonString.getImagesFolder(context); + + store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + + username = preferences.getString(CommonString.KEY_USERNAME, ""); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + //store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null); + + fab_next = (FloatingActionButton) findViewById(R.id.fab); + fab_save = (FloatingActionButton) findViewById(R.id.fab_save); + + database = new GSKOrangeDB(this); + database.open(); + + coachingVisitdata = database.getCoachingVisitData(store_id); + + //Enable disable According to Configuration + ArrayList configurationData = database.getConfigurationMasterData(country_id); + if (configurationData.size() > 0) { + + for (int i = 0; i < configurationData.size(); i++) { + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("COACHING VISIT IMAGE") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + coaching_visit_camera_flag = true; + break; + } + } + } + + if (coaching_visit_camera_flag) { + img_cam.setVisibility(View.VISIBLE); + } else { + img_cam.setVisibility(View.GONE); + } + + + supervisorList = database.getSupervisorListData(); + + exist_adapter = new ArrayAdapter<>(this, + android.R.layout.simple_spinner_item); + + String select_str = getResources().getString(R.string.select); + + exist_adapter.add(select_str); + exist_adapter.add(getResources().getString(R.string.yes)); + exist_adapter.add(getResources().getString(R.string.no)); + + exist_spinner.setAdapter(exist_adapter); + + exist_adapter + .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + + exist_spinner.setOnItemSelectedListener(this); + + if (coachingVisitdata.size() != 0) { + update_flag = true; + fab_save.hide();//setVisibility(View.GONE); + fab_next.show();//setVisibility(View.VISIBLE); + if (coachingVisitdata.get(0).isExists()) { + exist_spinner.setSelection(1); + } else { + exist_spinner.setSelection(2); + } + exist_spinner.setEnabled(false); + } + + fab_next.setOnClickListener(this); + fab_save.setOnClickListener(this); + img_cam.setOnClickListener(this); + + } + + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (parent.getId()) { + case R.id.spinner_coaching_visit: + if (position != 0) { + + if (!update_flag) { + + fab_save.show();//setVisibility(View.VISIBLE); + + if (position == 1) { + + linear_supervisor.setVisibility(View.VISIBLE); + + coaching_visit = 1; + + /*supervisor_adapter = new ArrayAdapter(this, + android.R.layout.simple_spinner_item); + + String select_str = getResources().getString(R.string.select_promo); + + supervisor_adapter.add(select_str); + + for (int i = 0; i < supervisorList.size(); i++) { + supervisor_adapter.add(supervisorList.get(i).getSUPERVISOR().get(0)); + } + + supervisor_spinner.setAdapter(supervisor_adapter); + + supervisor_adapter + .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + + supervisor_spinner.setOnItemSelectedListener(this);*/ + + /** + * Getting array of String to Bind in Spinner + */ + //final List list = Arrays.asList(getResources().getStringArray(R.array.sports_array)); + + final List listArray0 = new ArrayList<>(); + + for (int i = 0; i < supervisorList.size(); i++) { + KeyPairBoolData h = new KeyPairBoolData(); + h.setId(i + 1); + h.setName(supervisorList.get(i).getSUPERVISOR().get(0)); + h.setSelected(false); + listArray0.add(h); + } + + multi_spinner_supervisor.setItems(listArray0, -1, new SpinnerListener() { + + @Override + public void onItemsSelected(List items) { + + selectedSupervisorList.clear(); + + for (int i = 0; i < items.size(); i++) { + if (items.get(i).isSelected()) { + + selectedSupervisorList.add(items.get(i).getName()); + Log.i("MultiSpinner", i + " : " + items.get(i).getName() + " : " + items.get(i).isSelected()); + } + } + } + }); + + } else { + coaching_visit = 0; + selectedSupervisorList.clear(); + linear_supervisor.setVisibility(View.GONE); + } + } + } else { + coaching_visit = -1; + linear_supervisor.setVisibility(View.GONE); + fab_save.hide();//setVisibility(View.GONE); + } + + break; + + case R.id.multi_spinner_supervisor: + /* if(position!=0){ + emp_id = supervisorList.get(position-1).getEMP_ID().get(0); + } + else { + emp_id = ""; + }*/ + + break; + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + + @Override + public void onClick(View v) { + + switch (v.getId()) { + case R.id.img_cam: + _pathforcheck = store_id + "CoachingVisit" + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck; + startCameraActivity(); + break; + + case R.id.fab_save: + if (coaching_visit == 1) { + String error_msg = ""; + boolean flag = true; + //if(emp_id.equals("")){ + if (selectedSupervisorList.size() == 0) { + flag = false; + error_msg = getString(R.string.title_activity_select_dropdown); + } else if (coaching_visit_camera_flag && image_name.equals("")) { + flag = false; + error_msg = getString(R.string.clickimage); + } + + if (flag) { + for (int i = 0; i < selectedSupervisorList.size(); i++) { + CoachingVisitGetterSetter coachingVisitGetterSetter = new CoachingVisitGetterSetter(); + coachingVisitGetterSetter.setEmp_id(getEmp_idFromName(selectedSupervisorList.get(i))); + coachingVisitGetterSetter.setImg_path(image_name); + coachingVisitGetterSetter.setExists(coaching_visit == 1); + database.insertCoachingVisitData(coachingVisitGetterSetter, store_id); + } + + Toast.makeText(context, getString(R.string.save_message), Toast.LENGTH_SHORT).show(); + + saved_flag = true; + + fab_next.show();//setVisibility(View.VISIBLE); + } else { + Snackbar.make(linear_supervisor, error_msg, Snackbar.LENGTH_SHORT).show(); + } + } else { + CoachingVisitGetterSetter coachingVisitGetterSetter = new CoachingVisitGetterSetter(); + coachingVisitGetterSetter.setEmp_id("0"); + coachingVisitGetterSetter.setImg_path(image_name); + coachingVisitGetterSetter.setExists(coaching_visit == 1); + + database.insertCoachingVisitData(coachingVisitGetterSetter, store_id); + + Toast.makeText(context, getString(R.string.save_message), Toast.LENGTH_SHORT).show(); + saved_flag = true; + fab_next.show();//setVisibility(View.VISIBLE); + } + + + break; + + case R.id.fab: + + if (saved_flag || update_flag) { + + // Intent i = new Intent(CoachingVisitActivity.this, StoreCheckoutImageActivity.class); + Intent i = new Intent(CoachingVisitActivity.this, CoachingVisitStoreActivity.class); + i.putExtra(CommonString.KEY_STORE_ID, store_id); + i.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + startActivity(i); + finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + Snackbar.make(linear_supervisor, getString(R.string.please_save_data), Snackbar.LENGTH_SHORT).show(); + } + break; + } + } + + String getEmp_idFromName(String name) { + String emp_id = "0"; + + for (int i = 0; i < supervisorList.size(); i++) { + if (supervisorList.get(i).getSUPERVISOR().get(0).equalsIgnoreCase(name)) { + emp_id = supervisorList.get(i).getEMP_ID().get(0); + break; + } + } + + return emp_id; + } + + protected void startCameraActivity() { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + } + + @SuppressLint("MissingSuperCall") + @SuppressWarnings("deprecation") + @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: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + img_cam.setImageDrawable(getResources().getDrawable(R.mipmap.camera_green)); + + image_name = _pathforcheck; + + _pathforcheck = ""; + + } + } + + break; + } + + } + + @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) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + return super.onOptionsItemSelected(item); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CoachingVisitStoreActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CoachingVisitStoreActivity.java new file mode 100644 index 0000000..9a8337c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CoachingVisitStoreActivity.java @@ -0,0 +1,444 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.content.ActivityNotFoundException; +import android.content.Context; +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.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Spinner; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; + +import com.androidbuts.multispinnerfilter.KeyPairBoolData; +import com.androidbuts.multispinnerfilter.MultiSpinnerSearch; +import com.androidbuts.multispinnerfilter.SpinnerListener; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CoachingVisitGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter; + +public class CoachingVisitStoreActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener, View.OnClickListener { + + private Context context; + private GSKOrangeDB database; + ArrayList supervisorList; + private Spinner exist_spinner; //supervisor_spinner; + private ArrayAdapter exist_adapter, supervisor_adapter; + int coaching_visit; + LinearLayout linear_supervisor; + ImageView img_cam; + FloatingActionButton fab_next, fab_save; + String emp_id; + protected String _pathforcheck = "", _path, image_name = "", str, country_id, store_flag_str; + String visit_date, store_id, username; + private SharedPreferences preferences; + String gallery_package = ""; + Uri outputFileUri; + boolean saved_flag = false, update_flag = false; + ArrayList coachingVisitdata; + boolean coaching_visit_camera_flag = false; + MultiSpinnerSearch multi_spinner_supervisor; + + ArrayList selectedSupervisorList = new ArrayList<>(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_coaching_visit_store); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + linear_supervisor = (LinearLayout) findViewById(R.id.linear_supervisor); + exist_spinner = (Spinner) findViewById(R.id.spinner_coaching_visit); + //supervisor_spinner = (Spinner) findViewById(R.id.spinner_supervisor); + img_cam = (ImageView) findViewById(R.id.img_cam); + + multi_spinner_supervisor = (MultiSpinnerSearch) findViewById(R.id.multi_spinner_supervisor); + context = this; + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + toolbar.setTitle(getResources().getString(R.string.title_activity_coaching_visit_store)); + + str = CommonString.getImagesFolder(context); + + store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + + username = preferences.getString(CommonString.KEY_USERNAME, ""); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + //store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null); + + fab_next = (FloatingActionButton) findViewById(R.id.fab); + fab_save = (FloatingActionButton) findViewById(R.id.fab_save); + + database = new GSKOrangeDB(this); + database.open(); + + coachingVisitdata = database.getCoachingVisitStoreData(store_id); + + //Enable disable According to Configuration + ArrayList configurationData = database.getConfigurationMasterData(country_id); + if (configurationData.size() > 0) { + + for (int i = 0; i < configurationData.size(); i++) { + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("COACHING VISIT IMAGE") && + configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + coaching_visit_camera_flag = true; + break; + } + } + } + + if (coaching_visit_camera_flag) { + img_cam.setVisibility(View.VISIBLE); + } else { + img_cam.setVisibility(View.GONE); + } + + + supervisorList = database.getSupervisorcheckListData(); + + exist_adapter = new ArrayAdapter<>(this, + android.R.layout.simple_spinner_item); + + String select_str = getResources().getString(R.string.select); + + exist_adapter.add(select_str); + exist_adapter.add(getResources().getString(R.string.yes)); + exist_adapter.add(getResources().getString(R.string.no)); + + exist_spinner.setAdapter(exist_adapter); + + exist_adapter + .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + + exist_spinner.setOnItemSelectedListener(this); + + if (coachingVisitdata.size() != 0) { + update_flag = true; + fab_save.hide();//setVisibility(View.GONE); + fab_next.show();//setVisibility(View.VISIBLE); + if (coachingVisitdata.get(0).isExists()) { + exist_spinner.setSelection(1); + } else { + exist_spinner.setSelection(2); + } + exist_spinner.setEnabled(false); + } + + fab_next.setOnClickListener(this); + fab_save.setOnClickListener(this); + img_cam.setOnClickListener(this); + + } + + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (parent.getId()) { + case R.id.spinner_coaching_visit: + if (position != 0) { + + if (!update_flag) { + + fab_save.show();//setVisibility(View.VISIBLE); + + if (position == 1) { + + linear_supervisor.setVisibility(View.VISIBLE); + + coaching_visit = 1; + + /** + * Getting array of String to Bind in Spinner + */ + //final List list = Arrays.asList(getResources().getStringArray(R.array.sports_array)); + + final List listArray0 = new ArrayList<>(); + + for (int i = 0; i < supervisorList.size(); i++) { + KeyPairBoolData h = new KeyPairBoolData(); + h.setId(i + 1); + h.setName(supervisorList.get(i).getSUPERVISOR().get(0)); + h.setSelected(false); + listArray0.add(h); + } + + multi_spinner_supervisor.setItems(listArray0, -1, new SpinnerListener() { + + @Override + public void onItemsSelected(List items) { + + selectedSupervisorList.clear(); + + for (int i = 0; i < items.size(); i++) { + if (items.get(i).isSelected()) { + + selectedSupervisorList.add(items.get(i).getName()); + Log.i("MultiSpinner", i + " : " + items.get(i).getName() + " : " + items.get(i).isSelected()); + } + } + } + }); + + } else { + coaching_visit = 0; + selectedSupervisorList.clear(); + linear_supervisor.setVisibility(View.GONE); + } + } + + } else { + + coaching_visit = -1; + linear_supervisor.setVisibility(View.GONE); + fab_save.hide();//setVisibility(View.GONE); + } + + break; + + case R.id.multi_spinner_supervisor: + + /* if(position!=0){ + emp_id = supervisorList.get(position-1).getEMP_ID().get(0); + } + else { + emp_id = ""; + }*/ + + break; + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + + @Override + public void onClick(View v) { + + switch (v.getId()) { + case R.id.img_cam: + _pathforcheck = store_id + "CheckVisit" + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck; + + startCameraActivity(); + break; + + case R.id.fab_save: + + if (coaching_visit == 1) { + + String error_msg = ""; + boolean flag = true; + //if(emp_id.equals("")){ + if (selectedSupervisorList.size() == 0) { + flag = false; + error_msg = getString(R.string.title_activity_select_dropdown); + } else if (coaching_visit_camera_flag && image_name.equals("")) { + flag = false; + error_msg = getString(R.string.clickimage); + } + + if (flag) { + + for (int i = 0; i < selectedSupervisorList.size(); i++) { + CoachingVisitGetterSetter coachingVisitGetterSetter = new CoachingVisitGetterSetter(); + coachingVisitGetterSetter.setEmp_id(getEmp_idFromName(selectedSupervisorList.get(i))); + coachingVisitGetterSetter.setImg_path(image_name); + coachingVisitGetterSetter.setExists(coaching_visit == 1); + + database.insertCoachingVisitStoreData(coachingVisitGetterSetter, store_id); + } + + Toast.makeText(context, getString(R.string.save_message), Toast.LENGTH_SHORT).show(); + + saved_flag = true; + + fab_next.show();//setVisibility(View.VISIBLE); + } else { + Snackbar.make(linear_supervisor, error_msg, Snackbar.LENGTH_SHORT).show(); + } + } else { + CoachingVisitGetterSetter coachingVisitGetterSetter = new CoachingVisitGetterSetter(); + coachingVisitGetterSetter.setEmp_id("0"); + coachingVisitGetterSetter.setImg_path(image_name); + coachingVisitGetterSetter.setExists(coaching_visit == 1); + + database.insertCoachingVisitStoreData(coachingVisitGetterSetter, store_id); + + Toast.makeText(context, getString(R.string.save_message), Toast.LENGTH_SHORT).show(); + saved_flag = true; + fab_next.show();//setVisibility(View.VISIBLE); + } + + + break; + + case R.id.fab: + + if (saved_flag || update_flag) { + + Intent i = new Intent(CoachingVisitStoreActivity.this, StoreCheckoutImageActivity.class); + i.putExtra(CommonString.KEY_STORE_ID, store_id); + i.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + startActivity(i); + finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + Snackbar.make(linear_supervisor, getString(R.string.please_save_data), Snackbar.LENGTH_SHORT).show(); + } + break; + } + } + + String getEmp_idFromName(String name) { + String emp_id = "0"; + + for (int i = 0; i < supervisorList.size(); i++) { + if (supervisorList.get(i).getSUPERVISOR().get(0).equalsIgnoreCase(name)) { + emp_id = supervisorList.get(i).getEMP_ID().get(0); + break; + } + } + + return emp_id; + } + + protected void startCameraActivity() { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + } + + @SuppressLint("MissingSuperCall") + @SuppressWarnings("deprecation") + @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: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + img_cam.setImageDrawable(getResources().getDrawable(R.mipmap.camera_green)); + + image_name = _pathforcheck; + + _pathforcheck = ""; + + } + } + + break; + } + + } + + @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) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + return super.onOptionsItemSelected(item); + } +} 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..804bdf5 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CompetitionPromoActivity.java @@ -0,0 +1,812 @@ +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.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 androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +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 { + private Context context; + 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); + context = this; + //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(context, 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(context)); + 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.getImagesFolder(context); + } + + @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(context)); + 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(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck; + startCameraActivity(); + break; + + case R.id.img_cam1: + _pathforcheck1 = store_id + "CounterfeitProductImg2" + categoryId + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck1; + startCameraActivity(); + break; + + case R.id.img_cam2: + _pathforcheck2 = store_id + "CounterfeitProductImg3" + categoryId + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _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(context, "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() { + super.onBackPressed(); + ischanged(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/ConversationActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/ConversationActivity.java new file mode 100644 index 0000000..37b5f07 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/ConversationActivity.java @@ -0,0 +1,444 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.IOException; +import java.io.InterruptedIOException; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.net.SocketTimeoutException; +import java.util.ArrayList; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.ChatMessageGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.gsk_dailyentry.StoreWisePerformanceActivity; +import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler; + +public class ConversationActivity extends AppCompatActivity { + String userId, culture_id, store_id, chat_id, message_main, visit_date; + private SharedPreferences preferences = null; + GSKOrangeDB db; + private Context context; + ArrayList conversation_list = new ArrayList<>(); + MyRecyclerAdapter adapter; + RecyclerView rec; + EditText et_reply; + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_conversation); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + db = new GSKOrangeDB(ConversationActivity.this); + db.open(); + context = this; + rec = (RecyclerView) findViewById(R.id.rec_conversation); + et_reply = (EditText) findViewById(R.id.et_reply); + + chat_id = getIntent().getStringExtra(CommonString.KEY_CHAT_ID); + message_main = getIntent().getStringExtra(CommonString.KEY_MESSAGE); + + setTitle(message_main); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + userId = preferences.getString(CommonString.KEY_USERNAME, null); + culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, ""); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + + conversation_list = db.getChatMessageCommentsData(store_id, chat_id); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + String reply = et_reply.getText().toString(); + if (reply.equals("")) { + Snackbar.make(et_reply, R.string.reply_alert, Snackbar.LENGTH_SHORT).show(); + } else { + + /* ChatMessageGetterSetter msg = new ChatMessageGetterSetter(); + msg.setCHAT_ID("0"); + msg.setMESSAGE(""); + msg.setMESSAGEDATE(visit_date); + msg.setSENDERID("0"); + msg.setSENDER(userId); + msg.setRECEIVERID("0"); + msg.setRECEIVER(userId); + msg.setSTOREID(store_id); + msg.setCOMMENTDATE(visit_date); + msg.setCOMMENT(reply); + msg.setSENDER_USERID(userId); + + conversation_list.add(msg); + + adapter.notifyDataSetChanged(); + + et_reply.setText("");*/ + + // Check if no view has focus: + View v = getCurrentFocus(); + if (v != null) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(v.getWindowToken(), 0); + } + + new GeoTagUpload(ConversationActivity.this).execute(reply); + } + } + }); + + //if (conversation_list.size() > 0) { + adapter = new MyRecyclerAdapter(context, conversation_list); + rec.setAdapter(adapter); + rec.setLayoutManager(new LinearLayoutManager(context)); + //} + + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + class MyRecyclerAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + ArrayList data = new ArrayList<>(); + + public MyRecyclerAdapter(Context context, ArrayList data) { + + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @Override + public MyRecyclerAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = inflator.inflate(R.layout.conversation_item, parent, false); + + MyRecyclerAdapter.MyViewHolder holder = new MyRecyclerAdapter.MyViewHolder(view); + + return holder; + } + + @Override + public void onBindViewHolder(MyRecyclerAdapter.MyViewHolder holder, final int position) { + + //final MappingPlanogramCountrywiseGetterSetter current = data.get(position); + + final String msg_topic_str = data.get(position).getCOMMENT(); + final String latest_msg_str = data.get(position).getRECEIVER(); + final String date_time_str = data.get(position).getCOMMENTDATE(); + final String msg_from_str = data.get(position).getSENDER(); + final String sender_user_id = data.get(position).getSENDER_USERID(); + + if (sender_user_id.equals(userId)) { + LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); + buttonLayoutParams.setMargins(100, 10, 5, 0); + holder.parent_item.setLayoutParams(buttonLayoutParams); + holder.card_view.setCardBackgroundColor(getResources().getColor(R.color.char_card_bg)); + } else { + LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); + buttonLayoutParams.setMargins(5, 10, 100, 0); + holder.parent_item.setLayoutParams(buttonLayoutParams); + holder.card_view.setCardBackgroundColor(getResources().getColor(R.color.white)); + } + + holder.msg_topic.setText(msg_topic_str); + holder.latest_msg.setText(latest_msg_str); + holder.date_time.setText(date_time_str); + holder.msg_from.setText(msg_from_str); + //holder.detail.setText(current.getDocument_descriiption().get(0)); + + holder.parent_layout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); + } + + @Override + public int getItemCount() { + return conversation_list.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView msg_topic, latest_msg, date_time, msg_from; + LinearLayout parent_layout, parent_item; + CardView card_view; + + public MyViewHolder(View itemView) { + super(itemView); + msg_topic = (TextView) itemView.findViewById(R.id.tv_msg_topic); + latest_msg = (TextView) itemView.findViewById(R.id.tv_latest_msg); + date_time = (TextView) itemView.findViewById(R.id.tv_date_time); + msg_from = (TextView) itemView.findViewById(R.id.tv_from); + + parent_layout = (LinearLayout) itemView.findViewById(R.id.layout_parent); + parent_item = (LinearLayout) itemView.findViewById(R.id.parent_item); + card_view = (CardView) itemView.findViewById(R.id.card_view); + + } + + } + } + + public class GeoTagUpload extends AsyncTask { + + private Context context; + + GeoTagUpload(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getResources().getString(R.string.dialog_title)); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected String doInBackground(String... params) { + + boolean flag_success = false; + String strflag = ""; + try { + + GSKOrangeDB db = new GSKOrangeDB(ConversationActivity.this); + db.open(); + String reply = params[0]; + + SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + + String current_xml = ""; + + String onXML = "[CHAT_REPLY][CHAT_ID]" + + chat_id + + "[/CHAT_ID]" + + "[SENDER_ID]" + + "0" + + "[/SENDER_ID]" + + "[RECIEVER_ID]" + + "0" + + "[/RECIEVER_ID]" + + "[STORE_ID]" + + store_id + + "[/STORE_ID]" + + "[MESSAGE]" + + reply + + "[/MESSAGE]" + + "[USER_ID]" + + userId + + "[/USER_ID]" + + "[/CHAT_REPLY]"; + + current_xml = "[DATA]" + onXML + + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_UPLOAD_CHAT_DATA); + //request.addProperty("MID", "0"); + // request.addProperty("KEYS", "CURRENT_DATA"); + // request.addProperty("USERNAME", username); + + request.addProperty("onXML", current_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + androidHttpTransport.call( + CommonString.SOAP_ACTION_UPLOAD_CHAT_DATA, envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString().contains( + CommonString.KEY_SUCCESS)) { + flag_success = true; + } else { + flag_success = false; + } + + + } catch (MalformedURLException e) { + + flag_success = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } catch (SocketTimeoutException e) { + flag_success = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + + } catch (InterruptedIOException e) { + + flag_success = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } catch (IOException e) { + flag_success = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + } catch (XmlPullParserException e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + + flag_success = false; + strflag = CommonString.MESSAGE_XmlPull; + } catch (Exception e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + + flag_success = false; + strflag = CommonString.MESSAGE_EXCEPTION; + } + + if (flag_success) { + return CommonString.KEY_SUCCESS; + } else { + return strflag; + } + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.dismiss(); + + if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + dialog.dismiss(); + + String reply = et_reply.getText().toString(); + + ChatMessageGetterSetter msg = new ChatMessageGetterSetter(); + msg.setCHAT_ID("0"); + msg.setMESSAGE(""); + msg.setMESSAGEDATE(visit_date); + msg.setSENDERID("0"); + msg.setSENDER(userId); + msg.setRECEIVERID("0"); + msg.setRECEIVER(userId); + msg.setSTOREID(store_id); + msg.setCOMMENTDATE(visit_date); + msg.setCOMMENT(reply); + msg.setSENDER_USERID(userId); + + conversation_list.add(msg); + + adapter.notifyDataSetChanged(); + + et_reply.setText(""); + //showAlert(getString(R.string.data_downloaded_successfully)); + } else { + + showAlert(getString(R.string.DataNot) + " " + result); + } + } + + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(ConversationActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + + finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + @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) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + return super.onOptionsItemSelected(item); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitIndicatorWebActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitIndicatorWebActivity.java new file mode 100644 index 0000000..f7808ac --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitIndicatorWebActivity.java @@ -0,0 +1,111 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.graphics.Bitmap; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.MenuItem; +import android.view.View; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; + +public class CounterfeitIndicatorWebActivity extends AppCompatActivity { + private Context context; + WebView webView; + String url = "https://gskme.parinaam.in/res/eg/fake.html"; + private SharedPreferences preferences; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_counterfeit_indicator_web); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getResources().getString(R.string.title_activity_counterfeit_indicator_web)); + + webView = (WebView) findViewById(R.id.webview); + + webView.setWebViewClient(new MyWebViewClient()); + + webView.getSettings().setJavaScriptEnabled(true); + + if (!url.equals("")) { + + webView.loadUrl(url); + + } + + FloatingActionButton fab = findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + } + + private class MyWebViewClient extends WebViewClient { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + /* progress.setVisibility(View.GONE); + WebViewActivity.this.progress.setProgress(100);*/ + //imageView.setVisibility(View.INVISIBLE); + webView.setVisibility(View.VISIBLE); + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + /* progress.setVisibility(View.VISIBLE); + WebViewActivity.this.progress.setProgress(0);*/ + super.onPageStarted(view, url, favicon); + } + + } + @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) { + + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitProductsActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitProductsActivity.java new file mode 100644 index 0000000..83505e5 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CounterfeitProductsActivity.java @@ -0,0 +1,604 @@ +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.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.SpinnerAdapter; +import android.widget.TextView; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +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.CounterfeitProductGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CounterfeitProductGetterSetter; + +public class CounterfeitProductsActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener, View.OnClickListener { + + private Context context; + ToggleButton btntoggle; + boolean isDataAdded = false, isExists = true, is_camera_compulsory = false; + LinearLayout lin_parent; + GSKOrangeDB db; + private SharedPreferences preferences; + Spinner spinner_brand_list; + String store_id, visit_date, username, country_id; + String categoryName, categoryId; + ArrayList brand_list = new ArrayList<>(); + String brand = "", _path = ""; + EditText et_stock, 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, stock = ""; + int brand_id = 0; + RecyclerView rec_added_counterfeit_product; + ArrayList addedCounterfeitProducts = new ArrayList<>(); + ArrayList exists_data = new ArrayList<>(); + ProductAdapter productAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_counterfeit_products); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + btntoggle = (ToggleButton) findViewById(R.id.btntoggle); + lin_parent = (LinearLayout) findViewById(R.id.lin_parent_promo); + et_stock = (EditText) findViewById(R.id.et_stock); + et_sku_name = (EditText) findViewById(R.id.et_sku_name); + spinner_brand_list = (Spinner) findViewById(R.id.sp_brand); + 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); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + db = new GSKOrangeDB(CounterfeitProductsActivity.this); + db.open(); + + btntoggle.setOnClickListener(this); + fab_save.setOnClickListener(this); + fab_add.setOnClickListener(this); + imgCam.setOnClickListener(this); + imgCam1.setOnClickListener(this); + imgCam2.setOnClickListener(this); + + // brand_list = db.getBrandMasterData(store_id, categoryId); + brand_list = db.getBrandMasterData(store_id, categoryId); + //brand_list = db.getBrandData(categoryId); + + 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(CounterfeitProductsActivity.this, R.layout.custom_spinner_item, brand_list); + + spinner_brand_list.setAdapter(adapter); + spinner_brand_list.setOnItemSelectedListener(this); + + //Product List + exists_data = db.getCounterfeitProductExistsAfterData(store_id, categoryId); + + if(exists_data.size()>0){ + isExists = exists_data.get(0).isExists(); + if(exists_data.get(0).isExists()){ + addedCounterfeitProducts = db.getCounterfeitProductAfterData(store_id, categoryId); + if(addedCounterfeitProducts.size()>0){ + rec_added_counterfeit_product.setLayoutManager(new LinearLayoutManager(context)); + 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.getImagesFolder(context); + } + + @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(CounterfeitProductsActivity.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 = ""; + brand_id = 0; + + stock = ""; + skuName = ""; + img_str = ""; + img_str1 = ""; + img_str2 = ""; + + et_stock.setText(""); + et_sku_name.setText(""); + spinner_brand_list.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+(?!$)", ""); + stock = et_stock.getText().toString(); + + if (brand.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.pls_select_brand, Snackbar.LENGTH_SHORT).show(); + } else if (stock.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.pls_enter_stock, Snackbar.LENGTH_SHORT).show(); + } else if (skuName.equals("")) { + Snackbar.make(rec_added_counterfeit_product, R.string.pls_enter_sku, 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 { + CounterfeitProductGetterSetter product = new CounterfeitProductGetterSetter(); + product.setBrand(brand); + product.setBrandId(brand_id); + product.setStock(Integer.parseInt(stock)); + 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(context)); + productAdapter = new ProductAdapter(addedCounterfeitProducts); + rec_added_counterfeit_product.setAdapter(productAdapter); + + brand = ""; + brand_id = 0; + + stock = ""; + skuName = ""; + img_str = ""; + img_str1 = ""; + img_str2 = ""; + + et_stock.setText(""); + et_sku_name.setText(""); + spinner_brand_list.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.InsertCounterfeitProductData(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(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck; + startCameraActivity(); + break; + + case R.id.img_cam1: + _pathforcheck1 = store_id + "CounterfeitProductImg2" + categoryId + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck1; + startCameraActivity(); + break; + + case R.id.img_cam2: + _pathforcheck2 = store_id + "CounterfeitProductImg3" + categoryId + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _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(CounterfeitProductsActivity.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_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; + } + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + + public class CustomBrandAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + BrandMasterGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomBrandAdapter Constructor + *****************/ + public CustomBrandAdapter( + CounterfeitProductsActivity 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; + } + } + + protected void startCameraActivity() { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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_counterfeit_product, parent, false); + return new ProductAdapter.ViewHolder(view); + } + + @Override + public void onBindViewHolder(final ProductAdapter.ViewHolder holder, int position) { + + final CounterfeitProductGetterSetter mItem = list.get(position); + holder.tv_brand.setText(getString(R.string.brand) + " - " + mItem.getBrand()); + holder.tv_sku_name.setText(getString(R.string.skuname) + " - " + mItem.getSkuName()); + holder.tv_stock.setText(" - " + mItem.getStock()); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final TextView tv_brand, tv_sku_name, tv_stock; + + 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_stock = (TextView) mView.findViewById(R.id.tv_stock); + + } + + } + } + + @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(CounterfeitProductsActivity.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/CreateSelfActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CreateSelfActivity.java new file mode 100644 index 0000000..e8ca1d4 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CreateSelfActivity.java @@ -0,0 +1,488 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.Spinner; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.adapter.ListAdapter; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SelectGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; + +public class CreateSelfActivity extends AppCompatActivity { + GSKOrangeDB db; + String store_id, visit_date, username, keyAccount_id, class_id, storeType_id, store_flag_str; + String categoryName, categoryId, country_id; + private SharedPreferences preferences; + MSL_AvailabilityStockFacingGetterSetter brand_selected; + int number_of_rows = 0; + RecyclerView rec_sub_category; + static int FROM_DIALOG = 0; + static int FROM_CLICK = 1; + private Context context; + ArrayList added_sub_category_list; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_create_self); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + rec_sub_category = (RecyclerView) findViewById(R.id.rec_sub_category); + context = this; + //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); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + db = new GSKOrangeDB(CreateSelfActivity.this); + db.open(); + + keyAccount_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + showSkuDialog(); + } + }); + } + + @Override + protected void onResume() { + super.onResume(); + number_of_rows = 0; + brand_selected = null; + db.open(); + added_sub_category_list = new ArrayList<>(); + //kenya use + ArrayList sub_category_list = db.getSubCategoryMaster(categoryId, store_id, country_id); + + for (int i = 0; i < sub_category_list.size(); i++) { + ArrayList noCameraLastVisitData; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + noCameraLastVisitData = db.getNoCameraLastVisitCategoryData(store_id, categoryId, + sub_category_list.get(i).getSub_category_id(), CommonString.TABLE_NO_CAMERA_LAST_VISIT_DATA_ADHOC); + } else { + noCameraLastVisitData = db.getNoCameraLastVisitCategoryData(store_id, categoryId, sub_category_list.get(i).getSub_category_id(), + "NO_CAMERA_LAST_VISIT_DATA"); + } + if (db.getNoCameraCategoryDataInserted(store_id, categoryId, sub_category_list.get(i).getSub_category_id()).size() > 0) { + MSL_AvailabilityStockFacingGetterSetter subCategory = new MSL_AvailabilityStockFacingGetterSetter(); + subCategory.setSub_category(sub_category_list.get(i).getSub_category()); + subCategory.setSub_category_id(sub_category_list.get(i).getSub_category_id()); + added_sub_category_list.add(subCategory); + } else if (noCameraLastVisitData.size() > 0) { + MSL_AvailabilityStockFacingGetterSetter subCategory = new MSL_AvailabilityStockFacingGetterSetter(); + subCategory.setSub_category(sub_category_list.get(i).getSub_category()); + subCategory.setSub_category_id(sub_category_list.get(i).getSub_category_id()); + added_sub_category_list.add(subCategory); + } + } + + if (added_sub_category_list.size() > 0) { + rec_sub_category.setLayoutManager(new GridLayoutManager(this, 3)); + SubcategoryAdapter skuAdapter = new SubcategoryAdapter(added_sub_category_list); + rec_sub_category.setAdapter(skuAdapter); + + } + + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + public void showSkuDialog() { + final ArrayList sub_category_list = db.getSubCategoryMaster(categoryId, store_id, country_id); + MSL_AvailabilityStockFacingGetterSetter brand = new MSL_AvailabilityStockFacingGetterSetter(); + brand.setSub_category("select"); + sub_category_list.add(0, brand); + // ArrayList skuMasterGetterSetterArrayList = db.getSkuT2PData("1", "1", "1",) + final Dialog dialog = new Dialog(CreateSelfActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.create_self_dialog_layout); + //pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + //dialog.setCancelable(false); + final Spinner spinner_sub_category = (Spinner) dialog.findViewById(R.id.spinner_sub_category); + final Spinner spinner_sku = (Spinner) dialog.findViewById(R.id.spinner_no_rows); + final Button btn_create = (Button) dialog.findViewById(R.id.btn_create); + Button btn_cancel = (Button) dialog.findViewById(R.id.btn_cancel); + + btn_create.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (brand_selected == null) { + Snackbar.make(btn_create, "Please select Sub Category", Snackbar.LENGTH_SHORT).show(); + } else if (number_of_rows == 0) { + Snackbar.make(btn_create, "Please select number of rows", Snackbar.LENGTH_SHORT).show(); + } else { + + boolean sub_category_already_filled = false; + if (added_sub_category_list.size() > 0) { + for (int k = 0; k < added_sub_category_list.size(); k++) { + if (added_sub_category_list.get(k).getSub_category_id().equals(brand_selected.getSub_category_id())) { + sub_category_already_filled = true; + break; + } + } + } + + if (sub_category_already_filled) { + Snackbar.make(btn_create, "Sub Category already added", Snackbar.LENGTH_SHORT).show(); + } else { + Intent in = new Intent(context, NoCameraActivity.class); + in.putExtra("categoryName", categoryName); + in.putExtra("categoryId", categoryId); + in.putExtra(CommonString.KEY_NUMBER_OF_ROWS, number_of_rows); + in.putExtra(CommonString.KEY_SUB_CATEGORY, brand_selected); + in.putExtra(CommonString.KEY_FROM, FROM_DIALOG); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog.cancel(); + } + + + } + + } + }); + + btn_cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + dialog.cancel(); + + } + }); + + // Create custom adapter object ( see below CustomAdapter.java ) + CustomAdapter adapter = new CustomAdapter(CreateSelfActivity.this, R.layout.custom_spinner_item, sub_category_list); + // Set adapter to spinner + spinner_sub_category.setAdapter(adapter); + + final ArrayList no_of_rows = new ArrayList<>(); + no_of_rows.add(getString(R.string.select)); + for (int i = 1; i < 9; i++) { + no_of_rows.add(i + ""); + } + CustomSpinnerAdapter skuadapter = new CustomSpinnerAdapter(CreateSelfActivity.this, R.layout.custom_spinner_item, no_of_rows); + spinner_sku.setAdapter(skuadapter); + + + spinner_sub_category.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + brand_selected = sub_category_list.get(position); + } else { + brand_selected = null; + } + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + spinner_sku.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + number_of_rows = Integer.parseInt(no_of_rows.get(position)); + } else { + number_of_rows = 0; + } + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + dialog.setCancelable(false); + dialog.show(); + + } + + public class CustomSpinnerAdapter extends ArrayAdapter { + + String tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSpinnerAdapter( + CreateSelfActivity 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 = (String) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues); + } + + return row; + } + } + + public class CustomAdapter extends ArrayAdapter { + + MSL_AvailabilityStockFacingGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomAdapter( + CreateSelfActivity 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 = (MSL_AvailabilityStockFacingGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getSub_category()); + } + + return row; + } + } + + @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) { + + /* android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(CreateSelfActivity.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();*/ + + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + //Adapte sub category + + public class SubcategoryAdapter extends RecyclerView.Adapter { + + private ArrayList list; + + public SubcategoryAdapter(ArrayList skuList) { + list = skuList; + } + + @Override + public SubcategoryAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.sub_category_item_list, parent, false); + return new SubcategoryAdapter.ViewHolder(view); + } + + @Override + public void onBindViewHolder(final SubcategoryAdapter.ViewHolder holder, final int position) { + + holder.tv_sub_category.setText(list.get(position).getSub_category()); + + holder.parentLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent in = new Intent(context, NoCameraActivity.class); + in.putExtra("categoryName", categoryName); + in.putExtra("categoryId", categoryId); + in.putExtra(CommonString.KEY_NUMBER_OF_ROWS, 0); + in.putExtra(CommonString.KEY_SUB_CATEGORY, list.get(position)); + in.putExtra(CommonString.KEY_FROM, FROM_CLICK); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + }); + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final LinearLayout parentLayout; + public final TextView tv_sub_category; + + public ViewHolder(View view) { + super(view); + + mView = view; + tv_sub_category = (TextView) mView.findViewById(R.id.tv_sub_category); + parentLayout = (LinearLayout) mView.findViewById(R.id.linear_parent); + + } + + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java new file mode 100644 index 0000000..f57940f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java @@ -0,0 +1,376 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.upload.UploadActivity; +import cpm.com.gskmtorange.upload.UploadImageWithRetrofit; +import cpm.com.gskmtorange.xmlGetterSetter.DeliveryCallsGetterSetter; + +public class DeliveryCallActivity extends AppCompatActivity implements View.OnClickListener { + private Context context; + private SharedPreferences preferences; + private GSKOrangeDB database; + String visit_date, userId; + ArrayList deliveryCallsList; + RecyclerView recyclerView; + DeliveryAdapter deliveryAdapter; + FloatingActionButton fab_upload, fab; + Toolbar toolbar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_delivery_call); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + recyclerView = (RecyclerView) findViewById(R.id.rec_delivery_calls); + fab = (FloatingActionButton) findViewById(R.id.fab); + fab_upload = (FloatingActionButton) findViewById(R.id.fab_upload); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + userId = preferences.getString(CommonString.KEY_USERNAME, null); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + database = new GSKOrangeDB(this); + database.open(); + + fab.setOnClickListener(this); + fab_upload.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + + int id = v.getId(); + + switch (id) { + + case R.id.fab_upload: + + new UploadTask().execute(); + break; + + case R.id.fab: + + if (isCheckedIn()) { + Snackbar.make(recyclerView, getString(R.string.title_store_list_checkout_current), Snackbar.LENGTH_SHORT).show(); + } else { + + Intent in = new Intent(context, DeliveryCallAddStoreActivity.class); + startActivity(in); + + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + + break; + } + } + + class DeliveryAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + List data = Collections.emptyList(); + + public DeliveryAdapter(Context context, List data) { + + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @Override + public DeliveryAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = inflator.inflate(R.layout.delivery_calls_item, parent, false); + + DeliveryAdapter.MyViewHolder holder = new DeliveryAdapter.MyViewHolder(view); + + return holder; + } + + @Override + public void onBindViewHolder(DeliveryAdapter.MyViewHolder holder, int position) { + final DeliveryCallsGetterSetter current = data.get(position); + holder.tv_store_name.setText(current.getSTORE_NAME()); + holder.tv_store_address.setText(current.getADDRESS()); + + if (current.getUPLOAD_STATUS().equals(CommonString.KEY_CHECK_IN)) { + holder.imageview.setVisibility(View.INVISIBLE); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.green)); + } else if (current.getUPLOAD_STATUS().equals(CommonString.KEY_U)) { + holder.imageview.setVisibility(View.VISIBLE); + holder.imageview.setBackgroundResource(R.mipmap.tick); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (current.getUPLOAD_STATUS().equals(CommonString.KEY_C)) { + holder.imageview.setVisibility(View.VISIBLE); + holder.imageview.setBackgroundResource(R.mipmap.exclamation); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.imageview.setVisibility(View.INVISIBLE); + holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } + + holder.cardView.setOnClickListener(v -> { + switch (current.getUPLOAD_STATUS()) { + case CommonString.KEY_CHECK_IN: + Intent in = new Intent(context, DeliveryCallAddStoreActivity.class); + in.putExtra(CommonString.KEY_STORE_ID, current); + in.putExtra(CommonString.KEY_STORE_FLAG, false); + startActivity(in); + + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + break; + case CommonString.KEY_U: + Snackbar.make(v, R.string.title_store_list_activity_store_already_done, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + break; + case CommonString.KEY_C: + Snackbar.make(v, R.string.title_store_list_activity_store_already_checkout, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + break; + } + }); + } + + @Override + public int getItemCount() { + return deliveryCallsList.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView tv_store_name, tv_store_address; + CardView cardView; + ImageView imageview; + + public MyViewHolder(View itemView) { + super(itemView); + + tv_store_name = (TextView) itemView.findViewById(R.id.tv_store_name); + tv_store_address = (TextView) itemView.findViewById(R.id.tv_store_address); + cardView = (CardView) itemView.findViewById(R.id.card_view); + imageview = (ImageView) itemView.findViewById(R.id.delivery_ico); + } + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getString(R.string.delivery_call)); + deliveryCallsList = database.getDeliveryCallsData(visit_date); + if (!deliveryCallsList.isEmpty()) { + deliveryAdapter = new DeliveryAdapter(context, deliveryCallsList); + recyclerView.setAdapter(deliveryAdapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + if (isCheckedIn()) { + fab_upload.hide();//setVisibility(View.GONE); + } else if (isUploadAble()) { + fab_upload.show();//setVisibility(View.VISIBLE); + } + } + } + + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + Object result = ""; + + class Data { + int value; + String name; + } + + class UploadTask extends AsyncTask { + + @Override + protected void onPreExecute() { + super.onPreExecute(); + dialog = new Dialog(DeliveryCallActivity.this); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getString(R.string.uploaddata)); + dialog.setCancelable(false); + dialog.show(); + + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + ((TextView) dialog.findViewById(R.id.tv_title)).setText(getString(R.string.uploaddata)); + } + + @SuppressLint("SetTextI18n") + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + } + + @Override + protected String doInBackground(Void... voids) { + try { + Data data = new Data(); + ArrayList _deliveryCallsList = database.getDeliveryCallsData(null); + for (int i = 0; i < _deliveryCallsList.size(); i++) { + if (_deliveryCallsList.get(i).getUPLOAD_STATUS().equals(CommonString.KEY_C)) { + data.value = 50; + data.name = getString(R.string.delivery_call); + publishProgress(data); + String store_name = URLEncoder.encode(_deliveryCallsList.get(i).getSTORE_NAME(), "utf-8"); + String store_address = URLEncoder.encode(_deliveryCallsList.get(i).getADDRESS(), "utf-8"); + String onXML = "[DELIVERY_CALLS_DATA]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[VISIT_DATE]" + _deliveryCallsList.get(i).getVISIT_DATE() + "[/VISIT_DATE]" + + "[STORE_NAME]" + store_name + "[/STORE_NAME]" + + "[STORE_ADDRESS]" + store_address + "[/STORE_ADDRESS]" + + "[IN_TIME]" + _deliveryCallsList.get(i).getIn_time() + "[/IN_TIME]" + + "[OUT_TIME]" + _deliveryCallsList.get(i).getOut_time() + "[/OUT_TIME]" + + "[IN_TIME_IMAGE]" + _deliveryCallsList.get(i).getIN_TIME_IMAGE() + "[/IN_TIME_IMAGE]" + + "[OUT_TIME_IMAGE]" + _deliveryCallsList.get(i).getOUT_TIME_IMAGE() + "[/OUT_TIME_IMAGE]" + + "[LATITUDE]" + _deliveryCallsList.get(i).getLATITUDE() + "[/LATITUDE]" + + "[LONGITUDE]" + _deliveryCallsList.get(i).getLONGITUDE() + "[/LONGITUDE]" + + "[/DELIVERY_CALLS_DATA]"; + + final String delivery_xml = "[DATA]" + onXML + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", delivery_xml); + request.addProperty("KEYS", "DELIVERY_CALLS"); + request.addProperty("USERNAME", userId); + request.addProperty("MID", 0); + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_STOCK_XML_DATA, envelope); + result = envelope.getResponse(); + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } else { + database.open(); + database.updateDeliveryCallsUploadStatus(_deliveryCallsList.get(i).getId()); + } + } + } + + return result.toString(); + + } catch (IOException e) { + e.fillInStackTrace(); + } catch (XmlPullParserException e) { + e.fillInStackTrace(); + } catch (Exception e) { + e.fillInStackTrace(); + } + + return null; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + dialog.dismiss(); + if (result.contains(CommonString.KEY_SUCCESS)) { + //db.deleteAllTables(); + File f = new File(CommonString.getImagesFolder(context)); + File fileAll[] = f.listFiles(); + ArrayList file_list = new ArrayList<>(); + for (int i = 0; i < fileAll.length; i++) { + String name = fileAll[i].getName(); + if (name.contains("DeliveryCalls")) { + file_list.add(name); + } + } + + UploadImageWithRetrofit.uploadedFiles = 0; + UploadImageWithRetrofit.totalFiles = file_list.size(); + UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit(visit_date, userId, DeliveryCallActivity.this); + uploadImg.UploadDeliveryImageRecursive(DeliveryCallActivity.this, file_list, 0); + } else { + showAlert(getString(R.string.error) + result.toString()); + } + } + } + + public void showAlert(String str) { + AlertDialog.Builder builder = new AlertDialog.Builder(DeliveryCallActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, (dialog, id) -> { + finish(); + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + + boolean isCheckedIn() { + boolean flag = false; + for (int i = 0; i < deliveryCallsList.size(); i++) { + if (deliveryCallsList.get(i).getUPLOAD_STATUS().equals(CommonString.KEY_CHECK_IN)) { + flag = true; + break; + } + } + return flag; + } + + boolean isUploadAble() { + boolean flag = false; + for (int i = 0; i < deliveryCallsList.size(); i++) { + if (deliveryCallsList.get(i).getUPLOAD_STATUS().equals(CommonString.KEY_C)) { + flag = true; + break; + } + } + return flag; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java new file mode 100644 index 0000000..bad4288 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java @@ -0,0 +1,567 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentSender; +import android.content.SharedPreferences; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.location.Location; +import android.location.LocationManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.util.Log; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.ResultCallback; +import com.google.android.gms.common.api.Status; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.LocationSettingsRequest; +import com.google.android.gms.location.LocationSettingsResult; +import com.google.android.gms.location.LocationSettingsStatusCodes; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.DeliveryCallsGetterSetter; + +public class DeliveryCallAddStoreActivity extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { + + EditText et_customer, et_address; + ImageView img_checkin, img_checkout; + String name, address, error_msg, img_checkin_path = "", img_checkout_path = ""; + boolean checkin_flag = true; + protected String _pathforcheck = "", _path, str, visit_date, in_time, out_time; + private SharedPreferences preferences; + Uri outputFileUri; + String gallery_package = ""; + private GSKOrangeDB database; + DeliveryCallsGetterSetter deliveryCallsData; + + LocationManager locationManager; + boolean enabled; + private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; + + private LocationRequest mLocationRequest; + private static int UPDATE_INTERVAL = 500; // 5 sec + private static int FATEST_INTERVAL = 100; // 1 sec + private static int DISPLACEMENT = 5; // 10 meters + private static final int REQUEST_LOCATION = 1; + private Location mLastLocation; + + double lat = 0.0, lon = 0.0; + GoogleApiClient mGoogleApiClient; + private static final String TAG = DeliveryCallAddStoreActivity.class.getSimpleName(); + Context context; + Toolbar toolbar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_delivery_call_add_store); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + database = new GSKOrangeDB(this); + database.open(); + + context = this; + + et_customer = findViewById(R.id.et_customer_name); + et_address = findViewById(R.id.et_address); + img_checkin = findViewById(R.id.img_checkin); + img_checkout = findViewById(R.id.img_checkout); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + checkin_flag = getIntent().getBooleanExtra(CommonString.KEY_STORE_FLAG, true); + deliveryCallsData = (DeliveryCallsGetterSetter) getIntent().getSerializableExtra(CommonString.KEY_STORE_ID); + + if (checkin_flag) { + img_checkin.setOnClickListener(this); + } else { + et_customer.setText(deliveryCallsData.getSTORE_NAME()); + et_address.setText(deliveryCallsData.getADDRESS()); + et_customer.setEnabled(false); + et_address.setEnabled(false); + img_checkin.setImageDrawable(getResources().getDrawable(R.mipmap.camera_green)); + img_checkout.setOnClickListener(this); + } + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (isValid()) { + + if (checkin_flag) { + + if (lat == 0.0 || lon == 0.0) { + + } else { + DeliveryCallsGetterSetter deliveryCallsGetterSetter = new DeliveryCallsGetterSetter(); + deliveryCallsGetterSetter.setSTORE_NAME(name); + deliveryCallsGetterSetter.setADDRESS(address); + deliveryCallsGetterSetter.setIN_TIME_IMAGE(img_checkin_path); + deliveryCallsGetterSetter.setOUT_TIME_IMAGE(img_checkout_path); + deliveryCallsGetterSetter.setUPLOAD_STATUS(CommonString.KEY_CHECK_IN); + deliveryCallsGetterSetter.setVISIT_DATE(visit_date); + deliveryCallsGetterSetter.setIn_time(in_time); + deliveryCallsGetterSetter.setLATITUDE(lat); + deliveryCallsGetterSetter.setLONGITUDE(lon); + + database.InsertDeliveryCalls(deliveryCallsGetterSetter); + } + } else { + + deliveryCallsData.setOut_time(out_time); + database.updateDeliveryCallsOut(deliveryCallsData, CommonString.KEY_C, img_checkout_path); + } + + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } else { + Snackbar.make(et_customer, error_msg, Snackbar.LENGTH_SHORT).show(); + } + } + }); + + str = CommonString.getImagesFolder(context); + + if (checkPlayServices()) { + + // Building the GoogleApi client + buildGoogleApiClient(); + + createLocationRequest(); + } + + /* locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); + + if (!enabled) { + AlertDialog.Builder alertDialog = new AlertDialog.Builder( + DeliveryCallAddStoreActivity.this); + + // Setting Dialog Title + alertDialog.setTitle(getResources().getString(R.string.gps)); + + // Setting Dialog Message + alertDialog.setMessage(getResources().getString(R.string.gpsebale)); + + // Setting Positive "Yes" Button + alertDialog.setPositiveButton(getResources().getString(R.string.yes), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + Intent intent = new Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(intent); + } + }); + + // Setting Negative "NO" Button + alertDialog.setNegativeButton(getResources().getString(R.string.no), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // Write your code here to invoke NO event + + dialog.cancel(); + } + }); + + // Showing Alert Message + alertDialog.show(); + + }*/ + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + } + + @Override + protected void onResume() { + super.onResume(); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getString(R.string.delivery_call)); + + checkgpsEnableDevice(); + // Resuming the periodic location updates + if (mGoogleApiClient.isConnected()) { + startLocationUpdates(); + } + } + + private boolean checkgpsEnableDevice() { + boolean flag = true; + if (!hasGPSDevice(context)) { + Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show(); + } + final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + enableLoc(); + flag = false; + } else if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + flag = true; + } + return flag; + } + + private boolean hasGPSDevice(Context context) { + final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + if (mgr == null) + return false; + final List providers = mgr.getAllProviders(); + if (providers == null) + return false; + return providers.contains(LocationManager.GPS_PROVIDER); + } + + private void enableLoc() { + LocationRequest locationRequest = LocationRequest.create(); + locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + locationRequest.setInterval(30 * 1000); + locationRequest.setFastestInterval(5 * 1000); + LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest); + builder.setAlwaysShow(true); + if (mGoogleApiClient != null) { + PendingResult result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build()); + result.setResultCallback(new ResultCallback() { + @Override + public void onResult(LocationSettingsResult result) { + final Status status = result.getStatus(); + switch (status.getStatusCode()) { + case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: + try { + // Show the dialog by calling startResolutionForResult(), + // and check the result in onActivityResult(). + status.startResolutionForResult((Activity) context, REQUEST_LOCATION); + } catch (IntentSender.SendIntentException e) { + // Ignore the error. + } + break; + } + } + }); + } + } + + protected boolean isValid() { + boolean flag = true; + + name = et_customer.getText().toString().replaceAll("[&^<>{}'$]", " "); + address = et_address.getText().toString().replaceAll("[&^<>{}'$]", " "); + + if (name.equals("")) { + error_msg = getString(R.string.please_fill) + " " + getString(R.string.customer_store_name); + flag = false; + } else if (address.equals("")) { + error_msg = getString(R.string.please_fill) + " " + getString(R.string.address); + flag = false; + } else if (checkin_flag) { + if (img_checkin_path.equals("")) { + error_msg = getString(R.string.please_click) + " " + getString(R.string.intime_image).toLowerCase(); + flag = false; + } + } else if (img_checkout_path.equals("")) { + error_msg = getString(R.string.please_click) + " " + getString(R.string.outtime_image).toLowerCase(); + flag = false; + } + + return flag; + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.img_checkin: + + in_time = CommonFunctions.getCurrentTimeWithLanguage(context); + + _pathforcheck = "DeliveryCalls" + visit_date.replace("/", "") + "InTime" + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck; + + startCameraActivity(0); + break; + + case R.id.img_checkout: + + out_time = CommonFunctions.getCurrentTimeWithLanguage(context); + + _pathforcheck = "DeliveryCalls" + visit_date.replace("/", "") + "OutTime" + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck; + + startCameraActivity(1); + break; + } + } + + protected void startCameraActivity(int request_code) { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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, request_code); + } 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, request_code); + + } catch (Exception e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + } + + @SuppressLint("MissingSuperCall") + @SuppressWarnings("deprecation") + @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: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + if (requestCode == 0) { + img_checkin.setImageDrawable(getResources().getDrawable(R.mipmap.camera_green)); + img_checkin_path = _pathforcheck; + } else { + img_checkout.setImageDrawable(getResources().getDrawable(R.mipmap.camera_green)); + img_checkout_path = _pathforcheck; + } + _pathforcheck = ""; + + } + } + + break; + } + + } + + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil + .isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { + GooglePlayServicesUtil.getErrorDialog(resultCode, this, + PLAY_SERVICES_RESOLUTION_REQUEST).show(); + } else { + Toast.makeText(context, getResources().getString(R.string.notsuppoted) + , Toast.LENGTH_LONG) + .show(); + finish(); + } + return false; + } + return true; + } + + protected synchronized void buildGoogleApiClient() { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API).build(); + } + + + protected void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + protected void startLocationUpdates() { + + + if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); + + } + + } + + /** + * Stopping location updates + */ + protected void stopLocationUpdates() { + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); + } + + @Override + public void onConnected(Bundle bundle) { + + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + + if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mLastLocation != null) { + lat = mLastLocation.getLatitude(); + lon = mLastLocation.getLongitude(); + + } + } + + + // if (mRequestingLocationUpdates) { + startLocationUpdates(); + // } + + // startLocationUpdates(); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + + @Override + public void onConnectionFailed(ConnectionResult connectionResult) { + Log.i(TAG, "Connection failed: ConnectionResult.getErrorCode() = " + connectionResult.getErrorCode()); + } + + + protected void onStart() { + super.onStart();// ATTENTION: This was auto-generated to implement the App Indexing API. +// See https://g.co/AppIndexing/AndroidStudio for more information. + //client.connect(); + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + // ATTENTION: This was auto-generated to implement the App Indexing API. + // See https://g.co/AppIndexing/AndroidStudio for more information. + // AppIndex.AppIndexApi.start(client, getIndexApiAction()); + } + + + @Override + protected void onStop() { + super.onStop();// ATTENTION: This was auto-generated to implement the App Indexing API. +// See https://g.co/AppIndexing/AndroidStudio for more information. + // AppIndex.AppIndexApi.end(client, getIndexApiAction()); + /* if (mGoogleApiClient.isConnected()) { + mGoogleApiClient.disconnect(); + }*/ + // ATTENTION: This was auto-generated to implement the App Indexing API. + // See https://g.co/AppIndexing/AndroidStudio for more information. + //client.disconnect(); + } + + @Override + protected void onPause() { + super.onPause(); + //stopLocationUpdates(); + } + + @Override + public void onLocationChanged(Location location) { + + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/First2Fragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/First2Fragment.java new file mode 100644 index 0000000..203e7a2 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/First2Fragment.java @@ -0,0 +1,36 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.navigation.fragment.NavHostFragment; + +import cpm.com.gskmtorange.R; + +public class First2Fragment extends Fragment { + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState + ) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_first2, container, false); + } + + public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + view.findViewById(R.id.button_first).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + NavHostFragment.findNavController(First2Fragment.this) + .navigate(R.id.action_First2Fragment_to_Second2Fragment); + } + }); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FirstFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FirstFragment.java new file mode 100644 index 0000000..41a75b3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FirstFragment.java @@ -0,0 +1,36 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.navigation.fragment.NavHostFragment; + +import cpm.com.gskmtorange.R; + +public class FirstFragment extends Fragment { + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState + ) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_first, container, false); + } + + public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + view.findViewById(R.id.button_first).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + NavHostFragment.findNavController(FirstFragment.this) + .navigate(R.id.action_FirstFragment_to_SecondFragment); + } + }); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FutureJCPActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FutureJCPActivity.java new file mode 100644 index 0000000..559dff7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FutureJCPActivity.java @@ -0,0 +1,329 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.DatePickerDialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.DatePicker; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.SoapFault; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.IOException; +import java.io.StringReader; +import java.util.Calendar; +import java.util.Locale; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.messgae.AlertMessage; +import cpm.com.gskmtorange.xmlGetterSetter.JourneyPlanGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; + +public class FutureJCPActivity extends AppCompatActivity implements View.OnClickListener { + FloatingActionButton fab; + //ImageButton calenderBtn; + TextView txt_date; + RecyclerView futureJcpList; + Calendar c; + int year; + int month; + int day; + SharedPreferences preferences; + String _UserId; + ProgressDialog progressDialog; + int eventType; + JourneyPlanGetterSetter journeyPlanPreviousGetterSetter; + String culture_id; + Context context; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_future_jcp); + declaration(); + + //calenderBtn.setOnClickListener(this); + fab.setOnClickListener(this); + } + + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.iconCalender: + c = Calendar.getInstance(); + year = c.get(Calendar.YEAR); + month = c.get(Calendar.MONTH); + day = c.get(Calendar.DAY_OF_MONTH); + showDatePickerDialog(year, month, day); + break; + case R.id.fab: + Snackbar.make(v, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + break; + } + + } + + protected void showDatePickerDialog(int year, int month, int day) { + DatePickerDialog datePickerDialog = new DatePickerDialog(this, pickerListener, year, month, day); + // ((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("year", "id", "android")).setVisibility(View.GONE); + //datePickerDialog.findViewById(Resources.getSystem().getIdentifier("year", "id", "android")).setVisibility(View.GONE); + datePickerDialog.setTitle(""); + datePickerDialog.show(); + } + + private DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() { + + // when dialog box is closed, below method will be called. + @Override + public void onDateSet(DatePicker view, int selectedYear, + int selectedMonth, int selectedDay) { + + futureJcpList.removeAllViewsInLayout(); + futureJcpList.invalidate(); + year = selectedYear; + month = selectedMonth + 1; + day = selectedDay; + + String day_str = String.valueOf(day); + day_str = "00" + day_str; + day_str = day_str.substring(day_str.length() - 2, day_str.length()); + + + String month_str = String.valueOf(month); + month_str = "00" + month_str; + month_str = month_str.substring(month_str.length() - 2, month_str.length()); + + String yeat_str = String.valueOf(year); + + txt_date.setText(new StringBuilder().append(month_str).append("/").append(day_str).append("/").append(yeat_str) + ); + new Task().execute(txt_date.getText().toString()); + + } + }; + + + void declaration() { + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + fab = (FloatingActionButton) findViewById(R.id.fab); + //calenderBtn = (ImageButton) findViewById(R.id.iconCalender); + txt_date = (TextView) findViewById(R.id.txt_date); + futureJcpList = (RecyclerView) findViewById(R.id.futureJcpList); + context = this; + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + _UserId = preferences.getString(CommonString.KEY_USERNAME, ""); + culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, ""); + progressDialog = new ProgressDialog(FutureJCPActivity.this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + c = Calendar.getInstance(); + year = c.get(Calendar.YEAR); + month = c.get(Calendar.MONTH); + day = c.get(Calendar.DAY_OF_MONTH); + showDatePickerDialog(year, month, day); + } + + // AsyncTask asyncTask = new AsyncTask() { + class Task extends AsyncTask { + @Override + protected void onPreExecute() { + progressDialog.setTitle("Please wait"); + progressDialog.setMessage("Fetching Data.."); + progressDialog.setCancelable(false); + progressDialog.show(); + } + + @Override + protected String doInBackground(String... params) { + XmlPullParserFactory factory = null; + try { + factory = XmlPullParserFactory + .newInstance(); + + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + SoapSerializationEnvelope envelope; + HttpTransportSE androidHttpTransport; + SoapObject request; + + // Brand Master data + request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", _UserId); + request.addProperty("Type", "JOURNEY_SEARCH:" + params[0]); + request.addProperty("cultureid", culture_id); + envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + androidHttpTransport = new HttpTransportSE(CommonString.URL); + Log.d("requestdata",request.toString()); + + androidHttpTransport.call( + CommonString.SOAP_ACTION_UNIVERSAL, envelope); + Object resultFuturedata = (Object) envelope.getResponse(); + + if (resultFuturedata.toString() != null) { + xpp.setInput(new StringReader(resultFuturedata.toString())); + xpp.next(); + eventType = xpp.getEventType(); + journeyPlanPreviousGetterSetter = XMLHandlers.JCPXMLHandler(xpp, eventType); + } + return "Success"; + } catch (XmlPullParserException e) { + e.printStackTrace(); + return "failure"; + } catch (SoapFault soapFault) { + soapFault.printStackTrace(); + return "failure"; + } catch (IOException e) { + e.printStackTrace(); + return getResources().getString(R.string.nonetwork); + } catch (Exception e) { + e.printStackTrace(); + return "failure"; + } + } + + + @Override + protected void onPostExecute(String o) { + super.onPostExecute(o); + progressDialog.dismiss(); + if (o.equalsIgnoreCase("Success")) { + if (journeyPlanPreviousGetterSetter.getSTORE_ID().size() > 0) { + + MyListAdapter adapter = new MyListAdapter(context, journeyPlanPreviousGetterSetter); + futureJcpList.setLayoutManager(new LinearLayoutManager(context)); + futureJcpList.setAdapter(adapter); + } else { + + Snackbar.make(futureJcpList,R.string.no_route_plan_for_day,Snackbar.LENGTH_SHORT).show(); + } + } else { + + Snackbar.make(futureJcpList,o,Snackbar.LENGTH_SHORT).show(); + } + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.date_menu, menu); + + // return true so that the menu pop up is opened + return true; + } + + @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 == R.id.iconCalender){ + c = Calendar.getInstance(); + year = c.get(Calendar.YEAR); + month = c.get(Calendar.MONTH); + day = c.get(Calendar.DAY_OF_MONTH); + showDatePickerDialog(year, month, day); + + }else if (id == android.R.id.home) { + + // NavUtils.navigateUpFromSameTask(this); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + return super.onOptionsItemSelected(item); + } + + + class MyListAdapter extends RecyclerView.Adapter { + LayoutInflater layoutInflater; + JourneyPlanGetterSetter journeyPlanPreviousGetterSetter; + + MyListAdapter(Context context, JourneyPlanGetterSetter journeyPlanPreviousGetterSetter) { + layoutInflater = LayoutInflater.from(context); + this.journeyPlanPreviousGetterSetter = journeyPlanPreviousGetterSetter; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_future_jcp_list, parent, false); + ViewHolder viewHolder = new ViewHolder(view); + return viewHolder; + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + if (holder != null) { + holder.txt_store_cd.setText(journeyPlanPreviousGetterSetter.getSTORE_ID().get(position)); + holder.txt_keyacct.setText(journeyPlanPreviousGetterSetter.getKEYACCOUNT().get(position)); + holder.txt_storename.setText(journeyPlanPreviousGetterSetter.getSTORE_NAME().get(position)); + holder.txt_city.setText(journeyPlanPreviousGetterSetter.getCITY().get(position)); + holder.txt_storetype.setText(journeyPlanPreviousGetterSetter.getSTORETYPE().get(position)); + + } + } + + @Override + public int getItemCount() { + return journeyPlanPreviousGetterSetter.getSTORE_ID().size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + TextView txt_store_cd, txt_keyacct, txt_storename, txt_city, txt_storetype; + LinearLayout ll_itemfutureJCP; + + public ViewHolder(View view) { + super(view); + txt_store_cd = (TextView) view.findViewById(R.id.txt_store_cd); + txt_keyacct = (TextView) view.findViewById(R.id.txt_keyacct); + txt_storename = (TextView) view.findViewById(R.id.txt_storename); + txt_city = (TextView) view.findViewById(R.id.txt_city); + txt_storetype = (TextView) view.findViewById(R.id.txt_storetype); + ll_itemfutureJCP = (LinearLayout) view.findViewById(R.id.ll_itemfutureJCP); + } + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/MessageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/MessageActivity.java new file mode 100644 index 0000000..f144630 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/MessageActivity.java @@ -0,0 +1,437 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Dialog; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.SoapFault; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.File; +import java.io.IOException; +import java.io.StringReader; +import java.util.ArrayList; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.ChatMessageGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.gsk_dailyentry.CategoryListActivity; +import cpm.com.gskmtorange.gsk_dailyentry.CategoryWisePerformanceActivity; +import cpm.com.gskmtorange.gsk_dailyentry.DailyDataMenuActivity; +import cpm.com.gskmtorange.xmlGetterSetter.ChatMessageDownloadGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.TableBean; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; + +public class MessageActivity extends AppCompatActivity { + //ArrayList messages; + private Context context; + String categoryName = "", categoryId; + + MyRecyclerAdapter adapter; + RecyclerView rec; + + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private Data data; + int eventType; + + String userId, culture_id, store_id; + private SharedPreferences preferences = null; + + GSKOrangeDB db; + ArrayList chatmessagelist = new ArrayList<>(); + Toolbar toolbar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_message); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + rec = (RecyclerView)findViewById(R.id.rec); + + db = new GSKOrangeDB(MessageActivity.this); + db.open(); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + userId = preferences.getString(CommonString.KEY_USERNAME, null); + culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, ""); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(MessageActivity.this, CategoryListActivity.class); + startActivity(intent); + finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + }); + + //messages = getMessages(); + + /* if(messages.size()>0){ + adapter = new MyRecyclerAdapter(getApplicationContext(), messages); + rec.setAdapter(adapter); + rec.setLayoutManager(new LinearLayoutManager(getApplicationContext())); + }*/ + + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getString(R.string.title_activity_message)); + new DowloadAsync(MessageActivity.this).execute(); + } + + /*ArrayList getMessages(){ + ArrayList messages = new ArrayList<>(); + + for(int i=0; i<5;i++){ + MessageGetterSetter msg = new MessageGetterSetter(); + + msg.setMessage("Store data need to be filled"); + msg.setFrom("Superviser"+(i+1)); + msg.setDate("11:20:32 11/06/2018"); + msg.setLatest_msg("Working on it"); + + messages.add(msg); + } + return messages; + }*/ + + /*class MessageGetterSetter{ + + String message="", from, date, latest_msg; + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getLatest_msg() { + return latest_msg; + } + + public void setLatest_msg(String latest_msg) { + this.latest_msg = latest_msg; + } + } +*/ + class MyRecyclerAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + ArrayList data = new ArrayList<>(); + + public MyRecyclerAdapter(Context context, ArrayList data) { + + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @Override + public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = inflator.inflate(R.layout.message_topic_item, parent, false); + + MyRecyclerAdapter.MyViewHolder holder = new MyRecyclerAdapter.MyViewHolder(view); + + return holder; + } + + @Override + public void onBindViewHolder(MyViewHolder holder, final int position) { + + //final MappingPlanogramCountrywiseGetterSetter current = data.get(position); + + final String msg_topic_str = data.get(position).getMESSAGE(); + //final String latest_msg_str = data.get(position).getRECEIVER(); + final String date_time_str = data.get(position).getMESSAGEDATE(); + final String msg_from_str = data.get(position).getSENDER(); + + holder.msg_topic.setText(msg_topic_str); + //holder.latest_msg.setText(latest_msg_str); + holder.date_time.setText(date_time_str); + holder.msg_from.setText(msg_from_str); + //holder.detail.setText(current.getDocument_descriiption().get(0)); + + holder.parent_layout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent in = new Intent(MessageActivity.this, ConversationActivity.class); + in.putExtra(CommonString.KEY_CHAT_ID, data.get(position).getCHAT_ID()); + in.putExtra(CommonString.KEY_MESSAGE, data.get(position).getMESSAGE()); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + }); + } + + @Override + public int getItemCount() { + return chatmessagelist.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView msg_topic, latest_msg, date_time, msg_from; + LinearLayout parent_layout; + + public MyViewHolder(View itemView) { + super(itemView); + msg_topic = (TextView) itemView.findViewById(R.id.tv_msg_topic); + latest_msg = (TextView) itemView.findViewById(R.id.tv_latest_msg); + date_time = (TextView) itemView.findViewById(R.id.tv_date_time); + msg_from = (TextView) itemView.findViewById(R.id.tv_from); + + parent_layout = (LinearLayout) itemView.findViewById(R.id.layout_parent); + + } + + } + } + + //region Download doc + private class DowloadAsync extends AsyncTask { + + private Context context; + + DowloadAsync(Context context) { + this.context = context; + } + + + @Override + protected void onPreExecute() { + super.onPreExecute(); + + dialog = new Dialog(MessageActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(R.layout.custom); + //dialog.setTitle("Download Files"); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected String doInBackground(Void... params) { + + data = new Data(); + String resultHttp = ""; + boolean flag = true; + // JCP + + try { + + XmlPullParserFactory factory = null; + factory = XmlPullParserFactory + .newInstance(); + + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "CHAT_MESSAGE"); + request.addProperty("cultureid", culture_id); + + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + + androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, + envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString() != null) { + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + + ChatMessageDownloadGetterSetter chatmsg = XMLHandlers.CHAT_MESSAGE_XMLHandler(xpp, eventType); + + if (chatmsg.getSENDERID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + String document_Table = chatmsg.getTable_CHAT_MESSAGE(); + + db.createTable(document_Table); + db.InserChatMessage(chatmsg); + + } else { + return "CHAT_MESSAGE"; + } + + data.value = 10; + data.name = "Message Data Downloading"; + + /* db.open(); + db.InsertMappingCountrywisePlanogram(document);*/ + + } + + publishProgress(data); + + } catch (XmlPullParserException e) { + //Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + //Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + resultHttp = getString(R.string.nonetwork); + flag = false; + } catch (SoapFault soapFault) { + soapFault.printStackTrace(); + resultHttp = getString(R.string.nonetwork); + flag = false; + } catch (IOException e) { + e.printStackTrace(); + resultHttp = getString(R.string.nonetwork); + flag = false; + } + catch ( Exception e){ + //Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + //Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + resultHttp = getString(R.string.nonetwork); + flag = false; + } + + if(flag) + return CommonString.KEY_SUCCESS; + else + return resultHttp; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.cancel(); + + if (result.contains(CommonString.KEY_SUCCESS)) { + + /* if(document.getPLANOGRAM_URL().size()>0){ + adapter = new PlanogramPDFActivity.MyRecyclerAdapter(getApplicationContext(), document); + rec.setAdapter(adapter); + rec.setLayoutManager(new LinearLayoutManager(getApplicationContext())); + } +*/ + + } else { + //Snackbar.make(fab, result, Toast.LENGTH_SHORT).show(); + } + + db.open(); + chatmessagelist = db.getChatMessageData(store_id); + + if(chatmessagelist.size()>0){ + adapter = new MyRecyclerAdapter(context, chatmessagelist); + rec.setAdapter(adapter); + rec.setLayoutManager(new LinearLayoutManager(context)); + } + + //finish(); + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + + } + } + //endregion + + class Data { + int value; + String name; + } + + @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) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + return super.onOptionsItemSelected(item); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NewStockDataActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NewStockDataActivity.java new file mode 100644 index 0000000..8f2843c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NewStockDataActivity.java @@ -0,0 +1,1612 @@ +package cpm.com.gskmtorange.dailyentry; +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.text.InputFilter; +import android.text.Spanned; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; +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 androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +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.interfaces.DialogCallbackListener; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; +public class NewStockDataActivity extends AppCompatActivity implements DialogCallbackListener { + private Context context; + ExpandableListView expandableListView; + TextView txt_mslAvailabilityName; + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + ExpandableListAdapter adapter; + ImageView camera1, camera2, camera3, camera4; + LinearLayout lin_camera1, lin_camera2, lin_camera3, lin_camera4; + GSKOrangeDB db; + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, store_flag_hide, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + String str_planogram = "", _pathforcheck = ""; + ArrayList planogramShelfHeaderDataList = new ArrayList<>(); + ArrayList planogramSkuChildDataList; + HashMap> planogramHashMapListChildData = new HashMap<>(); + boolean editFlag = false; + + //temp + // public static final String FILE_PATH = Environment.getExternalStorageDirectory() + "/"; + //ImageView bmImage; + RelativeLayout view; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_new_stock_data); + + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + txt_mslAvailabilityName = (TextView) findViewById(R.id.txt_mslAvailabilityName); + + camera1 = (ImageView) findViewById(R.id.img_camera1); + camera2 = (ImageView) findViewById(R.id.img_camera2); + camera3 = (ImageView) findViewById(R.id.img_camera3); + camera4 = (ImageView) findViewById(R.id.img_camera4); + + lin_camera1 = (LinearLayout) findViewById(R.id.lin_camera1); + lin_camera2 = (LinearLayout) findViewById(R.id.lin_camera2); + lin_camera3 = (LinearLayout) findViewById(R.id.lin_camera3); + lin_camera4 = (LinearLayout) findViewById(R.id.lin_camera4); + + db = new GSKOrangeDB(this); + db.open(); + context = this; + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + store_flag_hide = preferences.getString(CommonString.KEY_STORE_FLAG_FACING_HIDE, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + //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().setDisplayHomeAsUpEnabled(true); + + str_planogram = CommonString.getDownloadedImageFolder(context); + + prepareList(); + + //Camera + prepareDefaultList(); + + cameraMethod(); + + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View view) { + + expandableListView.clearFocus(); + adapter.notifyDataSetChanged(); + + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + + 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(); + }*/ + if (db.checkMsl_Availability_StockFacingDataNew(store_id, categoryId, visit_date)) { + db.updateMSL_Availability_StockFacingNew(visit_date, 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_StockFacingNew(visit_date, 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); + + /*AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.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 { + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + /*AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + //expandableListView.smoothScrollToPosition(scrollPosition); + + 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) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//.setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .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) context + .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) context + .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 + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.planogram, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + + if (editFlag) { + CommonFunctions.showAlertDialog(NewStockDataActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + + /* AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.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.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + //adapter.notifyDataSetChanged(); + + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + AlertDialog alert = builder.create(); + alert.show();*/ + //finish(); + } else if (id == R.id.action_planogram) {//Planogram Dialog + expandableListView.clearFocus(); + + //final Dialog dialog = new Dialog(Stock_FacingActivity.this, android.R.style.Theme_Black_NoTitleBar_Fullscreen); + final Dialog dialog = new Dialog(NewStockDataActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + //dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.planogram_dialog_layout); + dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + dialog.setCancelable(false); + + ArrayList mappingPlanogramList; + + //Header + if (country_id.equals("7") || country_id.equals("5")) { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, null, null, store_id, CommonString.TABLE_MAPPING_PLANOGRAM_STORE_WISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM_ADHOC); + } else { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM); + } + + + //ImageView img_planogram = (ImageView) dialog.findViewById(R.id.img_planogram); + WebView webView = (WebView) dialog.findViewById(R.id.webview); + webView.setWebViewClient(new NewStockDataActivity.MyWebViewClient()); + + webView.getSettings().setAllowFileAccess(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setBuiltInZoomControls(true); + + String planogram_image = ""; + if (mappingPlanogramList.size() > 0) { + planogram_image = mappingPlanogramList.get(0).getPLANOGRAM_IMAGE(); + } + if (!planogram_image.equals("")) { + if (new File(str_planogram + planogram_image).exists()) { + Bitmap bmp = BitmapFactory.decodeFile(str_planogram + planogram_image); + // img_planogram.setRotation(90); + //img_planogram.setImageBitmap(bmp); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + + String imagePath = "file://" + CommonString.getDownloadedImageFolder(context) + "/" + planogram_image; + String html = ""; + webView.loadDataWithBaseURL("", html, "text/html", "utf-8", ""); + + dialog.show(); + } /*else { + //webView.loadUrl(String.valueOf(R.drawable.sad_cloud)); + + //img_planogram.setBackgroundResource(R.drawable.sad_cloud); + }*/ + } + + + ImageView cancel = (ImageView) dialog.findViewById(R.id.img_cancel); + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + dialog.dismiss(); + } + }); + + //dialog.show(); + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onSelect(boolean flag) { + if (flag) { + //adapter.notifyDataSetChanged(); + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onSave(boolean flag) { + + } + + private class MyWebViewClient extends WebViewClient { + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + } + + private void cameraMethod() { + /*cameraData = new Store_wise_camera_DataGetterSetter(); + + if (db.isStorewiseCameraSave(store_id, categoryId)) { + cameraData = db.getStore_wise_camera(store_id, categoryId); + } else { + cameraData.setStore_id(store_id); + cameraData.setCategory_id(categoryId); + cameraData.setCamera1(""); + cameraData.setCamera2(""); + cameraData.setCamera3(""); + cameraData.setCamera4(""); + cameraData.setCheckSaveStatus("0"); + } + + + if (camera_allow.equals("1")) { + + findViewById(R.id.view_camera2).setVisibility(View.VISIBLE); + findViewById(R.id.view_camera3).setVisibility(View.VISIBLE); + + if (cameraData.getCamera1().equals("")) { + camera1.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera1.setBackgroundResource(R.mipmap.camera_green); + } + + if (cameraData.getCamera2().equals("")) { + camera2.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera2.setBackgroundResource(R.mipmap.camera_green); + } + + if (cameraData.getCamera3().equals("")) { + camera3.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera3.setBackgroundResource(R.mipmap.camera_green); + } + + if (cameraData.getCamera4().equals("")) { + camera4.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera4.setBackgroundResource(R.mipmap.camera_green); + } + + + lin_camera1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera1_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str_planogram+ _pathforcheck; + + startCameraActivity(3); + } + }); + + lin_camera2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera2_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str_planogram+ _pathforcheck; + + startCameraActivity(4); + } + }); + + lin_camera3.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera3_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str_planogram+ _pathforcheck; + + startCameraActivity(5); + } + }); + + lin_camera4.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera4_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str_planogram+ _pathforcheck; + + startCameraActivity(6); + } + }); + + } else {*/ + + if (!camera_allow.equals("1")) { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + /* findViewById(R.id.lin_camera).setVisibility(View.VISIBLE); + + findViewById(R.id.view_camera2).setVisibility(View.GONE); + findViewById(R.id.view_camera3).setVisibility(View.GONE); + + lin_camera2.setVisibility(View.GONE); + lin_camera3.setVisibility(View.GONE); + lin_camera4.setVisibility(View.GONE); + + if (db.isPlanogramAddShelfSaveData(store_id, categoryId)) { + camera1.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + camera1.setBackgroundResource(R.mipmap.new_no_camera); + } + + lin_camera1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(NewStockDataActivity.this, + StockFacing_PlanogramTrackerActivity.class); + + intent.putExtra("storeId", store_id); + intent.putExtra("keyAccount_id", keyAccount_id); + intent.putExtra("class_id", class_id); + intent.putExtra("storeType_id", storeType_id); + intent.putExtra("categoryId", categoryId); + intent.putExtra("categoryName", categoryName); + + startActivityForResult(intent, 100); + } + + });*/ + } else { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } + } + + //Planogram List for check and delete on backPress + private void prepareDefaultList() { + // Planogram After save shelf header data + planogramShelfHeaderDataList = db.getPlanogramAddShelfHeaderAfterSaveData(store_id, categoryId); + + if (planogramShelfHeaderDataList.size() > 0) { + + for (int i = 0; i < planogramShelfHeaderDataList.size(); i++) { + planogramSkuChildDataList = db.getStockAndFacingPlanogramAfterSKUData(planogramShelfHeaderDataList.get(i).getKey_id()); + + //After save sku child data + if (planogramSkuChildDataList.size() > 0) { + planogramHashMapListChildData.put(planogramShelfHeaderDataList.get(i), planogramSkuChildDataList); + } + } + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + if (country_id.equals("7")) { + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC, store_flag_hide); + } else { + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } + + + 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 (country_id.equals("7")) { + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, + CommonString.TABLE_MAPPING_STOCK_STOREWISE, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK_STOREWISE); + // childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(),categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE,store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + // childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(),categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC,store_flag_hide); + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + // childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(),categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK,store_flag_hide); + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), categoryId, + headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK); + } + + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new NewStockDataActivity.ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + + //expand all + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + + checkHeaderArray.clear(); + int childCount = 0; + + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + + HashMap> listDataChildTemp = new HashMap<>(); + + + for (int i = 0; i < listDataHeader.size(); i++) { + flag = true; + + List listTemp = new ArrayList<>(); + + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + + child_flag = true; + + 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 (data.getMust_have().equals("1")) { + /*if (!camera_allow.equalsIgnoreCase("1")) { + if (!(planogramShelfHeaderDataList.size() > 0)) { + flag = false; + Error_Message = getResources().getString(R.string.stock_planogram_data_noCamera_data); + break; + } + }*/ + + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i + j + childCount; + + all_flag = false; + flag = false; + child_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); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i + j + childCount; + + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + //break; + } + } else { + //for Egypt + if (country_id.equals("6")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i + j + childCount; + + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + // break; + } + } + } + } + } + } else { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i + j + childCount; + + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + // break; + } + } + if (!child_flag) + listTemp.add(data); + + } + + if (flag == false) { + //checkflag = false; + listDataHeaderTemp.add(listDataHeader.get(i)); + listDataChildTemp.put(listDataHeader.get(i), listTemp); + + //break; + } else { + childCount = childCount + listDataChild.get(listDataHeader.get(i)).size(); + //checkflag = true; + } + } + + if (!all_flag) { + adapter = new NewStockDataActivity.ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false; + } else { + checkflag = true; + } + + return all_flag; + } + + + @Override + public void onBackPressed() { + //super.onBackPressed(); + + /*AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.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.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + //adapter.notifyDataSetChanged(); + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + AlertDialog alert = builder.create(); + alert.show();*/ + if (editFlag) { + CommonFunctions.showAlertDialog(NewStockDataActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + + /* if(flag){ + //adapter.notifyDataSetChanged(); + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + }*/ + + + } + + 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + if (headerTitle.getCompany_id().equals("1")) { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.header_text_color)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + txt_categoryHeader.setTextColor(getResources().getColor(R.color.white)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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); + NewStockDataActivity.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_data, null, false); + + holder = new NewStockDataActivity.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.facing.setFilters(new InputFilter[]{new NewStockDataActivity.DecimalDigitsInputFilter(3, 1)}); + holder.stock = (EditText) convertView.findViewById(R.id.ed_stock); + holder.stock_view = convertView.findViewById(R.id.stock_view); + convertView.setTag(holder); + } else { + holder = (NewStockDataActivity.ViewHolder) convertView.getTag(); + } + + holder.txt_skuName.setText(childData.getSku()); + holder.txt_mbq.setText(childData.getMbq()); + + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + + holder.txt_mbq.setVisibility(View.VISIBLE); + holder.toggle_available.setVisibility(View.VISIBLE); + holder.facing.setVisibility(View.VISIBLE); + + + if (country_id.equals("6")) { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } else { + if (childData.getToggleValue().equals("1")) { + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + } else { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } + } + + + } else { + + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + holder.facing.setVisibility(View.VISIBLE); + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + } + + if (childData.getCompany_id().equals("1")) { + + if (childData.getMust_have().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.blue)); + } + + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } + + + /* if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + *//*holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + holder.facing.setVisibility(View.VISIBLE); + holder.stock.setVisibility(View.GONE);*//* + }*/ + + + final NewStockDataActivity.ViewHolder finalHolder = holder; + holder.toggle_available.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (buttonView.isPressed()) { + + editFlag = true; + + if (isChecked) { + childData.setToggleValue("1"); + //for Egypt + if (country_id.equals("6")) { + finalHolder.stock.setVisibility(View.VISIBLE); + } else { + finalHolder.stock.setVisibility(View.GONE); + } + + /*childData.setStock(""); + childData.setFacing("");*/ + } else { + /* childData.setStock(""); + childData.setFacing("");*/ + childData.setToggleValue("0"); + finalHolder.stock.setVisibility(View.VISIBLE); + + //If MBQ Value is 0 + if (Integer.parseInt(childData.getMbq()) == 0) { + childData.setStock("0"); + childData.setFacing("0"); + } else { + //for Egypt + if (country_id.equals("6")) { + childData.setStock(""); + childData.setFacing(""); + } + } + } + expandableListView.clearFocus(); + expandableListView.invalidateViews(); + } + } + }); + + if (childData.getToggleValue().equals("1")) { + holder.toggle_available.setChecked(true); + if (country_id.equals("6") && childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + finalHolder.stock.setVisibility(View.VISIBLE); + } else { + finalHolder.stock.setVisibility(View.GONE); + childData.setStock(""); + } + + + } else { + holder.toggle_available.setChecked(false); + finalHolder.stock.setVisibility(View.VISIBLE); + } + + + holder.stock.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edStock = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + /*if (!childData.getFacing().equals("") && Integer.parseInt(stock) >= 0 && Integer.parseInt(childData.getFacing()) < Integer.parseInt(stock)) { + + }*/ + editFlag = true; + if (!edStock.equals("")) { + String stock = edStock; + + //for Egypt + if (country_id.equals("6") && childData.getToggleValue().equals("1")) { + if (!childData.getFacing().equals("")) { + if (Integer.parseInt(stock) >= 0 && Double.parseDouble(childData.getFacing()) <= Integer.parseInt(stock)) { + + childData.setStock(stock); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder.stock.setText(""); + dialog.dismiss(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setStock(stock); + } + } else { + int mbq = Integer.parseInt(childData.getMbq()); + if (mbq != 0) { + if (Integer.parseInt(stock) >= 0 && Integer.parseInt(stock) < mbq) { + + if (!childData.getFacing().equals("")) { + if (Integer.parseInt(stock) >= 0 && Double.parseDouble(childData.getFacing()) <= Integer.parseInt(stock)) { + + childData.setStock(stock); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder.stock.setText(""); + dialog.dismiss(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setStock(stock); + } + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.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) { + finalHolder.stock.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } else { + if (Integer.parseInt(stock) > 0) { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.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) { + finalHolder.stock.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } + } + } else { + childData.setStock(""); + } + } + }); + holder.stock.setText(childData.getStock()); + + + final NewStockDataActivity.ViewHolder finalHolder1 = holder; + final NewStockDataActivity.ViewHolder finalHolder2 = holder; + holder.facing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + editFlag = true; + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + //int num = Integer.parseInt(edFaceup); + double faceup = Double.parseDouble(edFaceup); + int num = (int) faceup; + //int faceint = (int)(faceup - Math.floor( faceup )); + int faceint = (int) ((faceup % 1.0) * 10); + if (faceint != 0) { + if ((faceup % 1.0) * 10 != 5) { + faceint = 5; + edFaceup = String.valueOf(num + faceint / 10.0); + finalHolder2.facing.setText(edFaceup); + + } + } + + + /*Double faceup = Double.parseDouble(edFaceup); + DecimalFormat twoDForm = new DecimalFormat(".#"); + faceup= Double.valueOf(twoDForm.format(faceup));*/ + } + + + boolean isFill = false; + + //Toggle is no selected + if (childData.getToggleValue().equals("0")) { + + //if stock is emplty + /*if (childData.getStock().equals("")) { + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.msl_availability_new_stock_value)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } else {*/ + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + int mbq = Integer.parseInt(childData.getMbq()); + if (mbq != 0) { + if (Double.parseDouble(edFaceup) >= 0 && Double.parseDouble(edFaceup) < mbq) { + if (!childData.getStock().equals("")) { + + //if (edFaceup != null && !edFaceup.equals("")) { + + String faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + + if (Double.parseDouble(faceup) <= Integer.parseInt(childData.getStock())) { + + isFill = true; + + /* if (!edFaceup.equals("")) { + childData.setFacing(faceup); + } else { + childData.setFacing(""); + }*/ + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder1.facing.setText(""); + dialog.dismiss(); + finalHolder2.facing.setText(""); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + // } + } else { + isFill = true; + } + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.check_faceing)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder.facing.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } else { + if (Double.parseDouble(edFaceup) > 0) { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.check_faceing)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder.facing.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } + + } + //} + } else { + + if (country_id.equals("6")) { + if (!childData.getStock().equals("")) { + + //if (edFaceup != null && !edFaceup.equals("")) { + + String faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + if (Double.parseDouble(faceup) <= Integer.parseInt(childData.getStock())) { + + isFill = true; + + /* if (!edFaceup.equals("")) { + childData.setFacing(faceup); + } else { + childData.setFacing(""); + }*/ + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder1.facing.setText(""); + dialog.dismiss(); + finalHolder2.facing.setText(""); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + isFill = true; + } + // } + } else { + isFill = true; + } + } else { + isFill = true; + } + + } + /* //If toggle is yes then facing cannot be 0 + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1") + && !edFaceup.equals("") && edFaceup.equals("0")) { + + AlertDialog.Builder builder = new AlertDialog.Builder(NewStockDataActivity.this); + builder.setMessage(getString(R.string.check_faceup_not_zero)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder1.facing.setText(""); + dialog.dismiss(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } else { + isFill = true; + + }*/ + + + if (isFill) { + if (!edFaceup.equals("") && !edFaceup.equals(".")) { + String faceup = ""; + if (edFaceup.equals("0") || edFaceup.equals(".0")) { + faceup = "0"; + } else { + faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + //faceup = new DecimalFormat("##.#").format(Double.parseDouble(faceup)); + } + + // String str2 = PerfectDecimal(faceup, 3, 1); + childData.setFacing(faceup); + } else { + childData.setFacing(""); + } + } + + } + }); + + holder.facing.setText(childData.getFacing()); + + //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 (childData.getMust_have().equals("1")) { + 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)); + +/* if (childData.getCompany_id().equals("1") && !childData.getMust_have().equals("0")) { + }else{ + holder.facing.setHint(""); + }*/ + tempflag = true; + } + + //for Egypt + if (country_id.equals("6")) { + 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; + } + } + + } else { + holder.facing.setHint(""); + } + } + + + if (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + // holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + // holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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)); + //holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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; + + View stock_view; + } + + + @SuppressLint("LongLogTag") + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("MSL_AVailability_StockFacing", "resultCode: " + resultCode); + + switch (requestCode) { + case 100: + //Planogram List for check and delete on backPress + prepareDefaultList(); + if (db.isPlanogramAddShelfSaveData(store_id, categoryId)) { + camera1.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + camera1.setBackgroundResource(R.mipmap.new_no_camera); + } + + break; + } + super.onActivityResult(requestCode, resultCode, data); + } + + public String PerfectDecimal(String str, int MAX_BEFORE_POINT, int MAX_DECIMAL) { + if (str.charAt(0) == '.') str = "0" + str; + int max = str.length(); + + String rFinal = ""; + boolean after = false; + int i = 0, up = 0, decimal = 0; + char t; + while (i < max) { + t = str.charAt(i); + if (t != '.' && after == false) { + up++; + if (up > MAX_BEFORE_POINT) return rFinal; + } else if (t == '.') { + after = true; + } else { + decimal++; + if (decimal > MAX_DECIMAL) + return rFinal; + } + rFinal = rFinal + t; + i++; + } + return rFinal; + } + + public class DecimalDigitsInputFilter implements InputFilter { + + Pattern mPattern; + + public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero) { + mPattern = Pattern.compile("[0-9]{0," + (digitsBeforeZero - 1) + "}+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); + } + + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + + Matcher matcher = mPattern.matcher(dest); + if (!matcher.matches()) + return ""; + return null; + } + } + private void updateCoverage(String table) { + long l = db.updateStockMapping(store_id, visit_date, table); + if (l > 0) Log.e("CoverageUpdate", "" + l); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NoCameraActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NoCameraActivity.java new file mode 100644 index 0000000..579dc66 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NoCameraActivity.java @@ -0,0 +1,1327 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.preference.PreferenceManager; + +import android.os.Bundle; + +import android.view.DragEvent; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewTreeObserver; +import android.view.Window; +import android.view.WindowManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.AdapterView; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.ScrollView; +import android.widget.Spinner; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.adapter.ListAdapter; +import cpm.com.gskmtorange.adapter.MyAdapter; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.gsk_dailyentry.Stock_FacingActivity; +import cpm.com.gskmtorange.listener.Listener; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DynamycIdsGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.RowColumnGetterSetter; + +public class NoCameraActivity extends AppCompatActivity implements Listener { + private Context context; + GSKOrangeDB db; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, str, country_id, store_flag_str; + String categoryName, categoryId; + int number_of_rows, FROM; + private SharedPreferences preferences; + LinearLayout linear_bottom_parent; + ArrayList ids = new ArrayList<>(); + + ArrayList top_list = new ArrayList<>(); + + RecyclerView rvTop; + MSL_AvailabilityStockFacingGetterSetter sub_category_data; + + FloatingActionButton fab, fab_add; + + ScrollView scroll_no_camera; + + int mScrollDistance = 0; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_no_camera); + + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + fab = (FloatingActionButton) findViewById(R.id.fab); + fab_add = (FloatingActionButton) findViewById(R.id.fab_add); + + rvTop = (RecyclerView) findViewById(R.id.rvTop); + linear_bottom_parent = (LinearLayout) findViewById(R.id.lin_bottom_parent); + scroll_no_camera = (ScrollView) findViewById(R.id.scroll_no_camera); + + //SCROLLVIEW + scroll_no_camera.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { + @Override + public void onScrollChanged() { + mScrollDistance = scroll_no_camera.getScrollY(); // For ScrollView + // DO SOMETHING WITH THE SCROLL COORDINATES + } + }); + + //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); + storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + str = CommonString.getImagesFolder(context); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + number_of_rows = getIntent().getIntExtra(CommonString.KEY_NUMBER_OF_ROWS, 0); + FROM = getIntent().getIntExtra(CommonString.KEY_FROM, 0); + sub_category_data = (MSL_AvailabilityStockFacingGetterSetter) getIntent().getSerializableExtra(CommonString.KEY_SUB_CATEGORY); + + db = new GSKOrangeDB(NoCameraActivity.this); + db.open(); + + top_list = prepareTopList(categoryId); + + rvTop.setLayoutManager(new GridLayoutManager(this, 3)); + ListAdapter topListAdapter = new ListAdapter(top_list, this); + rvTop.setAdapter(topListAdapter); + //tvEmptyListTop.setOnDragListener(topListAdapter.getDragInstance()); + rvTop.setOnDragListener(topListAdapter.getDragInstance()); + + if (FROM == 1) { + String table_name = "NO_CAMERA_FACING_DATA"; + ArrayList rows_data = db.getrowColumnNoCamera(store_id, categoryId, sub_category_data.getSub_category_id(), table_name); + number_of_rows = rows_data.size(); + if(number_of_rows==0){ + table_name = "NO_CAMERA_LAST_VISIT_DATA"; + rows_data = db.getrowColumnNoCamera(store_id, categoryId, sub_category_data.getSub_category_id(), table_name); + number_of_rows = rows_data.size(); + } + + for (int i = 1; i <= rows_data.size(); i++) { + + DynamycIdsGetterSetter dynamic_ids = new DynamycIdsGetterSetter(); + + // first Button + RelativeLayout rLayout = new RelativeLayout(context); + RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + TextView tv = new TextView(context); + tv.setHeight(60); + tv.setTextSize(18); + tv.setBackgroundColor(getResources().getColor(R.color.grey_textview)); + tv.setText("Drop SKU Groups Here "); + tv.setPadding(5, 5, 0, 0); + tv.setLayoutParams(lprams); + int tv_id = View.generateViewId(); + tv.setId(tv_id); + + //set dynamic textview id to object + dynamic_ids.setTextview_id(tv_id); + + RecyclerView rec_bottom = new RecyclerView(context); + int rec_id = View.generateViewId(); + + //set dynamic recycler id to object + dynamic_ids.setRecycler_id(rec_id); + + rec_bottom.setLayoutParams(lprams); + rec_bottom.setPadding(0, 0, 0, 0); + + rec_bottom.setVisibility(View.GONE); + + rec_bottom.setId(rec_id); + rec_bottom.setBackgroundColor(getResources().getColor(R.color.grey_background)); + + RelativeLayout.LayoutParams lprams2 = new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + lprams2.height = 2; + View view = new View(context); + view.setBackgroundColor(getResources().getColor(R.color.white)); + view.setLayoutParams(lprams2); + + rLayout.addView(tv); + rLayout.addView(rec_bottom); + rLayout.addView(view); + rLayout.setBackgroundColor(getResources().getColor(R.color.white)); + + linear_bottom_parent.addView(rLayout); + + + rec_bottom.setLayoutManager(new LinearLayoutManager( + this, LinearLayoutManager.HORIZONTAL, false)); + + List bottomList = new ArrayList<>(); + + List sku_group_master = new ArrayList<>(); + + for (int j = 1; j <= rows_data.get(i - 1).getColumn(); j++) { + NoCameraDataGetterSetter column_data = new NoCameraDataGetterSetter(); + column_data = db.getRowSkuGroupCamera(store_id, categoryId, sub_category_data.getSub_category_id(), i, j, table_name); + sku_group_master.add(column_data); + } + + dynamic_ids.setTotal_unit(getTotalUnit(sku_group_master)); + ids.add(dynamic_ids); + + MyAdapter adapter = new MyAdapter(context, sku_group_master, this, rec_bottom); + rec_bottom.setAdapter(adapter); + + rec_bottom.scrollToPosition(sku_group_master.size() - 1); + + tv.setOnDragListener(adapter.getDragInstance()); + + //delete row on LongClick + tv.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View tvView) { + showDeleteDialog(tvView); + return false; + } + }); + + rec_bottom.setOnDragListener(adapter.getDragInstance()); + + setEmptyListBottom(false, tv.getId(), rec_bottom); + } + + } else { + for (int i = 1; i <= number_of_rows; i++) { + + DynamycIdsGetterSetter dynamic_ids = new DynamycIdsGetterSetter(); + + // first Button + RelativeLayout rLayout = new RelativeLayout(context); + RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + TextView tv = new TextView(context); + //tv.setHeight(60); + tv.setTextSize(20); + tv.setBackgroundColor(getResources().getColor(R.color.grey_textview)); + tv.setText("Drop SKU Groups Here "); + tv.setPadding(5, 20, 0, 20); + tv.setLayoutParams(lprams); + int tv_id = View.generateViewId(); + tv.setId(tv_id); + + //set dynamic textview id to object + dynamic_ids.setTextview_id(tv_id); + + RecyclerView rec_bottom = new RecyclerView(context); + int rec_id = View.generateViewId(); + + //set dynamic recycler id to object + dynamic_ids.setRecycler_id(rec_id); + + rec_bottom.setLayoutParams(lprams); + rec_bottom.setPadding(0, 0, 0, 0); + + rec_bottom.setVisibility(View.GONE); + + rec_bottom.setId(rec_id); + rec_bottom.setBackgroundColor(getResources().getColor(R.color.grey_background)); + + RelativeLayout.LayoutParams lprams2 = new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + lprams2.height = 2; + View view = new View(context); + view.setBackgroundColor(getResources().getColor(R.color.white)); + view.setLayoutParams(lprams2); + + rLayout.addView(tv); + rLayout.addView(rec_bottom); + rLayout.addView(view); + rLayout.setBackgroundColor(getResources().getColor(R.color.white)); + + linear_bottom_parent.addView(rLayout); + + ids.add(dynamic_ids); + + rec_bottom.setLayoutManager(new LinearLayoutManager( + this, LinearLayoutManager.HORIZONTAL, false)); + + List bottomList = new ArrayList<>(); + + /* bottomList.add("C"); + bottomList.add("D");*/ + + /*setEmptyListBottom(true); + ListAdapter bottomListAdapter = new ListAdapter(bottomList, this); + rvBottom.setAdapter(bottomListAdapter);*/ + + List brands = new ArrayList<>(); + + MyAdapter adapter = new MyAdapter(context, brands, this, rec_bottom); + rec_bottom.setAdapter(adapter); + + tv.setOnDragListener(adapter.getDragInstance()); + + //delete row on LongClick + tv.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View tvView) { + showDeleteDialog(tvView); + return false; + } + }); + + + rec_bottom.setOnDragListener(adapter.getDragInstance()); + + } + } + + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + boolean flag_all_rows_filled = true; + String error_msg = ""; + + HashMap> hashMapRowData = new HashMap<>(); + + for (int i = 0; i < number_of_rows; i++) { + + int rec_id = ids.get(i).getRecycler_id(); + + RecyclerView target = (RecyclerView) findViewById(rec_id); + MyAdapter adapterMYTarget = (MyAdapter) target.getAdapter(); + List customListMyTarget = adapterMYTarget.getList(); + if (customListMyTarget.size() == 0) { + flag_all_rows_filled = false; + error_msg = getString(R.string.please_add_subgroup_facing); + break; + } else { + boolean flag_empty = true; + for (int k = 0; k < customListMyTarget.size(); k++) { + if (customListMyTarget.get(k).getSKUGROUP_ID().equals("-1")) { + flag_empty = false; + break; + } + } + if (flag_empty) { + hashMapRowData.put(i + 1, customListMyTarget); + } else { + flag_all_rows_filled = false; + error_msg = getString(R.string.please_add_subgroup_for_empty); + break; + } + + } + + } + + if (flag_all_rows_filled) { + db.open(); + db.InsertNoCameraAddedData(store_id, categoryId, sub_category_data.getSub_category_id(), number_of_rows, hashMapRowData); + finish(); + } else { + Snackbar.make(linear_bottom_parent, error_msg, Snackbar.LENGTH_SHORT).show(); + } + } + }); + + fab_add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + addRow(); + } + }); + } + + private int getTotalUnit(List sku_group_master) { + int unit=0; + for(int i=0; i prepareTopList(String category_id) { + + return db.getSkuGroupMasterData(category_id, sub_category_data.getSub_category_id()); + } + + @Override + public void setEmptyListBottom(boolean visibility, int tv, RecyclerView rv) { + ((TextView) findViewById(tv)).setVisibility(visibility ? View.VISIBLE : View.GONE); + rv.setVisibility(visibility ? View.GONE : View.VISIBLE); + } + + @Override + public void deleteItem(final View view, final int column_no, final RecyclerView rec, final NoCameraDataGetterSetter item) { + + final Dialog dialog = new Dialog(NoCameraActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.no_camera_edit_or_delete_dialog); + + final Button btn_edit = (Button) dialog.findViewById(R.id.btn_edit); + final Button btn_delete = (Button) dialog.findViewById(R.id.btn_delete); + + btn_edit.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + final MyAdapter adapterMYTarget = (MyAdapter) rec.getAdapter(); + final List customListMyTarget = adapterMYTarget.getList(); + + final Dialog dialog_facing = new Dialog(NoCameraActivity.this); + dialog_facing.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog_facing.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog_facing.setContentView(R.layout.add_facing_custom_dialog); + //pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + //dialog.setCancelable(false); + final EditText et_facing = (EditText) dialog_facing.findViewById(R.id.et_facing); + + final Button btn_ok = (Button) dialog_facing.findViewById(R.id.btn_ok); + + //final boolean isVertical = item.isVertical(); + + final CheckBox vertical = (CheckBox)dialog_facing.findViewById(R.id.cb_vertical); + final CheckBox horizontal =(CheckBox)dialog_facing.findViewById(R.id.cb_horizontal); + + if(item.isVertical()){ + vertical.setChecked(true); + } + else { + horizontal.setChecked(true); + } + + et_facing.setText(item.getFacing()+""); + + vertical.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (vertical.isChecked()) { + vertical.setChecked(true); + horizontal.setChecked(false); + } + } + }); + + horizontal.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (horizontal.isChecked()) { + horizontal.setChecked(true); + vertical.setChecked(false); + } + } + }); + + btn_ok.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + String facing = et_facing.getText().toString(); + boolean isVertical = vertical.isChecked(); + + if (facing.equals("")) { + Snackbar.make(btn_ok, R.string.please_facing, Snackbar.LENGTH_SHORT).show(); + } else { + + DynamycIdsGetterSetter current_id = new DynamycIdsGetterSetter(); + + for (int i = 0; i < ids.size(); i++) { + + if (ids.get(i).getRecycler_id() == rec.getId()) { + current_id = ids.get(i); + break; + } + } + + boolean flag = true; + int facing_int = Integer.parseInt(facing); + int total_facing = 0; + int total_width = 0; + + for (int i = 0; i < customListMyTarget.size(); i++) { + + total_facing = total_facing + customListMyTarget.get(i).getFacing(); + total_width = total_width + getWidth(customListMyTarget.get(i).isVertical(), customListMyTarget.get(i).getFacing()); + + if (customListMyTarget.get(i).getSKUGROUP_ID().equals("-1")) { + int blank_width = getWidth(customListMyTarget.get(i).isVertical(),customListMyTarget.get(i).getFacing()); + int width = getWidth(isVertical,facing_int) - getWidth(customListMyTarget.get(column_no).isVertical(),customListMyTarget.get(column_no).getFacing()); + int remaining_width = blank_width - width; + + if(remaining_width>=0){ + + if(remaining_width!=0){ + //set remaining width to blank icon + customListMyTarget.get(i).setFacing(remaining_width/CommonString.UNIT_VERTICAL); + } + else { + customListMyTarget.remove(i); + } + + //set updated data to edited item + customListMyTarget.get(column_no).setFacing(facing_int); + customListMyTarget.get(column_no).setVertical(isVertical); + + } + else { + //current_id.setTotal_unit(current_id.getTotal_unit() - remaining_width); + Snackbar.make(scroll_no_camera, R.string.invalid_facing, Snackbar.LENGTH_SHORT).show(); + } + + flag = false; + break; + } + else { + if (customListMyTarget.get(i).getSKUGROUP_ID().equals("21")) { + int access_width = getWidth(isVertical,facing_int) - getWidth(customListMyTarget.get(column_no).isVertical(),customListMyTarget.get(column_no).getFacing()); + + if(access_width>0){ + Snackbar.make(scroll_no_camera, R.string.invalid_facing, Snackbar.LENGTH_SHORT).show(); + } + else { + if(access_width<0){ + NoCameraDataGetterSetter item = new NoCameraDataGetterSetter(); + item.setSKUGROUP_ID("-1"); + item.setSKUGROUP_NAME(""); + item.setFacing((-access_width)/CommonString.UNIT_VERTICAL); + item.setVertical(true); + + customListMyTarget.add(i, item); + } + + //set updated data to edited item + customListMyTarget.get(column_no).setFacing(facing_int); + customListMyTarget.get(column_no).setVertical(isVertical); + } + + flag = false; + break; + } + } + + } + + if (flag) { + + int width = getWidth(isVertical, facing_int); + + current_id.setTotal_unit(current_id.getTotal_unit() - getWidth(item.isVertical(), item.getFacing()) + width); + + customListMyTarget.get(column_no).setFacing(facing_int); + customListMyTarget.get(column_no).setVertical(isVertical); + } + + adapterMYTarget.updateList(customListMyTarget); + adapterMYTarget.notifyDataSetChanged(); + dialog_facing.cancel(); + } + + } + }); + + //dialog.setCancelable(false); + dialog_facing.show(); + + dialog.cancel(); + + } + }); + + btn_delete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + dialog.cancel(); + + DynamycIdsGetterSetter current_id = new DynamycIdsGetterSetter(); + for (int i = 0; i < ids.size(); i++) { + + if (ids.get(i).getRecycler_id() == rec.getId()) { + current_id = ids.get(i); + break; + } + } + + //if Block separator is deleted every separator and Space is deleted in every row + if (item.getSKUGROUP_ID().equals("21")) { + for (int i = 0; i < ids.size(); i++) { + RecyclerView rec = findViewById(ids.get(i).getRecycler_id()); + MyAdapter adapterMYTarget = (MyAdapter) rec.getAdapter(); + List customListMyTarget = adapterMYTarget.getList(); + + Iterator iterator = customListMyTarget.iterator(); + while (iterator.hasNext()) { + NoCameraDataGetterSetter item = iterator.next(); // must be called before you can call iterator.remove() + // Check condition + if (item.getSKUGROUP_ID().equals("-1")) { + iterator.remove(); + ids.get(i).setTotal_unit(ids.get(i).getTotal_unit()- getWidth(item.isVertical(),item.getFacing())); + } + else if(item.getSKUGROUP_ID().equals("21")){ + iterator.remove(); + ids.get(i).setTotal_unit(ids.get(i).getTotal_unit()- getWidth(item.isVertical(),item.getFacing())); + } + } + + adapterMYTarget.updateList(customListMyTarget); + adapterMYTarget.notifyDataSetChanged(); + + if (customListMyTarget.size() == 0) { + + ((TextView) findViewById(ids.get(i).getTextview_id())).setVisibility(View.VISIBLE); + rec.setVisibility(View.GONE); + } + } + } else { + MyAdapter adapterMYTarget = (MyAdapter) rec.getAdapter(); + + List customListMyTarget = adapterMYTarget.getList(); + + //if there are more items after deleted item + if (customListMyTarget.size() - 1 > column_no) { + + boolean flag = true; + int index=0; + for (int l = column_no + 1; l < customListMyTarget.size(); l++) { + if (customListMyTarget.get(l).getSKUGROUP_ID().equals("-1")) { + flag = false; + customListMyTarget.get(l).setFacing(customListMyTarget.get(l).getFacing() + getWidth(item.isVertical(), item.getFacing())/CommonString.UNIT_VERTICAL); + break; + } + else if(customListMyTarget.get(l).getSKUGROUP_ID().equals("21")){ + flag = false; + + NoCameraDataGetterSetter new_item = new NoCameraDataGetterSetter(); + + int width = getWidth(item.isVertical(), item.getFacing()); + + new_item.setSKUGROUP_ID("-1"); + new_item.setSKUGROUP_NAME(""); + new_item.setFacing(width/CommonString.UNIT_VERTICAL); + new_item.setVertical(true); + + customListMyTarget.add(l, new_item); + + break; + } + } + + customListMyTarget.remove(column_no); + if(flag){ + current_id.setTotal_unit(current_id.getTotal_unit()- getWidth(item.isVertical(),item.getFacing())); + } + + } else { + customListMyTarget.remove(column_no); + current_id.setTotal_unit(current_id.getTotal_unit()- getWidth(item.isVertical(),item.getFacing())); + } + + + adapterMYTarget.updateList(customListMyTarget); + adapterMYTarget.notifyDataSetChanged(); + if (customListMyTarget.size() == 0) { + + int view_id = rec.getId(); + int tv_id = 0; + for (int i = 0; i < ids.size(); i++) { + + if (ids.get(i).getRecycler_id() == view_id) { + tv_id = ids.get(i).getTextview_id(); + } + } + + if (tv_id != 0) { + ((TextView) findViewById(tv_id)).setVisibility(View.VISIBLE); + rec.setVisibility(View.GONE); + } + } + } + + } + }); + + //dialog.setCancelable(false); + dialog.show(); + + } + + @Override + public void addNUpdateRow(View v, int view_id, NoCameraDataGetterSetter parent_item) { + + /* int rv_id = 0; + if (v instanceof TextView) { + + for (int i = 0; i < ids.size(); i++) { + + if (ids.get(i).getTextview_id() == view_id) { + rv_id = ids.get(i).getRecycler_id(); + } + } + + RecyclerView target = (RecyclerView) v.getRootView().findViewById(rv_id); + ((TextView) findViewById(view_id)).setVisibility(false ? View.VISIBLE : View.GONE); + target.setVisibility(false ? View.GONE : View.VISIBLE); + + } else { + rv_id = view_id; + } + + RecyclerView target; + target = (RecyclerView) v.getRootView().findViewById(rv_id); + + MyAdapter adapterMYTarget = (MyAdapter) target.getAdapter(); + List customListMyTarget = adapterMYTarget.getList();*/ + + + //if it is valid for add + if(isAddValid(parent_item, v, view_id)){ + showAddFacingDialog(parent_item, v, view_id); + } + + + } + + @Override + public void smoothScrollToRow(View v, DragEvent event) { + + //no action necessary + int y = Math.round(v.getY()) + Math.round(event.getY()); + int translatedY = y - mScrollDistance; + //Log.i("translated",""+translatedY+" "+ mScrollDistance+" "+y); + int threshold = 50; + // make a scrolling up due the y has passed the threshold + /* if (translatedY < 200) { + // make a scroll up by 30 px + scroll_no_camera.smoothScrollBy(0, -15); + } + // make a autoscrolling down due y has passed the 500 px border + if (translatedY + threshold > 500) { + // make a scroll down by 30 px + scroll_no_camera.smoothScrollBy(0, 15); + }*/ + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.planogram, menu); + + // return true so that the menu pop up is opened + return true; + } + + //public void showAddFacingDialog(final MyAdapter adapterMYTarget, final List customListMyTarget, final NoCameraDataGetterSetter parent_item, final View view, final int view_id) { + public void showAddFacingDialog(final NoCameraDataGetterSetter parent_item, final View view, final int view_id) { + // ArrayList skuMasterGetterSetterArrayList = db.getSkuT2PData("1", "1", "1",) + final Dialog dialog = new Dialog(NoCameraActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.add_facing_custom_dialog); + //pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + //dialog.setCancelable(false); + final EditText et_facing = (EditText) dialog.findViewById(R.id.et_facing); + + final Button btn_ok = (Button) dialog.findViewById(R.id.btn_ok); + + final CheckBox vertical = (CheckBox)dialog.findViewById(R.id.cb_vertical); + final CheckBox horizontal =(CheckBox)dialog.findViewById(R.id.cb_horizontal); + final LinearLayout layout_placement = (LinearLayout) dialog.findViewById(R.id.lay_placement); + horizontal.setChecked(true); + + vertical.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (vertical.isChecked()) { + vertical.setChecked(true); + horizontal.setChecked(false); + } + } + }); + + horizontal.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (horizontal.isChecked()) { + horizontal.setChecked(true); + vertical.setChecked(false); + } + } + }); + + if(parent_item.getSKUGROUP_ID().equals("25")){ + layout_placement.setVisibility(View.GONE); + } + + btn_ok.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + String facing = et_facing.getText().toString(); + boolean isVertical = vertical.isChecked(); + + + if (facing.equals("")) { + Snackbar.make(btn_ok, R.string.please_facing, Snackbar.LENGTH_SHORT).show(); + } else { + + DynamycIdsGetterSetter current_id = new DynamycIdsGetterSetter(); + + int rv_id = 0; + if (view instanceof TextView) { + + for (int i = 0; i < ids.size(); i++) { + + if (ids.get(i).getTextview_id() == view_id) { + rv_id = ids.get(i).getRecycler_id(); + current_id = ids.get(i); + } + } + + RecyclerView target = (RecyclerView) view.getRootView().findViewById(rv_id); + ((TextView) findViewById(view_id)).setVisibility(false ? View.VISIBLE : View.GONE); + target.setVisibility(false ? View.GONE : View.VISIBLE); + + } else { + rv_id = view_id; + + for (int i = 0; i < ids.size(); i++) { + + if (ids.get(i).getRecycler_id() == rv_id) { + current_id = ids.get(i); + break; + } + } + } + + if (parent_item.getSKUGROUP_ID().equals("21")) { + //If Block Seperator is added + + int max = 0; + HashMap> biglistMap = new HashMap<>(); + for (int i = 0; i < ids.size(); i++) { + RecyclerView target; + target = (RecyclerView) view.getRootView().findViewById(ids.get(i).getRecycler_id()); + + MyAdapter adapterMYTarget = (MyAdapter) target.getAdapter(); + List customListMyTarget = adapterMYTarget.getList(); + biglistMap.put(ids.get(i), customListMyTarget); + /* if (max < customListMyTarget.size()) { + max = customListMyTarget.size(); + } */ + + if(customListMyTarget.size()>0 && !customListMyTarget.get(0).getSKUGROUP_ID().equals("25")){ + if (max < ids.get(i).getTotal_unit()) { + max = ids.get(i).getTotal_unit(); + } + } + + + } + + for (int i = 0; i < ids.size(); i++) { + List customList = biglistMap.get(ids.get(i)); + + if(customList.size()>0 && customList.get(0).getSKUGROUP_ID().equals("25")){ + + } + else{ + + //if (customList.size() < max) { + if (ids.get(i).getTotal_unit() < max) { + //int count = max - customList.size(); + int count = max - ids.get(i).getTotal_unit(); + + /*for (int j = 0; j < count; j++) { + + NoCameraDataGetterSetter item = new NoCameraDataGetterSetter(); + item.setSKUGROUP_ID("-1"); + item.setSKUGROUP_NAME(""); + item.setFacing(0); + customList.add(item); + }*/ + + NoCameraDataGetterSetter item = new NoCameraDataGetterSetter(); + item.setSKUGROUP_ID("-1"); + item.setSKUGROUP_NAME(""); + item.setFacing(count/CommonString.UNIT_VERTICAL); + item.setVertical(true); + customList.add(item); + + ids.get(i).setTotal_unit(ids.get(i).getTotal_unit() + count); + + } + int facing_int = Integer.parseInt(facing); + parent_item.setFacing(facing_int); + NoCameraDataGetterSetter item = new NoCameraDataGetterSetter(); + item.setSKUGROUP_ID(parent_item.getSKUGROUP_ID()); + item.setSKUGROUP_NAME(parent_item.getSKUGROUP_NAME()); + item.setFacing(facing_int); + item.setVertical(isVertical); + customList.add(item); + int width; + if(isVertical){ + width = facing_int* CommonString.UNIT_VERTICAL; + } + else { + width = facing_int* CommonString.UNIT_HORIZONTAL; + } + ids.get(i).setTotal_unit(ids.get(i).getTotal_unit() + width); + + RecyclerView target = (RecyclerView) view.getRootView().findViewById(rv_id); + + MyAdapter adapterMYTarget = (MyAdapter) target.getAdapter(); + + adapterMYTarget.notifyDataSetChanged(); + + target.scrollToPosition(customList.size() - 1); + + ((TextView) findViewById(ids.get(i).getTextview_id())).setVisibility(View.GONE); + ((RecyclerView) findViewById(ids.get(i).getRecycler_id())).setVisibility(View.VISIBLE); + } + } + + } else{ + + RecyclerView target; + target = (RecyclerView) view.getRootView().findViewById(rv_id); + + MyAdapter adapterMYTarget = (MyAdapter) target.getAdapter(); + List customListMyTarget = adapterMYTarget.getList(); + + int facing_int = Integer.parseInt(facing); + parent_item.setFacing(facing_int); + NoCameraDataGetterSetter item = new NoCameraDataGetterSetter(); + item.setSKUGROUP_ID(parent_item.getSKUGROUP_ID()); + item.setSKUGROUP_NAME(parent_item.getSKUGROUP_NAME()); + item.setFacing(facing_int); + item.setVertical(isVertical); + boolean flag = true; + for (int i = 0; i < customListMyTarget.size(); i++) { + + if (customListMyTarget.get(i).getSKUGROUP_ID().equals("-1")) { + int facing_blank = customListMyTarget.get(i).getFacing(); + int width = getWidth(isVertical, facing_int); + int remaining_width = facing_blank * CommonString.UNIT_VERTICAL - width; + + if(remaining_width>=0){ + + customListMyTarget.set(i, item); + + if(remaining_width!=0){ + NoCameraDataGetterSetter blank_item = new NoCameraDataGetterSetter(); + blank_item.setSKUGROUP_ID("-1"); + blank_item.setSKUGROUP_NAME(""); + blank_item.setFacing(remaining_width/CommonString.UNIT_VERTICAL); + blank_item.setVertical(true); + customListMyTarget.add(i+1 ,blank_item); + } + + } + else { + //current_id.setTotal_unit(current_id.getTotal_unit() - remaining_width); + Snackbar.make(scroll_no_camera, R.string.invalid_facing, Snackbar.LENGTH_SHORT).show(); + } + + flag = false; + break; + } + } + + if (flag) { + customListMyTarget.add(item); + + int width= getWidth(isVertical, facing_int); + current_id.setTotal_unit(current_id.getTotal_unit() + width); + } + + adapterMYTarget.updateList(customListMyTarget); + adapterMYTarget.notifyDataSetChanged(); + target.scrollToPosition(customListMyTarget.size() - 1); + } + + dialog.cancel(); + } + + } + }); + + //dialog.setCancelable(false); + dialog.show(); + + } + + boolean isAddValid(final NoCameraDataGetterSetter parent_item, final View view, final int view_id){ + boolean flag = true; + + if (!(view instanceof TextView)) { + RecyclerView target; + target = (RecyclerView) view.getRootView().findViewById(view_id); + + MyAdapter adapterMYTarget = (MyAdapter) target.getAdapter(); + List customListMyTarget = adapterMYTarget.getList(); + + //if dropped item is Horizontal Separator + if(parent_item.getSKUGROUP_ID().equals("25")){ + if(customListMyTarget.size()>0){ + flag = false; + Snackbar.make(scroll_no_camera, R.string.cannot_add_horizontal_to_filled_row, Snackbar.LENGTH_SHORT).show(); + } + } + else { + for (int i = 0; i < customListMyTarget.size(); i++) { + if(customListMyTarget.get(i).getSKUGROUP_ID().equals("25")){ + Snackbar.make(scroll_no_camera, R.string.cannot_add_to_horizontal_seperatore, Snackbar.LENGTH_SHORT).show(); + + flag = false; + break; + } + } + } + + } + + return flag; + } + + @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 == R.id.action_planogram) { + + final Dialog dialog = new Dialog(NoCameraActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + //dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.planogram_dialog_layout); + dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + dialog.setCancelable(false); + + ArrayList mappingPlanogramList; + + + if (country_id.equals("7")||country_id.equals("8")||country_id.equals("11")) { + mappingPlanogramList= db.getMappingPlanogramData(categoryId, null, null, store_id, CommonString.TABLE_MAPPING_PLANOGRAM_STORE_WISE); + } else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM_ADHOC); + } + else { + mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM); + } + + //ImageView img_planogram = (ImageView) dialog.findViewById(R.id.img_planogram); + WebView webView = (WebView) dialog.findViewById(R.id.webview); + webView.setWebViewClient(new MyWebViewClient()); + + webView.getSettings().setAllowFileAccess(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setBuiltInZoomControls(true); + + String planogram_image = ""; + if (mappingPlanogramList.size() > 0) { + planogram_image = mappingPlanogramList.get(0).getPLANOGRAM_IMAGE(); + } + if (!planogram_image.equals("")) { + if (new File(CommonString.getDownloadedImageFolder(context) + planogram_image).exists()) { + Bitmap bmp = BitmapFactory.decodeFile(CommonString.getDownloadedImageFolder(context) + planogram_image); + // img_planogram.setRotation(90); + //img_planogram.setImageBitmap(bmp); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + + String imagePath = "file://" + CommonString.getDownloadedImageFolder(context) + "/" + planogram_image; + String html = ""; + webView.loadDataWithBaseURL("", html, "text/html", "utf-8", ""); + + dialog.show(); + } /*else { + //webView.loadUrl(String.valueOf(R.drawable.sad_cloud)); + + //img_planogram.setBackgroundResource(R.drawable.sad_cloud); + }*/ + } + + + ImageView cancel = (ImageView) dialog.findViewById(R.id.img_cancel); + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + dialog.dismiss(); + } + }); + } + + if (id == android.R.id.home) { + + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(NoCameraActivity.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(); + + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(NoCameraActivity.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(); + } + + private class MyWebViewClient extends WebViewClient { + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + } + + int getWidth(boolean isVertical, int facing_int){ + int width; + if(isVertical){ + width = facing_int* CommonString.UNIT_VERTICAL; + } + else { + width = facing_int* CommonString.UNIT_HORIZONTAL; + } + return width; + } + + void addRow(){ + DynamycIdsGetterSetter dynamic_ids = new DynamycIdsGetterSetter(); + // first Button + RelativeLayout rLayout = new RelativeLayout(context); + RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); + TextView tv = new TextView(context); + //tv.setHeight(60); + tv.setTextSize(20); + tv.setBackgroundColor(getResources().getColor(R.color.grey_textview)); + tv.setText("Drop SKU Groups Here "); + tv.setPadding(5, 20, 0, 20); + tv.setLayoutParams(lprams); + int tv_id = View.generateViewId(); + tv.setId(tv_id); + //set dynamic textview id to object + dynamic_ids.setTextview_id(tv_id); + RecyclerView rec_bottom = new RecyclerView(context); + int rec_id = View.generateViewId(); + //set dynamic recycler id to object + dynamic_ids.setRecycler_id(rec_id); + rec_bottom.setLayoutParams(lprams); + rec_bottom.setPadding(0, 0, 0, 0); + rec_bottom.setVisibility(View.GONE); + rec_bottom.setId(rec_id); + rec_bottom.setBackgroundColor(getResources().getColor(R.color.grey_background)); + + RelativeLayout.LayoutParams lprams2 = new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.WRAP_CONTENT); + lprams2.height = 2; + View view = new View(context); + view.setBackgroundColor(getResources().getColor(R.color.white)); + view.setLayoutParams(lprams2); + + rLayout.addView(tv); + rLayout.addView(rec_bottom); + rLayout.addView(view); + rLayout.setBackgroundColor(getResources().getColor(R.color.white)); + + linear_bottom_parent.addView(rLayout); + + ids.add(dynamic_ids); + + rec_bottom.setLayoutManager(new LinearLayoutManager( + this, LinearLayoutManager.HORIZONTAL, false)); + + List bottomList = new ArrayList<>(); + + /* bottomList.add("C"); + bottomList.add("D");*/ + + /*setEmptyListBottom(true); + ListAdapter bottomListAdapter = new ListAdapter(bottomList, this); + rvBottom.setAdapter(bottomListAdapter);*/ + + List brands = new ArrayList<>(); + + MyAdapter adapter = new MyAdapter(context, brands, this, rec_bottom); + rec_bottom.setAdapter(adapter); + + tv.setOnDragListener(adapter.getDragInstance()); + + //delete row on LongClick + tv.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(final View tvView) { + + showDeleteDialog(tvView); + + return false; + } + }); + + rec_bottom.setOnDragListener(adapter.getDragInstance()); + + //increase No of rows + number_of_rows++; + } + + void showDeleteDialog(final View tvView){ + + final Dialog dialog = new Dialog(NoCameraActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.delete_row_alert_dialog); + + final Button btn_no = (Button) dialog.findViewById(R.id.btn_no); + final Button btn_yes = (Button) dialog.findViewById(R.id.btn_yes); + + btn_yes.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + int position = -1; + + for (int i = 0; i < ids.size(); i++) { + + if (ids.get(i).getTextview_id() == tvView.getId()) { + position = i; + break; + } + } + + if(position!=-1){ + linear_bottom_parent.removeViewAt(position); + linear_bottom_parent.invalidate(); + + ids.remove(position); + --number_of_rows; + } + + dialog.cancel(); + } + }); + + btn_no.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dialog.cancel(); + } + }); + + dialog.show(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NonWorkingReason.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NonWorkingReason.java new file mode 100644 index 0000000..c080481 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NonWorkingReason.java @@ -0,0 +1,915 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +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.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemSelectedListener; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.File; +import java.io.IOException; +import java.io.InterruptedIOException; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.net.SocketTimeoutException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingSubReasonGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler; + + +public class NonWorkingReason extends AppCompatActivity implements + OnItemSelectedListener, OnClickListener { + private Context context; + ArrayList reasondata = new ArrayList(); + ArrayList sub_reasondata = new ArrayList<>(); + private Spinner reasonspinner, subreason_spinner; + private GSKOrangeDB database; + String reasonname, reasonid, entry_allow, image, entry, reason_reamrk, intime, image_allow, remark_allow, remark_type, sub_reason_id=""; + Button save; + boolean ResultFlag = true; + private ArrayAdapter reason_adapter, sub_reason_adapter; + protected String _path, str,strflag; + protected String _pathforcheck = ""; + private ArrayList storedata = new ArrayList(); + private String image1 = ""; + private ArrayList cdata = new ArrayList(); + protected boolean _taken; + protected static final String PHOTO_TAKEN = "photo_taken"; + private SharedPreferences preferences; + String _UserId, visit_date, store_id, username; + protected boolean status = true; + EditText text; + AlertDialog alert; + ImageButton camera; + RelativeLayout reason_lay, rel_cam; + String gallery_package = ""; + Uri outputFileUri; + boolean leave_flag = false; + ArrayList coverage = new ArrayList(); + ArrayList storelist = new ArrayList(); + //ArrayList jcp; + private Dialog dialog; + private TextView percentage, message; + private ProgressBar pb; + private FailureGetterSetter failureGetterSetter = null; + boolean nonflag=true; + String store_flag_str,country_id, keyAccount_id, class_id, storeType_id; + + TextView tv_remark; + + @Override + protected void onCreate(Bundle savedInstanceState) { + // TODO Auto-generated method stub + super.onCreate(savedInstanceState); + setContentView(R.layout.nonworkingmainlayout); + reasonspinner = (Spinner) findViewById(R.id.spinner_reason); + camera = (ImageButton) findViewById(R.id.imgcam); + save = (Button) findViewById(R.id.save); + text = (EditText) findViewById(R.id.reasontxt); + tv_remark = (TextView) findViewById(R.id.tv_remark); + reason_lay = (RelativeLayout) findViewById(R.id.layout_reason); + rel_cam = (RelativeLayout) findViewById(R.id.relimgcam); + subreason_spinner = (Spinner) findViewById(R.id.spinner_sub_reason); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + _UserId = preferences.getString(CommonString.KEY_USERNAME, ""); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + username = preferences.getString(CommonString.KEY_USERNAME, null); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + keyAccount_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + + database = new GSKOrangeDB(this); + database.open(); + str = CommonString.getImagesFolder(context); + + //storelist = database.getStoreData(visit_date,CommonString.KEY_JOURNEY_PLAN ); + + if(store_flag_str.equals(CommonString.FROM_JCP)){ + + storelist = database.getStoreData(visit_date,CommonString.KEY_JOURNEY_PLAN ); + } + else if(store_flag_str.equals(CommonString.FROM_ADDITIONAL)){ + //Additional Journey Plan - Egypt + storelist = database.getStoreData(visit_date,CommonString.KEY_JOURNEY_PLAN_ADDITIONAL); + }else if(store_flag_str.equals(CommonString.FROM_PHARMA)){ + //Additional Journey Plan - Egypt + + storelist = database.getStoreData(visit_date,CommonString.KEY_JOURNEY_PLAN_PHARMA); + }else if(store_flag_str.equals(CommonString.FROM_ADDITIONAL_ADHOC)){ + //Additional Adhoc Journey Plan - Egypt + storelist = database.getStoreData(visit_date,CommonString.KEY_ADHOC_JOURNEYPLAN_ADDITIONAL); + } + + coverage = database.getCoverageData(visit_date, CommonString.FROM_JCP); + + for(int i=0;i(this, + android.R.layout.simple_spinner_item); + + reason_adapter.add(getResources().getString(R.string.select_reason)); + + for (int i = 0; i < reasondata.size(); i++) { + reason_adapter.add(reasondata.get(i).getREASON().get(0)); + } + + reasonspinner.setAdapter(reason_adapter); + + reason_adapter + .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + + reasonspinner.setOnItemSelectedListener(this); + } + + @Override + public void onBackPressed() { + // TODO Auto-generated method stub + + finish(); + + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + @Override + public void onItemSelected(AdapterView arg0, View arg1, int position, + long arg3) { + // TODO Auto-generated method stub + + switch (arg0.getId()) { + case R.id.spinner_reason: + if (position != 0) { + reasonname = reasondata.get(position - 1).getREASON().get(0); + reasonid = reasondata.get(position - 1).getREASON_ID().get(0); + entry_allow = reasondata.get(position - 1).getENTRY_ALLOW().get(0); + + image_allow = reasondata.get(position - 1).getIMAGE_ALLOW().get(0); + remark_allow = reasondata.get(position - 1).getREMARK_REQUIRED().get(0); + remark_type = reasondata.get(position - 1).getREMARK_TYPE().get(0); + + if (image_allow.equalsIgnoreCase("1")) { + rel_cam.setVisibility(View.VISIBLE); + image = "true"; + } else { + rel_cam.setVisibility(View.GONE); + image = "false"; + } + //reason_reamrk = "true"; + if (remark_allow.equalsIgnoreCase("1")) { + reason_lay.setVisibility(View.VISIBLE); + if(remark_type.equalsIgnoreCase("Text")){ + text.setVisibility(View.VISIBLE); + subreason_spinner.setVisibility(View.GONE); + } + else { + text.setVisibility(View.GONE); + subreason_spinner.setVisibility(View.VISIBLE); + + sub_reasondata = database.getNonWorkingSubReasonData(reasonid); + + sub_reason_adapter = new ArrayAdapter(this, + android.R.layout.simple_spinner_item); + + String select_str = getResources().getString(R.string.select_promo) + " " +reasondata.get(position - 1).getREMARK_LABEL().get(0); + + sub_reason_adapter.add(select_str); + + for (int i = 0; i < sub_reasondata.size(); i++) { + sub_reason_adapter.add(sub_reasondata.get(i).getSUB_REASON().get(0)); + } + + subreason_spinner.setAdapter(sub_reason_adapter); + + sub_reason_adapter + .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + + subreason_spinner.setOnItemSelectedListener(this); + } + tv_remark.setText(reasondata.get(position - 1).getREMARK_LABEL().get(0)); + } else { + reason_lay.setVisibility(View.GONE); + } + } else { + reasonname = ""; + reasonid = ""; + reason_lay.setVisibility(View.GONE); + } + break; + + case R.id.spinner_sub_reason: + + if (position != 0) { + sub_reason_id = sub_reasondata.get(position-1).getSUB_REASON_ID().get(0); + } + else { + sub_reason_id = ""; + } + break; + } + + } + + @Override + public void onNothingSelected(AdapterView arg0) { + // TODO Auto-generated method stub + + } + + protected void startCameraActivity() { + try { + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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) { + //Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + //Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + } + + + @SuppressLint("MissingSuperCall") + @SuppressWarnings("deprecation") + @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: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + camera.setImageDrawable(getResources().getDrawable(R.mipmap.camera_green)); + + image1 = _pathforcheck; + + _pathforcheck = ""; + + } + } + + break; + } + + } + + public boolean imageAllowed() { + boolean result = true; + + if (image.equalsIgnoreCase("true")) { + + if (image1.equalsIgnoreCase("")) { + + result = false; + + } + } + + return result; + + } + + public boolean textAllowed() { + boolean result = true; + + if(remark_type!=null && remark_type.equalsIgnoreCase("Text")){ + if (text.getText().toString().trim().equals("")) { + + result = false; + } + } + + return result; + } + + @Override + public void onClick(View v) { + // TODO Auto-generated method stub + if (v.getId() == R.id.imgcam) { + + _pathforcheck = store_id + "NonWorking" + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck; + + startCameraActivity(); + } + if (v.getId() == R.id.save) { + + if (validatedata()) { + + if (imageAllowed()) { + + boolean valid_flag = true; + if(remark_allow.equalsIgnoreCase("1")){ + + if (textAllowed()) { + + if(!validateSubReasonData()){ + valid_flag = false; + Toast.makeText(context, R.string.title_activity_select_dropdown, + Toast.LENGTH_SHORT).show(); + } + + } else { + valid_flag = false; + Toast.makeText(context, R.string.pleaseenterRemarks, + Toast.LENGTH_SHORT).show(); + } + } + + if(valid_flag){ + + AlertDialog.Builder builder = new AlertDialog.Builder( + NonWorkingReason.this); + builder.setMessage(R.string.title_activity_save_data) + .setCancelable(false) + .setPositiveButton(R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick( + DialogInterface dialog, + int id) { + + alert.getButton( + AlertDialog.BUTTON_POSITIVE) + .setEnabled(false); + + if (entry_allow.equals("0")) { + + database.deleteAllTables(); + + //jcp = database.getStoreData(visit_date); + + for (int i = 0; i < storelist.size(); i++) { + + String stoteid = storelist.get(i).getSTORE_ID(); + + CoverageBean cdata = new CoverageBean(); + cdata.setStoreId(stoteid); + cdata.setVisitDate(visit_date); + cdata.setUserId(_UserId); + cdata.setInTime(intime); + cdata.setOutTime(CommonFunctions.getCurrentTimeWithLanguage(context)); + cdata.setReason(reasonname); + cdata.setReasonid(reasonid); + cdata.setLatitude("0.0"); + cdata.setLongitude("0.0"); + cdata.setImage(image1); + cdata.setSub_reasonId(sub_reason_id); + cdata.setRemark(text.getText().toString().replaceAll("[&^<>{}'$]", " ")); + cdata.setStatus(CommonString.STORE_STATUS_LEAVE); + cdata.setFlag_from(store_flag_str); + + if (country_id.equals("7") || country_id.equals("8")) { + cdata.setKeyAccountId("0"); + cdata.setStoreTypeId("0"); + cdata.setClassId("0"); + } else { + cdata.setKeyAccountId(keyAccount_id); + cdata.setStoreTypeId(storeType_id); + cdata.setClassId(class_id); + } + + database.open(); + database.InsertCoverageData(cdata); + database.updateStoreStatusOnLeave(store_id, visit_date, CommonString.STORE_STATUS_LEAVE, store_flag_str); + + + SharedPreferences.Editor editor = preferences.edit(); + + editor.putString(CommonString.KEY_STOREVISITED_STATUS + stoteid, "No"); + editor.putString(CommonString.KEY_STOREVISITED_STATUS, ""); + editor.putString(CommonString.KEY_STORE_IN_TIME, ""); + editor.putString(CommonString.KEY_LATITUDE, ""); + editor.putString(CommonString.KEY_LONGITUDE, ""); + editor.commit(); + + } + + } else { + + CoverageBean cdata = new CoverageBean(); + cdata.setStoreId(store_id); + cdata.setVisitDate(visit_date); + cdata.setUserId(_UserId); + cdata.setInTime(intime); + cdata.setOutTime(CommonFunctions.getCurrentTimeWithLanguage(context)); + cdata.setReason(reasonname); + cdata.setReasonid(reasonid); + cdata.setLatitude("0.0"); + cdata.setLongitude("0.0"); + cdata.setImage(image1); + cdata.setSub_reasonId(sub_reason_id); + + cdata.setRemark(text + .getText() + .toString() + .replaceAll( + "[&^<>{}'$]", + " ")); + cdata.setStatus(CommonString.STORE_STATUS_LEAVE); + cdata.setFlag_from(store_flag_str); + + if (country_id.equals("7") || country_id.equals("8")) { + cdata.setKeyAccountId("0"); + cdata.setStoreTypeId("0"); + cdata.setClassId("0"); + } else { + cdata.setKeyAccountId(keyAccount_id); + cdata.setStoreTypeId(storeType_id); + cdata.setClassId(class_id); + } + database.open(); + database.InsertCoverageData(cdata); + database.updateStoreStatusOnLeave(store_id, visit_date, CommonString.STORE_STATUS_LEAVE, store_flag_str); + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(CommonString.KEY_STOREVISITED_STATUS + store_id, "No"); + editor.putString(CommonString.KEY_STOREVISITED_STATUS, ""); + editor.putString(CommonString.KEY_STORE_IN_TIME, ""); + editor.putString(CommonString.KEY_LATITUDE, ""); + editor.putString(CommonString.KEY_LONGITUDE, ""); + editor.commit(); + } + new NonWorkingReason.GeoTagUpload(NonWorkingReason.this).execute(); + } + }) + .setNegativeButton(R.string.closed, + new DialogInterface.OnClickListener() { + public void onClick( + DialogInterface dialog, + int id) { + dialog.cancel(); + } + }); + + alert = builder.create(); + alert.show(); + + } + + } else { + Toast.makeText(context, + R.string.title_activity_take_image, Toast.LENGTH_SHORT).show(); + } + } else { + Toast.makeText(context, + R.string.title_activity_select_dropdown, Toast.LENGTH_SHORT).show(); + + } + } + + } + + public boolean validatedata() { + boolean result = false; + if (reasonid != null && !reasonid.equalsIgnoreCase("")) { + result = true; + } + return result; + } + + public boolean validateSubReasonData() { + boolean result = false; + if(remark_type!=null && remark_type.equalsIgnoreCase("List")){ + if (sub_reason_id != null && !sub_reason_id.equalsIgnoreCase("")) { + result = true; + } + } + else { + result = true; + } + + return result; + } + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + cdate = arabicToenglish(cdate); + } + + + return cdate; + } + + @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) { + + // NavUtils.navigateUpFromSameTask(this); + finish(); + + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + } + + return super.onOptionsItemSelected(item); + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + + public class GeoTagUpload extends AsyncTask { + + private Context context; + + GeoTagUpload(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getResources().getString(R.string.dialog_title)); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected String doInBackground(Void... params) { + try { + GSKOrangeDB db = new GSKOrangeDB(NonWorkingReason.this); + db.open(); + + coverage = db.getCoverageWithStoreID_Data(store_id, visit_date); + + // uploading Geotag + + SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + String service; + + if(coverage.get(0).getFlag_from().equals(CommonString.FROM_ADDITIONAL) || coverage.get(0).getFlag_from().equals(CommonString.FROM_ADDITIONAL_ADHOC)){ + service = CommonString.METHOD_UPLOAD_CURRENT_DATA_ADDITIONAL; + } + else if(coverage.get(0).getFlag_from().equals(CommonString.FROM_PHARMA)){ + service = CommonString.METHOD_UPLOAD_CURRENT_DATA_PHARMA; + } + else{ + service = CommonString.METHOD_UPLOAD_CURRENT_DATA; + + } + + String current_xml = ""; + + if (coverage.size() > 0) { + + //for (int i = 0; i < coverage.size(); i++) { + + + String onXML = "[Coverage_Intime][USER_ID]" + + _UserId + + "[/USER_ID]" + + "[STORE_ID]" + + coverage.get(0).getStoreId() + + "[/STORE_ID]" + + "[VISIT_DATE]" + + coverage.get(0).getVisitDate() + + "[/VISIT_DATE]" + + "[IN_TIME]" + + coverage.get(0).getInTime() + + "[/IN_TIME]" + + "[LATITUDE]" + + coverage.get(0).getLatitude() + + "[/LATITUDE]" + + "[LONGITUDE ]" + + coverage.get(0).getLongitude() + + "[/LONGITUDE ]" + + "[REASON_ID]" + + coverage.get(0).getReasonid() + + "[/REASON_ID]" + + "[REMARK]" + + coverage.get(0).getReason() + + "[/REMARK][/Coverage_Intime]"; + + //current_xml = current_xml + onXML; + + + //} + + current_xml = "[DATA]" + onXML + + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + service); + //request.addProperty("MID", "0"); + // request.addProperty("KEYS", "CURRENT_DATA"); + // request.addProperty("USERNAME", username); + + request.addProperty("onXML", current_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + androidHttpTransport.call( + CommonString.SOAP_ACTION + service, envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_SUCCESS)) { + + + } else { + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + return service; + } + + // for failure + FailureXMLHandler failureXMLHandler = new FailureXMLHandler(); + xmlR.setContentHandler(failureXMLHandler); + + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(result + .toString())); + xmlR.parse(is); + + failureGetterSetter = failureXMLHandler + .getFailureGetterSetter(); + + if (failureGetterSetter.getStatus().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + return CommonString.METHOD_UPLOAD_CURRENT_DATA + "," + + failureGetterSetter.getErrorMsg(); + + } else { + + } + } + } + + + return CommonString.KEY_SUCCESS; + + } catch (MalformedURLException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } catch (SocketTimeoutException e) { + ResultFlag = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + + } catch (InterruptedIOException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + + } catch (IOException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + + } catch (XmlPullParserException e) { + ResultFlag = false; + strflag = CommonString.MESSAGE_XmlPull; + + } catch (Exception e) { + + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } + + if (ResultFlag) { + return CommonString.KEY_SUCCESS; + + } else { + + return strflag; + } + + } + + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.dismiss(); + + if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + dialog.dismiss(); + + finish(); + + //showAlert(getString(R.string.uploadeddata)); + + + } else { + + GSKOrangeDB db = new GSKOrangeDB(NonWorkingReason.this); + db.open(); + + dialog.dismiss(); + db.deleteTableWithStoreID(store_id); + + showAlert(getString(R.string.datanotfound) + " " + result); + } + } + + } + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(NonWorkingReason.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + + finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/OrderTakingActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/OrderTakingActivity.java new file mode 100644 index 0000000..331b196 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/OrderTakingActivity.java @@ -0,0 +1,1166 @@ +package cpm.com.gskmtorange.dailyentry; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.core.content.FileProvider; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Typeface; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.text.InputFilter; +import android.text.Spanned; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +import android.widget.AbsListView; +import android.widget.BaseExpandableListAdapter; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ExpandableListAdapter; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; +import android.widget.ToggleButton; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +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.gsk_dailyentry.MSL_Availability_StockFacingActivity; +import cpm.com.gskmtorange.interfaces.DialogCallbackListener; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaMSLInsertedGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; + +public class OrderTakingActivity extends AppCompatActivity implements DialogCallbackListener { + ExpandableListView expandableListView; + private Context context; + TextView txt_mslAvailabilityName; + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + + String _pathforcheck1, _pathforcheck2, _pathforcheck3, _path, str, msg; + + HashMap> hashMapListChildData; + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + ExpandableListAdapter adapter; + ImageView camera1, camera2, camera3, camera4; + LinearLayout lin_camera1, lin_camera2, lin_camera3, lin_camera4; + GSKOrangeDB db; + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, store_flag_hide, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + String gallery_package = ""; + Uri outputFileUri; + + String str_planogram = "", _pathforcheck = ""; + EditText storepoET,podateET; + + ArrayList planogramShelfHeaderDataList = new ArrayList<>(); + ArrayList planogramSkuChildDataList; + HashMap> planogramHashMapListChildData = new HashMap<>(); + boolean editFlag = false; + //temp + public static final String FILE_PATH = Environment.getExternalStorageDirectory() + "/"; + //ImageView bmImage; + RelativeLayout view; + RadioButton radio_yes,radio_no; + RadioGroup radio_group; + String isExist=""; + String sys_po_number=""; + TextView sys_gen_poTV; + LinearLayout poLL,pocamLL; + String storepo =""; + ImageView poIV; + String img_str=""; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + //setContentView(R.layout.activity_msl__availability_stock_facing); + setContentView(R.layout.activity_order_taking); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + txt_mslAvailabilityName = (TextView) findViewById(R.id.txt_mslAvailabilityName); + camera1 = (ImageView) findViewById(R.id.img_camera1); + camera2 = (ImageView) findViewById(R.id.img_camera2); + camera3 = (ImageView) findViewById(R.id.img_camera3); + camera4 = (ImageView) findViewById(R.id.img_camera4); + poIV = (ImageView) findViewById(R.id.poIV); + pocamLL = findViewById(R.id.pocamLL); + poLL = findViewById(R.id.poLL); + + radio_group =findViewById(R.id.radio_group); + radio_yes = findViewById(R.id.radio_yes); + radio_no = findViewById(R.id.radio_no); + sys_gen_poTV = findViewById(R.id.sys_gen_poTV); + + storepoET = findViewById(R.id.storepoET); + podateET = findViewById(R.id.podateET); + + lin_camera1 = (LinearLayout) findViewById(R.id.lin_camera1); + lin_camera2 = (LinearLayout) findViewById(R.id.lin_camera2); + lin_camera3 = (LinearLayout) findViewById(R.id.lin_camera3); + lin_camera4 = (LinearLayout) findViewById(R.id.lin_camera4); + context = this; + db = new GSKOrangeDB(this); + db.open(); + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + store_flag_hide = preferences.getString(CommonString.KEY_STORE_FLAG_FACING_HIDE, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + str = CommonString.getImagesFolder(context); + + + //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.order_taking)); + setSupportActionBar(toolbar); + + String [] str = date.split("/"); + String str1 = str[0]; + String str2 = str[1]; + String str3 = str[2]; + sys_po_number = store_id + "-" +str3+str1+str2; + sys_gen_poTV.setText(sys_po_number); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + str_planogram = CommonString.getDownloadedImageFolder(context); + podateET.setText(visit_date); + prepareList(); + + + //Camera + // prepareDefaultList(); + // cameraMethod(); + + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + + poIV.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck = store_id + categoryId + "POImage_" + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = CommonString.getImagesFolder(context) + _pathforcheck; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + } + }); + + radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup radioGroup, int i) { + if (radio_yes.isChecked()) { + radio_yes.setBackground(getResources().getDrawable(R.mipmap.yes_green)); + radio_no.setBackground(getResources().getDrawable(R.mipmap.no_white)); + poLL.setVisibility(View.VISIBLE); + if(country_id.equals("17")){ + pocamLL.setVisibility(View.VISIBLE); + } + else{ + pocamLL.setVisibility(View.GONE); + } + isExist="yes"; + /*expListView.setVisibility(View.VISIBLE); + categoryobject.setIsChecked(1); + skuData.get(0).setIsChecked(1);*/ + } + if (radio_no.isChecked()) { + radio_no.setBackground(getResources().getDrawable(R.mipmap.no_red)); + radio_yes.setBackground(getResources().getDrawable(R.mipmap.yes_white)); + poLL.setVisibility(View.GONE); + pocamLL.setVisibility(View.GONE); + isExist="no"; + img_str = ""; + /*expListView.setVisibility(View.GONE); + categoryobject.setIsChecked(0); + skuData.get(0).setIsChecked(0);*/ + } + } + }); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View view) { + expandableListView.clearFocus(); + adapter.notifyDataSetChanged(); + storepo = storepoET.getText().toString(); + //Log.e("storepo",storepo); + if(isExist.equalsIgnoreCase("no")){ + if (db.checkOrder_taking_Data(store_id, categoryId)) { + db.updateOrder_taking_data(img_str,isExist,storepo,sys_po_number,date,store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Toast.makeText(context,getResources().getString(R.string.update_message),Toast.LENGTH_SHORT).show(); + } else { + db.InsertOrderTakingData(img_str,isExist,storepo,sys_po_number,date,store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Toast.makeText(context,getResources().getString(R.string.save_message),Toast.LENGTH_SHORT).show(); + } + + /*String pharma_msl_xml = ""; + String onXML = ""; + String _onxml = ""; + String categoryxml = ""; + + db.open(); + ArrayList ordertakinglist = db.getOrder_TAKING_UploadServerData(store_id); + db.open(); + ArrayList getOrder_TAKING_CategoryData = db.getOrder_TAKING_CategoryData(store_id); + + if (ordertakinglist.size() > 0) { + for(int k = 0; k < getOrder_TAKING_CategoryData.size(); k++){ + _onxml = "[CATEGORY_DATA]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + username + "[/USERID]" + + "[PRESENT]" + getOrder_TAKING_CategoryData.get(k).getIsExist() + "[/PRESENT]" + + "[CATEGORY_ID]" + getOrder_TAKING_CategoryData.get(k).getCategory_id() + "[/CATEGORY_ID]" + + "[/CATEGORY_DATA]"; + categoryxml = categoryxml + _onxml; + } + String cat_xml = categoryxml; + + for (int j = 0; j < ordertakinglist.size(); j++) { + if(ordertakinglist.get(j).getIsExist()==1){ + onXML = "[ORDERDATA]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + username + "[/USERID]" + + "[PRESENT]" + ordertakinglist.get(j).getIsExist() + "[/PRESENT]" + + "[SYSTEM_PO_NUM]" + ordertakinglist.get(j).getSys_PO_No() + "[/SYSTEM_PO_NUM]" + + "[STORE_PO_NUM]" + ordertakinglist.get(j).getStore_PO_No() + "[/STORE_PO_NUM]" + + "[PO_DATE]" + ordertakinglist.get(j).getPO_Date() + "[/PO_DATE]" + + "[SKU_ID]" + ordertakinglist.get(j).getSku_id() + "[/SKU_ID]" + + "[ORDER_QTY]" + ordertakinglist.get(j).getFacing() + "[/ORDER_QTY]"+ + "[/ORDERDATA]"; + pharma_msl_xml = pharma_msl_xml + onXML; + } + } + String data_xml = cat_xml + pharma_msl_xml; + + final String sos_xml = "[DATA]" + data_xml + "[/DATA]"; + Log.e("order_xml",sos_xml); + }*/ + + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + else{ + if(validation()){ + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + db.open(); + if (db.checkOrder_taking_Data(store_id, categoryId)) { + db.updateOrder_taking_data(img_str,isExist,storepo,sys_po_number,date,store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Toast.makeText(context,getResources().getString(R.string.update_message),Toast.LENGTH_SHORT).show(); + + } else { + db.InsertOrderTakingData(img_str,isExist,storepo,sys_po_number,date,store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Toast.makeText(context,getResources().getString(R.string.save_message),Toast.LENGTH_SHORT).show(); + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + String pharma_msl_xml = ""; + String onXML = ""; + + // db.open(); + ArrayList ordertakinglist = db.getOrder_TAKING_UploadServerData(store_id); + ArrayList getOrder_TAKING_CategoryData = db.getOrder_TAKING_CategoryData(store_id); + String _onxml = ""; + String categoryxml = ""; + if (ordertakinglist.size() > 0) { + for(int k = 0; k < getOrder_TAKING_CategoryData.size(); k++){ + _onxml = "[CATEGORY_DATA]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + username + "[/USERID]" + + "[PRESENT]" + getOrder_TAKING_CategoryData.get(k).getIsExist() + "[/PRESENT]" + + "[CATEGORY_ID]" + getOrder_TAKING_CategoryData.get(k).getCategory_id() + "[/CATEGORY_ID]" + + "[/CATEGORY_DATA]"; + categoryxml = categoryxml + _onxml; + } + String cat_xml = categoryxml; + + for (int j = 0; j < ordertakinglist.size(); j++) { + if(ordertakinglist.get(j).getIsExist()==1){ + if(!ordertakinglist.get(j).getFacing().equals("0") && + !ordertakinglist.get(j).getFacing().equals("")) { + onXML = "[ORDERDATA]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + username + "[/USERID]" + + "[PRESENT]" + ordertakinglist.get(j).getIsExist() + "[/PRESENT]" + + "[SYSTEM_PO_NUM]" + ordertakinglist.get(j).getSys_PO_No() + "[/SYSTEM_PO_NUM]" + + "[STORE_PO_NUM]" + ordertakinglist.get(j).getStore_PO_No() + "[/STORE_PO_NUM]" + + "[PO_IMAGE]" + ordertakinglist.get(j).getPO_Img() + "[/PO_IMAGE]" + + "[PO_DATE]" + ordertakinglist.get(j).getPO_Date() + "[/PO_DATE]" + + "[SKU_ID]" + ordertakinglist.get(j).getSku_id() + "[/SKU_ID]" + + "[ORDER_QTY]" + ordertakinglist.get(j).getFacing() + "[/ORDER_QTY]" + + "[/ORDERDATA]"; + pharma_msl_xml = pharma_msl_xml + onXML; + } + } + } + String data_xml = cat_xml + pharma_msl_xml; + + final String sos_xml = "[DATA]" + data_xml + "[/DATA]"; + Log.e("order_xml",sos_xml); + } + + } else { + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + } + } + + } + + } + }); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//.setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .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) context + .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) context + .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(); + } + } + + private boolean validation() { + boolean flag = true; + if(img_str.equals("") && country_id.equals("17")){ + flag = false; + Toast.makeText(context, context.getString(R.string.pls_capture_img), Toast.LENGTH_SHORT).show(); + } + else{ + flag = true; + } + return flag; + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + checkHeaderArray.clear(); + int childCount = 0; + int qtysum = 0; + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + HashMap> listDataChildTemp = new HashMap<>(); + for (int i = 0; i < listDataHeader.size(); i++) { + flag = true; + + List listTemp = new ArrayList<>(); + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + child_flag = true; + MSL_AvailabilityStockFacingGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + + String faceup = data.getFacing(); + if(faceup!=null && !faceup.equals("")){ + qtysum =qtysum+Integer.parseInt(faceup); + } + + //Company_id + if (listDataChild.get(listDataHeader.get(i)).get(j).getCompany_id().equals("1") && !country_id.equals("17")) { + if (store_flag_hide.equals("0")) { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + Toast.makeText(context, context.getString(R.string.pls_fill_order_qty), Toast.LENGTH_SHORT).show(); + } + } + } + + if (!child_flag) + listTemp.add(data); + + } + + if (flag == false) { + listDataHeaderTemp.add(listDataHeader.get(i)); + // listDataChildTemp.put(listDataHeader.get(i), listTemp); + } else { + childCount = childCount + listDataChild.get(listDataHeader.get(i)).size(); + } + } + + if(qtysum==0){ + all_flag = false; + //flag = false; + Toast.makeText(context, "At least one order qty should be greater than zero", Toast.LENGTH_SHORT).show(); + adapter.notifyDataSetChanged(); + /*adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false;*/ + } + + if (!all_flag) { + /*adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter);*/ + adapter.notifyDataSetChanged(); + checkflag = false; + } else { + checkflag = true; + } + + return all_flag; + } + + + private void cameraMethod() { + if (!camera_allow.equals("1")) { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } else { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } + } + + //Planogram List for check and delete on backPress + private void prepareDefaultList() { + // Planogram After save shelf header data + planogramShelfHeaderDataList = db.getPlanogramAddShelfHeaderAfterSaveData(store_id, categoryId); + + if (planogramShelfHeaderDataList.size() > 0) { + for (int i = 0; i < planogramShelfHeaderDataList.size(); i++) { + planogramSkuChildDataList = db.getStockAndFacingPlanogramAfterSKUData(planogramShelfHeaderDataList.get(i).getKey_id()); + + //After save sku child data + if (planogramSkuChildDataList.size() > 0) { + planogramHashMapListChildData.put(planogramShelfHeaderDataList.get(i), planogramSkuChildDataList); + } + } + } + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + //Header + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + headerDataList = db.getOrderTaking_StockFacingHeaderData(country_id,categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + headerDataList = db.getOrderTaking_StockFacingHeaderData(country_id,categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC, store_flag_hide); + } else { + headerDataList = db.getOrderTaking_StockFacingHeaderData(country_id,categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } + + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + //childDataList = new ArrayList<>(); + childDataList = db.getOrder_TAKING_SKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + //Log.e("childlistsize", String.valueOf(childDataList.size())); + // childDataList = db.getMSL_Availability_StockFacingSKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (!(childDataList.size() > 0)) { + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + childDataList = db.getORDERTAKING_StockFacingSKUData(headerDataList.get(i).getSub_category_id(), categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + childDataList = db.getORDERTAKING_StockFacingSKUData(headerDataList.get(i).getSub_category_id(), categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC, store_flag_hide); + } else { + childDataList = db.getORDERTAKING_StockFacingSKUData(headerDataList.get(i).getSub_category_id(), categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, store_flag_hide); + } + } + else{ + //if(childDataList.get(0).getPO_Date()) + // podateET.setText(childDataList.get(0).getPO_Date()); + sys_gen_poTV.setText(childDataList.get(0).getSys_PO_No()); + storepoET.setText(childDataList.get(0).getStore_PO_No()); + Log.d("childlistdata",childDataList.get(0).getPO_Img()); + if(childDataList.get(0).getPO_Img()!=null && !childDataList.get(0).getPO_Img().equals("")){ + img_str = childDataList.get(0).getPO_Img(); + poIV.setImageResource(R.mipmap.camera_green); + } + if(childDataList.get(0).getIsExist()==1){ + radio_yes.setChecked(true); + radio_yes.setBackground(getResources().getDrawable(R.mipmap.yes_green)); + radio_no.setBackground(getResources().getDrawable(R.mipmap.no_white)); + poLL.setVisibility(View.VISIBLE); + isExist="yes"; + podateET.setText(visit_date); + } + else if(childDataList.get(0).getIsExist()==0){ + radio_no.setChecked(true); + radio_no.setBackground(getResources().getDrawable(R.mipmap.no_red)); + radio_yes.setBackground(getResources().getDrawable(R.mipmap.yes_white)); + poLL.setVisibility(View.GONE); + isExist="no"; + } + else{ + radio_yes.setBackground(getResources().getDrawable(R.mipmap.yes_white)); + radio_no.setBackground(getResources().getDrawable(R.mipmap.no_white)); + poLL.setVisibility(View.VISIBLE); + isExist=""; + } + } + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + + //expand all + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onSelect(boolean flag) { + if (flag) { + //adapter.notifyDataSetChanged(); + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onSave(boolean flag) { + + } + + 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_order_taking, 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + if (headerTitle.getCompany_id().equals("1")) { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.header_text_color)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + txt_categoryHeader.setTextColor(getResources().getColor(R.color.white)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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_order_taking_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.facing.setFilters(new InputFilter[]{new DecimalDigitsInputFilter(3, 1)}); + holder.stock = (EditText) convertView.findViewById(R.id.ed_stock); + holder.ed_pricing = (EditText) convertView.findViewById(R.id.ed_pricing); + + holder.facing_view = convertView.findViewById(R.id.facing_view); + holder.stock_view = convertView.findViewById(R.id.stock_view); + holder.pricing_view = convertView.findViewById(R.id.pricing_view); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + // uae facing hide + if (store_flag_hide.equals("1")) { + holder.facing.setVisibility(View.GONE); + holder.facing_view.setVisibility(View.GONE); + } else { + holder.facing.setVisibility(View.VISIBLE); + holder.facing_view.setVisibility(View.VISIBLE); + } + //usk + /* if (childData.getPricing().equals("0")) { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } else { + holder.ed_pricing.setVisibility(View.VISIBLE); + holder.pricing_view.setVisibility(View.VISIBLE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + }*/ + + holder.txt_skuName.setText(childData.getSku()); + + if (childData.getCompany_id().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } + + final ViewHolder finalHolder = holder; + holder.toggle_available.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (buttonView.isPressed()) { + + editFlag = true; + + if (isChecked) { + childData.setToggleValue("1"); + //for Egypt + if (country_id.equals("6")) { + finalHolder.stock.setVisibility(View.VISIBLE); + } else { + finalHolder.stock.setVisibility(View.GONE); + } + + /*childData.setStock(""); + childData.setFacing("");*/ + } else { + /* childData.setStock(""); + childData.setFacing("");*/ + childData.setToggleValue("0"); + finalHolder.stock.setVisibility(View.VISIBLE); + + //If MBQ Value is 0 + if (Integer.parseInt(childData.getMbq()) == 0) { + childData.setStock("0"); + childData.setFacing("0"); + } else { + //for Egypt + if (country_id.equals("6")) { + childData.setStock(""); + childData.setFacing(""); + } + } + + } + + expandableListView.clearFocus(); + expandableListView.invalidateViews(); + } + } + }); + + + + // holder.ed_pricing.setText(childData.getPricingStock()); + + + final ViewHolder finalHolder1 = holder; + final ViewHolder finalHolder2 = holder; + holder.facing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + editFlag = true; + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + //int num = Integer.parseInt(edFaceup); + double faceup = Double.parseDouble(edFaceup); + int num = (int) faceup; + //int faceint = (int)(faceup - Math.floor( faceup )); + int faceint = (int) ((faceup % 1.0) * 10); + if (faceint != 0) { + if ((faceup % 1.0) * 10 != 5) { + faceint = 5; + edFaceup = String.valueOf(num + faceint / 10.0); + finalHolder2.facing.setText(edFaceup); + } + } + } + + boolean isFill = false; + + //Toggle is no selected + + if (country_id.equals("6")) { + if (!childData.getStock().equals("")) { + + String faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + if (Double.parseDouble(faceup) <= Integer.parseInt(childData.getStock())) { + + isFill = true; + + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(OrderTakingActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder1.facing.setText(""); + dialog.dismiss(); + finalHolder2.facing.setText(""); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + isFill = true; + } + // } + } else { + isFill = true; + } + } else { + isFill = true; + } + + if (isFill) { + if (!edFaceup.equals("") && !edFaceup.equals(".")) { + String faceup = ""; + if (edFaceup.equals("0") || edFaceup.equals(".0")) { + faceup = "0"; + } else { + faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + //faceup = new DecimalFormat("##.#").format(Double.parseDouble(faceup)); + } + + // String str2 = PerfectDecimal(faceup, 3, 1); + childData.setFacing(faceup); + } else { + childData.setFacing(""); + } + } + } + }); + + holder.facing.setText(childData.getFacing()); + + //empty check color change + if (!checkflag) { + boolean tempflag = false; + + 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 (childData.getCompany_id().equals("1")) { + holder.facing.setHint(""); + + if (tempflag) { + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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, ed_pricing; + View stock_view, pricing_view, facing_view; + } + + public class DecimalDigitsInputFilter implements InputFilter { + Pattern mPattern; + + public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero) { + mPattern = Pattern.compile("[0-9]{0," + (digitsBeforeZero - 1) + "}+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); + } + + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + Matcher matcher = mPattern.matcher(dest); + if (!matcher.matches()) + return ""; + return null; + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + } + + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("StockFacing", "resultCode: " + resultCode + ","+requestCode); + + switch (requestCode) { + case 100: + //Planogram List for check and delete on backPress + prepareDefaultList(); + if (db.isPlanogramAddShelfSaveData(store_id, categoryId)) { + camera1.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + camera1.setBackgroundResource(R.mipmap.new_no_camera); + } + + break; + + case 0: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + Log.d("imagepath", str + _pathforcheck); + poIV.setImageResource(R.mipmap.camera_green); + img_str = _pathforcheck; + _pathforcheck = ""; + } + } + break; + } + super.onActivityResult(requestCode, resultCode, data); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + if (editFlag) { + CommonFunctions.showAlertDialog(OrderTakingActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + //finish(); + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + //super.onBackPressed(); + if (editFlag) { + CommonFunctions.showAlertDialog(OrderTakingActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + protected void startCameraActivity() { + try { + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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(); + } + } + +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/PDimageActivity.kt b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/PDimageActivity.kt new file mode 100644 index 0000000..0d9e842 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/PDimageActivity.kt @@ -0,0 +1,446 @@ +package cpm.com.gskmtorange.dailyentry + +import android.Manifest +import android.content.BroadcastReceiver +import android.content.Context +import android.content.DialogInterface +import android.content.Intent +import android.content.IntentFilter +import android.content.SharedPreferences +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Build +import android.os.Bundle +import android.preference.PreferenceManager +import android.util.Log +import android.view.MenuItem +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import androidx.lifecycle.lifecycleScope +import androidx.localbroadcastmanager.content.LocalBroadcastManager +import androidx.recyclerview.widget.LinearLayoutManager +import com.google.android.material.snackbar.Snackbar +import com.sj.camera_lib_android.Database.ReactPendingData +import com.sj.camera_lib_android.Database.ReactSingleImage +import com.sj.camera_lib_android.models.ImageUploadModel +import com.sj.camera_lib_android.utils.CameraSDK +import cpm.com.gskmtorange.Database.GSKOrangeDB +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter +import cpm.com.gskmtorange.LoginActivity +import cpm.com.gskmtorange.R +import cpm.com.gskmtorange.adapter.SubCatPdAdapter +import cpm.com.gskmtorange.adapter.data.ImageUri +import cpm.com.gskmtorange.constant.CommonFunctions +import cpm.com.gskmtorange.constant.CommonFunctions.savefile +import cpm.com.gskmtorange.constant.CommonString +import cpm.com.gskmtorange.constant.CommonUtils +import cpm.com.gskmtorange.databinding.ActivityPdimageBinding +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import org.json.JSONObject +import java.io.File + + +class PDimageActivity : AppCompatActivity() { + private var context: Context? = null + var categoryName: String? = null + var categoryId: String? = null + var store_id: String? = null; + var date: String? = null; + var store_type_id: String? = null + var class_id: String? = null + var key_account_id: String? = null + var country_id: String? = null + var store_flag_str: String? = null + private var preferences: SharedPreferences? = null + var db: GSKOrangeDB? = null + var listdat: ArrayList? = ArrayList() + var username: String? = "" + private var kpi_name: String? = "" + private lateinit var binding: ActivityPdimageBinding + private var adapter: SubCatPdAdapter? = null + val PERMISSION_ALL: Int = 99 + private var _pos = -1; + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityPdimageBinding.inflate(layoutInflater) + setContentView(binding.root) + setSupportActionBar(binding.toolbar) + context = this + db = GSKOrangeDB(context) + preferences = PreferenceManager.getDefaultSharedPreferences(context) + db?.open() + preferences?.let { + store_id = it.getString(CommonString.KEY_STORE_ID, "") + username = it.getString(CommonString.KEY_USERNAME, "") + store_type_id = it.getString(CommonString.KEY_STORETYPE_ID, "") + class_id = it.getString(CommonString.KEY_CLASS_ID, "") + key_account_id = it.getString(CommonString.KEY_KEYACCOUNT_ID, "") + country_id = it.getString(CommonString.KEY_COUNTRY_ID, "") + store_flag_str = it.getString(CommonString.KEY_STORE_FLAG, "") + date = it.getString(CommonString.KEY_DATE, "") + } + + CommonFunctions.updateLangResources( + context, preferences?.getString(CommonString.KEY_LANGUAGE, "") + ) + intent?.let { + categoryName = it.getStringExtra("categoryName") + categoryId = it.getStringExtra("categoryId") + kpi_name = it.getStringExtra("kpi_name") + } + supportActionBar?.apply { + setHomeButtonEnabled(true) + setDisplayHomeAsUpEnabled(true) + title = kpi_name + } + CommonUtils.initializePDSDK(this@PDimageActivity, _userId = username) + registerIntentFilter( + listOf( + "DataSaved", "did-receive-queue-data", "did-receive-image-upload-status" + ) + ) + + binding.apply { + fab.setOnClickListener { + if (validate()) { + val builder = AlertDialog.Builder(this@PDimageActivity) + builder.setMessage(getString(R.string.check_save_message)).setCancelable(false) + .setPositiveButton(getString(R.string.yes)) { dialog, _ -> + // Handle Yes button click + db?.open() + db?.InsertPdImageData(date, store_id, categoryId, listdat)?.let { + if (it > 0) { + Snackbar.make( + binding.fab, + resources.getString(R.string.save_message), + Snackbar.LENGTH_LONG + ).setAction("Action", null).show() + lifecycleScope.launch { + delay(3000) // 3 seconds delay + finish() + } + } else { + Snackbar.make( + binding.fab, + resources.getString(R.string.save_message), + Snackbar.LENGTH_LONG + ).setAction("Action", null).show() + } + } + dialog.dismiss() + }.setNegativeButton(getString(R.string.no)) { dialog, _ -> + dialog.cancel() + } + val alert = builder.create() + alert.show() + } + } + } + + callAdapter() + checkAndRequestPermissions() + } + + + override fun onResume() { + super.onResume() + db?.open() + } + + private fun validate(): Boolean { + var checkFlag = true // Use local variable to avoid issues + if (!listdat.isNullOrEmpty()) { + for (data in listdat!!) { // Use standard loop for better control + if (data.imageUris.isNullOrEmpty()) { + checkFlag = false // Set false if validation fails + Snackbar.make( + binding.fab, + "Please capture IR images of ${data.suB_CATEGORY}", + Snackbar.LENGTH_SHORT + ).show() + break // Stop further checks once an issue is found + } + } + } + return checkFlag // Correctly return validation result + } + + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + // as you specify a parent activity in AndroidManifest.xml. + val id = item.itemId + if (id == android.R.id.home) { + //showDataLossAlert(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out) + finish() + } + if (id == R.id.action_settings) { + return true + } + + return super.onOptionsItemSelected(item) + } + + override fun onDestroy() { + super.onDestroy() + LocalBroadcastManager.getInstance(this@PDimageActivity) + .unregisterReceiver(myBroadcastReceiver) // onDestroy + } + + private fun registerIntentFilter(filters: List = listOf()) { + filters.forEach { filter -> + LocalBroadcastManager.getInstance(this@PDimageActivity) + .registerReceiver(myBroadcastReceiver, IntentFilter(filter)) + } + } + + private val savedImages = mutableListOf() + private var myBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + when (intent?.action) { + "did-receive-queue-data" -> { + val receivedList = + intent.getParcelableArrayListExtra("imageList") + Log.d("DEBUG-LOG did-receive-queue-data", "$receivedList") + if (receivedList.isNullOrEmpty()) { + CameraSDK.uploadFailedImage(this@PDimageActivity) + } + } + + "did-receive-image-upload-status" -> { + val receivedImage = intent.getParcelableExtra("image") + Log.d("DEBUG-LOG did-receive-image-upload-status", "$receivedImage") + } + + "DataSaved" -> { + val receivedList = + intent.getParcelableArrayListExtra("imageListSaved") + Log.d("DEBUG-LOG DataSaved", "$receivedList") + receivedList?.let { + savedImages.clear() + it.forEach { item -> + val dir = CommonString.getImagesFolder(context) + val setName = + store_id + "_" + username?.replace(".", "") + "_IRPDIMG-" + File( + item.uri + ).getName() + + savedImages.add(ImageUri(uri = item.uri, modify_uri = setName)) + savefile(Uri.parse(item.uri), "$dir $setName") + } + adapter?.updateItem(position = _pos, savedImages) + Log.e("savedImages",savedImages.toString()) + _pos = -1 + } + } + } + } + } + + private fun launchCamera(subCat_code: String) { + val uploadFrom = "TestApp" + val uploadParams = JSONObject( + """ + { + "shop_id": 62475, + "project_id": "4f57635b-6b07-45bf-bfba-c61c2826b6db", + "td_version_id": 178, + "shelf_image_id": null, + "asset_image_id": null, + "shelf_type": "Primary Shelf", + "category_id": 123, + "user_id": 133, + "isConnected": true, + "sn_image_type": "skus", + "image_type": "multiple", + "seq_no": 1, + "level": 1, + "uploadOnlyOnWifi": 0, + "app_session_id": "8e2faa6b-d6fe-413a-a693-76a0cbe0ce71", + "metadata": { "Device_Name": "Samsung" } + } + """ + ) + uploadParams.put("shop_id", store_id) + uploadParams.put("user_id", username) + uploadParams.put("category_id", subCat_code) + uploadParams.put("project_id", CommonString.PD_PROJECT_iD) + + CameraSDK.startCamera( + context = this, + orientation = "", + widthPercentage = 20, + uploadParams = uploadParams, + resolution = 3000, + referenceUrl = "", + allowBlurCheck = true, + allowCrop = true, + uploadFrom = uploadFrom, + isRetake = false, + showOverlapToggleButton = false, + showGridLines = true, + zoomLevel = 1.0, + language_code = "en", + isLambda = false + ) + } + + private fun callAdapter() { + if (country_id == "8") { + db?.open() + listdat = db?.getCategoryPicturedata( + date, + categoryId, + null, + null, + null, + store_id, + CommonString.TABLE_MAPPING_STOCK_STOREWISE + ) + } else if (store_flag_str.equals(CommonString.FROM_DEVIATION, ignoreCase = true)) { + db?.open() + listdat = db?.getCategoryPicturedata( + date, + categoryId, + key_account_id, + store_type_id, + class_id, + store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC + ) + } else { + db?.open() + listdat = db?.getCategoryPicturedata( + date, + categoryId, + key_account_id, + store_type_id, + class_id, + store_id, + CommonString.TABLE_MAPPING_STOCK + ) + } + + Log.d("listdatsize", listdat?.size.toString()) + adapter = SubCatPdAdapter(category = categoryName, + context = this, + subcates = ArrayList(), + btnlistener = object : SubCatPdAdapter.BtnClickListener { + override fun onStartSessionClick(_pos: Int, data: CategoryPictureGetterSetter) { + this@PDimageActivity._pos = _pos + launchCamera(data.subCatCode) + } + }) + binding.rlContent.apply { + recyclerViewSubCat.adapter = adapter + recyclerViewSubCat.layoutManager = LinearLayoutManager(this@PDimageActivity) + adapter?.addsubCatItems(listdat) + } + } + + override fun onPause() { + super.onPause() + db?.open() + db?.InsertPdImageData(date, store_id, categoryId, listdat) + } + + private fun checkAndRequestPermissions() { + var read_phone_state = 0 + var write_storage = 0 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + write_storage = + ContextCompat.checkSelfPermission(this, Manifest.permission.READ_MEDIA_IMAGES) + } else { + read_phone_state = + ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) + write_storage = + ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) + } + + val listPermissionsNeeded: MutableList = java.util.ArrayList() + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (write_storage != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.READ_MEDIA_IMAGES) + } + } else { + if (write_storage != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE) + } + } + + if (listPermissionsNeeded.isNotEmpty()) { + ActivityCompat.requestPermissions( + this, + listPermissionsNeeded.toTypedArray(), + PERMISSION_ALL + ) + } + } + + + override fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + + if (requestCode == PERMISSION_ALL) { + val perms: MutableMap = HashMap() + // Initialize the map with both permissions + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + perms[Manifest.permission.READ_MEDIA_IMAGES] = PackageManager.PERMISSION_GRANTED + } else { + perms[Manifest.permission.WRITE_EXTERNAL_STORAGE] = + PackageManager.PERMISSION_GRANTED + } + // Fill with actual results from user + if (grantResults.isNotEmpty()) { + for (i in permissions.indices) perms[permissions[i]] = grantResults[i] + // Check for both permissions// + if (perms[Manifest.permission.READ_MEDIA_IMAGES] == PackageManager.PERMISSION_GRANTED && + perms[Manifest.permission.WRITE_EXTERNAL_STORAGE] == PackageManager.PERMISSION_GRANTED + ) { + Log.d("", "sms & location services permission granted") + } else { + Log.d("", "Some permissions are not granted ask again ") + if (ActivityCompat.shouldShowRequestPermissionRationale( + this, + Manifest.permission.READ_MEDIA_IMAGES + ) || + ActivityCompat.shouldShowRequestPermissionRationale( + this, + Manifest.permission.WRITE_EXTERNAL_STORAGE + ) + ) { + showDialogOK( + "Photos or media Service Permission required for this app" + ) { dialog: DialogInterface?, which: Int -> + when (which) { + DialogInterface.BUTTON_POSITIVE -> checkAndRequestPermissions() + DialogInterface.BUTTON_NEGATIVE -> { + // proceed with logic by disabling the related features or quit the app. + val startMain = + Intent(Intent.ACTION_MAIN) + startMain.addCategory(Intent.CATEGORY_HOME) + startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + startActivity(startMain) + } + } + } + } + } + } + } + } + + private fun showDialogOK(message: String, okListener: DialogInterface.OnClickListener) { + AlertDialog.Builder(this).setMessage(message).setPositiveButton("OK", okListener) + .setNegativeButton("Cancel", okListener).create().show() + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/POGQuestionsActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/POGQuestionsActivity.java new file mode 100644 index 0000000..df2b17d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/POGQuestionsActivity.java @@ -0,0 +1,613 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Typeface; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.InputFilter; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +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.Spinner; +import android.widget.TextView; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +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.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.POGGetterSetter; + +public class POGQuestionsActivity extends AppCompatActivity { + private Context context; + ExpandableListView expandableListView; + LinearLayout linPlanogramType; + Spinner spinPlanogramType; + + String categoryName, categoryId, Error_Message = ""; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, pog_type_id; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + + + GSKOrangeDB db; + + List headerDataList = new ArrayList<>(); + HashMap> hashMapListChildData = new HashMap<>(); + + ExpandableListAdapter adapter; + + List checkHeaderArray = new ArrayList<>(); + String error_msg = ""; + boolean checkflag = true; + int selectedPOSMTypePosition = 0; + boolean userSelect = false, changedFlag = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_pogquestions); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + linPlanogramType = (LinearLayout) findViewById(R.id.lin_planogram_type); + spinPlanogramType = (Spinner) findViewById(R.id.spinner_planogram_type); + context = this; + db = new GSKOrangeDB(this); + db.open(); + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + pog_type_id = preferences.getString(CommonString.KEY_POG_TYPE_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.pog)); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (validateData()) { + + db.savePOGQuestionAnswerData(hashMapListChildData, headerDataList, store_id, categoryId); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + /* AlertDialog.Builder builder = new AlertDialog.Builder(POGQuestionsActivity.this); + builder.setMessage(R.string.title_activity_Want_save) + .setCancelable(false) + .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + db.savePOGQuestionAnswerData(hashMapListChildData, headerDataList,store_id, categoryId); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + }) + .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + alert.show();*/ + + } else { + + if(adapter!=null){ + adapter.notifyDataSetChanged(); + expandableListView.invalidateViews(); + } + Snackbar.make(expandableListView, error_msg, Snackbar.LENGTH_SHORT).show(); + } + } + }); + + if (country_id.equals("2") && (storeType_id.equals("9") || storeType_id.equals("15")||storeType_id.equals("47"))) { + linPlanogramType.setVisibility(View.VISIBLE); + final ArrayAdapter planogramTypeAdapter = new ArrayAdapter(this, + android.R.layout.simple_spinner_item); + + String select_str = getResources().getString(R.string.select_promo); + + planogramTypeAdapter.add(select_str); + + final ArrayList pogTypeList = db.getPogType(categoryId, storeType_id, pog_type_id); + + for (int i = 0; i < pogTypeList.size(); i++) { + planogramTypeAdapter.add(pogTypeList.get(i)); + } + + spinPlanogramType.setAdapter(planogramTypeAdapter); + + planogramTypeAdapter + .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + + spinPlanogramType.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + userSelect = true; + return false; + } + }); + + spinPlanogramType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, final int position, long id) { + + if (userSelect) { + + userSelect = false; + + if (changedFlag) { + AlertDialog.Builder builder = new AlertDialog.Builder(POGQuestionsActivity.this); + builder.setMessage(R.string.DELETE_ALERT_MESSAGE) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int id) { + selectedPOSMTypePosition = position; + prepareListData(planogramTypeAdapter.getItem(position).toString(), true); + + } + }) + .setNegativeButton(getResources().getString(R.string.no), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int id) { + + spinPlanogramType.setSelection(selectedPOSMTypePosition); + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + + alert.show(); + } else { + selectedPOSMTypePosition = position; + prepareListData(planogramTypeAdapter.getItem(position).toString(), true); + } + + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + ArrayList pogSavedList = db.getAfterSavePOGUploadQuestionAnswerData(store_id, categoryId); + + if (pogSavedList.size() > 0) { + String qType = pogSavedList.get(0).getQTYPE(); + for (int i = 0; i < pogTypeList.size(); i++) { + if (qType.equals(pogTypeList.get(i))) { + selectedPOSMTypePosition = i + 1; + spinPlanogramType.setSelection(i + 1); + prepareListData(qType, false); + break; + } + } + changedFlag = true; + } + } else { + prepareListData(null, false); + } + + } + + + @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) { + + if (changedFlag) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(POGQuestionsActivity.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 { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + //super.onBackPressed(); + if (changedFlag) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(POGQuestionsActivity.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(); + } + + } + + + void prepareListData(String planogramType, boolean clearFlag) { + headerDataList = new ArrayList<>(); + + headerDataList = db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, planogramType); + + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + + ArrayList quizDataList = new ArrayList<>(); + if (!clearFlag) { + quizDataList = db.getAfterSavePOGQuestionAnswerData(store_id, categoryId, headerDataList.get(i).getSub_category_id()); + } + + + if (quizDataList.size() == 0) { + quizDataList = db.getPOGSubCategoryWise(headerDataList.get(i).getSub_category_id(), pog_type_id, storeType_id, planogramType); + } + + //hashMapListChildData = new HashMap<>(); + ArrayList childListData = new ArrayList<>(); + + if (quizDataList.size() > 0) { + String select = getString(R.string.title_activity_select_dropdown); + // Adding child data + for (int j = 0; j < quizDataList.size(); j++) { + childListData = db.getPOGAnswerData(quizDataList.get(j).getQUESTION_ID(), headerDataList.get(i).getSub_category_id(), select); + quizDataList.get(j).setAnswerList(childListData); + } + } + + //childDataList = new ArrayList<>(); + /* childDataList = db.getMSL_Availability_StockFacingSKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (!(childDataList.size() > 0)) { + childDataList = db.getPOGSubCategoryWise(categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id); + }*/ + + hashMapListChildData.put(headerDataList.get(i), quizDataList); + } + } + + adapter = new ExpandableListAdapter(this, headerDataList, hashMapListChildData); + expandableListView.setAdapter(adapter); + + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + } + + 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_pog_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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + txt_categoryHeader.setText(headerTitle.getSub_category()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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 POGGetterSetter childData = + (POGGetterSetter) getChild(groupPosition, childPosition); + ArrayList ans_list = childData.getAnswerList(); + ViewHolder holder = null; + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.pog_question, null, false); + + holder = new ViewHolder(); + holder.txt_question = (TextView) convertView.findViewById(R.id.txt_question); + holder.sp_auditAnswer = (Spinner) convertView.findViewById(R.id.sp_auditAnswer); + holder.cardView = (CardView) convertView.findViewById(R.id.card_view); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.sp_auditAnswer.setAdapter(new AnswerSpinnerAdapter(POGQuestionsActivity.this, R.layout.custom_spinner_item, ans_list)); + + final ArrayList finalAns_list = ans_list; + holder.sp_auditAnswer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + POGGetterSetter ans = finalAns_list.get(position); + childData.setANSWER_ID(ans.getANSWER_ID()); + childData.setANSWER(ans.getANSWER()); + changedFlag = true; + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + holder.txt_question.setText(childData.getQUESTION() + " (" + childData.getQTYPE() + ")"); + + for (int i = 0; i < ans_list.size(); i++) { + if (ans_list.get(i).getANSWER_ID().equals(childData.getANSWER_ID())) { + holder.sp_auditAnswer.setSelection(i); + break; + } + } + + if (!checkflag) { + if (childData.getANSWER_ID().equals("0")) { + 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; + View mView; + TextView txt_question; + Spinner sp_auditAnswer; + } + + public class AnswerSpinnerAdapter extends ArrayAdapter { + List list; + Context context; + int resourceId; + + public AnswerSpinnerAdapter(Context context, int resourceId, ArrayList list) { + super(context, resourceId, list); + this.context = context; + this.list = list; + this.resourceId = resourceId; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + + View view = convertView; + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); + view = inflater.inflate(resourceId, parent, false); + POGGetterSetter cm = list.get(position); + TextView txt_spinner = (TextView) view.findViewById(R.id.tv_text); + txt_spinner.setText(list.get(position).getANSWER()); + + return view; + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + View view = convertView; + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); + view = inflater.inflate(resourceId, parent, false); + + POGGetterSetter cm = list.get(position); + + TextView txt_spinner = (TextView) view.findViewById(R.id.tv_text); + txt_spinner.setText(cm.getANSWER()); + + return view; + } + } + + boolean validateData() { + //boolean flag = true; + checkHeaderArray.clear(); + + checkflag = true; + if (country_id.equals("2") && (storeType_id.equals("9") || storeType_id.equals("15"))) { + if (headerDataList.size() == 0) { + error_msg = getString(R.string.title_activity_select_dropdown); + return false; + } + } + + for (int l = 0; l < headerDataList.size(); l++) { + + List child_data = hashMapListChildData.get(headerDataList.get(l)); + for (int i = 0; i < child_data.size(); i++) { + if (child_data.get(i).getANSWER_ID().equalsIgnoreCase("0")) { + error_msg = getString(R.string.pls_answer_all_qns); + checkflag = false; + } + + if (checkflag == false) { + break; + } + } + + if (checkflag == false) { + if (!checkHeaderArray.contains(l)) { + checkHeaderArray.add(l); + } + break; + } + } + + return checkflag; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/PlanogramPDFActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/PlanogramPDFActivity.java new file mode 100644 index 0000000..9f0ba08 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/PlanogramPDFActivity.java @@ -0,0 +1,466 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; + +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.BaseTransientBottomBar; +import com.google.android.material.snackbar.Snackbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.SoapFault; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.ProtocolException; +import java.net.URL; +import java.text.DecimalFormat; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramCountrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.TableBean; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; + +public class PlanogramPDFActivity extends AppCompatActivity { + private Context context; + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private Data data; + int eventType; + GSKOrangeDB db; + String userId, culture_id; + private SharedPreferences preferences = null; + FloatingActionButton fab; + + MappingPlanogramCountrywiseGetterSetter document; + MyRecyclerAdapter adapter; + RecyclerView rec; + String Path = Environment.getExternalStorageDirectory().toString() + "/Planogram_Documents/"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_planogram_pdf); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + rec = (RecyclerView) findViewById(R.id.rec); + + fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(checkNetIsAvailable()){ + new DowloadAsync(context).execute(); + } + else { + Snackbar.make(fab, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT) + .setAction("Action", null).show(); + } + } + }); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + userId = preferences.getString(CommonString.KEY_USERNAME, null); + culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, ""); + new DowloadAsync(context).execute(); + } + + //region Download doc + private class DowloadAsync extends AsyncTask { + + private Context context; + + DowloadAsync(Context context) { + this.context = context; + } + + + @Override + protected void onPreExecute() { + super.onPreExecute(); + + dialog = new Dialog(PlanogramPDFActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(R.layout.custom); + //dialog.setTitle("Download Files"); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected String doInBackground(Void... params) { + + data = new Data(); + String resultHttp = ""; + boolean flag = true; + // JCP + + try { + + XmlPullParserFactory factory = null; + factory = XmlPullParserFactory + .newInstance(); + + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_COUNTRYWISE_PLANOGRAM"); + request.addProperty("cultureid", culture_id); + + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + + androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, + envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString() != null) { + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + + document = XMLHandlers.MAPPING_COUNTRYWISE_PLANOGRAM_XMLHandler(xpp, eventType); + + if (document.getCOUNTRY_ID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + String document_Table = document.getTable_MAPPING_COUNTRYWISE_PLANOGRAM(); + TableBean.setMappingCountrywisePlanogram(document_Table); + + } else { + return "HR_DOCUMENTS"; + } + + data.value = 10; + data.name = "JCP Data Downloading"; + + if(document.getCOUNTRY_ID().size()>0){ + + String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); + File folder = new File(extStorageDirectory, "Planogram_Documents"); + folder.mkdir(); + + for(int i = 0; i0){ + adapter = new MyRecyclerAdapter(context, document); + rec.setAdapter(adapter); + rec.setLayoutManager(new LinearLayoutManager(context)); + } + + + } else { + Snackbar.make(fab, result, Toast.LENGTH_SHORT).show(); + } + + //finish(); + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + + } + } + //endregion + + class Data { + int value; + String name; + } + + public boolean downloadFile(String fileUrl, String directory, File folder_path) { + + boolean flag = true; + + try { + final int MEGABYTE = 1024 * 1024; + URL url = new URL(fileUrl + directory); + HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + urlConnection.setRequestMethod("GET"); + urlConnection.getResponseCode(); + urlConnection.connect(); + + if (urlConnection.getResponseCode() == 200) { + + int length = urlConnection.getContentLength(); + + String size = new DecimalFormat("##.##") + .format((double) ((double) length / 1024)) + + " KB"; + + /* String PATH = Environment + .getExternalStorageDirectory() + + "/GT_GSK_Images/";*/ + + if (!new File( folder_path.getPath()+"/" + directory).exists() + && !size.equalsIgnoreCase("0 KB")) { + + File outputFile = new File(folder_path, + directory); + FileOutputStream fos = new FileOutputStream( + outputFile); + InputStream is1 = (InputStream) urlConnection + .getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is1.read(buffer)) != -1) { + + bytes = (bytes + len1); + + // data.value = (int) ((double) (((double) + // bytes) / length) * 100); + + fos.write(buffer, 0, len1); + + } + + fos.close(); + is1.close(); + + } + } + + } catch (FileNotFoundException e) { + e.printStackTrace(); + flag = false; + } catch (ProtocolException e) { + e.printStackTrace(); + flag = false; + } catch (MalformedURLException e) { + e.printStackTrace(); + flag = false; + } catch (IOException e) { + e.printStackTrace(); + flag = false; + } + + return flag; + } + + @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) { + + // NavUtils.navigateUpFromSameTask(this); + finish(); + + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + } + + return super.onOptionsItemSelected(item); + } + + public boolean checkNetIsAvailable() { + ConnectivityManager cm = + (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + + NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); + boolean isConnected = activeNetwork != null && + activeNetwork.isConnectedOrConnecting(); + return isConnected; + } + + class MyRecyclerAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + MappingPlanogramCountrywiseGetterSetter data = new MappingPlanogramCountrywiseGetterSetter(); + + public MyRecyclerAdapter(Context context, MappingPlanogramCountrywiseGetterSetter data) { + + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @Override + public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = inflator.inflate(R.layout.pdf_planogram_item, parent, false); + + MyRecyclerAdapter.MyViewHolder holder = new MyRecyclerAdapter.MyViewHolder(view); + + return holder; + } + + @Override + public void onBindViewHolder(MyViewHolder holder, final int position) { + + //final MappingPlanogramCountrywiseGetterSetter current = data.get(position); + + final String name = data.getPLANOGRAM_URL().get(position); + + holder.name.setText(name); + //holder.detail.setText(current.getDocument_descriiption().get(0)); + + holder.parent_layout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + try{ + String file_path = Path + name; + + File file = new File(file_path); + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setDataAndType(Uri.fromFile(file),"application/pdf"); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); + startActivity(intent); + + //finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + catch (ActivityNotFoundException ae){ + Snackbar.make(fab, R.string.no_app_found_for_pdf, BaseTransientBottomBar.LENGTH_SHORT).show(); + } + + } + }); + } + + @Override + public int getItemCount() { + return document.getFILE_PATH().size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView name, detail; + LinearLayout parent_layout; + + public MyViewHolder(View itemView) { + super(itemView); + name = (TextView) itemView.findViewById(R.id.tv_name); + detail = (TextView) itemView.findViewById(R.id.tv_details); + + parent_layout = (LinearLayout) itemView.findViewById(R.id.layout_parent); + + } + + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/Second2Fragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/Second2Fragment.java new file mode 100644 index 0000000..5144776 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/Second2Fragment.java @@ -0,0 +1,36 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.navigation.fragment.NavHostFragment; + +import cpm.com.gskmtorange.R; + +public class Second2Fragment extends Fragment { + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState + ) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_second2, container, false); + } + + public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + view.findViewById(R.id.button_second).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + NavHostFragment.findNavController(Second2Fragment.this) + .navigate(R.id.action_Second2Fragment_to_First2Fragment); + } + }); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/SecondFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/SecondFragment.java new file mode 100644 index 0000000..6a4c2d8 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/SecondFragment.java @@ -0,0 +1,36 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.navigation.fragment.NavHostFragment; + +import cpm.com.gskmtorange.R; + +public class SecondFragment extends Fragment { + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState + ) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_second, container, false); + } + + public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + view.findViewById(R.id.button_second).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + NavHostFragment.findNavController(SecondFragment.this) + .navigate(R.id.action_SecondFragment_to_FirstFragment); + } + }); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/ServiceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/ServiceActivity.java new file mode 100644 index 0000000..8ae54ee --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/ServiceActivity.java @@ -0,0 +1,90 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.MenuItem; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.Locale; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.fragment.ServiceActivityFragment; + +public class ServiceActivity extends AppCompatActivity { + + private SharedPreferences preferences; + Toolbar toolbar; + private Context context; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_service); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + context = this; + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context,preferences.getString(CommonString.KEY_LANGUAGE, "")); + + /* ServiceActivityFragment fragment = new ServiceActivityFragment(); + getSupportFragmentManager().beginTransaction().add(R.id.fragment,fragment).commit();*/ + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + } + + @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) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context,preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(R.string.title_activity_service); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/SettingsActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/SettingsActivity.java new file mode 100644 index 0000000..61378fc --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/SettingsActivity.java @@ -0,0 +1,142 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.net.Uri; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.MenuItem; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.Locale; + +import cpm.com.gskmtorange.MainActivity; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.fragment.SelectLanguageFragment; +import cpm.com.gskmtorange.fragment.SettingsActivityFragment; + +public class SettingsActivity extends AppCompatActivity implements SelectLanguageFragment.OnFragmentInteractionListener { + String selected_lang = "", culture_id, notice_url; + private Context context; + FloatingActionButton fab; + private SharedPreferences preferences; + private SharedPreferences.Editor editor = null; + Toolbar toolbar; + private static final String SELECTED_ITEM_POSITION = "ItemPosition"; + private int mPosition; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_settings); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + context = this; + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + editor = preferences.edit(); + CommonFunctions.updateLangResources(context,preferences.getString(CommonString.KEY_LANGUAGE, "")); + + /* SettingsActivityFragment fragment = new SettingsActivityFragment(); + getSupportFragmentManager().beginTransaction().add(R.id.fragment,fragment).commit();*/ + + fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (selected_lang.equals("")) { + Snackbar.make(view, getString(R.string.select_language), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + CommonFunctions.updateLangResources(context,selected_lang); + editor.putString(CommonString.KEY_LANGUAGE, selected_lang); + editor.putString(CommonString.KEY_CULTURE_ID, culture_id); + editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, notice_url); + editor.commit(); + Intent startDownload = new Intent(context, MainActivity.class); + startActivity(startDownload); + finish(); + } + } + }); + } + + @Override + public void onFragmentInteraction(String selected_lang, String culture_id, String notice_url) { + this.selected_lang = selected_lang; + this.culture_id = culture_id; + this.notice_url = notice_url; + if (!selected_lang.equals("")) { + fab.show(); + } + } + + @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) { + + Intent startDownload = new Intent(context, MainActivity.class); + startActivity(startDownload); + + finish(); + // overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + //super.onBackPressed(); + Intent startDownload = new Intent(context, MainActivity.class); + startActivity(startDownload); + + finish(); + + // overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context,preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(R.string.title_activity_settings); + } + + @Override + protected void onSaveInstanceState(final Bundle outState) { + super.onSaveInstanceState(outState); + // Save the state of item position + outState.putInt(SELECTED_ITEM_POSITION, mPosition); + } + + @Override + protected void onRestoreInstanceState(final Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + // Read the state of item position + mPosition = savedInstanceState.getInt(SELECTED_ITEM_POSITION); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockActivity.java new file mode 100644 index 0000000..6fdb5f1 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockActivity.java @@ -0,0 +1,642 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.graphics.Typeface; +import android.os.Bundle; +import android.preference.PreferenceManager; +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.EditText; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; +import java.util.HashMap; +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.interfaces.DialogCallbackListener; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; + +public class StockActivity extends AppCompatActivity implements DialogCallbackListener { + + GSKOrangeDB db; + private Context context; + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + ExpandableListView expandableListView; + ExpandableListAdapter adapter; + + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + FloatingActionButton fab; + boolean editFlag = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_stock); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + + db = new GSKOrangeDB(this); + db.open(); + + //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_stock_data)); + + fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + expandableListView.clearFocus(); + + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + /*AlertDialog.Builder builder = new AlertDialog.Builder(StockActivity.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) { + + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + alert.show();*/ + + db.open(); + if (db.checkStockData(store_id, categoryId, visit_date)) { + db.updateStockData(store_id, categoryId, visit_date, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + db.InsertStockData(store_id, categoryId, visit_date, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, 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); + } else { + + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + /* AlertDialog.Builder builder = new AlertDialog.Builder(StockActivity.this); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + expandableListView.smoothScrollToPosition(scrollPosition); + + if (!expandableListView.isGroupExpanded(scrollPosition)) { + expandableListView.expandGroup(scrollPosition); + } + 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) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .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) context + .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) context + .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; + } + }); + + prepareList(); + } + + @Override + protected void onResume() { + super.onResume(); + db.open(); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + //Header + if (country_id.equals("7")) { + headerDataList = db.getStockFacingHeaderData(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADDITIONAL, CommonString.TABLE_MAPPING_SOS_TARGET); + } else { + headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET); + } + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + //childDataList = new ArrayList<>(); + //childDataList = db.getStockAfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (country_id.equals("7")) { + // childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(),categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE,"0"); + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, + CommonString.TABLE_MAPPING_STOCK_STOREWISE, "0", visit_date, true); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC, "0", visit_date, true); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), categoryId, + headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK_ADDITIONAL, "0", visit_date, true); + } else { + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK, "0", visit_date, true); + } + + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + } catch (Exception e) { + e.printStackTrace(); + } + } + + 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + if (headerTitle.getCompany_id().equals("1")) { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.header_text_color)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + // card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + txt_categoryHeader.setTextColor(getResources().getColor(R.color.white)); + + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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.stock_child_item, 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.stock = (EditText) convertView.findViewById(R.id.ed_stock); + + holder.stock_view = convertView.findViewById(R.id.stock_view); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.txt_skuName.setText(childData.getSku()); + + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + + } else { + + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + + } + + if (childData.getCompany_id().equals("1")) { + + if (childData.getMust_have().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.blue)); + } + + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } + + final ViewHolder finalHolder = holder; + holder.stock.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + editFlag = true; + final EditText caption = (EditText) v; + String edStock = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + if (edStock.equals("")) { + childData.setStock(""); + } else { + childData.setStock(edStock); + } + } + }); + holder.stock.setText(childData.getStock()); + + + //empty check color change + if (!checkflag) { + boolean tempflag = false; + + if (childData.getCompany_id().equals("1")) { + + 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 (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + // holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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 (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 (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + // holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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; + LinearLayout lin_category; + EditText stock; + View stock_view; + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + checkHeaderArray.clear(); + + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + + HashMap> listDataChildTemp = new HashMap<>(); + + for (int i = 0; i < listDataHeader.size(); i++) { + + flag = true; + + List listTemp = new ArrayList<>(); + + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + + child_flag = true; + + MSL_AvailabilityStockFacingGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + + String stock = data.getStock(); + + if (stock.equals("")) { + + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i; + + flag = false; + all_flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + //break; + + } + + if (!child_flag) + listTemp.add(data); + } + + if (flag == false) { + /* checkflag = false; + break;*/ + + listDataHeaderTemp.add(listDataHeader.get(i)); + listDataChildTemp.put(listDataHeader.get(i), listTemp); + } else { + //checkflag = true; + } + + } + + if (!all_flag) { + adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false; + } else { + checkflag = true; + } + + //adapter.notifyDataSetChanged(); + + return all_flag; + } + + @Override + public void onBackPressed() { + if (editFlag) { + CommonFunctions.showAlertDialog(StockActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + + if (editFlag) { + CommonFunctions.showAlertDialog(StockActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onSelect(boolean flag) { + if (flag) { + //adapter.notifyDataSetChanged(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onSave(boolean flag) { + + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockDataActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockDataActivity.java new file mode 100644 index 0000000..03f2945 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockDataActivity.java @@ -0,0 +1,858 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Typeface; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.InputFilter; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +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 androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +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.interfaces.DialogCallbackListener; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; + +public class StockDataActivity extends AppCompatActivity implements DialogCallbackListener { + + GSKOrangeDB db; + private Context context; + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + ExpandableListView expandableListView; + ExpandableListAdapter adapter; + + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + FloatingActionButton fab; + + boolean editFlag = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_stock_data); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + + db = new GSKOrangeDB(this); + db.open(); + + //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_stock_data)); + + fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + expandableListView.clearFocus(); + + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + /* AlertDialog.Builder builder = new AlertDialog.Builder(StockDataActivity.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) { + + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + alert.show();*/ + + db.open(); + + /*if (db.checkMsl_Availability_StockFacingData(store_id, categoryId)) { + db.updateMSL_Availability_StockFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, 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(expandableListView, getResources().getString(R.string.save_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + }*/ + if (db.checkMsl_Availability_StockFacingDataNew(store_id, categoryId,visit_date)) { + db.updateMSL_Availability_StockFacingNew(visit_date,store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + db.InsertMSL_Availability_StockFacingNew(visit_date,store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, 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); + + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(StockDataActivity.this); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + expandableListView.smoothScrollToPosition(scrollPosition); + + if (!expandableListView.isGroupExpanded(scrollPosition)) { + expandableListView.expandGroup(scrollPosition); + } + 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) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .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) context + .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) context + .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; + } + }); + } + + @Override + protected void onResume() { + super.onResume(); + + prepareList(); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + if(country_id.equals("7")){ + headerDataList = db.getStockFacingHeaderData(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET); + } + else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id,CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC); + } + else { + headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id,CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET); + } + + + 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)) { + + if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(),categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, null, CommonString.TABLE_MAPPING_STOCK_ADHOC,"0"); + } + else { + childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(),categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, null, CommonString.TABLE_MAPPING_STOCK,"0"); + + } + } + + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onSelect(boolean flag) { + if (flag) { + //adapter.notifyDataSetChanged(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onSave(boolean flag) { + + } + + 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + 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()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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.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.facing.setFilters(new InputFilter[]{new DecimalDigitsInputFilter(6, 1)}); + holder.stock = (EditText) convertView.findViewById(R.id.ed_stock); + + holder.stock_view = convertView.findViewById(R.id.stock_view); + 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") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + + /* 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); + holder.stock_view.setVisibility(View.GONE); + } else { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + }*/ + } else { + + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + /* holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + holder.facing.setVisibility(View.VISIBLE);*/ + /* holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE);*/ + } + + if (childData.getCompany_id().equals("1")) { + + if (childData.getMust_have().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.blue)); + } + + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } + + + /* if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + *//*holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + holder.facing.setVisibility(View.VISIBLE); + holder.stock.setVisibility(View.GONE);*//* + }*/ + + + /* 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(""); + childData.setFacing("");*//* + } else { + *//* childData.setStock(""); + childData.setFacing("");*//* + childData.setToggleValue("0"); + finalHolder.stock.setVisibility(View.VISIBLE); + + //If MBQ Value is 0 + if (Integer.parseInt(childData.getMbq()) == 0) { + childData.setStock("0"); + childData.setFacing("0"); + }*//* else { + if (finalHolder.facing.getText().toString() != null && !finalHolder.facing.getText().toString().equals("")) { + if (Integer.parseInt(finalHolder.facing.getText().toString()) >= 0 + && Integer.parseInt(finalHolder.facing.getText().toString()) >= Integer.parseInt(childData.getMbq())) { + childData.setFacing(""); + finalHolder.facing.setText(""); + } + } + }*//* + } + + expandableListView.clearFocus(); + expandableListView.invalidateViews(); + } + }); + + if (childData.getToggleValue().equals("1")) { + holder.toggle_available.setChecked(true); + finalHolder.stock.setVisibility(View.GONE); + childData.setStock(""); + } else { + holder.toggle_available.setChecked(false); + finalHolder.stock.setVisibility(View.VISIBLE); + } +*/ + final ViewHolder finalHolder = holder; + holder.stock.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + + editFlag = true; + + final EditText caption = (EditText) v; + String edStock = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + /*if (!childData.getFacing().equals("") && Integer.parseInt(stock) >= 0 && Integer.parseInt(childData.getFacing()) < Integer.parseInt(stock)) { + + }*/ + + if (!edStock.equals("")) { + String stock = edStock; + + if (!childData.getFacing().equals("")) { + if (Integer.parseInt(stock) >= 0 && Double.parseDouble(childData.getFacing()) <= Integer.parseInt(stock)) { + + childData.setStock(stock); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(StockDataActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder.stock.setText(""); + dialog.dismiss(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setStock(stock); + } + + + } else { + childData.setStock(""); + } + } + }); + holder.stock.setText(childData.getStock()); + + + final ViewHolder finalHolder1 = holder; + holder.facing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + + editFlag = true; + + final EditText caption = (EditText) v; + boolean isFill = false; + String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + if (edFaceup != null && !edFaceup.equals("")) { + + if (!childData.getStock().equals("")) { + if (Double.parseDouble(edFaceup) <= Integer.parseInt(childData.getStock())) { + + isFill = true; + + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(StockDataActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder1.facing.setText(""); + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setFacing(edFaceup); + } + + if (isFill) { + childData.setFacing(edFaceup); + } + } else { + childData.setFacing(""); + } + + } + }); + + holder.facing.setText(childData.getFacing()); + + //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 (childData.getMust_have().equals("1")) { + 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)); + +*//* if (childData.getCompany_id().equals("1") && !childData.getMust_have().equals("0")) { + }else{ + holder.facing.setHint(""); + }*//* + tempflag = true; + } + } else { + holder.facing.setHint(""); + } + }*/ + + + if (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.lin_category.setBackgroundColor(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)); + holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.lin_category.setBackgroundColor(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; + LinearLayout lin_category; + EditText stock; + EditText facing; + View stock_view; + } + + 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(); + + if (faceup.equals("")) { + + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i; + + flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + break; + + } else if (stock.equals("")) { + + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i; + + flag = false; + Error_Message = getResources().getString(R.string.stock_value); + break; + + } + + //Company_id + /* if (listDataChild.get(listDataHeader.get(i)).get(j).getCompany_id().equals("1")) { + if (data.getMust_have().equals("1")) { + *//*if (!camera_allow.equalsIgnoreCase("1")) { + if (!(planogramShelfHeaderDataList.size() > 0)) { + flag = false; + Error_Message = getResources().getString(R.string.stock_planogram_data_noCamera_data); + break; + } + }*//* + + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = 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); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = i; + + flag = false; + Error_Message = getResources().getString(R.string.stock_value); + break; + } + } + } + } + } else { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + //expandableListView.smoothScrollToPosition(i); + scrollPosition = 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) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + + if (editFlag) { + CommonFunctions.showAlertDialog(StockDataActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + if (editFlag) { + CommonFunctions.showAlertDialog(StockDataActivity.this, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockPricingActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockPricingActivity.java new file mode 100644 index 0000000..9131949 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockPricingActivity.java @@ -0,0 +1,442 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.graphics.Typeface; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.InputFilter; +import android.view.LayoutInflater; +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 androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; +import java.util.HashMap; +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.MSL_AvailabilityStockFacingGetterSetter; + +public class StockPricingActivity extends AppCompatActivity { + private Context context; + ExpandableListView expandableListView; + private SharedPreferences preferences; + + String categoryName, categoryId, Error_Message = ""; + String store_id, store_flag_hide, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str; + GSKOrangeDB db; + + ArrayList headerDataList; + ArrayList childDataList = new ArrayList<>(); + List hashMapListHeaderData; + HashMap> hashMapListChildData; + ExpandableListAdapter adapter; + + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + + FloatingActionButton fab; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_stock_pricing); + Toolbar toolbar = findViewById(R.id.toolbar); + + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + + db = new GSKOrangeDB(this); + db.open(); + + context = this; + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + store_flag_hide = preferences.getString(CommonString.KEY_STORE_FLAG_FACING_HIDE, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + //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_stock_pricing)); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + fab = findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + + prepareList(); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + + 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); + // childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(),categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK,"0"); + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK, "0", visit_date, false); + + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + + //expand all + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//.setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .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) context + .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) context + .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 (Exception e) { + e.printStackTrace(); + } + + + } + + 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + if (headerTitle.getCompany_id().equals("1")) { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.header_text_color)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + txt_categoryHeader.setTextColor(getResources().getColor(R.color.white)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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_stock_pricing, 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.et_price = (EditText) convertView.findViewById(R.id.et_price); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.txt_skuName.setText(childData.getSku()); + + if (childData.getCompany_id().equals("1")) { + + if (childData.getMust_have().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.blue)); + } + + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } + + final ViewHolder finalHolder = holder; + + holder.et_price.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (!hasFocus) { + final EditText caption = (EditText) v; + String edStock = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + if (!edStock.equals("")) { + String stock = edStock; + + childData.setStock(stock); + } else { + childData.setStock(""); + } + } + } + }); + holder.et_price.setText(childData.getStock()); + + //empty check color change + if (!checkflag) { + boolean tempflag = false; + + if (childData.getCompany_id().equals("1")) { + + if (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + //holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + } + } + } else { + if (holder.et_price.getText().toString().equals("")) { + holder.et_price.setBackgroundColor(getResources().getColor(R.color.white)); + holder.et_price.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.et_price.setHint(getString(R.string.empty)); + tempflag = true; + } + + + if (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + //holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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; + LinearLayout lin_category; + EditText et_price; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreCheckoutImageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreCheckoutImageActivity.java new file mode 100644 index 0000000..5efa982 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreCheckoutImageActivity.java @@ -0,0 +1,623 @@ +package cpm.com.gskmtorange.dailyentry; + +import static com.google.android.gms.location.LocationRequest.Builder.IMPLICIT_MIN_UPDATE_INTERVAL; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +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.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.location.Location; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.os.Looper; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.Priority; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.File; +import java.io.IOException; +import java.io.InterruptedIOException; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.net.SocketTimeoutException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Locale; +import java.util.Objects; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.gsk_dailyentry.StoreWisePerformanceActivity; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler; + +/** + * Created by ashishc on 31-05-2016. + */ +public class StoreCheckoutImageActivity extends AppCompatActivity implements View.OnClickListener, + GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { + private Context context; + String gallery_package = ""; + Uri outputFileUri; + + ImageView img_cam, img_clicked; + Button btn_save; + private Dialog dialog; + private TextView percentage, message; + private ProgressBar pb; + private FailureGetterSetter failureGetterSetter = null; + String _pathforcheck, _path, str; + + String store_id, visit_date, username, intime, date, _UserId, store_flag_str; + private SharedPreferences preferences; + AlertDialog alert; + String img_str, strflag; + private GSKOrangeDB database; + private FusedLocationProviderClient fusedLocationProviderClient; + LocationRequest locationRequest; + String lat = "0.0", lon = "0.0"; + GoogleApiClient mGoogleApiClient; + ArrayList coverage_list; + Toolbar toolbar; + boolean ResultFlag = true; + String checkOutStore_id = ""; + ArrayList coverage = new ArrayList(); + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_store_checkout_image); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true); + img_cam = (ImageView) findViewById(R.id.img_selfie); + img_clicked = (ImageView) findViewById(R.id.img_cam_selfie); + btn_save = (Button) findViewById(R.id.btn_save_selfie); + 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); + _UserId = preferences.getString(CommonString.KEY_USERNAME, ""); + intime = preferences.getString(CommonString.KEY_STORE_IN_TIME, ""); + checkOutStore_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + str = CommonString.getImagesFolder(context); + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); + database = new GSKOrangeDB(this); + database.open(); + coverage_list = database.getCoverageData(date, store_flag_str); + img_cam.setOnClickListener(this); + img_clicked.setOnClickListener(this); + btn_save.setOnClickListener(this); + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + + if (Build.VERSION.SDK_INT >= 23 && + ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + return; + } + } + + @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) { + // NavUtils.navigateUpFromSameTask(this); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + @SuppressLint("NonConstantResourceId") + @Override + public void onClick(View v) { + int id = v.getId(); + switch (id) { + case R.id.img_cam_selfie: + _pathforcheck = checkOutStore_id + "CHK_SI_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck; + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + startCameraActivity(); + break; + + case R.id.btn_save_selfie: + if (img_str != null) { + AlertDialog.Builder builder = new AlertDialog.Builder(StoreCheckoutImageActivity.this); + builder.setMessage(getResources().getString(R.string.title_activity_save_data)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), (dialog, id1) -> { + alert.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); + Intent i = new Intent(StoreCheckoutImageActivity.this, CheckoutActivity.class); + i.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + i.putExtra(CommonString.KEY_STORE_ID, checkOutStore_id); + i.putExtra(CommonString.KEY_CHECKOUT_IMAGE, img_str); + i.putExtra(CommonString.KEY_LATITUDE, lat); + i.putExtra(CommonString.KEY_LONGITUDE, lon); + startActivity(i); + finish(); + }).setNegativeButton(getResources().getString(R.string.cancel), (dialog, id12) -> dialog.cancel()); + + alert = builder.create(); + alert.show(); + } else { + Toast.makeText(context, getResources().getString(R.string.clickimage), Toast.LENGTH_SHORT).show(); + } + + break; + } + } + + protected void startCameraActivity() { + try { + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + outputFileUri = FileProvider.getUriForFile(context, "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: + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + try { + Bitmap bmp = BitmapFactory.decodeFile(str + _pathforcheck); + img_cam.setImageBitmap(bmp); + } catch (OutOfMemoryError ex) { + CommonFunctions.setScaledImage(img_cam, str + _pathforcheck); + } + + img_clicked.setVisibility(View.GONE); + img_cam.setVisibility(View.VISIBLE); + + img_str = _pathforcheck; + _pathforcheck = ""; + } + } + break; + } + super.onActivityResult(requestCode, resultCode, data); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + cdate = arabicToenglish(cdate); + } + + return cdate; + } + + @Override + public void onConnected(Bundle bundle) { + /* @SuppressLint("MissingPermission") Location mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + if (mLastLocation != null) { + lat = String.valueOf(mLastLocation.getLatitude()); + lon = String.valueOf(mLastLocation.getLongitude()); + }*/ + } + + @Override + public void onConnectionSuspended(int i) { + + } + + @Override + public void onConnectionFailed(ConnectionResult connectionResult) { + + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(R.string.title_activity_store_checkout_image); + + locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 100000) + .setWaitForAccurateLocation(false) + .setMinUpdateIntervalMillis(IMPLICIT_MIN_UPDATE_INTERVAL) + .setMaxUpdateDelayMillis(1000) + .build(); + + + LocationCallback locationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult != null) { + if (locationResult == null) { + return; + } + //Showing the latitude, longitude and accuracy on the home screen. + for (Location location : locationResult.getLocations()) { + lat = String.valueOf(location.getLatitude()); + lon = String.valueOf(location.getLongitude()); + // Log.e("latitude_inside",location.getLatitude() + "," +location.getLongitude()); + } + } + } + }; + if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(StoreCheckoutImageActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1); + ActivityCompat.requestPermissions(StoreCheckoutImageActivity.this, new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION}, 2); + } + fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); + } + + protected void onStart() { + mGoogleApiClient.connect(); + super.onStart(); + } + + protected void onStop() { + mGoogleApiClient.disconnect(); + super.onStop(); + } + + + public class GeoTagUpload extends AsyncTask { + + private Context context; + + GeoTagUpload(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getResources().getString(R.string.dialog_title)); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected String doInBackground(Void... params) { + try { + GSKOrangeDB db = new GSKOrangeDB(StoreCheckoutImageActivity.this); + db.open(); + + coverage = db.getCoverageWithStoreID_Data(store_id, visit_date); + + // uploading Geotag + + SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + + String current_xml = ""; + + if (coverage.size() > 0) { + + for (int i = 0; i < coverage.size(); i++) { + + + String onXML = "[Coverage_Intime][USER_ID]" + + _UserId + + "[/USER_ID]" + + "[STORE_ID]" + + coverage.get(i).getStoreId() + + "[/STORE_ID]" + + "[VISIT_DATE]" + + coverage.get(i).getVisitDate() + + "[/VISIT_DATE]" + + "[IN_TIME]" + + coverage.get(i).getInTime() + + "[/IN_TIME]" + + "[LATITUDE]" + + coverage.get(i).getLatitude() + + "[/LATITUDE]" + + "[LONGITUDE ]" + + coverage.get(i).getLongitude() + + "[/LONGITUDE ]" + + "[REASON_ID]" + + coverage.get(i).getReasonid() + + "[/REASON_ID]" + + "[REMARK]" + + coverage.get(i).getReason() + + "[/REMARK][/Coverage_Intime]"; + + current_xml = current_xml + onXML; + + + } + + current_xml = "[DATA]" + current_xml + + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_UPLOAD_CURRENT_DATA); + //request.addProperty("MID", "0"); + // request.addProperty("KEYS", "CURRENT_DATA"); + // request.addProperty("USERNAME", username); + + request.addProperty("onXML", current_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + androidHttpTransport.call( + CommonString.SOAP_ACTION_UPLOAD_CURRRENT_DATA, envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_SUCCESS)) { + + + } else { + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + return CommonString.METHOD_UPLOAD_CURRENT_DATA; + } + + // for failure + FailureXMLHandler failureXMLHandler = new FailureXMLHandler(); + xmlR.setContentHandler(failureXMLHandler); + + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(result + .toString())); + xmlR.parse(is); + + failureGetterSetter = failureXMLHandler + .getFailureGetterSetter(); + + if (failureGetterSetter.getStatus().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + return CommonString.METHOD_UPLOAD_CURRENT_DATA + "," + + failureGetterSetter.getErrorMsg(); + + } else { + + } + } + } + + + return CommonString.KEY_SUCCESS; + + } catch (MalformedURLException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } catch (SocketTimeoutException e) { + ResultFlag = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + + } catch (InterruptedIOException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + + } catch (IOException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + + } catch (XmlPullParserException e) { + ResultFlag = false; + strflag = CommonString.MESSAGE_XmlPull; + + } catch (Exception e) { + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } + + if (ResultFlag) { + return CommonString.KEY_SUCCESS; + + } else { + + return strflag; + } + + } + + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.dismiss(); + + if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + dialog.dismiss(); + + Intent in = new Intent(StoreCheckoutImageActivity.this, StoreWisePerformanceActivity.class); + startActivity(in); + finish(); + + + //showAlert(getString(R.string.data_downloaded_successfully)); + } else { + + GSKOrangeDB db = new GSKOrangeDB(StoreCheckoutImageActivity.this); + db.open(); + + dialog.dismiss(); + db.deleteTableWithStoreID(store_id); + + showAlert(getString(R.string.datanotfound) + " " + result); + } + } + + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(StoreCheckoutImageActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + + finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java new file mode 100644 index 0000000..ca8e1e0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java @@ -0,0 +1,2051 @@ +package cpm.com.gskmtorange.dailyentry; + +import static com.google.android.gms.location.LocationRequest.Builder.IMPLICIT_MIN_UPDATE_INTERVAL; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentSender; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.drawable.ColorDrawable; +import android.location.Location; +import android.location.LocationManager; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.os.Looper; +import android.preference.PreferenceManager; +import android.provider.Settings; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.RadioGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.ResultCallback; +import com.google.android.gms.common.api.Status; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.LocationSettingsRequest; +import com.google.android.gms.location.LocationSettingsResult; +import com.google.android.gms.location.LocationSettingsStatusCodes; +import com.google.android.gms.location.Priority; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InterruptedIOException; +import java.io.StringReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.SocketTimeoutException; +import java.net.URL; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GeoTag.GeoTagActivity; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +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.adapter.data.ImageUri; +import cpm.com.gskmtorange.comparators.StatusCompare; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.constant.CommonUtils; +import cpm.com.gskmtorange.download.DownloadActivity; +import cpm.com.gskmtorange.gsk_dailyentry.StoreWisePerformanceActivity; +import cpm.com.gskmtorange.pharma_stores.PharmaActivity; +import cpm.com.gskmtorange.storeinmap.StoreListMapActivity; +import cpm.com.gskmtorange.storeinmap.StoreListRouteActivity; +import cpm.com.gskmtorange.storeinmap.StoreRouteActivity; +import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.AdditionalQuestiongetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.GeoFencingGetterSetter; +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_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SOS_TARGET_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingDisplayChecklistGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramCountrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPromotionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraLastVisitGetterSetter; +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.STORE_PERFORMANCE_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.TableBean; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; + +public class StoreListActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { + ArrayList coverage = new ArrayList(); + ArrayList storelist = new ArrayList(); + //ListView list; + private SharedPreferences preferences; + String date, visit_status; + GSKOrangeDB db; + StoreListActivity.ValueAdapter adapter; + RecyclerView recyclerView; + private SharedPreferences.Editor editor = null; + LinearLayout linearlay; + String store_id, userId, culture_id, visit_date, store_facing_hide; + private Dialog dialog; + boolean result_flag = false, leaveflag = false; + FloatingActionButton fab; + //String storeid; + Toolbar toolbar; + String language, country_id; + String store_flag_str; + + Context context; + boolean enabled = true; + GoogleApiClient mGoogleApiClient; + double lat = 0.0, lon = 0.0; + private LocationManager locmanager = null; + ArrayList geolist; + //ArrayList geoPhenceGetSet; + int distanceGeoPhence = 500; + private static int UPDATE_INTERVAL = 200; // 5 sec + private static int FATEST_INTERVAL = 100; // 1 sec + private static int DISPLACEMENT = 1; // 10 meters + private static final int REQUEST_LOCATION = 1; + private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; + private Location mLastLocation; + private LocationRequest mLocationRequest; + + ArrayList geoFencingGetterSetters; + + //New Location changes + private FusedLocationProviderClient fusedLocationProviderClient; + LocationRequest locationRequest; + + DisplayMasterGetterSetter displayMasterGetterSetter; + MappingStockGetterSetter mappingStockGetterSetter; + MappingStockStorewiseGetterSetter mappingStockStorewiseGetterSetter; + MAPPINGT2PGetterSetter mappingt2PGetterSetter; + DisplayChecklistMasterGetterSetter checklistMasterGetterSetter; + MappingDisplayChecklistGetterSetter mappingChecklistGetterSetter; + NonWorkingReasonGetterSetter nonWorkingReasonGetterSetter; + MappingPromotionGetterSetter mappingPromotionGetterSetter; + MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter mapping_additional_promotion_masterGetterSetter; + STORE_PERFORMANCE_MasterGetterSetter store_performance_masterGetterSetter; + ADDITIONAL_DISPLAY_MASTERGetterSetter additional_display_getter_setter; + MAPPING_SOS_TARGET_MasterGetterSetter mapping_sos_target_masterGetterSetter; + MAPPING_PLANOGRAM_MasterGetterSetter mapping_planogram_masterGetterSetter; + ShelfMasterGetterSetter shelfMasterGetterSetter; + MappingSubCategoryImageAllowGetterSetter mappingSubCategoryImageAllowGetterSetter; + MappingCategoryImageAllowGetterSetter mappingCategoryImageAllowGetterSetter; + SkuGroupMasterGetterSetter skuGroupMasterGetterSetter; + AdditionalQuestiongetterSetter additionalQuestiongetterSetter; + POGQuestionGetterSetter pogQuestionGetterSetter; + NonT2pReasonGetterSetter nonT2pReasonGetterSetter; + ConfigurationContrywiseGetterSetter configurationContrywiseGetterSetter; + NoCameraLastVisitGetterSetter noCameraLastVisitGetterSetter; + NonWorkingSubReasonGetterSetter nonWorkingSubReasonGetterSetter; + SupervisorListGetterSetter supervisorListGetterSetter; + ConfigurationMasterGetterSetter configurationMasterGetterSetter; + MappingPlanogramStorewiseGetterSetter mappingPlanogramStorewiseGetterSetter; + private ProgressBar pb; + private TextView percentage, message; + + Data data; + int eventType; + boolean ResultFlag = true; + String str; + StoreBean storeCurrentObj; + + String from_checkedIn = ""; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.storelistfablayout); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + context = this; + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + + date = preferences.getString(CommonString.KEY_DATE, null); + visit_status = preferences.getString(CommonString.KEY_STOREVISITED_STATUS, ""); + language = preferences.getString(CommonString.KEY_LANGUAGE, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + userId = preferences.getString(CommonString.KEY_USERNAME, null); + culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, ""); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + db = new GSKOrangeDB(StoreListActivity.this); + db.open(); + + linearlay = (LinearLayout) findViewById(R.id.no_data_lay); + recyclerView = (RecyclerView) findViewById(R.id.drawer_layout_recycle); + + fab = (FloatingActionButton) findViewById(R.id.fab); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent in = new Intent(context, DownloadActivity.class); + startActivity(in); + finish(); + } + }); + + if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + return; + } + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); + } + + deleteIRURl(); + } + + private void deleteIRURl() { + try { + ArrayList irList = db.getIrPDforUpload("44912", visit_date); + if (irList != null && !irList.isEmpty()) { + for (int i = 0; i < irList.size(); i++) { + ArrayList uris = irList.get(i).getImageUris(); + if (uris != null && !uris.isEmpty()) { + for (int k = 0; k < uris.size(); k++) { + CommonUtils.INSTANCE.deleteSpecificImage(this,uris.get(k).getUri()); + CommonUtils.INSTANCE. deleteImage(this,uris.get(k).getUri()); + } + } + } + } + } catch (Exception e) { + e.fillInStackTrace(); + } + } + + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { + GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); + } else { + Toast.makeText(context, getResources().getString(R.string.notsuppoted), Toast.LENGTH_LONG).show(); + finish(); + } + return false; + } + return true; + } + + protected synchronized void buildGoogleApiClient() { + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(context).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); + } + } + + protected void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + @Override + public void onLocationChanged(Location location) { + LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); + + // Toast.makeText(this, " WORKS_lat_lon " + latLng, Toast.LENGTH_LONG).show(); + // updateLocation(latLng); + if (mGoogleApiClient != null) { + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); + } + } + + protected void startLocationUpdates() { + if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mGoogleApiClient != null) { + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); + } + } + } + + public static int distFrom(double lat1, double lng1, double lat2, double lng2) { + double earthRadius = 6371000; //meters + double dLat = Math.toRadians(lat2 - lat1); + double dLng = Math.toRadians(lng2 - lng1); + double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLng / 2) * Math.sin(dLng / 2); + double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + int dist = (int) (earthRadius * c); + + return dist; + } + + @Override + public void onConnected(Bundle bundle) { + /* if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mLastLocation != null) { + lat = mLastLocation.getLatitude(); + lon = mLastLocation.getLongitude(); + + } + startLocationUpdates(); + }*/ + } + + @Override + public void onConnectionFailed(ConnectionResult connectionResult) { + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + } + + protected void onStart() { + super.onStart(); + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + } + + private boolean checkgpsEnableDevice() { + boolean flag = true; + if (!hasGPSDevice(context)) { + Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show(); + } + final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + enableLoc(); + flag = false; + } else if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + flag = true; + } + return flag; + } + + private boolean hasGPSDevice(Context context) { + final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + if (mgr == null) return false; + final List providers = mgr.getAllProviders(); + if (providers == null) return false; + return providers.contains(LocationManager.GPS_PROVIDER); + } + + private void enableLoc() { + LocationRequest locationRequest = LocationRequest.create(); + locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + locationRequest.setInterval(30 * 1000); + locationRequest.setFastestInterval(5 * 1000); + LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest); + builder.setAlwaysShow(true); + if (mGoogleApiClient != null) { + PendingResult result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build()); + result.setResultCallback(new ResultCallback() { + @Override + public void onResult(LocationSettingsResult result) { + final Status status = result.getStatus(); + switch (status.getStatusCode()) { + case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: + try { + // Show the dialog by calling startResolutionForResult(), + // and check the result in onActivityResult(). + status.startResolutionForResult((Activity) context, REQUEST_LOCATION); + } catch (IntentSender.SendIntentException e) { + // Ignore the error. + } + break; + } + } + }); + } + } + + public void GPSAlert() { + AlertDialog.Builder alertDialog = new AlertDialog.Builder(context); + alertDialog.setTitle("GPS IS DISABLED..."); + alertDialog.setMessage("Click ok to enable GPS."); + alertDialog.setCancelable(false); + alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(intent); + dialog.dismiss(); + } + }); + alertDialog.show(); + } + + + protected void onResume() { + // TODO Auto-generated method stub + super.onResume(); + + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + checkgpsEnableDevice(); + + locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 100000).setWaitForAccurateLocation(false).setMinUpdateIntervalMillis(IMPLICIT_MIN_UPDATE_INTERVAL).setMaxUpdateDelayMillis(1000).build(); + + + LocationCallback locationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult != null) { + if (locationResult == null) { + return; + } + //Showing the latitude, longitude and accuracy on the home screen. + for (Location location : locationResult.getLocations()) { + lat = location.getLatitude(); + lon = location.getLongitude(); + // Log.e("latitude_inside",location.getLatitude() + "," +location.getLongitude()); + } + } + } + }; + if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(StoreListActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1); + ActivityCompat.requestPermissions(StoreListActivity.this, new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION}, 2); + } + fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); + + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + //toolbar.setTitle(getString(R.string.title_activity_store_list)); + // Log.e("storeflag",store_flag_str); + db.open(); + if (store_flag_str.equals(CommonString.FROM_JCP)) { + toolbar.setTitle(getString(R.string.title_activity_store_list)); + storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN); + } else if (store_flag_str.equals(CommonString.FROM_ADDITIONAL)) { + //Additional Journey Plan - Egypt + toolbar.setTitle(getString(R.string.title_activity_store_list)); + storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN_ADDITIONAL); + } else if (store_flag_str.equals(CommonString.FROM_PHARMA)) { + //Pharma stores - Turkey + toolbar.setTitle(getString(R.string.title_activity_store_list)); + storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN_PHARMA); + } else if (store_flag_str.equals(CommonString.FROM_ADDITIONAL_ADHOC)) { + //Additional Journey Plan - Egypt + toolbar.setTitle(getString(R.string.title_activity_store_list)); + storelist = db.getStoreData(date, CommonString.KEY_ADHOC_JOURNEYPLAN_ADDITIONAL); + } else { + toolbar.setTitle(getString(R.string.adhoc_store_list)); + storelist = db.getStoreData(date, CommonString.KEY_ADHOC_JOURNEY_PLAN); + //fab.setVisibility(View.GONE); + } + + coverage = db.getCoverageData(date, store_flag_str); + + geoFencingGetterSetters = db.getGeoFencing(country_id); + + + if (storelist.size() > 0) { + //list.setAdapter(new MyAdaptor()); + StatusCompare ratingCompare = new StatusCompare(); + Collections.sort(storelist, ratingCompare); + + adapter = new StoreListActivity.ValueAdapter(context, storelist); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + } else { + + recyclerView.setVisibility(View.INVISIBLE); + linearlay.setVisibility(View.VISIBLE); + if (store_flag_str.equals(CommonString.FROM_JCP)) { + fab.show();//setVisibility(View.VISIBLE); + } + + } + + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + /* @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.sorelist_menu, menu); + + // return true so that the menu pop up is opened + return true; + }*/ + + @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) { + + // NavUtils.navigateUpFromSameTask(this); + finish(); + + + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + } else if (id == R.id.iconMap) { + + Intent in = new Intent(context, StoreListRouteActivity.class); + in.putExtra(CommonString.KEY_STORE_LIST, storelist); + startActivity(in); + } + + return super.onOptionsItemSelected(item); + } + + + private class ValueAdapter extends RecyclerView.Adapter { + private LayoutInflater inflator; + List data = Collections.emptyList(); + + public ValueAdapter(Context context, List data) { + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @NonNull + @Override + public StoreListActivity.ValueAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.storelist_child, parent, false); + return new MyViewHolder(view); + } + + @SuppressLint("SetTextI18n") + @Override + public void onBindViewHolder(final StoreListActivity.ValueAdapter.MyViewHolder viewHolder, final int position) { + final StoreBean current = data.get(position); + if (language.equalsIgnoreCase("TURKISH")) { + viewHolder.chkbtn.setBackgroundResource(R.mipmap.checkout_turkish); + } else { + viewHolder.chkbtn.setBackgroundResource(R.mipmap.checkout); + } + + final String storeid = current.getSTORE_ID(); + final CoverageBean coverageObj = db.getCoverageSpecificData(date, storeid); + + viewHolder.txt.setText(current.getSTORE_NAME() + "(" + current.getSTORE_ID() + ")"); + viewHolder.address.setText(current.getADDRESS()); + + if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_U)) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.tick); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_UN)) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.tick_close); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (current.getCHECKOUT_STATUS().equalsIgnoreCase(CommonString.KEY_Y)) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_P)) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_L)) { + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation_close); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE)) { + + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation_close); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else if (coverageObj.getStatus() != null && coverageObj.getStatus().equalsIgnoreCase(CommonString.KEY_VALID)) { + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + viewHolder.chkbtn.setVisibility(View.VISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.imageview.setVisibility(View.INVISIBLE); + } else if (coverageObj.getStatus() != null && coverageObj.getStatus().equalsIgnoreCase(CommonString.KEY_INVALID)) { + viewHolder.imageview.setVisibility(View.INVISIBLE); + viewHolder.chkbtn.setVisibility(View.GONE); + viewHolder.cancel_btn.setVisibility(View.VISIBLE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.green)); + + } else if (coverageObj.getStatus() != null && coverageObj.getStatus().equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE)) { + + viewHolder.imageview.setVisibility(View.VISIBLE); + viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation_close); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange)); + viewHolder.imageview.setVisibility(View.INVISIBLE); + viewHolder.chkbtn.setVisibility(View.INVISIBLE); + viewHolder.cancel_btn.setVisibility(View.GONE); + } + + if (current.getGEO_TAG().equalsIgnoreCase("N")) { + viewHolder.imgview_navigation.setVisibility(View.INVISIBLE); + } else { + viewHolder.imgview_navigation.setVisibility(View.VISIBLE); + } + + + viewHolder.parent_layout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + store_id = current.getSTORE_ID(); + store_facing_hide = current.getFACING_HIDE(); + storeCurrentObj = current; + + if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_U) || current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_UN)) { + Snackbar.make(v, R.string.title_store_list_activity_store_already_done, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) { + + Snackbar.make(v, R.string.title_store_list_activity_store_data_uploaded, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else if (current.getCHECKOUT_STATUS().equalsIgnoreCase(CommonString.KEY_Y)) { + + Snackbar.make(v, R.string.title_store_list_activity_store_already_checkout, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_P)) { + + Snackbar.make(v, R.string.title_store_list_activity_store_again_uploaded, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_L)) { + Snackbar.make(v, R.string.title_store_list_activity_store_closed, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE)) { + Snackbar.make(v, R.string.title_store_list_activity_already_store_closed, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else if (checkleavestatus(store_id)) { + + Snackbar.make(v, R.string.title_store_list_activity_already_store_closed, Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + } else { + // PUT IN PREFERENCES + if (checkotherCheckedIn(store_flag_str)) { + Snackbar.make(v, getString(R.string.title_store_list_checkout_current) + " - " + from_checkedIn, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } else { + if (!setCheckedMethod(store_id)) { + boolean enteryflag = true; + if (coverage.size() > 0) { + int i; + for (i = 0; i < coverage.size(); i++) { + + if (coverage.get(i).getInTime() != null) { + + if (coverage.get(i).getOutTime() == null) { + if (!store_id.equals(coverage.get(i).getStoreId())) { + Snackbar.make(v, R.string.title_store_list_checkout_current, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + enteryflag = false; + } + break; + } + } + } + } + + if (enteryflag) { + if (store_flag_str.equals(CommonString.FROM_PHARMA) && coverageObj.getStatus() != null && coverageObj.getStatus().equalsIgnoreCase(CommonString.KEY_VALID)) { + Snackbar.make(v, R.string.title_store_list_checkout_Already_filled, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } /*if((store_flag_str.equals(CommonString.FROM_ADDITIONAL_ADHOC) || store_flag_str.equals(CommonString.FROM_ADDITIONAL)) && coverageObj.getStatus()!=null && coverageObj.getStatus().equalsIgnoreCase(CommonString.KEY_VALID)){ + Snackbar.make(v, R.string.title_store_list_checkout_Already_filled, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + }*/ else if (store_flag_str.equals(CommonString.FROM_JCP) || store_flag_str.equals(CommonString.FROM_PHARMA) || store_flag_str.equals(CommonString.FROM_ADDITIONAL_ADHOC) || store_flag_str.equals(CommonString.FROM_ADDITIONAL)) { + showMyDialog(store_id, current.getSTORE_NAME(), "Yes", current.getVISIT_DATE(), current.getCHECKOUT_STATUS(), current.getGEO_TAG(), current); + } else { + if (country_id.equalsIgnoreCase("5") || country_id.equalsIgnoreCase("15") || country_id.equalsIgnoreCase("2") || country_id.equalsIgnoreCase(CommonString.COUNTRY_ID_EGYPT + "")) { + if (!current.getGEO_TAG().equalsIgnoreCase("N")) { + boolean flag = true; + if (coverage.size() > 0) { + for (int i = 0; i < coverage.size(); i++) { + if (store_id.equals(coverage.get(i).getStoreId())) { + flag = false; + break; + } + } + } + boolean flag_entry = true; + int distance = 0; + //geo fencing enabled only if GEO_FENCING equals 1 for COUNTRY_ID + if (flag && geoFencingGetterSetters.size() > 0 && geoFencingGetterSetters.get(0).getGEO_FENCING().get(0).equals("1")) { + distanceGeoPhence = Integer.parseInt(geoFencingGetterSetters.get(0).getDISTANCE_MTR().get(0)); + + double store_lat = Double.parseDouble(current.getLATITUDE()); + double store_lon = Double.parseDouble(current.getLONGITUDE()); + + if (store_lat != 0.0 && store_lon != 0.0) { + distance = distFrom(store_lat, store_lon, lat, lon); + + if (distance > distanceGeoPhence) { + flag_entry = false; + } else { + String msg = getString(R.string.distance_from_the_store) + " " + distance + " meters"; + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } + } + } + + if (flag_entry) { + // Log.e("flag_entrydata","flagdata"); + editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_FLAG, store_flag_str); + editor.putString(CommonString.KEY_STORE_FLAG_FACING_HIDE, current.getFACING_HIDE()); + editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME()); + editor.putString(CommonString.KEY_VISIT_DATE, current.getVISIT_DATE()); + editor.putString(CommonString.KEY_CAMERA_ALLOW, current.getCAMERA_ALLOW()); + editor.putString(CommonString.KEY_CHECKOUT_STATUS, current.getCHECKOUT_STATUS()); + + editor.putString(CommonString.KEY_EMP_ID, current.getEMP_ID()); + editor.putString(CommonString.KEY_GEO_TAG, current.getGEO_TAG()); + editor.putString(CommonString.KEY_KEYACCOUNT_ID, current.getKEYACCOUNT_ID()); + editor.putString(CommonString.KEY_STORETYPE_ID, current.getSTORETYPE_ID()); + editor.putString(CommonString.KEY_CLASS_ID, current.getCLASS_ID()); + + editor.putString(CommonString.KEY_POG_TYPE_ID, current.getPOG_TYPE_ID()); + editor.putString(CommonString.KEY_UPLOAD_STATUS, current.getUPLOAD_STATUS()); + editor.commit(); + + if (!coverageObj.getStatus().equalsIgnoreCase("N")) { + //if(db.isFilledAdhoc(store_id, visit_date)){ + Intent in = new Intent(StoreListActivity.this, StoreWisePerformanceActivity.class); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + new UploadTask(StoreListActivity.this, store_id).execute(); + } + } else { + String msg = getString(R.string.you_need_to_be_in_the_store) + "\n " + getString(R.string.distance_from_the_store) + " - " + distance + " " + getString(R.string.meters); + //dialog.cancel(); + AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(msg).setCancelable(false).setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog1, int id) { + + dialog1.cancel(); + } + }); + + AlertDialog alert = builder.create(); + + alert.show(); + } + + } else { + + editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_FLAG, store_flag_str); + editor.putString(CommonString.KEY_STORE_FLAG_FACING_HIDE, current.getFACING_HIDE()); + editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME()); + editor.putString(CommonString.KEY_VISIT_DATE, current.getVISIT_DATE()); + editor.putString(CommonString.KEY_CAMERA_ALLOW, current.getCAMERA_ALLOW()); + editor.putString(CommonString.KEY_CHECKOUT_STATUS, current.getCHECKOUT_STATUS()); + editor.putString(CommonString.KEY_CLASS_ID, current.getCLASS_ID()); + editor.putString(CommonString.KEY_EMP_ID, current.getEMP_ID()); + editor.putString(CommonString.KEY_GEO_TAG, current.getGEO_TAG()); + editor.putString(CommonString.KEY_KEYACCOUNT_ID, current.getKEYACCOUNT_ID()); + editor.putString(CommonString.KEY_STORETYPE_ID, current.getSTORETYPE_ID()); + editor.putString(CommonString.KEY_POG_TYPE_ID, current.getPOG_TYPE_ID()); + editor.putString(CommonString.KEY_UPLOAD_STATUS, current.getUPLOAD_STATUS()); + editor.commit(); + new UploadTask(StoreListActivity.this, store_id).execute(); + //dialog.cancel(); + } + + } else { + if (coverageObj.getStatus().equals("N")) { + Intent in = new Intent(StoreListActivity.this, StoreimageActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + in.putExtra(CommonString.KEY_STORE_ID, store_id); + in.putExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE, store_facing_hide); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + Snackbar.make(v, R.string.title_store_list_checkout_Already_filled, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + } + } + } + } else { + Snackbar.make(v, R.string.title_store_list_checkout_Already_filled, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + } + } + } + }); + + viewHolder.imgview_navigation.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent in = new Intent(context, StoreRouteActivity.class); + in.putExtra(CommonString.KEY_STORE_LIST, current); + startActivity(in); + } + }); + + viewHolder.cancel_btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelStore(current); + } + }); + + viewHolder.chkbtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + /* String visit_xml = ""; + String onXML = ""; + ArrayList visittypelist = db.getUploadedVisitType(store_id); + + if (visittypelist.size() > 0) { + for (int j = 0; j < visittypelist.size(); j++) { + // Log.e("visit_type_id", String.valueOf(visittypelist.get(j).getVISIT_TYPE_ID())); + if(String.valueOf(visittypelist.get(j).getVISIT_TYPE_ID()).equalsIgnoreCase("[3]")){ + onXML = "[VISIT_TYPE_STATUS]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[STORE_ID]" + store_id + "[/STORE_ID]" + + "[VISIT_TYPE_ID]" + "3" + "[/VISIT_TYPE_ID]" + + "[/VISIT_TYPE_STATUS]"; + } + else if(String.valueOf(visittypelist.get(j).getVISIT_TYPE_ID()).equalsIgnoreCase("[2]")){ + onXML = "[VISIT_TYPE_STATUS]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[STORE_ID]" + store_id + "[/STORE_ID]" + + "[VISIT_TYPE_ID]" + "2" + "[/VISIT_TYPE_ID]" + + "[/VISIT_TYPE_STATUS]"; + } + else{ + onXML = "[VISIT_TYPE_STATUS]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[STORE_ID]" + store_id + "[/STORE_ID]" + + "[VISIT_TYPE_ID]" +"1"+ "[/VISIT_TYPE_ID]" + + "[/VISIT_TYPE_STATUS]"; + } + + visit_xml = visit_xml + onXML; + } + final String sos_xml = "[DATA]" + visit_xml + "[/DATA]"; + Log.e("visit_xml_data", sos_xml); + }*/ + + AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this); + builder.setMessage(R.string.wantcheckout).setCancelable(false).setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + boolean coaching_visit_flag = false; + //Enable disable According to Configuration + ArrayList configurationData = db.getConfigurationMasterData(country_id); + if (configurationData.size() > 0) { + + for (int i = 0; i < configurationData.size(); i++) { + if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("COACHING VISIT") && configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) { + coaching_visit_flag = true; + break; + } + } + } + //} + + //show Coaching visit + if (coaching_visit_flag) { + Intent intent = new Intent(StoreListActivity.this, CoachingVisitActivity.class); + intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + intent.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + startActivity(intent); + finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + if (CheckNetAvailability()) { + Intent i = new Intent(StoreListActivity.this, StoreCheckoutImageActivity.class); + i.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + i.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + startActivity(i); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else { + Snackbar.make(recyclerView, R.string.nonetwork, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + } + } + }).setNegativeButton(R.string.closed, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + }); + + } + + public boolean CheckNetAvailability() { + + boolean connected = false; + ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { + // we are connected to a network + connected = true; + } + return connected; + } + + @Override + public int getItemCount() { + return data.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView txt, address; + ImageView icon; + LinearLayout parent_layout; + ImageView imageview; + ImageView imgview_navigation; + Button chkbtn, cancel_btn; + CardView Cardbtn; + + public MyViewHolder(View itemView) { + super(itemView); + txt = (TextView) itemView.findViewById(R.id.storelistviewxml_storename); + address = (TextView) itemView.findViewById(R.id.storelistviewxml_storeaddress); + + parent_layout = (LinearLayout) itemView.findViewById(R.id.storenamelistview_layout); + //imageview = (ImageView) itemView.findViewById(R.id.imageView2); + + imageview = (ImageView) itemView.findViewById(R.id.storelistviewxml_storeico); + imgview_navigation = (ImageView) itemView.findViewById(R.id.navigate); + + chkbtn = (Button) itemView.findViewById(R.id.chkout); + cancel_btn = (Button) itemView.findViewById(R.id.btn_cancel); + Cardbtn = (CardView) itemView.findViewById(R.id.card_view); + + } + } + + } + + + void showMyDialog(final String storeCd, final String storeName, final String status, final String visitDate, final String checkout_status, final String GeotagStatus, final StoreBean current) { + dialog = new Dialog(this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(R.layout.dialogbox); + final RadioGroup radioGroup = (RadioGroup) dialog.findViewById(R.id.radiogrpvisit); + radioGroup.setOnCheckedChangeListener((group, checkedId) -> { + // find which radio button is selected + if (checkedId == R.id.yes) { + if (GeotagStatus.equalsIgnoreCase("Y")) { + boolean flag = true; + //for test + // boolean flag = false; + if (coverage.size() > 0) { + for (int i = 0; i < coverage.size(); i++) { + if (store_id.equals(coverage.get(i).getStoreId())) { + flag = false; + break; + } + } + } + boolean flag_entry = true; + int distance = 0; + //geo fencing enabled only if GEO_FENCING equals 1 for COUNTRY_ID + if (flag && geoFencingGetterSetters.size() > 0 && geoFencingGetterSetters.get(0).getGEO_FENCING().get(0).equals("1")) { + distanceGeoPhence = Integer.parseInt(geoFencingGetterSetters.get(0).getDISTANCE_MTR().get(0)); + double store_lat = Double.parseDouble(current.getLATITUDE()); + double store_lon = Double.parseDouble(current.getLONGITUDE()); + if (store_lat != 0.0 && store_lon != 0.0) { + distance = distFrom(store_lat, store_lon, lat, lon); + if (distance > distanceGeoPhence) { + flag_entry = false; + } else { + String msg = getString(R.string.distance_from_the_store) + " " + distance + " meters"; + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } + } + } + if (flag_entry) { + editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + editor.putString(CommonString.KEY_STORE_FLAG_FACING_HIDE, current.getFACING_HIDE()); + editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME()); + editor.putString(CommonString.KEY_VISIT_DATE, current.getVISIT_DATE()); + editor.putString(CommonString.KEY_CAMERA_ALLOW, current.getCAMERA_ALLOW()); + editor.putString(CommonString.KEY_CHECKOUT_STATUS, current.getCHECKOUT_STATUS()); + editor.putString(CommonString.KEY_CLASS_ID, current.getCLASS_ID()); + editor.putString(CommonString.KEY_EMP_ID, current.getEMP_ID()); + editor.putString(CommonString.KEY_GEO_TAG, current.getGEO_TAG()); + editor.putString(CommonString.KEY_KEYACCOUNT_ID, current.getKEYACCOUNT_ID()); + editor.putString(CommonString.KEY_STORETYPE_ID, current.getSTORETYPE_ID()); + editor.putString(CommonString.KEY_POG_TYPE_ID, current.getPOG_TYPE_ID()); + editor.putString(CommonString.KEY_UPLOAD_STATUS, current.getUPLOAD_STATUS()); + editor.putString(CommonString.KEY_STORE_FLAG, store_flag_str); + editor.commit(); + + if (flag == true) { + Intent in = new Intent(StoreListActivity.this, StoreimageActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + in.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + in.putExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE, store_facing_hide); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog.cancel(); + } else { + if (store_flag_str.equals(CommonString.FROM_ADDITIONAL) || store_flag_str.equals(CommonString.FROM_ADDITIONAL_ADHOC)) { + dialog.cancel(); + Snackbar.make(recyclerView, R.string.title_store_list_checkout_Already_filled, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } else if (store_flag_str.equals(CommonString.FROM_PHARMA)) { + Intent in = new Intent(StoreListActivity.this, PharmaActivity.class); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog.cancel(); + } else { + Intent in = new Intent(StoreListActivity.this, StoreWisePerformanceActivity.class); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog.cancel(); + } + } + } else { + String msg = getString(R.string.you_need_to_be_in_the_store) + "\n " + getString(R.string.distance_from_the_store) + " - " + distance + " " + getString(R.string.meters); + dialog.cancel(); + AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(msg).setCancelable(false).setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog1, int id) { + + dialog1.cancel(); + } + }); + + AlertDialog alert = builder.create(); + + alert.show(); + } + + } else { + dialog.cancel(); + AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this); + builder.setTitle(getResources().getString(R.string.dialog_title)); + builder.setMessage(R.string.first_geotag_the_store).setCancelable(false).setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog1, int id) { + editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_FLAG_FACING_HIDE, current.getFACING_HIDE()); + editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME()); + editor.putString(CommonString.KEY_VISIT_DATE, current.getVISIT_DATE()); + editor.putString(CommonString.KEY_CAMERA_ALLOW, current.getCAMERA_ALLOW()); + editor.putString(CommonString.KEY_CHECKOUT_STATUS, current.getCHECKOUT_STATUS()); + editor.putString(CommonString.KEY_CLASS_ID, current.getCLASS_ID()); + editor.putString(CommonString.KEY_EMP_ID, current.getEMP_ID()); + editor.putString(CommonString.KEY_GEO_TAG, current.getGEO_TAG()); + editor.putString(CommonString.KEY_KEYACCOUNT_ID, current.getKEYACCOUNT_ID()); + editor.putString(CommonString.KEY_STORETYPE_ID, current.getSTORETYPE_ID()); + editor.putString(CommonString.KEY_POG_TYPE_ID, current.getPOG_TYPE_ID()); + editor.putString(CommonString.KEY_UPLOAD_STATUS, current.getUPLOAD_STATUS()); + editor.putString(CommonString.KEY_STORE_FLAG, store_flag_str); + + editor.commit(); + + Intent in = new Intent(StoreListActivity.this, GeoTagActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + in.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + in.putExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE, store_facing_hide); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog1.cancel(); + } + }); + + AlertDialog alert = builder.create(); + + alert.show(); + + } + + + } else if (checkedId == R.id.no) { + dialog.cancel(); + editor = preferences.edit(); + editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + editor.putString(CommonString.KEY_STORE_FLAG_FACING_HIDE, current.getFACING_HIDE()); + editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME()); + editor.putString(CommonString.KEY_VISIT_DATE, current.getVISIT_DATE()); + editor.putString(CommonString.KEY_CAMERA_ALLOW, current.getCAMERA_ALLOW()); + editor.putString(CommonString.KEY_CHECKOUT_STATUS, current.getCHECKOUT_STATUS()); + editor.putString(CommonString.KEY_CLASS_ID, current.getCLASS_ID()); + editor.putString(CommonString.KEY_EMP_ID, current.getEMP_ID()); + editor.putString(CommonString.KEY_GEO_TAG, current.getGEO_TAG()); + editor.putString(CommonString.KEY_KEYACCOUNT_ID, current.getKEYACCOUNT_ID()); + editor.putString(CommonString.KEY_STORETYPE_ID, current.getSTORETYPE_ID()); + editor.putString(CommonString.KEY_POG_TYPE_ID, current.getPOG_TYPE_ID()); + editor.putString(CommonString.KEY_UPLOAD_STATUS, current.getUPLOAD_STATUS()); + editor.putString(CommonString.KEY_STORE_FLAG, store_flag_str); + editor.commit(); + db.open(); + coverage = db.getCoverageWithStoreID_Data(current.getSTORE_ID(), visitDate); + if (coverage.size() > 0) { + if (coverage.get(0).getStatus().equals(CommonString.KEY_INVALID) || coverage.get(0).getStatus().equals(CommonString.KEY_VALID)) { + AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this); + builder.setMessage(R.string.DELETE_ALERT_MESSAGE).setCancelable(false).setPositiveButton(getResources().getString(R.string.yes), (dialog, id) -> { + UpdateStore(current.getSTORE_ID()); + Intent in = new Intent(StoreListActivity.this, NonWorkingReason.class); + in.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + startActivity(in); + }).setNegativeButton(getResources().getString(R.string.no), (dialog, id) -> dialog.cancel()); + AlertDialog alert = builder.create(); + alert.show(); + } else { + Intent in = new Intent(StoreListActivity.this, NonWorkingReason.class); + in.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + startActivity(in); + } + } else { + Intent in = new Intent(StoreListActivity.this, NonWorkingReason.class); + in.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID()); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + startActivity(in); + } + } + }); + + dialog.show(); + } + + + public boolean setCheckedMethod(String store_cd) { + + boolean result_flag = false; + for (int i = 0; i < coverage.size(); i++) { + if (store_cd.equals(coverage.get(i).getStoreId())) { + if (coverage.get(i).getOutTime() != null) { + result_flag = true; + break; + } + } + } + + return result_flag; + } + + + public void UpdateStore(String storeid) { + try { + db.open(); + db.deleteTableWithStoreID(storeid); + db.updateStoreStatus(storeid, storelist.get(0).getVISIT_DATE(), "N"); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + public boolean checkleavestatus(String store_cd) { + if (coverage.size() > 0) { + for (int i = 0; i < coverage.size(); i++) { + if (store_cd.equals(coverage.get(i).getStoreId())) { + if (coverage.get(i).getStatus().equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE)) { + result_flag = true; + break; + } + } else { + + result_flag = false; + + } + } + } + return result_flag; + } + + void cancelStore(final StoreBean current) { + + CoverageBean coverageData = db.getCoverageSpecificData(date, current.getSTORE_ID()); + if (coverageData.getStatus().equals(CommonString.KEY_INVALID) || coverageData.getStatus().equals(CommonString.KEY_VALID)) { + AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this); + builder.setMessage(R.string.DELETE_ALERT_MESSAGE).setCancelable(false).setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + UpdateStore(current.getSTORE_ID()); + + if (store_flag_str.equals(CommonString.FROM_JCP)) { + storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN); + } else { + storelist = db.getStoreData(date, CommonString.KEY_ADHOC_JOURNEY_PLAN); + } + + coverage = db.getCoverageData(date, store_flag_str); + adapter.notifyDataSetChanged(); + + } + }).setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + + alert.show(); + } + } + + boolean checkotherCheckedIn(String store_flag_str) { + + boolean flag_checked_in = false; + ArrayList other_coverage_list; + + if (store_flag_str.equals(CommonString.FROM_JCP)) { + + if (isCheckedInFromStoreFlag(CommonString.FROM_DEVIATION)) { + from_checkedIn = getString(R.string.adhoc); + return true; + } else if (isCheckedInFromStoreFlag(CommonString.FROM_ADDITIONAL)) { + from_checkedIn = getString(R.string.additional_stores); + return true; + } else if (isCheckedInFromStoreFlag(CommonString.FROM_PHARMA)) { + from_checkedIn = getString(R.string.pharma_stores); + return true; + } + } else if (store_flag_str.equals(CommonString.FROM_ADDITIONAL)) { + + if (isCheckedInFromStoreFlag(CommonString.FROM_JCP)) { + from_checkedIn = getString(R.string.jcp); + return true; + } else if (isCheckedInFromStoreFlag(CommonString.FROM_DEVIATION)) { + from_checkedIn = getString(R.string.adhoc); + return true; + } else if (isCheckedInFromStoreFlag(CommonString.FROM_PHARMA)) { + from_checkedIn = getString(R.string.pharma_stores); + return true; + } + } else if (store_flag_str.equals(CommonString.FROM_PHARMA)) { + + if (isCheckedInFromStoreFlag(CommonString.FROM_JCP)) { + from_checkedIn = getString(R.string.jcp); + return true; + } else if (isCheckedInFromStoreFlag(CommonString.FROM_DEVIATION)) { + from_checkedIn = getString(R.string.adhoc); + return true; + } else if (isCheckedInFromStoreFlag(CommonString.FROM_ADDITIONAL)) { + from_checkedIn = getString(R.string.additional_stores); + return true; + } + } else { + if (isCheckedInFromStoreFlag(CommonString.FROM_JCP)) { + from_checkedIn = getString(R.string.jcp); + return true; + } else if (isCheckedInFromStoreFlag(CommonString.FROM_ADDITIONAL)) { + from_checkedIn = getString(R.string.additional_stores); + return true; + } + } + + return flag_checked_in; + } + + boolean isCheckedInFromStoreFlag(String flagFromStore) { + boolean flag = false; + + ArrayList other_coverage_list; + + other_coverage_list = db.getCoverageData(date, flagFromStore); + + for (int i = 0; i < other_coverage_list.size(); i++) { + if (other_coverage_list.get(i).getStatus().equalsIgnoreCase(CommonString.KEY_INVALID) || other_coverage_list.get(i).getStatus().equalsIgnoreCase(CommonString.KEY_VALID)) { + flag = true; + break; + } + } + + return flag; + } + + class Data { + int value; + String name; + } + + private class UploadTask extends AsyncTask { + private Context context; + String storeId; + + UploadTask(Context context, String storeId) { + this.context = context; + this.storeId = storeId; + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + dialog = new Dialog(context); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.setContentView(R.layout.custom_dialog_progress); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + pb.getProgressDrawable().setColorFilter(getResources().getColor(R.color.colorPrimaryDark), android.graphics.PorterDuff.Mode.SRC_IN); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + protected String doInBackground(Void... voids) { + try { + + boolean no_jcp_flag = false; + + String resultHttp = ""; + data = new Data(); + + data.value = 10; + data.name = "JCP " + getResources().getString(R.string.download_data); + publishProgress(data); + + XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + // MAPPING_STOCK_ADHOC + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", storeId); + request.addProperty("Type", "MAPPING_STOCK_ADHOC"); + request.addProperty("cultureid", culture_id); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope); + + Object result = envelope.getResponse(); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingStockGetterSetter = XMLHandlers.mappingStockXMLHandler(xpp, eventType); + + String stocktable = mappingStockGetterSetter.getTable_MAPPING_STOCK(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + //TableBean.setMappingStock(stocktable); + + } + + if (mappingStockGetterSetter.getSKU_ID().size() > 0) { + data.value = 45; + data.name = "MAPPING_STOCK_ADHOC " + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_STOCK"; + } + + } + publishProgress(data); + + // MAPPING_T2P_ADHOC + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", storeId); + request.addProperty("Type", "MAPPING_T2P_ADHOC"); + 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(); + mappingt2PGetterSetter = XMLHandlers.mappingT2pXMLHandler(xpp, eventType); + + String t2ptable = mappingt2PGetterSetter.getTable_MAPPING_T2P(); + if (t2ptable != null) { + resultHttp = CommonString.KEY_SUCCESS; + //TableBean.setMappingT2p(t2ptable); + + } + + if (mappingt2PGetterSetter.getSTORE_ID().size() > 0) { + data.value = 50; + data.name = "MAPPING_T2P_ADHOC " + getResources().getString(R.string.download_data); + + } else { + //return "MAPPING_T2P"; + } + + } + publishProgress(data); + + + // MAPPING_PROMOTION_ADHOC + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", storeId); + request.addProperty("Type", "MAPPING_PROMOTION_ADHOC"); + 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(); + mappingPromotionGetterSetter = XMLHandlers.mappingPromotionXMLHandler(xpp, eventType); + + String mapping_promotion_table = mappingPromotionGetterSetter.getTable_MAPPING_PROMOTION(); + if (mapping_promotion_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + //TableBean.setMappingPromotion(mapping_promotion_table); + } + + if (mappingPromotionGetterSetter.getSTORE_ID().size() > 0) { + data.value = 75; + data.name = "MAPPING_PROMOTION_ADHOC " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //Gagan start code + + // MAPPING_ADDITIONAL_PROMOTION_ADHOC + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", storeId); + request.addProperty("Type", "MAPPING_ADDITIONAL_PROMOTION_ADHOC"); + 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(); + mapping_additional_promotion_masterGetterSetter = XMLHandlers.mappingAdditionalPromotionXMLHandler(xpp, eventType); + + //if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) { + String mapping_additional_promotion_table = mapping_additional_promotion_masterGetterSetter.getTable_MAPPING_ADDITIONAL_PROMOTION(); + if (mapping_additional_promotion_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingAdditionalPromotion(mapping_additional_promotion_table); + } + + if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) { + data.value = 80; + data.name = "MAPPING_ADDITIONAL_PROMOTION_ADHOC " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //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_REVISED"); + 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(); + store_performance_masterGetterSetter = XMLHandlers.STORE_PERFORMANCEXMLHandler(xpp, eventType); + + String table_store_performace = store_performance_masterGetterSetter.getTable_STORE_PERFORMANCE(); + if (table_store_performace != null) { + resultHttp = CommonString.KEY_SUCCESS; + //TableBean.setStorePerformance(table_store_performace); + } + + if (store_performance_masterGetterSetter.getSTORE_ID().size() > 0) { + data.value = 85; + data.name = "STORE_PERFORMANCE_NEW_ADHOC Data Download"; + } else { + //return "STORE_PERFORMANCE"; + } + + } + publishProgress(data); + + + //MAPPING_PLANOGRAM_ADHOC + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", storeId); + request.addProperty("Type", "MAPPING_PLANOGRAM_ADHOC"); + 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(); + mapping_planogram_masterGetterSetter = XMLHandlers.MAPPING_PLANOGRAM_XMLHandler(xpp, eventType); + + String table_mapping_planogram = mapping_planogram_masterGetterSetter.getTable_MAPPING_PLANOGRAM(); + if (table_mapping_planogram != null) { + resultHttp = CommonString.KEY_SUCCESS; + //TableBean.setMappingPlanogram(table_mapping_planogram); + + } + if (mapping_planogram_masterGetterSetter.getKEYACCOUNT_ID().size() > 0) { + data.value = 92; + data.name = "MAPPING_PLANOGRAM Data Download"; + } else { + //return "MAPPING_PLANOGRAM"; + } + } + publishProgress(data); + + + // MAPPING_SOS_TARGET_ADHOC + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", storeId); + request.addProperty("Type", "MAPPING_SOS_TARGET_ADHOC"); + 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(); + mapping_sos_target_masterGetterSetter = XMLHandlers.MAPPING_SOS_TARGETXMLHandler(xpp, eventType); + + //if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) { + String table_mapping_sos_target = mapping_sos_target_masterGetterSetter.getTable_MAPPING_SOS_TARGET(); + if (table_mapping_sos_target != null) { + resultHttp = CommonString.KEY_SUCCESS; + //TableBean.setMappingSosTarget(table_mapping_sos_target); + } + + if (mapping_sos_target_masterGetterSetter.getSTORE_ID().size() > 0) { + data.value = 95; + data.name = "MAPPING_SOS_TARGET_ADHOC " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + + //NO_CAMERA_LAST_VISIT_DATA_ADHOC + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", storeId); + request.addProperty("Type", "NO_CAMERA_LAST_VISIT_DATA_ADHOC"); + 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(); + noCameraLastVisitGetterSetter = XMLHandlers.noCameraLastVisitXMLHandler(xpp, eventType); + + String table_no_camera = noCameraLastVisitGetterSetter.getTable_NO_CAMERA_LAST_VISIT_DATA(); + if (table_no_camera != null) { + resultHttp = CommonString.KEY_SUCCESS; + //TableBean.setTable_NO_CAMERA_LAST_VISIT_DATA(table_no_camera); + } + + if (noCameraLastVisitGetterSetter.getSKUGROUP_ID().size() > 0) { + data.value = 97; + data.name = "NO CAMERA LAST VISIT DATA" + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + + //Images DownLoads + + //MAPPING_PLANOGRAM Image save into folder + if (mapping_planogram_masterGetterSetter != null) { + + for (int i = 0; i < mapping_planogram_masterGetterSetter.getIMAGE_PATH().size(); i++) { + //publishing image download + + if (data.value < 100) { + data.value = data.value + 1; + publishProgress(data); + } + + String image_name = mapping_planogram_masterGetterSetter.getPLANOGRAM_IMAGE().get(i); + String path = mapping_planogram_masterGetterSetter.getIMAGE_PATH().get(i); + + String PATH = CommonString.getDownloadedImageFolder(context); + File file = new File(PATH); + if (!file.isDirectory()) { + file.mkdir(); + } + + 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(); + c.setRequestMethod("GET"); + c.getResponseCode(); + c.connect(); + + if (c.getResponseCode() == 200) { + int length = c.getContentLength(); + + String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB"; + + //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/"; + + // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1; + if (!size.equalsIgnoreCase("0 KB")) { + File outputFile = new File(file, image_name); + FileOutputStream fos = new FileOutputStream(outputFile); + InputStream is1 = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is1.read(buffer)) != -1) { + bytes = (bytes + len1); + // data.value = (int) ((double) (((double) + // bytes) / length) * 100); + fos.write(buffer, 0, len1); + } + fos.close(); + is1.close(); + } + } + } + } + } + } + + //Gagan end code + + //Display Master Image save into folder + if (displayMasterGetterSetter != null) { + + for (int i = 0; i < displayMasterGetterSetter.getIMAGE_URL().size(); i++) { + //publishing image download + + if (data.value < 100) { + data.value = data.value + 1; + publishProgress(data); + } + + String image_name = displayMasterGetterSetter.getIMAGE_URL().get(i); + String img_url = displayMasterGetterSetter.getIMAGE_PATH().get(i); + + String PATH = CommonString.getDownloadedImageFolder(context); + File file = new File(PATH); + if (!file.isDirectory()) { + file.mkdir(); + } + + if (!new File(PATH + image_name).exists()) { + if (!img_url.equalsIgnoreCase("") && !image_name.equalsIgnoreCase("")) { + URL url = new URL(img_url + image_name); + HttpURLConnection c = (HttpURLConnection) url.openConnection(); + c.setRequestMethod("GET"); + c.getResponseCode(); + c.connect(); + + if (c.getResponseCode() == 200) { + int length = c.getContentLength(); + + String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB"; + + //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/"; + + + // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1; + if (!size.equalsIgnoreCase("0 KB")) { + File outputFile = new File(file, image_name); + FileOutputStream fos = new FileOutputStream(outputFile); + InputStream is1 = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is1.read(buffer)) != -1) { + bytes = (bytes + len1); + // data.value = (int) ((double) (((double) + // bytes) / length) * 100); + fos.write(buffer, 0, len1); + } + fos.close(); + is1.close(); + } + } + } + } + + + } + } + + + //MAPPING_PLANOGRAM_STORE_WISE Image save into folder + if (mappingPlanogramStorewiseGetterSetter != null) { + + for (int i = 0; i < mappingPlanogramStorewiseGetterSetter.getIMAGE_PATH().size(); i++) { + //publishing image download + + if (data.value < 100) { + data.value = data.value + 1; + publishProgress(data); + } + + String image_name = mappingPlanogramStorewiseGetterSetter.getPLANOGRAM_IMAGE().get(i); + String path = mappingPlanogramStorewiseGetterSetter.getIMAGE_PATH().get(i); + + String PATH = CommonString.getDownloadedImageFolder(context); + File file = new File(PATH); + if (!file.isDirectory()) { + file.mkdir(); + } + + 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(); + c.setRequestMethod("GET"); + c.getResponseCode(); + c.connect(); + + if (c.getResponseCode() == 200) { + int length = c.getContentLength(); + + String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB"; + + //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/"; + + // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1; + if (!size.equalsIgnoreCase("0 KB")) { + File outputFile = new File(file, image_name); + FileOutputStream fos = new FileOutputStream(outputFile); + InputStream is1 = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is1.read(buffer)) != -1) { + bytes = (bytes + len1); + // data.value = (int) ((double) (((double) + // bytes) / length) * 100); + fos.write(buffer, 0, len1); + } + fos.close(); + is1.close(); + } + } + } + } + } + } + + db.open(); + db.createTable(mappingStockGetterSetter.getTable_MAPPING_STOCK()); + db.createTable(mappingt2PGetterSetter.getTable_MAPPING_T2P()); + db.createTable(mappingPromotionGetterSetter.getTable_MAPPING_PROMOTION()); + db.createTable(mapping_additional_promotion_masterGetterSetter.getTable_MAPPING_ADDITIONAL_PROMOTION()); + db.createTable(mapping_planogram_masterGetterSetter.getTable_MAPPING_PLANOGRAM()); + db.createTable(mapping_sos_target_masterGetterSetter.getTable_MAPPING_SOS_TARGET()); + db.createTable(noCameraLastVisitGetterSetter.getTable_NO_CAMERA_LAST_VISIT_DATA()); + db.createTable(store_performance_masterGetterSetter.getTable_STORE_PERFORMANCE()); + + db.InsertAdhocFilled(storeId, visit_date); + db.InsertMAPPING_T2P(mappingt2PGetterSetter, CommonString.TABLE_MAPPING_T2P_ADHOC); + db.InsertMappingStock(mappingStockGetterSetter, CommonString.TABLE_MAPPING_STOCK_ADHOC); + db.InsertMAPPING_PROMOTION(mappingPromotionGetterSetter, CommonString.TABLE_MAPPING_PROMOTION_ADHOC); + db.InsertMAPPING_ADDITIONAL_PROMOTION(mapping_additional_promotion_masterGetterSetter, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC); + db.InsertSTORE_PERFORMANCE(store_performance_masterGetterSetter, CommonString.TABLE_STORE_PERFORMANCE_NEW_ADHOC); + db.InsertMAPPING_PLANOGRAM(mapping_planogram_masterGetterSetter, CommonString.TABLE_MAPPING_PLANOGRAM_ADHOC); + db.InsertMAPPING_SOS_TARGET(mapping_sos_target_masterGetterSetter, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC); + db.InsertNO_CAMERA_LAST_VISIT_DATA(noCameraLastVisitGetterSetter, CommonString.TABLE_NO_CAMERA_LAST_VISIT_DATA_ADHOC); + } catch (MalformedURLException e) { + ResultFlag = false; + str = CommonString.MESSAGE_EXCEPTION; + return CommonString.MESSAGE_EXCEPTION; + } catch (SocketTimeoutException e) { + ResultFlag = false; + str = CommonString.MESSAGE_SOCKETEXCEPTION; + return CommonString.MESSAGE_SOCKETEXCEPTION; + } catch (InterruptedIOException e) { + + ResultFlag = false; + str = CommonString.MESSAGE_EXCEPTION; + return CommonString.MESSAGE_EXCEPTION; + + } catch (IOException e) { + + ResultFlag = false; + str = CommonString.MESSAGE_SOCKETEXCEPTION; + return CommonString.MESSAGE_SOCKETEXCEPTION; + } catch (XmlPullParserException e) { + ResultFlag = false; + str = CommonString.MESSAGE_XmlPull; + return CommonString.MESSAGE_XmlPull; + } catch (Exception e) { + //Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + ResultFlag = false; + str = CommonString.MESSAGE_EXCEPTION; + + return CommonString.MESSAGE_EXCEPTION; + } + + if (ResultFlag) { + return ""; + } else { + return str; + } + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + } + + @Override + protected void onPostExecute(String s) { + super.onPostExecute(s); + if (s.equalsIgnoreCase("")) { + dialog.dismiss(); + showAlert(getString(R.string.data_downloaded_successfully), true); + } else { + dialog.dismiss(); + showAlert(getString(R.string.datanotfound) + " " + s, false); + } + } + } + + public void showAlert(String str, final boolean flag) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false).setPositiveButton(R.string.ok, (dialog, id) -> { + if (flag) { + if (storeCurrentObj != null) { + if (storeCurrentObj.getGEO_TAG().equalsIgnoreCase("N")) { + //If store is not geotagged + AlertDialog.Builder builder1 = new AlertDialog.Builder(StoreListActivity.this); + builder1.setTitle(getResources().getString(R.string.dialog_title)); + builder1.setMessage(R.string.first_geotag_the_store).setCancelable(false).setPositiveButton(getResources().getString(R.string.ok), (dialog1, id1) -> { + Intent in = new Intent(StoreListActivity.this, GeoTagActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + in.putExtra(CommonString.KEY_STORE_ID, store_id); + in.putExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE, store_facing_hide); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog1.cancel(); + }); + AlertDialog alert = builder1.create(); + alert.show(); + } else { + if (country_id.equals("2") && store_flag_str.equals(CommonString.FROM_DEVIATION)) { + Intent in = new Intent(StoreListActivity.this, VisitTypeStatusActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + in.putExtra(CommonString.KEY_STORE_ID, store_id); + in.putExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE, store_facing_hide); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog.cancel(); + } else { + Intent in = new Intent(StoreListActivity.this, StoreimageActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + in.putExtra(CommonString.KEY_STORE_ID, store_id); + in.putExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE, store_facing_hide); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + dialog.cancel(); + } + } + } + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } +} + + + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreimageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreimageActivity.java new file mode 100644 index 0000000..e0c0f5c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreimageActivity.java @@ -0,0 +1,1042 @@ +package cpm.com.gskmtorange.dailyentry; + +import static com.google.android.gms.location.LocationRequest.Builder.IMPLICIT_MIN_UPDATE_INTERVAL; + +import android.Manifest; +import android.app.AlertDialog; +import android.app.Dialog; +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.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Matrix; +import android.graphics.RectF; +import android.location.Location; +import android.location.LocationManager; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.os.Looper; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.provider.Settings; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.Priority; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InterruptedIOException; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.net.SocketTimeoutException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.gsk_dailyentry.StoreWisePerformanceActivity; +import cpm.com.gskmtorange.pharma_stores.PharmaActivity; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler; + +/** + * Created by ashishc on 31-05-2016. + */ +public class StoreimageActivity extends AppCompatActivity implements View.OnClickListener, + GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { + + String gallery_package = ""; + Uri outputFileUri; + private Context context; + ImageView img_cam, img_clicked; + Button btn_save; + private Dialog dialog; + private TextView percentage, message; + private ProgressBar pb; + private FailureGetterSetter failureGetterSetter = null; + String _pathforcheck, _path, str; + + String store_id, visit_date, username, intime, date, _UserId, store_flag_str, country_id, keyAccount_id, class_id, storeType_id; + private SharedPreferences preferences; + AlertDialog alert; + String img_str, strflag; + private GSKOrangeDB database; + + double lat, lon; + GoogleApiClient mGoogleApiClient; + ArrayList coverage_list; + Toolbar toolbar; + boolean ResultFlag = true; + ArrayList coverage = new ArrayList(); + String VISIT_TYPE_ID = ""; + LocationManager locationManager; + boolean enabled; + private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; + private LocationRequest mLocationRequest; + private static int UPDATE_INTERVAL = 500; // 5 sec + private static int FATEST_INTERVAL = 100; // 1 sec + private static int DISPLACEMENT = 5; // 10 meters + private Location mLastLocation; + + private static final String TAG = StoreimageActivity.class.getSimpleName(); + + //New Changes + private FusedLocationProviderClient fusedLocationProviderClient; + LocationRequest locationRequest; + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_storeimage); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + img_cam = (ImageView) findViewById(R.id.img_selfie); + img_clicked = (ImageView) findViewById(R.id.img_cam_selfie); + btn_save = (Button) findViewById(R.id.btn_save_selfie); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + date = preferences.getString(CommonString.KEY_DATE, null); + username = preferences.getString(CommonString.KEY_USERNAME, null); + _UserId = preferences.getString(CommonString.KEY_USERNAME, ""); + intime = preferences.getString(CommonString.KEY_STORE_IN_TIME, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + keyAccount_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, ""); + class_id = preferences.getString(CommonString.KEY_CLASS_ID, ""); + storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, ""); + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + VISIT_TYPE_ID = getIntent().getStringExtra("VISIT_TYPE_ID"); + // Log.e("visittypeid",VISIT_TYPE_ID); + + // str = CommonString.getImagesFolder(context); + str = CommonString.getImagesFolder(this); + database = new GSKOrangeDB(this); + database.open(); + + coverage_list = database.getCoverageData(date, store_flag_str); + + img_cam.setOnClickListener(this); + img_clicked.setOnClickListener(this); + btn_save.setOnClickListener(this); + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + createLocationRequest(); + } + + locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + enabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); + + if (!enabled) { + AlertDialog.Builder alertDialog = new AlertDialog.Builder( + StoreimageActivity.this); + + // Setting Dialog Title + alertDialog.setTitle(getResources().getString(R.string.gps)); + + // Setting Dialog Message + alertDialog.setMessage(getResources().getString(R.string.gpsebale)); + + // Setting Positive "Yes" Button + alertDialog.setPositiveButton(getResources().getString(R.string.yes), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + Intent intent = new Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(intent); + } + }); + + // Setting Negative "NO" Button + alertDialog.setNegativeButton(getResources().getString(R.string.no), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // Write your code here to invoke NO event + + dialog.cancel(); + finish(); + } + }); + + // Showing Alert Message + alertDialog.show(); + + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API) + .build(); + } + + if (Build.VERSION.SDK_INT >= 23 && + ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && + ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + return; + } + } + + @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) { + // NavUtils.navigateUpFromSameTask(this); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + return super.onOptionsItemSelected(item); + } + + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil + .isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { + GooglePlayServicesUtil.getErrorDialog(resultCode, this, + PLAY_SERVICES_RESOLUTION_REQUEST).show(); + } else { + Toast.makeText(context, getResources().getString(R.string.notsuppoted), Toast.LENGTH_LONG).show(); + finish(); + } + return false; + } + return true; + } + + protected synchronized void buildGoogleApiClient() { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API).build(); + } + + + protected void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + protected void startLocationUpdates() { + + + if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); + + } + + } + + /** + * Stopping location updates + */ + protected void stopLocationUpdates() { + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); + } + + @Override + public void onConnected(Bundle bundle) { + + /*if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } + mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); + + if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mLastLocation != null) { + lat = mLastLocation.getLatitude(); + lon = mLastLocation.getLongitude(); + + } + } + + + // if (mRequestingLocationUpdates) { + startLocationUpdates();*/ + // } + + // startLocationUpdates(); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + + @Override + public void onConnectionFailed(ConnectionResult connectionResult) { + Log.i(TAG, "Connection failed: ConnectionResult.getErrorCode() = " + connectionResult.getErrorCode()); + } + + + protected void onStart() { + super.onStart();// ATTENTION: This was auto-generated to implement the App Indexing API. +// See https://g.co/AppIndexing/AndroidStudio for more information. + //client.connect(); + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + // ATTENTION: This was auto-generated to implement the App Indexing API. + // See https://g.co/AppIndexing/AndroidStudio for more information. + // AppIndex.AppIndexApi.start(client, getIndexApiAction()); + } + + + @Override + protected void onStop() { + super.onStop();// ATTENTION: This was auto-generated to implement the App Indexing API. +// See https://g.co/AppIndexing/AndroidStudio for more information. + // AppIndex.AppIndexApi.end(client, getIndexApiAction()); + /* if (mGoogleApiClient.isConnected()) { + mGoogleApiClient.disconnect(); + }*/ + // ATTENTION: This was auto-generated to implement the App Indexing API. + // See https://g.co/AppIndexing/AndroidStudio for more information. + //client.disconnect(); + } + + @Override + protected void onPause() { + super.onPause(); + //stopLocationUpdates(); + } + + @Override + public void onBackPressed() { + /*Intent i = new Intent(this, DailyEntryScreen.class); + startActivity(i);*/ + + super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + + public File saveBitmapToFileSmaller(File file) { + File file2 = file; + try { + int inWidth = 0; + int inHeight = 0; + + InputStream in = new FileInputStream(file2); + // decode image size (decode metadata only, not the whole image) + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeStream(in, null, options); + in.close(); + in = null; + + // save width and height + inWidth = options.outWidth; + inHeight = options.outHeight; + + // decode full image pre-resized + in = new FileInputStream(file2); + options = new BitmapFactory.Options(); + // calc rough re-size (this is no exact resize) + options.inSampleSize = Math.max(inWidth / 1632, inHeight / 1224); + // decode full image + Bitmap roughBitmap = BitmapFactory.decodeStream(in, null, options); + + // calc exact destination size + Matrix m = new Matrix(); + RectF inRect = new RectF(0, 0, roughBitmap.getWidth(), roughBitmap.getHeight()); + RectF outRect = new RectF(0, 0, 1632, 1224); + m.setRectToRect(inRect, outRect, Matrix.ScaleToFit.CENTER); + float[] values = new float[9]; + m.getValues(values); + // resize bitmap + Bitmap resizedBitmap = Bitmap.createScaledBitmap(roughBitmap, (int) (roughBitmap.getWidth() * values[0]), (int) (roughBitmap.getHeight() * values[4]), true); + // save image + FileOutputStream out = new FileOutputStream(file2); + resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 80, out); + + } catch (Exception e) { + Log.e("Image", e.toString(), e); + return file; + } + return file2; + } + + public File saveBitmapToFile(File file) { + try { + + // BitmapFactory options to downsize the image + BitmapFactory.Options o = new BitmapFactory.Options(); + o.inJustDecodeBounds = true; + o.inSampleSize = 6; + // factor of downsizing the image + + FileInputStream inputStream = new FileInputStream(file); + //Bitmap selectedBitmap = null; + BitmapFactory.decodeStream(inputStream, null, o); + inputStream.close(); + + // The new size we want to scale to + final int REQUIRED_SIZE = 75; + + // Find the correct scale value. It should be the power of 2. + int scale = 1; + while (o.outWidth / scale / 2 >= REQUIRED_SIZE && + o.outHeight / scale / 2 >= REQUIRED_SIZE) { + scale *= 2; + } + + BitmapFactory.Options o2 = new BitmapFactory.Options(); + o2.inSampleSize = scale; + inputStream = new FileInputStream(file); + + Bitmap selectedBitmap = BitmapFactory.decodeStream(inputStream, null, o2); + inputStream.close(); + + // here i override the original image file + //file.createNewFile(); + FileOutputStream outputStream = new FileOutputStream(file); + + selectedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); + + return file; + } catch (Exception e) { + return null; + } + } + + @Override + public void onClick(View v) { + + int id = v.getId(); + + switch (id) { + + case R.id.img_cam_selfie: + + _pathforcheck = store_id + "SI_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + + _path = str + _pathforcheck; + + intime = CommonFunctions.getCurrentTimeWithLanguage(context); + + startCameraActivity(); + + break; + + case R.id.btn_save_selfie: + if (img_str != null) { + AlertDialog.Builder builder = new AlertDialog.Builder(StoreimageActivity.this); + builder.setMessage(getResources().getString(R.string.title_activity_save_data)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + alert.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); + String status; +//if (store_flag_str.equals(CommonString.FROM_JCP) || country_id.equalsIgnoreCase("5") || country_id.equalsIgnoreCase(CommonString.COUNTRY_ID_EGYPT +"") +// || store_flag_str.equals(CommonString.FROM_ADDITIONAL) || store_flag_str.equals(CommonString.FROM_PHARMA)) { + if (store_flag_str.equals(CommonString.FROM_JCP) || country_id.equalsIgnoreCase("5") || country_id.equalsIgnoreCase("15") + || store_flag_str.equals(CommonString.FROM_PHARMA)) { + status = CommonString.KEY_INVALID; + } else { + if (VISIT_TYPE_ID != null) { + if (country_id.equals("2") && (VISIT_TYPE_ID.equals("1") || VISIT_TYPE_ID.equals("3"))) { + status = CommonString.KEY_INVALID; + } else { + status = CommonString.KEY_VALID; + } + } else { + status = CommonString.KEY_VALID; + } + + } + CoverageBean cdata = new CoverageBean(); + cdata.setStoreId(store_id); + cdata.setVisitDate(visit_date); + cdata.setUserId(username); + cdata.setInTime(intime); + cdata.setReason(""); + cdata.setReasonid("0"); + cdata.setLatitude(lat + ""); + cdata.setLongitude(lon + ""); + cdata.setImage(img_str); + cdata.setSub_reasonId("0"); + cdata.setRemark(""); + cdata.setStatus(status); + cdata.setCheckOut_Image(""); + cdata.setFlag_from(store_flag_str); + + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + cdata.setKeyAccountId("0"); + cdata.setStoreTypeId("0"); + cdata.setClassId("0"); + } else { + cdata.setKeyAccountId(keyAccount_id); + cdata.setStoreTypeId(storeType_id); + cdata.setClassId(class_id); + } + + database.open(); + database.InsertCoverageData(cdata); + String table; + if (store_flag_str.equals(CommonString.FROM_JCP)) { + table = CommonString.KEY_JOURNEY_PLAN; + } else if (store_flag_str.equals(CommonString.FROM_ADDITIONAL)) { + table = CommonString.KEY_JOURNEY_PLAN_ADDITIONAL; + } else if (store_flag_str.equals(CommonString.FROM_PHARMA)) { + table = CommonString.KEY_JOURNEY_PLAN_PHARMA; + } else if (store_flag_str.equals(CommonString.FROM_ADDITIONAL_ADHOC)) { + table = CommonString.KEY_ADHOC_JOURNEYPLAN_ADDITIONAL; + } else { + table = CommonString.KEY_ADHOC_JOURNEY_PLAN; + } + + database.updateCheckoutStatus(store_id, status, table); + + /* SharedPreferences.Editor editor = preferences.edit(); + + editor.putString(CommonString.KEY_STOREVISITED_STATUS, ""); + editor.putString(CommonString.KEY_STORE_IN_TIME, ""); + + editor.commit();*/ + + + //Intent in = new Intent(StoreimageActivity.this, CategoryListActivity.class); + new GeoTagUpload(StoreimageActivity.this).execute(); + + } + }) + .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + + alert = builder.create(); + alert.show(); + + } else { + Toast.makeText(context, getResources().getString(R.string.clickimage), Toast.LENGTH_SHORT).show(); + } + break; + } + } + + protected void startCameraActivity() { + try { + /*Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + Uri outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file); + + Intent intent = new Intent( + MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + + startActivityForResult(intent, 0);*/ + + Log.i("MakeMachine", "startCameraActivity()"); + File file = new File(_path); + + //android.os.FileUriExposedException: file:///storage/emulated/0/.GSK_MT_ORANGE_IMAGES/15024SI_01022019_120426.jpg exposed beyond app through ClipData.Item.getUri() + //outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file); + + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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: + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + try { + Bitmap bmp = BitmapFactory.decodeFile(str + _pathforcheck); + img_cam.setImageBitmap(bmp); + } catch (OutOfMemoryError ex) { + CommonFunctions.setScaledImage(img_cam, str + _pathforcheck); + } + + img_clicked.setVisibility(View.GONE); + img_cam.setVisibility(View.VISIBLE); + + img_str = _pathforcheck; + _pathforcheck = ""; + } + } + break; + } + super.onActivityResult(requestCode, resultCode, data); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE) + || preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_EGYPT)) { + cdate = arabicToenglish(cdate); + } + + return cdate; + } + + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(R.string.title_activity_store_image); + + // Resuming the periodic location updates + if (mGoogleApiClient.isConnected()) { + startLocationUpdates(); + } + if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(StoreimageActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1); + ActivityCompat.requestPermissions(StoreimageActivity.this, new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION}, 2); + } + + locationRequest= new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 100000) + .setWaitForAccurateLocation(false) + .setMinUpdateIntervalMillis(IMPLICIT_MIN_UPDATE_INTERVAL) + .setMaxUpdateDelayMillis(1000) + .build(); + + LocationCallback locationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult != null) { + if (locationResult == null) { + return; + } + //Showing the latitude, longitude and accuracy on the home screen. + for (Location location : locationResult.getLocations()) { + lat = location.getLatitude(); + lon = location.getLongitude(); + } + } + } + }; + fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); + + } + + + + /*protected void onStart() { + mGoogleApiClient.connect(); + super.onStart(); + } + + protected void onStop() { + mGoogleApiClient.disconnect(); + super.onStop(); + }*/ + + + @Override + public void onLocationChanged(Location location) { + + } + + public class GeoTagUpload extends AsyncTask { + + private Context context; + + GeoTagUpload(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getResources().getString(R.string.dialog_title)); + dialog.setCancelable(false); + dialog.show(); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected String doInBackground(Void... params) { + try { + GSKOrangeDB db = new GSKOrangeDB(StoreimageActivity.this); + db.open(); + + coverage = db.getCoverageWithStoreID_Data(store_id, visit_date); + + // uploading Geotag + + SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + String service; + + if (coverage.get(0).getFlag_from().equals(CommonString.FROM_ADDITIONAL)) { + service = CommonString.METHOD_UPLOAD_CURRENT_DATA_ADDITIONAL; + } else if (coverage.get(0).getFlag_from().equals(CommonString.FROM_PHARMA)) { + service = CommonString.METHOD_UPLOAD_CURRENT_DATA_PHARMA; + } else { + service = CommonString.METHOD_UPLOAD_CURRENT_DATA; + } + String current_xml = ""; + + if (coverage.size() > 0) { + + //for (int i = 0; i < coverage.size(); i++) { + + String onXML = "[Coverage_Intime][USER_ID]" + + _UserId + + "[/USER_ID]" + + "[STORE_ID]" + + coverage.get(0).getStoreId() + + "[/STORE_ID]" + + "[VISIT_DATE]" + + coverage.get(0).getVisitDate() + + "[/VISIT_DATE]" + + "[IN_TIME]" + + coverage.get(0).getInTime() + + "[/IN_TIME]" + + "[LATITUDE]" + + coverage.get(0).getLatitude() + + "[/LATITUDE]" + + "[LONGITUDE ]" + + coverage.get(0).getLongitude() + + "[/LONGITUDE ]" + + "[REASON_ID]" + + coverage.get(0).getReasonid() + + "[/REASON_ID]" + + "[REMARK]" + + coverage.get(0).getReason() + + "[/REMARK][/Coverage_Intime]"; + + //current_xml = current_xml + onXML; + //} + + current_xml = "[DATA]" + onXML + + "[/DATA]"; + Log.d("currentdata",current_xml); + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + service); + //request.addProperty("MID", "0"); + // request.addProperty("KEYS", "CURRENT_DATA"); + // request.addProperty("USERNAME", username); + + request.addProperty("onXML", current_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + service, envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_SUCCESS)) { + + + } else { + + if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + return service; + } + + // for failure + FailureXMLHandler failureXMLHandler = new FailureXMLHandler(); + xmlR.setContentHandler(failureXMLHandler); + + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(result + .toString())); + xmlR.parse(is); + + failureGetterSetter = failureXMLHandler + .getFailureGetterSetter(); + + if (failureGetterSetter.getStatus().equalsIgnoreCase( + CommonString.KEY_FAILURE)) { + return CommonString.METHOD_UPLOAD_CURRENT_DATA + "," + + failureGetterSetter.getErrorMsg(); + + } else { + + } + } + } + + + return CommonString.KEY_SUCCESS; + + } catch (MalformedURLException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } catch (SocketTimeoutException e) { + ResultFlag = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + + } catch (InterruptedIOException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + + } catch (IOException e) { + + ResultFlag = false; + strflag = CommonString.MESSAGE_SOCKETEXCEPTION; + + } catch (XmlPullParserException e) { + + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + //Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + + ResultFlag = false; + strflag = CommonString.MESSAGE_XmlPull; + + } catch (Exception e) { + + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + + ResultFlag = false; + strflag = CommonString.MESSAGE_EXCEPTION; + + } + + if (ResultFlag) { + return CommonString.KEY_SUCCESS; + } else { + return strflag; + } + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + dialog.dismiss(); + + if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + dialog.dismiss(); +//if (store_flag_str.equals(CommonString.FROM_JCP)|| country_id.equalsIgnoreCase("5")|| store_flag_str.equals(CommonString.FROM_ADDITIONAL) +// || country_id.equalsIgnoreCase(CommonString.COUNTRY_ID_EGYPT +"")) { + //uae adhoch + /* if (store_flag_str.equals(CommonString.FROM_JCP)|| country_id.equalsIgnoreCase("5") + ||store_flag_str.equals(CommonString.FROM_DEVIATION)) {*/ + + if (store_flag_str.equals(CommonString.FROM_JCP) || country_id.equalsIgnoreCase("5") || country_id.equalsIgnoreCase("15")) { + Intent in = new Intent(StoreimageActivity.this, StoreWisePerformanceActivity.class); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + finish(); + } else if (store_flag_str.equals(CommonString.FROM_PHARMA)) { + Intent in = new Intent(StoreimageActivity.this, PharmaActivity.class); + startActivity(in); + finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } else if (VISIT_TYPE_ID != null) { + if (store_flag_str.equals(CommonString.FROM_DEVIATION) && + VISIT_TYPE_ID.equals("1") || VISIT_TYPE_ID.equals("3")) { + + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(CommonString.KEY_VISIT_ID, VISIT_TYPE_ID); + editor.commit(); + + Intent in = new Intent(StoreimageActivity.this, StoreWisePerformanceActivity.class); + in.putExtra("VISIT_TYPE_ID", VISIT_TYPE_ID); + startActivity(in); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + //showAlert(getString(R.string.data_downloaded_successfully)); + } else { + + GSKOrangeDB db = new GSKOrangeDB(StoreimageActivity.this); + db.open(); + + dialog.dismiss(); + db.deleteTableWithStoreID(store_id); + + showAlert(getString(R.string.datanotfound) + " " + result); + } + } + + } + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(StoreimageActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finish(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2PComplianceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2PComplianceActivity.java new file mode 100644 index 0000000..844007f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2PComplianceActivity.java @@ -0,0 +1,1940 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; + +import android.graphics.Bitmap; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.EditorInfo; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ListView; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.BrandAvabilityGetterSetter; +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.GapsChecklistGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonT2pReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SelectGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.T2PGetterSetter; + +public class T2PComplianceActivity extends AppCompatActivity { + private Context context; + String gallery_package = ""; + Uri outputFileUri; + + GSKOrangeDB db; + ArrayList t2PGetterSetters; + T2PAdapter t2PAdapter; + RecyclerView rec_t2p; + MyAdaptorStock adapterData; + String categoryName, categoryId; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str; + String str = "", + path = "", path1 = "", path2 = "", + _pathforcheck = "", _pathforcheck1 = "", _pathforcheck2 = "", + img = "", img1 = "", img2 = ""; + int child_position = -1, child_position1 = -1, child_position2 = -1; + String error_msg; + private SharedPreferences preferences; + Spinner spinner_brand; + Button btn_add, btn_close; + ListView listview; + LinearLayout linearlay; + //CardView cardlay; + String brand_name = "", brand_id = ""; + ArrayList brand_new_list = new ArrayList(); + ArrayList brandList; + ArrayList select = new ArrayList<>(); + boolean editFlag = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_t2_pcompliance); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + db = new GSKOrangeDB(T2PComplianceActivity.this); + db.open(); + context = this; + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + str = CommonString.getImagesFolder(this); + + CommonFunctions.updateLangResources(context, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + rec_t2p = (RecyclerView) findViewById(R.id.rec_t2p); + + + if (country_id.equals("8") || country_id.equals("17")) { + toolbar.setTitle(getResources().getString(R.string.title_posm)); + } else { + toolbar.setTitle(getResources().getString(R.string.title_activity_t2_pcompliance)); + } + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + // toolbar.setTitle(R.string.title_activity_t2_pcompliance + " - " + categoryName); + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + rec_t2p.clearFocus(); + + if (isValid()) { + + db.InsertT2PData(t2PGetterSetters, store_id, categoryId); + //Snackbar.make(view, "Data Saved", Snackbar.LENGTH_LONG).setAction("Action", null).show(); + finish(); + + /* AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( + T2PComplianceActivity.this); + // set title + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.title_activity_Want_save)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + db.InsertT2PData(t2PGetterSetters, store_id, categoryId); + //Snackbar.make(view, "Data Saved", Snackbar.LENGTH_LONG).setAction("Action", null).show(); + finish(); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // if this button is clicked, just close + // the dialog box and do nothing + dialog.cancel(); + } + }); + + // create alert dialog + AlertDialog alertDialog = alertDialogBuilder.create(); + + // show it + alertDialog.show();*/ + + } else { + Snackbar.make(view, error_msg, Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + + } + }); + + t2PGetterSetters = db.getT2pComplianceData(store_id, categoryId); + + if (t2PGetterSetters.size() == 0) { + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + t2PGetterSetters = db.getT2PDefaultData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + t2PGetterSetters = db.getT2PDefaultData(store_id, categoryId, "MAPPING_T2P"); + } + + } else { + for (int i = 0; i < t2PGetterSetters.size(); i++) { + ArrayList gapsList = db.getGapsData(t2PGetterSetters.get(i).getKey_id()); + ArrayList skuList = db.getT2PSKUData(t2PGetterSetters.get(i).getKey_id()); + ArrayList brandList = db.getT2BrandData(t2PGetterSetters.get(i).getKey_id()); + + t2PGetterSetters.get(i).setGapsChecklist(gapsList); + // + t2PGetterSetters.get(i).setSkulist(skuList); + t2PGetterSetters.get(i).setBrandlist(brandList); + } + } + + for (int i = 0; i < t2PGetterSetters.size(); i++) { + + ArrayList non_t2p_reason = db.getNonT2pReasonData(); + + NonT2pReasonGetterSetter nonT2p = new NonT2pReasonGetterSetter(); + + nonT2p.setTREASON("Select Reason"); + nonT2p.setTREASON_ID("0"); + non_t2p_reason.add(0, nonT2p); + t2PGetterSetters.get(i).setnon_t2p_reason_list(non_t2p_reason); + } + + if (t2PGetterSetters.size() > 0) { + + rec_t2p.setLayoutManager(new LinearLayoutManager(context)); + t2PAdapter = new T2PAdapter(t2PGetterSetters); + rec_t2p.setAdapter(t2PAdapter); + + } + + rec_t2p.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + if (dy > 0) + fab.hide(); + else if (dy < 0) + fab.show(); + } + }); + + } + + + @Override + protected void onResume() { + super.onResume(); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + + public class T2PAdapter extends RecyclerView.Adapter { + + private ArrayList list; + + public T2PAdapter(ArrayList t2PList) { + list = t2PList; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.t2p_item_layout, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(final ViewHolder holder, @SuppressLint("RecyclerView") final int position) { + + final boolean[] userSelect = {false}; + final T2PGetterSetter mItem = list.get(position); + holder.tv_brand.setText(mItem.getBrand()); + holder.tv_display.setText(mItem.getDisplay().trim()); + + ArrayList ans_list = new ArrayList<>(); + SelectGetterSetter select = new SelectGetterSetter(); + select.setAns(getString(R.string.select)); + select.setAns_id(0); + ans_list.clear(); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.yes)); + select.setAns_id(1); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.no)); + select.setAns_id(2); + ans_list.add(select); + + holder.edtallow_qty.setImeOptions(EditorInfo.IME_ACTION_DONE); + + holder.edtallow_qty.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (!hasFocus) { + + mItem.setQty(((EditText) v).getText().toString().replaceAll("[&^<>{}'$]", "")); + } + } + }); + holder.edtallow_qty.setText(mItem.getQty()); + + CustomSpinnerAdapter skuadapter = new CustomSpinnerAdapter(T2PComplianceActivity.this, R.layout.custom_t2p_spinner_item, ans_list); + holder.spinner.setAdapter(skuadapter); + + holder.spinner.setSelection(0); + final ArrayList non_t2p_reason_list = list.get(position).getnon_t2p_reason_list(); + CustomSpinnerNonT2pAdapter non_t2p_reason_Adapter = new CustomSpinnerNonT2pAdapter(T2PComplianceActivity.this, R.layout.custom_t2p_spinner_item, non_t2p_reason_list); + holder.spinner_t2p_non_reason.setAdapter(non_t2p_reason_Adapter); + + holder.spinner_t2p_non_reason.setSelection(0); + + holder.spinner_t2p_non_reason.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + mItem.setNon_t2p_reason_id(non_t2p_reason_list.get(position).getTREASON_ID().get(0)); + editFlag = true; + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + holder.spinner.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + userSelect[0] = true; + return false; + } + }); + holder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int position, long l) { + + editFlag = true; + + if (userSelect[0]) { + userSelect[0] = false; + + boolean flag_clear = false; + int present = -1; + + switch (position) { + + case 0: + if (mItem.getPresent() == 1) { + flag_clear = true; + } else if (mItem.getPresent() == 0) { + mItem.setNon_t2p_reason_id("0"); + mItem.setPresent(-1); + t2PAdapter.notifyDataSetChanged(); + } else { + mItem.setPresent(-1); + t2PAdapter.notifyDataSetChanged(); + } + + + break; + case 1: + mItem.setPresent(1); + mItem.setNon_t2p_reason_id("0"); + t2PAdapter.notifyDataSetChanged(); + break; + case 2: + + if (mItem.getPresent() == 1) { + flag_clear = true; + present = 0; + } else { + mItem.setPresent(0); + t2PAdapter.notifyDataSetChanged(); + } + + if (mItem.getPresent() == 1) + + + break; + } + + if (flag_clear) { + + editFlag = true; + + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(T2PComplianceActivity.this); + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + + // set dialog message + final int finalPresent = present; + alertDialogBuilder + .setMessage(getResources().getString(R.string.data_will_be_lost)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + //mItem.setPresent(false); + mItem.setPresent(finalPresent); + mItem.getGapsChecklist().clear(); + mItem.getSkulist().clear(); + mItem.getBrandlist().clear(); + + //Camera + if (!mItem.getImage().equals("")) { + new File(str + mItem.getImage()).delete(); + mItem.setImage(""); + } + + //Camera 1 + if (!mItem.getImage1().equals("")) { + new File(str + mItem.getImage1()).delete(); + mItem.setImage1(""); + } + + //Camera 2 + if (!mItem.getImage2().equals("")) { + new File(str + mItem.getImage2()).delete(); + mItem.setImage2(""); + } + + t2PAdapter.notifyDataSetChanged(); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + //mItem.setPresent(true); + t2PAdapter.notifyDataSetChanged(); + } + }); + + AlertDialog alertDialog = alertDialogBuilder.create(); + alertDialog.show(); + } + } + + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + + + holder.btn_gaps.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showGapsDialog(mItem); + } + }); + + /* holder.toggle_btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (((ToggleButton) v).getText().toString().equalsIgnoreCase(getResources().getString(R.string.yes))) { + mItem.setPresent(true); + } else { + *//* mItem.setPresent(false); + mItem.getGapsChecklist().clear(); + mItem.getSkulist().clear(); + + //Camera + if (!mItem.getImage().equals("")) { + new File(str + mItem.getImage()).delete(); + mItem.setImage(""); + } + + //Camera 1 + if (!mItem.getImage1().equals("")) { + new File(str + mItem.getImage1()).delete(); + mItem.setImage1(""); + } + + //Camera 2 + if (!mItem.getImage2().equals("")) { + new File(str + mItem.getImage2()).delete(); + mItem.setImage2(""); + } +*//* + + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(T2PComplianceActivity.this); + alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title)); + + // set dialog message + alertDialogBuilder + .setMessage(getResources().getString(R.string.data_will_be_lost)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + mItem.setPresent(false); + mItem.getGapsChecklist().clear(); + mItem.getSkulist().clear(); + + //Camera + if (!mItem.getImage().equals("")) { + new File(str + mItem.getImage()).delete(); + mItem.setImage(""); + } + + //Camera 1 + if (!mItem.getImage1().equals("")) { + new File(str + mItem.getImage1()).delete(); + mItem.setImage1(""); + } + + //Camera 2 + if (!mItem.getImage2().equals("")) { + new File(str + mItem.getImage2()).delete(); + mItem.setImage2(""); + } + + t2PAdapter.notifyDataSetChanged(); + } + }) + .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + mItem.setPresent(true); + t2PAdapter.notifyDataSetChanged(); + } + }); + + AlertDialog alertDialog = alertDialogBuilder.create(); + alertDialog.show(); + } + t2PAdapter.notifyDataSetChanged(); + } + });*/ + + + holder.btn_sku.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showSkuDialog(mItem.getSkulist()); + } + }); + + //Camera + if (!img.equalsIgnoreCase("")) { + if (position == child_position) { + mItem.setImage(img); + img = ""; + } + } + + //Camera 1 + if (!img1.equalsIgnoreCase("")) { + if (position == child_position1) { + mItem.setImage1(img1); + img1 = ""; + } + } + + //Camera 2 + if (!img2.equalsIgnoreCase("")) { + if (position == child_position2) { + mItem.setImage2(img2); + img2 = ""; + } + } + + holder.btn_ref_img.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + showPlanogram(mItem.getRef_image_url()); + } + }); + + + if (camera_allow.equals("1")) { + + //Camera + holder.img_cam.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck = "T2P_Image_" + store_id + categoryId + "_" + mItem.getBrand_id() + + mItem.getDisplay_id() + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + child_position = position; + path = str + _pathforcheck; + + startCameraActivity(1); + } + }); + + if (mItem.getImage().equals("")) { + + + //if (mItem.isPresent()) { + if (mItem.getPresent() == 1) { + holder.img_cam.setBackgroundResource(R.mipmap.camera_orange); + } else { + //if not present camera disabled + holder.img_cam.setBackgroundResource(R.mipmap.camera_grey); + } + + } else { + holder.img_cam.setBackgroundResource(R.mipmap.camera_green); + } + + //Camera 1 + holder.img_cam1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck1 = "T2P_Image1_" + store_id + categoryId + "_" + mItem.getBrand_id() + + mItem.getDisplay_id() + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + child_position1 = position; + path = str + _pathforcheck1; + + startCameraActivity(2); + } + }); + + if (mItem.getImage1().equals("")) { + //if (mItem.isPresent()) { + if (mItem.getPresent() == 1) { + + holder.img_cam1.setVisibility(View.VISIBLE); + holder.img_cam1.setBackgroundResource(R.mipmap.camera_orange); + } else { + //if not present camera disabled + holder.img_cam1.setBackgroundResource(R.mipmap.camera_grey); + } + + } else { + holder.img_cam1.setBackgroundResource(R.mipmap.camera_green); + } + + //Camera 2 + holder.img_cam2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck2 = "T2P_Image2_" + store_id + categoryId + "_" + mItem.getBrand_id() + + mItem.getDisplay_id() + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + child_position2 = position; + path = str + _pathforcheck2; + + startCameraActivity(3); + } + }); + + if (mItem.getImage2().equals("")) { + //if (mItem.isPresent()) { + if (mItem.getPresent() == 1) { + + holder.img_cam2.setVisibility(View.VISIBLE); + holder.img_cam2.setBackgroundResource(R.mipmap.camera_orange); + } else { + //if not present camera disabled + holder.img_cam2.setBackgroundResource(R.mipmap.camera_grey); + } + + } else { + holder.img_cam2.setBackgroundResource(R.mipmap.camera_green); + } + } else { + // holder.img_cam.setBackgroundResource(R.mipmap.camera_grey); + // holder.img_cam1.setBackgroundResource(R.mipmap.camera_grey); + // holder.img_cam2.setBackgroundResource(R.mipmap.camera_grey); + holder.img_cam1.setVisibility(View.INVISIBLE); + holder.img_cam2.setVisibility(View.INVISIBLE); + + holder.img_cam.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + /* Intent in =new Intent(T2PComplianceActivity.this,T2pBrand_Avaibility.class); + in.putExtra("categoryName", categoryName); + in.putExtra("categoryId", categoryId); + startActivity(in);*/ + + showBrandAvabilitydialog(mItem.getBrandlist()); + } + }); + + if (mItem.getBrandlist().size() > 0) { + holder.img_cam.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + + //if (mItem.isPresent()) { + if (mItem.getPresent() == 1) { + holder.img_cam.setBackgroundResource(R.mipmap.new_no_camera_edit); + } else { + //if not present camera disabled + holder.img_cam.setBackgroundResource(R.mipmap.no_camera); + } + } + } + + boolean is_enabled; + //if (mItem.isPresent()) { + if (mItem.getPresent() == 1) { + is_enabled = true; + } else { + is_enabled = false; + } + + holder.toggle_btn.setChecked(is_enabled); + holder.img_cam.setEnabled(is_enabled); + holder.img_cam1.setEnabled(is_enabled); + holder.img_cam2.setEnabled(is_enabled); + holder.btn_gaps.setEnabled(is_enabled); + + if (is_enabled && mItem.getAllowQty().equals("1")) { + holder.ly_allowqty.setVisibility(View.VISIBLE); + } else { + holder.ly_allowqty.setVisibility(View.GONE); + } + + if (mItem.getPresent() == 0) { + holder.layout_t2p_non_reason.setVisibility(View.VISIBLE); + } else { + holder.layout_t2p_non_reason.setVisibility(View.GONE); + } + + if (is_enabled && mItem.getCategory_fixture().equals("0")) { + holder.btn_sku.setEnabled(true); + } else { + holder.btn_sku.setEnabled(false); + } + + + if (mItem.getGapsChecklist().size() > 0) { + holder.btn_gaps.setBackgroundColor(getResources().getColor(R.color.green)); + } else { + if (mItem.getPresent() == 1) { + holder.btn_gaps.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.btn_gaps.setBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + if (mItem.getSkulist().size() > 0) { + holder.btn_sku.setBackgroundColor(getResources().getColor(R.color.green)); + } else { + if (mItem.getPresent() == 1 && mItem.getCategory_fixture().equals("0")) { + holder.btn_sku.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.btn_sku.setBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + switch (mItem.getPresent()) { + case -1: + holder.spinner.setSelection(0); + break; + case 0: + holder.spinner.setSelection(2); + break; + case 1: + holder.spinner.setSelection(1); + break; + } + + for (int i = 0; i < non_t2p_reason_list.size(); i++) { + if (mItem.getNon_t2p_reason_id().equals(non_t2p_reason_list.get(i).getTREASON_ID().get(0))) { + holder.spinner_t2p_non_reason.setSelection(i); + } + } + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final LinearLayout parentLayout, layout_t2p_non_reason; + public final TextView tv_brand, tv_display; + public final ImageView img_cam; + public ImageView img_cam1, img_cam2; + //public ImageView img_remark; + public final Button btn_gaps, btn_sku, btn_ref_img; + public final ToggleButton toggle_btn; + public final Spinner spinner, spinner_t2p_non_reason; + public EditText edtallow_qty; + public LinearLayout ly_allowqty; + + + public ViewHolder(View view) { + super(view); + + mView = view; + tv_brand = (TextView) mView.findViewById(R.id.tv_brand); + tv_display = (TextView) mView.findViewById(R.id.tv_display); + img_cam = (ImageView) mView.findViewById(R.id.img_cam); + img_cam1 = (ImageView) mView.findViewById(R.id.img_cam1); + img_cam2 = (ImageView) mView.findViewById(R.id.img_cam2); + // img_remark = (ImageView) mView.findViewById(R.id.img_remark); + btn_gaps = (Button) mView.findViewById(R.id.btn_gaps); + btn_sku = (Button) mView.findViewById(R.id.btn_sku); + btn_ref_img = (Button) mView.findViewById(R.id.btn_ref_image); + parentLayout = (LinearLayout) mView.findViewById(R.id.parent_layout); + layout_t2p_non_reason = (LinearLayout) mView.findViewById(R.id.layout_t2p_non_reason); + toggle_btn = (ToggleButton) mView.findViewById(R.id.toggle_btn); + spinner = (Spinner) mView.findViewById(R.id.spinner); + spinner_t2p_non_reason = (Spinner) mView.findViewById(R.id.spinner_t2p_non_reason); + edtallow_qty = (EditText) mView.findViewById(R.id.edtallow_qty); + ly_allowqty = (LinearLayout) mView.findViewById(R.id.ly_allowqty); + } + } + } + + + public void showGapsDialog(final T2PGetterSetter t2p) { + + final ArrayList gapsChecklist; + + if (t2p.getGapsChecklist().size() > 0) { + + gapsChecklist = t2p.getGapsChecklist(); + } else { + gapsChecklist = db.getGapsDefaultData(t2p.getDisplay_id()); + } + + final Dialog dialog = new Dialog(T2PComplianceActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.gaps_dialog_layout); + //pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + RecyclerView rec_gap_checklist = (RecyclerView) dialog.findViewById(R.id.rec_gap_checklist); + rec_gap_checklist.setLayoutManager(new LinearLayoutManager(context)); + GapsAdapter gapAdapter = new GapsAdapter(gapsChecklist); + rec_gap_checklist.setAdapter(gapAdapter); + + Button btn_save = (Button) dialog.findViewById(R.id.btn_save); + btn_save.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + editFlag = true; + t2p.setGapsChecklist(gapsChecklist); + dialog.cancel(); + t2PAdapter.notifyDataSetChanged(); + } + }); + + dialog.setCancelable(false); + dialog.show(); + + } + + public void showSkuDialog(final ArrayList skuAddedList) { + final SkuGetterSetter[] sku_selected = new SkuGetterSetter[1]; + final BrandMasterGetterSetter[] brand_selected = new BrandMasterGetterSetter[1]; + + final ArrayList brandList; + //usk just + if (country_id.equals("7") || country_id.equals("8")) { + brandList = db.getBrandT2PData(null, null, null, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + brandList = db.getBrandT2PData(storeType_id, class_id, keyAccount_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + brandList = db.getBrandT2PData(storeType_id, class_id, keyAccount_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK); + } + + + BrandMasterGetterSetter brand = new BrandMasterGetterSetter(); + brand.setBRAND("select"); + brandList.add(0, brand); + // ArrayList skuMasterGetterSetterArrayList = db.getSkuT2PData("1", "1", "1",) + final Dialog dialog = new Dialog(T2PComplianceActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.t2p_sku_dialog_layout); + //pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + //dialog.setCancelable(false); + final Spinner spinner_brand = (Spinner) dialog.findViewById(R.id.spinner_brand); + final Spinner spinner_sku = (Spinner) dialog.findViewById(R.id.spinner_sku); + Button btn_add = (Button) dialog.findViewById(R.id.btn_add); + Button btn_cancel = (Button) dialog.findViewById(R.id.btn_cancel); + final EditText et_stock = (EditText) dialog.findViewById(R.id.et_stock); + final RecyclerView rec_sku = (RecyclerView) dialog.findViewById(R.id.rec_sku); + + final ArrayList sku_list = new ArrayList<>(); + + if (skuAddedList.size() > 0) { + + rec_sku.setLayoutManager(new LinearLayoutManager(context)); + SkuAddedAdapter skuAdapter = new SkuAddedAdapter(skuAddedList); + rec_sku.setAdapter(skuAdapter); + + } + + btn_add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (brand_selected[0] == null || sku_selected[0] == null || et_stock.getText().toString().equals("")) { + + Snackbar.make(v, getResources().getString(R.string.enter_the_values), Snackbar.LENGTH_SHORT).show(); + } else { + + editFlag = true; + + SkuGetterSetter sku = new SkuGetterSetter(); + sku.setBRAND_ID(brand_selected[0].getBRAND_ID().get(0)); + sku.setBRAND(brand_selected[0].getBRAND().get(0)); + sku.setSKU(sku_selected[0].getSKU()); + sku.setSKU_ID(sku_selected[0].getSKU_ID()); + sku.setSTOCK(et_stock.getText().toString().replaceFirst("^0+(?!$)", "")); + + skuAddedList.add(sku); + + rec_sku.setLayoutManager(new LinearLayoutManager(context)); + SkuAddedAdapter skuAdapter = new SkuAddedAdapter(skuAddedList); + rec_sku.setAdapter(skuAdapter); + + et_stock.setText(""); + spinner_brand.setSelection(0); + + SkuGetterSetter select = new SkuGetterSetter(); + select.setSKU(getString(R.string.select)); + sku_list.clear(); + sku_list.add(select); + CustomSkuAdapter skuadapter = new CustomSkuAdapter(T2PComplianceActivity.this, R.layout.custom_spinner_item, sku_list); + spinner_sku.setAdapter(skuadapter); + + spinner_sku.setSelection(0); + + brand_selected[0] = null; + sku_selected[0] = null; + } + + } + }); + + btn_cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + dialog.cancel(); + t2PAdapter.notifyDataSetChanged(); + } + }); + + // Create custom adapter object ( see below CustomAdapter.java ) + CustomAdapter adapter = new CustomAdapter(T2PComplianceActivity.this, R.layout.custom_spinner_item, brandList); + // Set adapter to spinner + spinner_brand.setAdapter(adapter); + + + SkuGetterSetter select = new SkuGetterSetter(); + select.setSKU(getString(R.string.select)); + sku_list.add(select); + CustomSkuAdapter skuadapter = new CustomSkuAdapter(T2PComplianceActivity.this, R.layout.custom_spinner_item, sku_list); + spinner_sku.setAdapter(skuadapter); + + + spinner_brand.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + if (position != 0) { + sku_list.clear(); + brand_selected[0] = brandList.get(position); + String brand_id = brandList.get(position).getBRAND_ID().get(0); + ArrayList temp_list; + if (country_id.equals("7") || country_id.equals("8")) { + temp_list = db.getSkuT2PData(null, null, null, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + temp_list = db.getSkuT2PData(storeType_id, class_id, keyAccount_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + temp_list = db.getSkuT2PData(storeType_id, class_id, keyAccount_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + + for (int k = 0; k < temp_list.size(); k++) { + sku_list.add(temp_list.get(k)); + } + + SkuGetterSetter select = new SkuGetterSetter(); + select.setSKU(getString(R.string.select)); + sku_list.add(0, select); + // Create custom adapter object ( see below CustomSkuAdapter.java ) + CustomSkuAdapter skuadapter = new CustomSkuAdapter(T2PComplianceActivity.this, R.layout.custom_spinner_item, sku_list); + // Set adapter to spinner + spinner_sku.setAdapter(skuadapter); + + spinner_sku.setSelection(0); + + } + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + spinner_sku.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + + sku_selected[0] = sku_list.get(position); + } + + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + dialog.setCancelable(false); + dialog.show(); + + } + + @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) { + + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(T2PComplianceActivity.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(); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } + + private void startCameraActivity(int pos) { + try { + + Log.i("Stock & Facing ", "startCameraActivity()"); + File file = new File(path); + outputFileUri = FileProvider.getUriForFile(context, "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 (android.os.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; + } + } + } + } + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + //startActivityForResult(intent, 1); + startActivityForResult(intent, pos); + //startActivityForResult(intent, position); + + } 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); + startActivityForResult(intent, pos); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("Stock & Facing", "resultCode: " + resultCode + " requestCode: " + requestCode); + /*switch (resultCode) { + case 0: + Log.e("Stock & Facing", "User cancelled"); + + break; + case -1: + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + img = _pathforcheck; + t2PAdapter.notifyDataSetChanged(); + _pathforcheck = ""; + } + } + break; + }*/ + + switch (requestCode) { + case 1: + if (resultCode == 0) { + Log.e("Stock & Facing", "User cancelled"); + } else if (resultCode == -1) { + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + img = _pathforcheck; + t2PAdapter.notifyDataSetChanged(); + _pathforcheck = ""; + } + } + } + break; + case 2: + if (resultCode == 0) { + Log.e("Stock & Facing", "User cancelled"); + } else if (resultCode == -1) { + if (_pathforcheck1 != null && !_pathforcheck1.equals("")) { + if (new File(str + _pathforcheck1).exists()) { + img1 = _pathforcheck1; + t2PAdapter.notifyDataSetChanged(); + _pathforcheck1 = ""; + } + } + } + break; + + case 3: + if (resultCode == 0) { + Log.e("Stock & Facing", "User cancelled"); + } else if (resultCode == -1) { + if (_pathforcheck2 != null && !_pathforcheck2.equals("")) { + if (new File(str + _pathforcheck2).exists()) { + img2 = _pathforcheck2; + t2PAdapter.notifyDataSetChanged(); + _pathforcheck2 = ""; + } + } + } + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + public boolean isValid() { + boolean flag = true; + + for (int i = 0; i < t2PGetterSetters.size(); i++) { + + if (t2PGetterSetters.get(i).getPresent() == 1) { + //if (camera_allow.equals("1") && t2PGetterSetters.get(i).getImage().equals("")) { + if (t2PGetterSetters.get(i).getGapsChecklist().size() == 0) { + flag = false; + error_msg = getResources().getString(R.string.fill_gaps_data); + break; + } else if (!country_id.equals("6") && camera_allow.equals("1") && (t2PGetterSetters.get(i).getImage().equals("") && + t2PGetterSetters.get(i).getImage1().equals("") && + t2PGetterSetters.get(i).getImage2().equals(""))) { + flag = false; + error_msg = getResources().getString(R.string.click_image); + break; + } else if (camera_allow.equals("0") && t2PGetterSetters.get(i).getBrandlist().size() == 0) { + flag = false; + error_msg = getResources().getString(R.string.title_activity_fill_brand); + break; + } else if (t2PGetterSetters.get(i).getCategory_fixture().equals("0") && t2PGetterSetters.get(i).getSkulist().size() == 0) { + flag = false; + error_msg = getResources().getString(R.string.title_activity_fill_sku); + break; + } else if (t2PGetterSetters.get(i).getAllowQty().equals("1") && t2PGetterSetters.get(i).getQty().equals("")) { + //added for UAE 04.07.2019 + flag = false; + error_msg = getResources().getString(R.string.title_activity_enter_quantity); + break; + } + + } else if (t2PGetterSetters.get(i).getPresent() == 0) { + if (t2PGetterSetters.get(i).getNon_t2p_reason_id().equals("0")) { + flag = false; + error_msg = getResources().getString(R.string.error_message_non_t2p_reason); + break; + } + } else if (t2PGetterSetters.get(i).getPresent() == -1) { + flag = false; + error_msg = getResources().getString(R.string.msg_select_present); + break; + } + + } + + return flag; + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + + if (editFlag) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(T2PComplianceActivity.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 { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + } + + + public class GapsAdapter extends RecyclerView.Adapter { + + private ArrayList list; + + public GapsAdapter(ArrayList gapsPList) { + list = gapsPList; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.gap_checklist_item, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(final ViewHolder holder, int position) { + + final GapsChecklistGetterSetter mItem = list.get(position); + holder.tv_checklist.setText(mItem.getChecklist()); + + holder.tb_present.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + mItem.setPresent(((ToggleButton) v).getText().toString().equalsIgnoreCase("Yes")); + + } + }); + + holder.tb_present.setChecked(mItem.isPresent()); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final LinearLayout parentLayout; + public final TextView tv_checklist; + public final ToggleButton tb_present; + + + public ViewHolder(View view) { + super(view); + + mView = view; + + tv_checklist = (TextView) mView.findViewById(R.id.tv_checklist); + tb_present = (ToggleButton) mView.findViewById(R.id.btn_is_present); + parentLayout = (LinearLayout) mView.findViewById(R.id.parent_layout); + + } + + } + } + + public class CustomAdapter extends ArrayAdapter { + + BrandMasterGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomAdapter( + T2PComplianceActivity 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(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getBRAND().get(0)); + } + + return row; + } + } + + public class CustomSpinnerAdapter extends ArrayAdapter { + + SelectGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSpinnerAdapter( + T2PComplianceActivity 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 = (SelectGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getAns()); + } + + return row; + } + } + + public class CustomSkuAdapter extends ArrayAdapter { + + SkuGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSkuAdapter( + T2PComplianceActivity 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 = (SkuGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getSKU()); + } + + return row; + } + } + + public class SkuAddedAdapter extends RecyclerView.Adapter { + + private ArrayList list; + + public SkuAddedAdapter(ArrayList skuList) { + list = skuList; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.sku_added_item_layout, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(final ViewHolder holder, final int position) { + + final SkuGetterSetter mItem = list.get(position); + holder.tv_brand.setText(mItem.getBRAND()); + holder.tv_sku.setText(mItem.getSKU().trim()); + holder.tv_stock.setText(mItem.getSTOCK()); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final LinearLayout parentLayout; + public final TextView tv_brand, tv_sku, tv_stock; + + public ViewHolder(View view) { + super(view); + + mView = view; + + tv_brand = (TextView) mView.findViewById(R.id.tv_brand); + tv_sku = (TextView) mView.findViewById(R.id.tv_sku); + tv_stock = (TextView) mView.findViewById(R.id.tv_stock); + parentLayout = (LinearLayout) mView.findViewById(R.id.parent_layout); + + } + + } + } + + public void showPlanogram(String planogram_image) { + + final Dialog dialog = new Dialog(T2PComplianceActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + //dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.planogram_dialog_layout); + dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + dialog.setCancelable(false); + + //ArrayList mp = db.getMappingPlanogramData(""); + + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + + WebView webView = (WebView) dialog.findViewById(R.id.webview); + webView.setWebViewClient(new MyWebViewClient()); + + webView.getSettings().setAllowFileAccess(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setBuiltInZoomControls(true); + + //String planogram_image = mp.get(0).getPLANOGRAM_IMAGE(); + if (new File(CommonString.getDownloadedImageFolder(this) + planogram_image).exists()) { + + String imagePath = "file://" + CommonString.getDownloadedImageFolder(this) + "/" + planogram_image; + //String imagePath = "file://" + CommonString.getImagesFolder(context)+ "/" + "image_ref.png"; + String html = ""; + webView.loadDataWithBaseURL("", html, "text/html", "utf-8", ""); + + dialog.show(); + } + + ImageView cancel = (ImageView) dialog.findViewById(R.id.img_cancel); + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + dialog.dismiss(); + } + }); + } + + private class MyWebViewClient extends WebViewClient { + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + } + + + //// new + + + public void showBrandAvabilitydialog(final ArrayList brandGetdata) { + final ArrayList brandList; + if (country_id.equals("7") || country_id.equals("8")) { + brandList = db.getBrandAvailbilitydata(store_id, categoryId, null, null, null, + CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + brandList = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + brandList = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id, + CommonString.TABLE_MAPPING_STOCK); + } + + BrandAvabilityGetterSetter brand = new BrandAvabilityGetterSetter(); + brand.setBRAND(getResources().getString(R.string.select)); + brandList.add(0, brand); + + final Dialog dialog = new Dialog(T2PComplianceActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.setContentView(R.layout.t2pbranddialoglayout); + dialog.setCancelable(false); + //pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + //dialog.setCancelable(false); + spinner_brand = (Spinner) dialog.findViewById(R.id.spinner_brand); + + btn_add = (Button) dialog.findViewById(R.id.btn_add); + btn_close = (Button) dialog.findViewById(R.id.btn_cancel); + + listview = (ListView) dialog.findViewById(R.id.lv); + linearlay = (LinearLayout) dialog.findViewById(R.id.list_layout); + // cardlay = (CardView) dialog.findViewById(R.id.cardId); + + // Create custom adapter object ( see below CustomAdapter.java ) + T2PComplianceActivity.CustomBRANDAdapter adapter = new T2PComplianceActivity.CustomBRANDAdapter(T2PComplianceActivity.this, + R.layout.custom_spinner_item, brandList); + + spinner_brand.setAdapter(adapter); + + if (brandGetdata.size() > 0) { + linearlay.setVisibility(View.VISIBLE); + // cardlay.setVisibility(View.VISIBLE); + adapterData = new T2PComplianceActivity.MyAdaptorStock(T2PComplianceActivity.this, brandGetdata); + listview.setAdapter(adapterData); + listview.invalidateViews(); + } else { + linearlay.setVisibility(View.GONE); + // cardlay.setVisibility(View.GONE); + } + + spinner_brand.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + + brand_name = brandList.get(position).getBRAND(); + brand_id = brandList.get(position).getBRAND_ID(); + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + btn_close.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + //brandGetdata.add(brand_new_list); + dialog.cancel(); + t2PAdapter.notifyDataSetChanged(); + + } + }); + + + btn_add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + BrandAvabilityGetterSetter ab = new BrandAvabilityGetterSetter(); + + if (!brand_name.equalsIgnoreCase("") && brand_name != null) { + + BrandAvabilityGetterSetter brand = new BrandAvabilityGetterSetter(); + + brand.setBRAND(brand_name); + brand.setBRAND_ID(brand_id); + + brandGetdata.add(brand); + + adapterData = new T2PComplianceActivity.MyAdaptorStock(T2PComplianceActivity.this, brandGetdata); + listview.setAdapter(adapterData); + listview.invalidateViews(); + + // cardlay.setVisibility(View.VISIBLE); + linearlay.setVisibility(View.VISIBLE); + spinner_brand.setSelection(0); + brand_name = ""; + brand_id = ""; + + } else { + Snackbar.make(v, "Please select dropdown", Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + + } + }); + + dialog.show(); + + } + + + public class MyAdaptorStock extends BaseAdapter { + + private LayoutInflater mInflater; + private Context mcontext; + private ArrayList list; + + public MyAdaptorStock(Activity activity, ArrayList list1) { + + mInflater = LayoutInflater.from(getBaseContext()); + mcontext = activity; + list = list1; + } + + @Override + public int getCount() { + + return list.size(); + } + + @Override + public Object getItem(int position1) { + + return position1; + } + + @Override + public long getItemId(int position1) { + + return position1; + } + + class ViewHolder { + TextView brand; + + + } + + @Override + public View getView(final int position1, View convertView, ViewGroup parent) { + + final T2PComplianceActivity.MyAdaptorStock.ViewHolder holder; + + if (convertView == null) { + + convertView = mInflater + .inflate(R.layout.brandavabilityadpterlayout, null); + holder = new T2PComplianceActivity.MyAdaptorStock.ViewHolder(); + + holder.brand = (TextView) convertView.findViewById(R.id.brand_name); + + convertView.setTag(holder); + } else { + holder = (T2PComplianceActivity.MyAdaptorStock.ViewHolder) convertView.getTag(); + } + + holder.brand.setText(list.get(position1).getBRAND()); + + holder.brand.setId(position1); + + + return convertView; + } + } + + public class CustomBRANDAdapter extends ArrayAdapter { + + BrandAvabilityGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomBRANDAdapter( + T2PComplianceActivity 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 = (BrandAvabilityGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getBRAND()); + } + + return row; + } + } + + + public class CustomSpinnerNonT2pAdapter extends ArrayAdapter { + + NonT2pReasonGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSpinnerNonT2pAdapter( + T2PComplianceActivity 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 = (NonT2pReasonGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getTREASON().get(0)); + } + + return row; + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2pBrand_Avaibility.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2pBrand_Avaibility.java new file mode 100644 index 0000000..0fa2584 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2pBrand_Avaibility.java @@ -0,0 +1,294 @@ +package cpm.com.gskmtorange.dailyentry; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.Spinner; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.GetterSetter.BrandAvabilityGetterSetter; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; + +public class T2pBrand_Avaibility extends AppCompatActivity { + private Context context; + GSKOrangeDB db; + private SharedPreferences preferences; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow; + Spinner spinner_brand; + Button add; + ArrayList brand_list; + String categoryName, categoryId, brand_name = "", brand_id = ""; + RecyclerView recyclerView; + ArrayList brand_new_list = new ArrayList(); + T2pBrand_Avaibility.ValueAdapter adapteravabiblity; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_t2p_brand__avaibility); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + spinner_brand = (Spinner) findViewById(R.id.spinner); + add = (Button) findViewById(R.id.button2); + recyclerView = (RecyclerView) findViewById(R.id.layout_recycle); + context = this; + + db = new GSKOrangeDB(T2pBrand_Avaibility.this); + db.open(); + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context, 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, ""); + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); +///// + brand_list = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id,CommonString.TABLE_MAPPING_STOCK); + BrandAvabilityGetterSetter brand = new BrandAvabilityGetterSetter(); + String str = getResources().getString(R.string.select); + brand.setBRAND(str); + brand_list.add(0, brand); + T2pBrand_Avaibility.CustomAdapter adapter = new T2pBrand_Avaibility.CustomAdapter(T2pBrand_Avaibility.this, R.layout.custom_spinner_item, brand_list); + spinner_brand.setAdapter(adapter); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (brand_new_list.size() > 0) { + BrandAvabilityGetterSetter br = new BrandAvabilityGetterSetter(); + + br.setCategoryId(categoryId); + br.setClass_id(class_id); + br.setKeyAccount_id(keyAccount_id); + br.setStoreType_id(storeType_id); + br.setStore_id(store_id); + db.InsertBrandAvabilitydata(br, brand_new_list); + + brand_new_list.clear(); + finish(); + + + } else { + Snackbar.make(view, "Please add data", Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + + + } + }); + + + add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + if (!brand_name.equalsIgnoreCase("") && brand_name != null) { + + BrandAvabilityGetterSetter brand = new BrandAvabilityGetterSetter(); + + brand.setBRAND(brand_name); + brand.setBRAND_ID(brand_id); + + brand_new_list.add(brand); + + adapteravabiblity = new T2pBrand_Avaibility.ValueAdapter(T2pBrand_Avaibility.this, brand_new_list); + recyclerView.setAdapter(adapteravabiblity); + recyclerView.setLayoutManager(new LinearLayoutManager(T2pBrand_Avaibility.this)); + + spinner_brand.setSelection(0); + brand_name = ""; + brand_id = ""; + + } else { + Snackbar.make(view, "Please select dropdown", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + + } + }); + + + spinner_brand.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + if (position != 0) { + + brand_name = brand_list.get(position).getBRAND(); + brand_id = brand_list.get(position).getBRAND_ID(); + + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + + } + + public class CustomAdapter extends ArrayAdapter { + + private Activity activity; + private ArrayList data; + BrandAvabilityGetterSetter tempValues = null; + LayoutInflater inflater; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomAdapter( + T2pBrand_Avaibility 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 = (BrandAvabilityGetterSetter) 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()); + } + + return row; + } + } + + + public class ValueAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + List data = Collections.emptyList(); + + public ValueAdapter(Context context, List data) { + + inflator = LayoutInflater.from(context); + this.data = data; + + } + + @Override + public T2pBrand_Avaibility.ValueAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int i) { + + View view = inflator.inflate(R.layout.brandavabilityadpterlayout, parent, false); + + T2pBrand_Avaibility.ValueAdapter.MyViewHolder holder = new T2pBrand_Avaibility.ValueAdapter.MyViewHolder(view); + + return holder; + } + + @Override + public void onBindViewHolder(final T2pBrand_Avaibility.ValueAdapter.MyViewHolder viewHolder, final int position) { + + final BrandAvabilityGetterSetter current = data.get(position); + + viewHolder.txt.setText(current.getBRAND()); + + } + + + @Override + public int getItemCount() { + return data.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView txt, address; + + + public MyViewHolder(View itemView) { + super(itemView); + txt = (TextView) itemView.findViewById(R.id.brand_name); + + + } + } + + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/VisitTypeStatusActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/VisitTypeStatusActivity.java new file mode 100644 index 0000000..e7fd62d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/VisitTypeStatusActivity.java @@ -0,0 +1,232 @@ +package cpm.com.gskmtorange.dailyentry; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.location.Location; +import android.location.LocationManager; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.LocationRequest; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +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.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.gsk_dailyentry.StoreWisePerformanceActivity; +import cpm.com.gskmtorange.storeinmap.StoreListRouteActivity; +import cpm.com.gskmtorange.storeinmap.StoreRouteActivity; +import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.AdditionalQuestiongetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.GeoFencingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPINGT2PGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SOS_TARGET_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingDisplayChecklistGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPromotionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraLastVisitGetterSetter; +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.STORE_PERFORMANCE_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; + +public class VisitTypeStatusActivity extends AppCompatActivity { + ArrayList coverage = new ArrayList(); + ArrayList storelist = new ArrayList(); + //ListView list; + private SharedPreferences preferences; + String date, visit_status; + GSKOrangeDB db; + ValueAdapter adapter; + RecyclerView recyclerView; + private SharedPreferences.Editor editor = null; + LinearLayout linearlay; + String store_id, userId, culture_id, visit_date, store_facing_hide; + private Dialog dialog; + boolean result_flag = false, leaveflag = false; + FloatingActionButton fab; + //String storeid; + Toolbar toolbar; + String language, country_id; + String store_flag_str; + String str_facing=""; + + Context context; + boolean enabled = true; + + private ProgressBar pb; + + private TextView percentage, message; + int eventType; + boolean ResultFlag = true; + String str; + StoreBean storeCurrentObj; + + String from_checkedIn = ""; + Visit_Type_Master_GetterSetter visit_type_master_getterSetter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_visit_type_status); + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + context = this; + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG); + date = preferences.getString(CommonString.KEY_DATE, null); + visit_status = preferences.getString(CommonString.KEY_STOREVISITED_STATUS, ""); + language = preferences.getString(CommonString.KEY_LANGUAGE, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + userId = preferences.getString(CommonString.KEY_USERNAME, null); + culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, ""); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + db = new GSKOrangeDB(context); + db.open(); + + linearlay = (LinearLayout) findViewById(R.id.no_data_lay); + recyclerView = (RecyclerView) findViewById(R.id.drawer_layout_recycle); + + toolbar.setTitle("Ad-Hoc Visit Type" + "-"+ date); + storelist = db.getVisitType(date, "VISIT_TYPE_MASTER"); + adapter = new ValueAdapter(context, storelist); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + + store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID); + str_facing = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE); + + } + public class ValueAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + List data = Collections.emptyList(); + + public ValueAdapter(Context context, List data) { + inflator = LayoutInflater.from(context); + this.data = data; + } + + @Override + public ValueAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int i) { + + View view = inflator.inflate(R.layout.visittypelist_child, parent, false); + + ValueAdapter.MyViewHolder holder = new ValueAdapter.MyViewHolder(view); + return holder; + } + + @Override + public void onBindViewHolder(final ValueAdapter.MyViewHolder viewHolder, final int position) { + final Visit_Type_Master_GetterSetter current = data.get(position); + viewHolder.visitTypeTV.setText(current.getVISIT_TYPE().get(0)); + viewHolder.Cardbtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + db.open(); + db.insertVisitTypeData(visit_date,store_id,current.getVISIT_TYPE_ID().get(0)); + + Intent in = new Intent(VisitTypeStatusActivity.this, StoreimageActivity.class); + in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str); + in.putExtra(CommonString.KEY_STORE_ID, store_id); + in.putExtra("VISIT_TYPE_ID", current.getVISIT_TYPE_ID().get(0)); + in.putExtra(CommonString.KEY_STORE_FLAG_FACING_HIDE, str_facing); + startActivity(in); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + }); + } + + @Override + public int getItemCount() { + return data.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView visitTypeTV; + CardView Cardbtn; + + public MyViewHolder(View itemView) { + super(itemView); + visitTypeTV = itemView.findViewById(R.id.visitTypeTV); + Cardbtn = itemView.findViewById(R.id.card_view); + + } + } + + } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + if (id == android.R.id.home) { + // NavUtils.navigateUpFromSameTask(this); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java new file mode 100644 index 0000000..9ea23b2 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java @@ -0,0 +1,2159 @@ +package cpm.com.gskmtorange.download; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.Window; +import android.widget.ProgressBar; +import android.widget.TextView; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InterruptedIOException; +import java.io.StringReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.SocketTimeoutException; +import java.net.URL; +import java.text.DecimalFormat; + +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.ADDITIONAL_DISPLAY_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.AdditionalQuestiongetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.GeoFencingGetterSetter; +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_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SKU_PRICING_ENABLEGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SOS_TARGET_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingDisplayChecklistGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaMSLGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramCountrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPromotionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraLastVisitGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonT2pReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingSubReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Order_Received_Status_GetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.POGQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PROMOTION_TYPE_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.STORE_CATEGORY_WISEGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.STORE_PERFORMANCE_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SubCategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.TableBean; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; + +public class DownloadActivity extends AppCompatActivity { + private Context context; + Data data; + int eventType; + GSKOrangeDB db; + String userId, culture_id, country_id; + JourneyPlanGetterSetter jcpgettersetter; + JourneyPlanGetterSetter adhoc_jcpgettersetter; + SkuMasterGetterSetter skumastergettersetter; + BrandMasterGetterSetter brandMasterGetterSetter; + SubCategoryMasterGetterSetter subCategoryMasterGetterSetter; + CategoryMasterGetterSetter categoryMasterGetterSetter; + DisplayMasterGetterSetter displayMasterGetterSetter; + MappingStockGetterSetter mappingStockGetterSetter; + MappingStockStorewiseGetterSetter mappingStockStorewiseGetterSetter; + MAPPINGT2PGetterSetter mappingt2PGetterSetter; + DisplayChecklistMasterGetterSetter checklistMasterGetterSetter; + MappingDisplayChecklistGetterSetter mappingChecklistGetterSetter; + NonWorkingReasonGetterSetter nonWorkingReasonGetterSetter; + MappingPromotionGetterSetter mappingPromotionGetterSetter; + MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter mapping_additional_promotion_masterGetterSetter; + STORE_PERFORMANCE_MasterGetterSetter store_performance_masterGetterSetter; + ADDITIONAL_DISPLAY_MASTERGetterSetter additional_display_getter_setter; + MAPPING_SOS_TARGET_MasterGetterSetter mapping_sos_target_masterGetterSetter; + MAPPING_PLANOGRAM_MasterGetterSetter mapping_planogram_masterGetterSetter; + MappingPlanogramCountrywiseGetterSetter mappingPlanogramCountrywiseGetterSetter; + ShelfMasterGetterSetter shelfMasterGetterSetter; + MappingSubCategoryImageAllowGetterSetter mappingSubCategoryImageAllowGetterSetter; + MappingCategoryImageAllowGetterSetter mappingCategoryImageAllowGetterSetter; + SkuGroupMasterGetterSetter skuGroupMasterGetterSetter; + AdditionalQuestiongetterSetter additionalQuestiongetterSetter; + POGQuestionGetterSetter pogQuestionGetterSetter; + NonT2pReasonGetterSetter nonT2pReasonGetterSetter; + ConfigurationContrywiseGetterSetter configurationContrywiseGetterSetter; + NoCameraLastVisitGetterSetter noCameraLastVisitGetterSetter; + GeoFencingGetterSetter geoFencingGetterSetter; + NonWorkingSubReasonGetterSetter nonWorkingSubReasonGetterSetter; + SupervisorListGetterSetter supervisorListGetterSetter; + ConfigurationMasterGetterSetter configurationMasterGetterSetter; + MappingPlanogramStorewiseGetterSetter mappingPlanogramStorewiseGetterSetter; + JourneyPlanGetterSetter additionalJcpGetterSetter; + JourneyPlanGetterSetter additionalAdhocJcpGetterSetter; + MappingStockGetterSetter mappingStockAdditionalGetterSetter; + JourneyPlanGetterSetter pharmaJcpGetterSetter; + MappingPharmaQuestionGetterSetter mappingPharmaQuestionGetterSetter; + MappingPharmaMSLGetterSetter mappingPharmaMSLGetterSetter; + PROMOTION_TYPE_MASTERGetterSetter promotion_type_masterGetterSetter; + STORE_CATEGORY_WISEGetterSetter store_category_wiseGetterSetter; + MAPPING_SKU_PRICING_ENABLEGetterSetter mapping_sku_pricing_enableGetterSetter; + Order_Received_Status_GetterSetter order_received_status_getterSetter; + Visit_Type_Master_GetterSetter visit_type_master_getterSetter; + + + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private SharedPreferences preferences = null; + Toolbar toolbar; + String str; + boolean ResultFlag = true; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_download); + + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + db = new GSKOrangeDB(this); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + userId = preferences.getString(CommonString.KEY_USERNAME, null); + culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null); + new UploadTask(DownloadActivity.this).execute(); + } + + + class Data { + int value; + String name; + } + + private class UploadTask extends AsyncTask { + private Context context; + + UploadTask(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + + dialog = new Dialog(context); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.setContentView(R.layout.custom_dialog_progress); + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + pb.getProgressDrawable().setColorFilter( + getResources().getColor(R.color.colorPrimaryDark), android.graphics.PorterDuff.Mode.SRC_IN); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + dialog.setCancelable(false); + dialog.show(); + } + @Override + protected String doInBackground(Void... voids) { + try { + boolean no_jcp_flag = false, no_adhoc_flag = false, no_addtional_jcp_flag = false; + + String resultHttp = ""; + data = new Data(); + + data.value = 10; + data.name = "JCP " + getResources().getString(R.string.download_data); + publishProgress(data); + + XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "JOURNEY_PLAN"); + request.addProperty("cultureid", culture_id); + + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope); + + Log.d("requestdata",request.toString()); + + Object result = envelope.getResponse(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + + xpp.setInput(new StringReader(result.toString())); + // xpp.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); + // xpp.setInput(stream,"UTF-8"); + xpp.next(); + eventType = xpp.getEventType(); + + jcpgettersetter = XMLHandlers.JCPXMLHandler(xpp, eventType); + + String jcpTable = jcpgettersetter.getTable_journey_plan(); + if (jcpTable != null) + TableBean.setJourneyPlan(jcpTable); + + if (jcpgettersetter.getSTORE_ID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + } else { + //return "JOURNEY_PLAN"; + no_jcp_flag = true; + } + + data.value = 10; + data.name = "JCP " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + //ADHOC_JOURNEYPLAN + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "ADHOC_JOURNEYPLAN"); + 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(); + Log.d("resultdata",result.toString()); + Log.d("resultdata",result.toString()); + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + // xpp.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); + // xpp.setInput(stream,"UTF-8"); + xpp.next(); + eventType = xpp.getEventType(); + + adhoc_jcpgettersetter = XMLHandlers.JCPXMLHandler(xpp, eventType); + + if (adhoc_jcpgettersetter.getSTORE_ID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + } + + String adhoc_jcpTable = adhoc_jcpgettersetter.getTable_journey_plan(); + TableBean.setAdhocJourneyPlan(adhoc_jcpTable); + + if (adhoc_jcpgettersetter.getSTORE_ID().size() > 0) { + data.value = 15; + data.name = "ADHOC JOURNEYPLAN " + getResources().getString(R.string.download_data); + } else { + no_adhoc_flag = true; + /*if (no_jcp_flag) { + return "JOURNEY_PLAN"; + }*/ + } + } + publishProgress(data); + + //JOURNEY_PLAN_ADDITIONAL + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "JOURNEY_PLAN_ADDITIONAL"); + 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(); + Log.d("resultdata",result.toString()); + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + additionalJcpGetterSetter = XMLHandlers.JCPXMLHandler(xpp, eventType); + + if (additionalJcpGetterSetter.getSTORE_ID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + } else { + + no_addtional_jcp_flag = true; + + } + + String additional_jcpTable = additionalJcpGetterSetter.getTable_journey_plan(); + TableBean.setAdditionalJourneyPlan(additional_jcpTable); + } + + //SUPERVISOR_LIST + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "SUPERVISOR_LIST"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + supervisorListGetterSetter = XMLHandlers.supervisorListXMLHandler(xpp, eventType); + + String table_sup_list = supervisorListGetterSetter.getTable_SUPERVISOR_LIST(); + if (table_sup_list != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_SUPERVISOR_LIST(table_sup_list); + } + + if (supervisorListGetterSetter.getEMP_ID().size() > 0) { + data.value = 97; + data.name = "SUPERVISOR LIST DATA" + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + + //ADHOC_JOURNEYPLAN_ADDITIONAL + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "ADHOC_JOURNEYPLAN_ADDITIONAL"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + additionalAdhocJcpGetterSetter = XMLHandlers.JCPXMLHandler(xpp, eventType); + + if (additionalAdhocJcpGetterSetter.getSTORE_ID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + } else { + + if (no_jcp_flag && no_adhoc_flag && no_addtional_jcp_flag) { + return "JOURNEY_PLAN"; + } + } + + String additional_jcpTable = additionalAdhocJcpGetterSetter.getTable_journey_plan(); + TableBean.setAdhocJourneyplanAdditional(additional_jcpTable); + } + + //GEO_FENCING + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "GEO_FENCING"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + // xpp.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); + // xpp.setInput(stream,"UTF-8"); + xpp.next(); + eventType = xpp.getEventType(); + + geoFencingGetterSetter = XMLHandlers.geoFencingXMLHandler(xpp, eventType); + + String geofencingTable = geoFencingGetterSetter.getTable_GEO_FENCING(); + TableBean.setTable_GEO_FENCING(geofencingTable); + + if (geoFencingGetterSetter.getGEO_FENCING().size() > 0) { + data.value = 17; + data.name = "GEO FENCING" + getResources().getString(R.string.download_data); + } + + } + publishProgress(data); + + + // Store List Master + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "SKU_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + skumastergettersetter = XMLHandlers.skuMasterXMLHandler(xpp, eventType); + if (skumastergettersetter.getSKU_ID().size() > 0) { + String skutable = skumastergettersetter.getTable_SKU_MASTER(); + if (skutable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setSkuMaster(skutable); + } + } else { + return "SKU_MASTER"; + } + + data.value = 20; + data.name = "SKU_MASTER " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + + // BRAND_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "BRAND_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + brandMasterGetterSetter = XMLHandlers.brandMasterXMLHandler(xpp, eventType); + if (brandMasterGetterSetter.getBRAND_ID().size() > 0) { + String brandtable = brandMasterGetterSetter.getTable_BRAND_MASTER(); + if (brandtable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setBrandMaster(brandtable); + } + } else { + return "BRAND_MASTER"; + } + + data.value = 25; + data.name = "BRAND_MASTER " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + + // SUB_CATEGORY_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "SUB_CATEGORY_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + subCategoryMasterGetterSetter = XMLHandlers.subCategoryMasterXMLHandler(xpp, eventType); + if (subCategoryMasterGetterSetter.getSUB_CATEGORY_ID().size() > 0) { + String categorytable = subCategoryMasterGetterSetter.getTable_SUB_CATEGORY_MASTER(); + if (categorytable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setSubCategoryMaster(categorytable); + } + } else { + return "SUB_CATEGORY_MASTER"; + } + data.value = 30; + data.name = "SUB_CATEGORY_MASTER " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + + // CATEGORY_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "CATEGORY_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + categoryMasterGetterSetter = XMLHandlers.categoryMasterXMLHandler(xpp, eventType); + if (categoryMasterGetterSetter.getCATEGORY_ID().size() > 0) { + String skutable = categoryMasterGetterSetter.getTable_CATEGORY_MASTER(); + if (skutable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setCategoryMaster(skutable); + } + } else { + return "CATEGORY_MASTER"; + } + data.value = 35; + data.name = "CATEGORY_MASTER " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + + // DISPLAY_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "DISPLAY_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + displayMasterGetterSetter = XMLHandlers.displayMasterXMLHandler(xpp, eventType); + if (displayMasterGetterSetter.getDISPLAY_ID().size() > 0) { + String display_table = displayMasterGetterSetter.getTable_DISPLAY_MASTER(); + if (display_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setDisplayMaster(display_table); + } + } else { + return "DISPLAY_MASTER"; + } + data.value = 40; + data.name = "DISPLAY_MASTER " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + // MAPPING_STOCK + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_STOCK"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingStockGetterSetter = XMLHandlers.mappingStockXMLHandler(xpp, eventType); + + String stocktable = mappingStockGetterSetter.getTable_MAPPING_STOCK(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingStock(stocktable); + } + + if (mappingStockGetterSetter.getSKU_ID().size() > 0) { + data.value = 45; + data.name = "MAPPING_STOCK " + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_STOCK"; + } + + } + publishProgress(data); + + //Added on 04/12/2018 + // MAPPING_STOCK_STOREWISE + if (country_id.equals("7")||country_id.equals("8") || country_id.equals("17")) { + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_STOCK_STOREWISE"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingStockStorewiseGetterSetter = XMLHandlers.mappingStockStorewiseXMLHandler(xpp, eventType); + + String stocktable = mappingStockStorewiseGetterSetter.getTable_MAPPING_STOCK_STOREWISE(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_MAPPING_STOCK_STOREWISE(stocktable); + } + + if (mappingStockStorewiseGetterSetter.getSKU_ID().size() > 0) { + data.value = 45; + data.name = "MAPPING_STOCK_STOREWISE " + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_STOCK"; + } + + } + publishProgress(data); + } + + + // MAPPING_T2P + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_T2P"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingt2PGetterSetter = XMLHandlers.mappingT2pXMLHandler(xpp, eventType); + + String t2ptable = mappingt2PGetterSetter.getTable_MAPPING_T2P(); + if (t2ptable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingT2p(t2ptable); + } + + if (mappingt2PGetterSetter.getSTORE_ID().size() > 0) { + data.value = 50; + data.name = "MAPPING_T2P " + getResources().getString(R.string.download_data); + + } else { + //return "MAPPING_T2P"; + } + + } + publishProgress(data); + + // DISPLAY_CHECKLIST_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "DISPLAY_CHECKLIST_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + checklistMasterGetterSetter = XMLHandlers.mappingDisplayChecklistMasterXMLHandler(xpp, eventType); + if (checklistMasterGetterSetter.getCHECKLIST_ID().size() > 0) { + String checklist_master_table = checklistMasterGetterSetter.getTable_DISPLAY_CHECKLIST_MASTER(); + if (checklist_master_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setDisplayChecklistMaster(checklist_master_table); + } + } else { + return "DISPLAY_CHECKLIST_MASTER"; + } + data.value = 60; + data.name = "DISPLAY_CHECKLIST_MASTER " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + // MAPPING_DISPLAY_CHECKLIST + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_DISPLAY_CHECKLIST"); + request.addProperty("cultureid", culture_id); + + Log.d("requestdata",request.toString()); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingChecklistGetterSetter = XMLHandlers.mappingMappingDisplayChecklistXMLHandler(xpp, eventType); + + String mapping_display_checklisttable = mappingChecklistGetterSetter.getTable_MAPPING_DISPLAY_CHECKLIST(); + if (mapping_display_checklisttable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingDisplayChecklist(mapping_display_checklisttable); + } + + if (mappingChecklistGetterSetter.getCHECKLIST_ID().size() > 0) { + data.value = 65; + data.name = "MAPPING_DISPLAY_CHECKLIST " + getResources().getString(R.string.download_data); + } else { + //return "MAPPING_DISPLAY_CHECKLIST"; + } + } + publishProgress(data); + + // NON_WORKING_REASON + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + //request.addProperty("Type", "NON_WORKING_REASON"); + request.addProperty("Type", "NON_WORKING_REASON_NEW"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + nonWorkingReasonGetterSetter = XMLHandlers.nonWorkingReasonXMLHandler(xpp, eventType); + if (nonWorkingReasonGetterSetter.getREASON_ID().size() > 0) { + String reasontable = nonWorkingReasonGetterSetter.getTable_NON_WORKING_REASON(); + if (reasontable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setNonWorkingReason(reasontable); + } + } else { + return "NON_WORKING_REASON"; + } + data.value = 70; + data.name = "NON_WORKING_REASON " + getResources().getString(R.string.download_data); + } + publishProgress(data); + + // NON_WORKING_SUB_REASON + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "NON_WORKING_SUB_REASON"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + nonWorkingSubReasonGetterSetter = XMLHandlers.nonWorkingSubReasonXMLHandler(xpp, eventType); + + String reasontable = nonWorkingSubReasonGetterSetter.getTable_NON_WORKING_SUB_REASON(); + if (reasontable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_NON_WORKING_SUB_REASON(reasontable); + } + + if (nonWorkingSubReasonGetterSetter.getREASON_ID().size() > 0) { + data.value = 70; + data.name = "NON_WORKING_SUB_REASON " + getResources().getString(R.string.download_data); + } else { + //return "NON_WORKING_SUB_REASON"; + } + } + publishProgress(data); + + + // MAPPING_PROMOTION + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_PROMOTION"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingPromotionGetterSetter = XMLHandlers.mappingPromotionXMLHandler(xpp, eventType); + + String mapping_promotion_table = mappingPromotionGetterSetter.getTable_MAPPING_PROMOTION(); + if (mapping_promotion_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingPromotion(mapping_promotion_table); + } + + if (mappingPromotionGetterSetter.getSTORE_ID().size() > 0) { + data.value = 75; + data.name = "MAPPING_PROMOTION " + getResources().getString(R.string.download_data); + } + + } + publishProgress(data); + + //Gagan start code + // MAPPING_ADDITIONAL_PROMOTION + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_ADDITIONAL_PROMOTION"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mapping_additional_promotion_masterGetterSetter = XMLHandlers.mappingAdditionalPromotionXMLHandler(xpp, eventType); + + //if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) { + String mapping_additional_promotion_table = mapping_additional_promotion_masterGetterSetter.getTable_MAPPING_ADDITIONAL_PROMOTION(); + if (mapping_additional_promotion_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingAdditionalPromotion(mapping_additional_promotion_table); + } + + if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) { + data.value = 80; + data.name = "MAPPING_ADDITIONAL_PROMOTION " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + + //STORE_PERFORMANCE + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "STORE_PERFORMANCE_REVISED"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + store_performance_masterGetterSetter = XMLHandlers.STORE_PERFORMANCEXMLHandler(xpp, eventType); + + String table_store_performace = store_performance_masterGetterSetter.getTable_STORE_PERFORMANCE(); + if (table_store_performace != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setStorePerformance(table_store_performace); + } + + if (store_performance_masterGetterSetter.getSTORE_ID().size() > 0) { + data.value = 85; + data.name = "STORE_PERFORMANCE_NEW Data Download"; + } else { + //return "STORE_PERFORMANCE"; + } + + } + publishProgress(data); + + + //ADDITIONAL_DISPLAY_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "ADDITIONAL_DISPLAY_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + additional_display_getter_setter = XMLHandlers.ADDITIONAL_DISPLAY_MASTERXMLHandler(xpp, eventType); + + if (additional_display_getter_setter.getDISPLAY_ID().size() > 0) { + String table_store_display = additional_display_getter_setter.getTable_STORE_ADDITIONAL_DISPLAY(); + if (table_store_display != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setAdditionalDisplay(table_store_display); + } + } else { + return "ADDITIONAL_DISPLAY_MASTER"; + } + data.value = 90; + data.name = "ADDITIONAL_DISPLAY_MASTER Data Download"; + } + publishProgress(data); + + + //MAPPING_PLANOGRAM + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_PLANOGRAM"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mapping_planogram_masterGetterSetter = XMLHandlers.MAPPING_PLANOGRAM_XMLHandler(xpp, eventType); + + String table_mapping_planogram = mapping_planogram_masterGetterSetter.getTable_MAPPING_PLANOGRAM(); + if (table_mapping_planogram != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingPlanogram(table_mapping_planogram); + } + if (mapping_planogram_masterGetterSetter.getKEYACCOUNT_ID().size() > 0) { + data.value = 92; + data.name = "MAPPING_PLANOGRAM Data Download"; + } else { + //return "MAPPING_PLANOGRAM"; + } + } + publishProgress(data); + + //MAPPING_PLANOGRAM_STORE_WISE + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_PLANOGRAM_STORE_WISE"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingPlanogramStorewiseGetterSetter = XMLHandlers.MAPPING_PLANOGRAM_STORE_WISE_XMLHandler(xpp, eventType); + + String table_mapping_planogram = mappingPlanogramStorewiseGetterSetter.getTable_MAPPING_PLANOGRAM_STORE_WISE(); + if (table_mapping_planogram != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_MAPPING_PLANOGRAM_STORE_WISE(table_mapping_planogram); + } + if (mappingPlanogramStorewiseGetterSetter.getSTORE_ID().size() > 0) { + data.value = 92; + data.name = "MAPPING_PLANOGRAM Data Download"; + } else { + //return "MAPPING_PLANOGRAM"; + } + } + publishProgress(data); + + + // MAPPING_SOS_TARGET + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_SOS_TARGET"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mapping_sos_target_masterGetterSetter = XMLHandlers.MAPPING_SOS_TARGETXMLHandler(xpp, eventType); + + //if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) { + String table_mapping_sos_target = mapping_sos_target_masterGetterSetter.getTable_MAPPING_SOS_TARGET(); + if (table_mapping_sos_target != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingSosTarget(table_mapping_sos_target); + } + + if (mapping_sos_target_masterGetterSetter.getSTORE_ID().size() > 0) { + data.value = 95; + data.name = "MAPPING_SOS_TARGET " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //CATEGORYWISE_SOS_TARGET + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "CATEGORYWISE_SOS_TARGET"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + store_category_wiseGetterSetter = XMLHandlers.CATEGORYWISE_SOS_TARGETXMLHandler(xpp, eventType); + + String table_store_performace = store_category_wiseGetterSetter.getTable_CATEGORYWISE_SOS_TARGET(); + if (table_store_performace != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setCategoryWiseSos(table_store_performace); + } + + if (store_category_wiseGetterSetter.getSTORE_ID().size() > 0) { + data.value = 85; + data.name = "CATEGORYWISE_SOS_TARGET Data Download"; + } else { + //return "CATEGORYWISE_SOS_TARGET"; + } + + } + publishProgress(data); + + + //SHELF_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "SHELF_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + shelfMasterGetterSetter = XMLHandlers.shelfMasterXMLHandler(xpp, eventType); + + String table_ShelfMaster = shelfMasterGetterSetter.getTable_SHELF_MASTER(); + if (table_ShelfMaster != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setShelfMaster(table_ShelfMaster); + } + + if (shelfMasterGetterSetter.getSHELF_ID().size() > 0) { + data.value = 96; + data.name = "SHELF_MASTER " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + + //MAPPING_SUB_CATEGORY_IMAGE_ALLOW + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_SUB_CATEGORY_IMAGE_ALLOW"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingSubCategoryImageAllowGetterSetter = XMLHandlers.mappingSubCategoryImageAllowXMLHandler(xpp, eventType); + + String table_ShelfMaster = mappingSubCategoryImageAllowGetterSetter.getTable_MAPPING_SUB_CATEGORY_IMAGE_ALLOW(); + if (table_ShelfMaster != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingSubCategoryImageAllow(table_ShelfMaster); + } + + if (mappingSubCategoryImageAllowGetterSetter.getSUB_CATEGORY_ID().size() > 0) { + data.value = 96; + data.name = "MAPPING_SUB_CATEGORY_IMAGE_ALLOW " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + + //SKUGROUP_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "SKUGROUP_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + skuGroupMasterGetterSetter = XMLHandlers.skuGroupMasterXMLHandler(xpp, eventType); + + String table_skuGrpMaster = skuGroupMasterGetterSetter.getTable_SKUGROUP_MASTER(); + if (table_skuGrpMaster != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setSkugroupMaster(table_skuGrpMaster); + } + + if (skuGroupMasterGetterSetter.getSUB_CATEGORY_ID().size() > 0) { + data.value = 97; + data.name = "SKUGROUP_MASTER " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //MAPPING_CATEGORY_IMAGE_ALLOW + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_CATEGORY_IMAGE_ALLOW"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingCategoryImageAllowGetterSetter = XMLHandlers.mappingCategoryImageAllowXMLHandler(xpp, eventType); + + String table_category_img_allow = mappingCategoryImageAllowGetterSetter.getTable_MAPPING_CATEGORY_IMAGE_ALLOW(); + if (table_category_img_allow != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingCategoryImageAllow(table_category_img_allow); + } + + if (mappingCategoryImageAllowGetterSetter.getCATEGORY_ID().size() > 0) { + data.value = 97; + data.name = "MAPPING_CATEGORY_IMAGE_ALLOW " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //ADDITIONAL_QUESTION + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "ADDITIONAL_QUESTION"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + additionalQuestiongetterSetter = XMLHandlers.additionalXMLHandler(xpp, eventType); + + String table_additionalQns_table = additionalQuestiongetterSetter.getTable_ADDITIONAL_QUESTION(); + if (table_additionalQns_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_ADDITIONAL_QUESTION(table_additionalQns_table); + } + + if (additionalQuestiongetterSetter.getCATEGORY_ID().size() > 0) { + data.value = 97; + data.name = "ADDITIONAL_QUESTION " + getResources().getString(R.string.download_data); + } + } + + publishProgress(data); + + //ADDITIONAL_QUESTION + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + //request.addProperty("Type", "POG_QUESTION_NEW"); + request.addProperty("Type", "POG_QUESTION_NEW"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + pogQuestionGetterSetter = XMLHandlers.pogQuestionsXMLHandler(xpp, eventType); + + String table_pog_qns_table = pogQuestionGetterSetter.getTable_POG_QUESTION(); + if (table_pog_qns_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_POG_QUESTION(table_pog_qns_table); + } + + if (pogQuestionGetterSetter.getQUESTION_ID().size() > 0) { + data.value = 97; + data.name = "POG_QUESTION " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //NON_T2P_REASON + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "NON_T2P_REASON"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + nonT2pReasonGetterSetter = XMLHandlers.nonT2pReasonXMLHandler(xpp, eventType); + + String table_non_t2p_table = nonT2pReasonGetterSetter.getTable_NON_T2P_REASON(); + if (table_non_t2p_table != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_NON_T2P_REASON(table_non_t2p_table); + } + + if (pogQuestionGetterSetter.getQUESTION_ID().size() > 0) { + data.value = 97; + data.name = "NON T2P REASON " + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //CONFIGURATION_COUNTRY_WISE + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "CONFIGURATION_COUNTRY_WISE"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + configurationContrywiseGetterSetter = XMLHandlers.configurationCountryWiseXMLHandler(xpp, eventType); + + String table_configuration = configurationContrywiseGetterSetter.getTable_CONFIGURATION_COUNTRY_WISE(); + if (table_configuration != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_CONFIGURATION_COUNTRY_WISE(table_configuration); + } + + if (configurationContrywiseGetterSetter.getCOUNTRY_ID().size() > 0) { + data.value = 97; + data.name = "CONFIGURATION COUNTRY WISE" + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //NO_CAMERA_LAST_VISIT_DATA + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "NO_CAMERA_LAST_VISIT_DATA"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + noCameraLastVisitGetterSetter = XMLHandlers.noCameraLastVisitXMLHandler(xpp, eventType); + + String table_no_camera = noCameraLastVisitGetterSetter.getTable_NO_CAMERA_LAST_VISIT_DATA(); + if (table_no_camera != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_NO_CAMERA_LAST_VISIT_DATA(table_no_camera); + } + + if (noCameraLastVisitGetterSetter.getSKUGROUP_ID().size() > 0) { + data.value = 97; + data.name = "NO CAMERA LAST VISIT DATA" + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + //CONFIGURATION_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "CONFIGURATION_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + configurationMasterGetterSetter = XMLHandlers.configurationMasterXMLHandler(xpp, eventType); + + String table_configiration = configurationMasterGetterSetter.getTable_CONFIGURATION_MASTER(); + if (table_configiration != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_CONFIGURATION_MASTER(table_configiration); + } + + if (configurationMasterGetterSetter.getCOUNTRY_ID().size() > 0) { + data.value = 97; + data.name = "CONFIGURATION MASTER DATA" + getResources().getString(R.string.download_data); + } + } + publishProgress(data); + + + // MAPPING_STOCK_ADDITIONAL + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_STOCK_ADDITIONAL"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingStockAdditionalGetterSetter = XMLHandlers.mappingStockXMLHandler(xpp, eventType); + + String stocktable = mappingStockAdditionalGetterSetter.getTable_MAPPING_STOCK(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setMappingStockAdditional(stocktable); + } + + if (mappingStockAdditionalGetterSetter.getSKU_ID().size() > 0) { + data.value = 98; + data.name = "MAPPING_STOCK_ADDITIONAL " + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_STOCK_ADHOC"; + } + + } + publishProgress(data); + + //JOURNEY_PLAN_PHARMA + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "JOURNEY_PLAN_PHARMA"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + pharmaJcpGetterSetter = XMLHandlers.JCPXMLHandler(xpp, eventType); + + if (pharmaJcpGetterSetter.getSTORE_ID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + } + + String pharma_jcpTable = pharmaJcpGetterSetter.getTable_journey_plan(); + TableBean.setTable_JOURNEY_PLAN_PHARMA(pharma_jcpTable); + } + + //MAPPING_PHARMA_QUESTION + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_PHARMA_QUESTION"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingPharmaQuestionGetterSetter = XMLHandlers.mappingPharmaQuestionXMLHandler(xpp, eventType); + + if (mappingPharmaQuestionGetterSetter.getQUESTION_ID().size() > 0) { + resultHttp = CommonString.KEY_SUCCESS; + } + + String mapping_pahrma_question_Table = mappingPharmaQuestionGetterSetter.getTable_MAPPING_PHARMA_QUESTION(); + TableBean.setTable_MAPPING_PHARMA_QUESTION(mapping_pahrma_question_Table); + } + + // MAPPING_PHARMA_MSL + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_PHARMA_MSL"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + mappingPharmaMSLGetterSetter = XMLHandlers.mappingPharmaMSLXMLHandler(xpp, eventType); + + String stocktable = mappingPharmaMSLGetterSetter.getTable_MAPPING_PHARMA_MSL(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_MAPPING_PHARMA_MSL(stocktable); + } + + if (mappingPharmaMSLGetterSetter.getSKU_ID().size() > 0) { + data.value = 99; + data.name = "MAPPING_PHARMA_MSL " + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_PHARMA_MSL"; + } + + } + publishProgress(data); + + //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(); + Log.d("resultdata",result.toString()); + + 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); + + + // + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "MAPPING_SKU_PRICING_ENABLE"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + + mapping_sku_pricing_enableGetterSetter = XMLHandlers.mappingMAPPING_SKU_PRICING_ENABLEXMLHandler(xpp, eventType); + + String stocktable = mapping_sku_pricing_enableGetterSetter.getTable_MAPPING_SKU_PRICING_ENABLE(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_MAPPING_SKU_PRICING_ENABLE(stocktable); + } + + if (mapping_sku_pricing_enableGetterSetter.getSTORE_ID().size() > 0) { + data.value = 99; + data.name = "MAPPING_SKU_PRICING_ENABLE " + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_PHARMA_MSL"; + } + } + publishProgress(data); + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "ORDER_RECEIVED_STATUS"); + 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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + + order_received_status_getterSetter = XMLHandlers.order_Received_Status_XMLHandler(xpp, eventType); + String stocktable = order_received_status_getterSetter.getTable_Order_Received_Status(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_ORDER_RECEIVED_STATUS(stocktable); + } + + if (order_received_status_getterSetter.getSTORE_ID().size() > 0) { + data.value = 99; + data.name = "ORDER_RECEIVED_STATUS" + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_PHARMA_MSL"; + } + } + publishProgress(data); + + + //VISIT_TYPE_MASTER + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD); + request.addProperty("UserName", userId); + request.addProperty("Type", "VISIT_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(); + Log.d("resultdata",result.toString()); + + if (result.toString() != null) { + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + + visit_type_master_getterSetter = XMLHandlers.Visit_Type_Status_XMLHandler(xpp, eventType); + String stocktable = visit_type_master_getterSetter.getTable_Visit_Type_Status(); + if (stocktable != null) { + resultHttp = CommonString.KEY_SUCCESS; + TableBean.setTable_VISIT_TYPE_STATUS(stocktable); + } + + if (order_received_status_getterSetter.getSTORE_ID().size() > 0) { + data.value = 99; + data.name = "VISIT_TYPE_MASTER" + getResources().getString(R.string.download_data); + } else { + // return "MAPPING_PHARMA_MSL"; + } + } + publishProgress(data); + + + + + //Images DownLoads + + //MAPPING_PLANOGRAM Image save into folder + if (mapping_planogram_masterGetterSetter != null) { + + for (int i = 0; i < mapping_planogram_masterGetterSetter.getIMAGE_PATH().size(); i++) { + //publishing image download + + if (data.value < 100) { + data.value = data.value + 1; + publishProgress(data); + } + + String image_name = mapping_planogram_masterGetterSetter.getPLANOGRAM_IMAGE().get(i); + String path = mapping_planogram_masterGetterSetter.getIMAGE_PATH().get(i); + String PATH = CommonString.getDownloadedImageFolder(context); + File file = new File(PATH); + if (!file.isDirectory()) { + file.mkdir(); + } + + 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(); + c.setRequestMethod("GET"); + c.getResponseCode(); + c.connect(); + + if (c.getResponseCode() == 200) { + int length = c.getContentLength(); + + String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB"; + + //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/"; + + // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1; + if (!size.equalsIgnoreCase("0 KB")) { + File outputFile = new File(file, image_name); + FileOutputStream fos = new FileOutputStream(outputFile); + InputStream is1 = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is1.read(buffer)) != -1) { + bytes = (bytes + len1); + // data.value = (int) ((double) (((double) + // bytes) / length) * 100); + fos.write(buffer, 0, len1); + } + fos.close(); + is1.close(); + } + } + } + } + } + } + + //Gagan end code + + //Display Master Image save into folder + if (displayMasterGetterSetter != null) { + + for (int i = 0; i < displayMasterGetterSetter.getIMAGE_URL().size(); i++) { + //publishing image download + + if (data.value < 100) { + data.value = data.value + 1; + publishProgress(data); + } + + String image_name = displayMasterGetterSetter.getIMAGE_URL().get(i); + String img_url = displayMasterGetterSetter.getIMAGE_PATH().get(i); + + String PATH = CommonString.getDownloadedImageFolder(context); + File file = new File(PATH); + if (!file.isDirectory()) { + file.mkdir(); + } + + if (!new File(PATH + image_name).exists()) { + if (!img_url.equalsIgnoreCase("") && !image_name.equalsIgnoreCase("")) { + URL url = new URL(img_url + image_name); + HttpURLConnection c = (HttpURLConnection) url.openConnection(); + c.setRequestMethod("GET"); + c.getResponseCode(); + c.connect(); + + if (c.getResponseCode() == 200) { + int length = c.getContentLength(); + + String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB"; + + //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/"; + + + // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1; + if (!size.equalsIgnoreCase("0 KB")) { + File outputFile = new File(file, image_name); + FileOutputStream fos = new FileOutputStream(outputFile); + InputStream is1 = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is1.read(buffer)) != -1) { + bytes = (bytes + len1); + // data.value = (int) ((double) (((double) + // bytes) / length) * 100); + fos.write(buffer, 0, len1); + } + fos.close(); + is1.close(); + } + } + } + } + + + } + } + + + //MAPPING_PLANOGRAM_STORE_WISE Image save into folder + if (mappingPlanogramStorewiseGetterSetter != null) { + + for (int i = 0; i < mappingPlanogramStorewiseGetterSetter.getIMAGE_PATH().size(); i++) { + //publishing image download + + if (data.value < 100) { + data.value = data.value + 1; + publishProgress(data); + } + + String image_name = mappingPlanogramStorewiseGetterSetter.getPLANOGRAM_IMAGE().get(i); + String path = mappingPlanogramStorewiseGetterSetter.getIMAGE_PATH().get(i); + + String PATH = CommonString.getDownloadedImageFolder(context); + File file = new File(PATH); + if (!file.isDirectory()) { + file.mkdir(); + } + + 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(); + c.setRequestMethod("GET"); + c.getResponseCode(); + c.connect(); + + if (c.getResponseCode() == 200) { + int length = c.getContentLength(); + + String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB"; + + //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/"; + + // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1; + if (!size.equalsIgnoreCase("0 KB")) { + File outputFile = new File(file, image_name); + FileOutputStream fos = new FileOutputStream(outputFile); + InputStream is1 = c.getInputStream(); + + int bytes = 0; + byte[] buffer = new byte[1024]; + int len1 = 0; + + while ((len1 = is1.read(buffer)) != -1) { + bytes = (bytes + len1); + // data.value = (int) ((double) (((double) + // bytes) / length) * 100); + fos.write(buffer, 0, len1); + } + fos.close(); + is1.close(); + } + } + } + } + } + } + db.open(); + db.InsertJCP(jcpgettersetter); + db.InsertOrderReceivingStatus(order_received_status_getterSetter); + db.InsertAdhoc_JCP(adhoc_jcpgettersetter); + db.InsertVisit_Type_Status(visit_type_master_getterSetter); + db.InsertCategory(categoryMasterGetterSetter); + db.InsertSubCategoryMaster(subCategoryMasterGetterSetter); + db.InsertBrandMaster(brandMasterGetterSetter); + db.InsertSkuMaster(skumastergettersetter); + db.InsertDisplayMaster(displayMasterGetterSetter); + db.InsertMAPPING_T2P(mappingt2PGetterSetter, "MAPPING_T2P"); + db.InsertMappingStock(mappingStockGetterSetter, "MAPPING_STOCK"); + db.InsertDisplayChecklistMaster(checklistMasterGetterSetter); + db.InsertMappingDisplayChecklist(mappingChecklistGetterSetter); + db.InsertMAPPING_PROMOTION(mappingPromotionGetterSetter, "MAPPING_PROMOTION"); + db.InsertMAPPING_ADDITIONAL_PROMOTION(mapping_additional_promotion_masterGetterSetter, "MAPPING_ADDITIONAL_PROMOTION"); + db.insertNonWorkingData(nonWorkingReasonGetterSetter); + //NON_WORKING_SUB_REASON added - 26.09.2018 + db.insertNonWorkingSubreasonData(nonWorkingSubReasonGetterSetter); + //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"); + db.InsertSHELF_MASTER(shelfMasterGetterSetter); + + db.InsertMappingSubCategoryImageAllow(mappingSubCategoryImageAllowGetterSetter); + db.InsertMappingCategoryImageAllow(mappingCategoryImageAllowGetterSetter); + //db.InsertMappingCountrywisePlanogram(mappingPlanogramCountrywiseGetterSetter); + db.InsertSkuGroupMaster(skuGroupMasterGetterSetter); + db.InsertADDITIONALQUESTION(additionalQuestiongetterSetter); + 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.insertSUPERVISOR_LIST_DATA(supervisorListGetterSetter); + db.InsertGeoTag_DATA(geoFencingGetterSetter); + db.InsertCONFIGURATION_MASTER(configurationMasterGetterSetter); + db.InsertMappingStockSTOREWISE(mappingStockStorewiseGetterSetter); + db.InsertMAPPING_PLANOGRAM_STORE_WISE(mappingPlanogramStorewiseGetterSetter); + db.InsertAdditionalJCP(additionalJcpGetterSetter); + db.InsertMappingStock(mappingStockAdditionalGetterSetter, "MAPPING_STOCK_ADDITIONAL"); + db.insertMappingPahrmaQuestion(mappingPharmaQuestionGetterSetter); + db.InsertPharmaJCP(pharmaJcpGetterSetter); + db.InsertMAPPING_PHARMA_MSL(mappingPharmaMSLGetterSetter); + db.InsertAdditionalAdhocJCP(additionalAdhocJcpGetterSetter); + db.InsertPROMOTION_TYPE_MASTER(promotion_type_masterGetterSetter); + db.InsertCATEGORYWISE_SOS_TARGET(store_category_wiseGetterSetter); + db.InsertMAPPING_SKU_PRICING_ENABLE(mapping_sku_pricing_enableGetterSetter); + } + catch (MalformedURLException e) { + ResultFlag = false; + str = CommonString.MESSAGE_EXCEPTION; + return CommonString.MESSAGE_EXCEPTION; + } catch (SocketTimeoutException e) { + ResultFlag = false; + str = CommonString.MESSAGE_SOCKETEXCEPTION; + return CommonString.MESSAGE_SOCKETEXCEPTION; + } catch (InterruptedIOException e) { + ResultFlag = false; + str = CommonString.MESSAGE_EXCEPTION; + return CommonString.MESSAGE_EXCEPTION; + } catch (IOException e) { + ResultFlag = false; + str = CommonString.MESSAGE_SOCKETEXCEPTION; + return CommonString.MESSAGE_SOCKETEXCEPTION; + } catch (XmlPullParserException e) { + ResultFlag = false; + Log.d("exceptiondata",e.getMessage() + ","+data.name ); + str = CommonString.MESSAGE_XmlPull; + return CommonString.MESSAGE_XmlPull; + } catch (Exception e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + ResultFlag = false; + str = CommonString.MESSAGE_EXCEPTION; + return CommonString.MESSAGE_EXCEPTION; + } + + if (ResultFlag) { + return ""; + } else { + return str; + } + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + } + + @Override + protected void onPostExecute(String s) { + super.onPostExecute(s); + + if (s.equalsIgnoreCase("")) { + dialog.dismiss(); + showAlert(getString(R.string.data_downloaded_successfully)); + } else { + dialog.dismiss(); + showAlert(getString(R.string.datanotfound) + " " + s); + } + } + + } + + public void showAlert(String str) { + AlertDialog.Builder builder = new AlertDialog.Builder(DownloadActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + // Crashlytics.setBool(CommonString.KEY_DOWNLOAD_DONE, true); + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + @Override + protected void onResume() { + super.onResume(); + toolbar.setTitle(getString(R.string.main_menu_activity_name)); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fileprovider/GenericFileProvider.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fileprovider/GenericFileProvider.java new file mode 100644 index 0000000..c49582c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fileprovider/GenericFileProvider.java @@ -0,0 +1,11 @@ +package cpm.com.gskmtorange.fileprovider; + +import android.database.Cursor; +import android.net.Uri; + +import androidx.core.content.FileProvider; + + +public class GenericFileProvider extends FileProvider { + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fonts/FontManager.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fonts/FontManager.java new file mode 100644 index 0000000..b53fdce --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fonts/FontManager.java @@ -0,0 +1,18 @@ +package cpm.com.gskmtorange.fonts; + +import android.content.Context; +import android.graphics.Typeface; + +/** + * Created by yadavendras on 11-01-2017. + */ + +public class FontManager { + + public static final String ROOT = "fonts/", + FONTAWESOME = ROOT + "fontawesome-webfont.ttf"; + + public static Typeface getTypeface(Context context, String font) { + return Typeface.createFromAsset(context.getAssets(), font); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fonts/TextDrawable.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fonts/TextDrawable.java new file mode 100644 index 0000000..b7024a0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fonts/TextDrawable.java @@ -0,0 +1,52 @@ +package cpm.com.gskmtorange.fonts; + +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.PixelFormat; +import android.graphics.drawable.Drawable; + +/** + * Created by yadavendras on 11-01-2017. + */ + +public class TextDrawable extends Drawable { + + private final String text; + private final Paint paint; + + public TextDrawable(String text) { + + this.text = text; + + this.paint = new Paint(); + paint.setColor(Color.WHITE); + paint.setTextSize(22f); + paint.setAntiAlias(true); + paint.setFakeBoldText(true); + paint.setShadowLayer(6f, 0, 0, Color.BLACK); + paint.setStyle(Paint.Style.FILL); + paint.setTextAlign(Paint.Align.LEFT); + } + + @Override + public void draw(Canvas canvas) { + canvas.drawText(text, 0, 0, paint); + } + + @Override + public void setAlpha(int alpha) { + paint.setAlpha(alpha); + } + + @Override + public void setColorFilter(ColorFilter cf) { + paint.setColorFilter(cf); + } + + @Override + public int getOpacity() { + return PixelFormat.TRANSLUCENT; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/SelectLanguageFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/SelectLanguageFragment.java new file mode 100644 index 0000000..4f0b0d1 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/SelectLanguageFragment.java @@ -0,0 +1,232 @@ +package cpm.com.gskmtorange.fragment; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; + + +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +import androidx.fragment.app.Fragment; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Locale; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link SelectLanguageFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link SelectLanguageFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class SelectLanguageFragment extends Fragment implements View.OnClickListener{ + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + private OnFragmentInteractionListener mListener; + + private SharedPreferences preferences = null; + private SharedPreferences.Editor editor = null; + + Button btn_lang_1, btn_lang_2; + + ArrayList language, culture_id; + + LoginGetterSetter login_data; + + public SelectLanguageFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment SelectLanguageFragment. + */ + // TODO: Rename and change types and number of parameters + public static SelectLanguageFragment newInstance(String param1, String param2) { + SelectLanguageFragment fragment = new SelectLanguageFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_select_language, container, false); + + preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); + editor = preferences.edit(); + + getDataFromSharedPreferences(); + + btn_lang_1 = (Button) view.findViewById(R.id.btn_language_one); + btn_lang_2 = (Button) view.findViewById(R.id.btn_language_two); + + + /* login_data = (LoginGetterSetter) getIntent().getSerializableExtra(CommonString.KEY_LOGIN_DATA); + language = login_data.getCULTURE_NAME(); + culture_id = login_data.getCULTURE_ID(); +*/ + if (language.size() > 1) { + + btn_lang_1.setText(language.get(0)); + btn_lang_2.setText(language.get(1)); + + String lang = preferences.getString(CommonString.KEY_LANGUAGE, ""); + + if(lang.equals(language.get(0))){ + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + btn_lang_2.setBackgroundColor(getResources().getColor(R.color.grey_background)); + btn_lang_1.setTextColor(getResources().getColor(R.color.white)); + } + else if(lang.equals(language.get(1))){ + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.grey_background)); + btn_lang_2.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + btn_lang_2.setTextColor(getResources().getColor(R.color.white)); + } + + btn_lang_1.setOnClickListener(this); + btn_lang_2.setOnClickListener(this); + } + return view; + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(String selected_lang, String culture_id, String notice_url) { + if (mListener != null) { + mListener.onFragmentInteraction(selected_lang,culture_id,notice_url); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + @Override + public void onClick(View view) { + int id = view.getId(); + + switch (id) { + case R.id.btn_language_one: + + //selected_flag = true; + onButtonPressed(language.get(0),culture_id.get(0),login_data.getNOTICE_URL().get(0)); + + CommonFunctions.updateLangResources(getActivity(), language.get(0)); + + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + btn_lang_2.setBackgroundColor(getResources().getColor(R.color.grey_background)); + btn_lang_1.setTextColor(getResources().getColor(R.color.white)); + btn_lang_2.setTextColor(getResources().getColor(R.color.black)); + + 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)); + editor.commit(); + + break; + + case R.id.btn_language_two: + + //selected_flag = true; + onButtonPressed(language.get(1),culture_id.get(1),login_data.getNOTICE_URL().get(1)); + + CommonFunctions.updateLangResources(getActivity(), language.get(1)); + + btn_lang_1.setBackgroundColor(getResources().getColor(R.color.grey_background)); + btn_lang_2.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + btn_lang_2.setTextColor(getResources().getColor(R.color.white)); + btn_lang_1.setTextColor(getResources().getColor(R.color.black)); + + editor.putString(CommonString.KEY_LANGUAGE, language.get(1)); + editor.putString(CommonString.KEY_CULTURE_ID, culture_id.get(1)); + editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, login_data.getNOTICE_URL().get(1)); + editor.commit(); + + break; + } + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(String lang, String culture_id, String notice); + } + + private void getDataFromSharedPreferences(){ + Gson gson = new Gson(); + login_data = new LoginGetterSetter(); + + String jsonPreferences = preferences.getString(CommonString.KEY_LOOGIN_PREF, ""); + + Type type = new TypeToken() {}.getType(); + login_data = gson.fromJson(jsonPreferences, type); + + language = login_data.getCULTURE_NAME(); + culture_id = login_data.getCULTURE_ID(); + + //return ; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/ServiceActivityFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/ServiceActivityFragment.java new file mode 100644 index 0000000..405ac36 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/ServiceActivityFragment.java @@ -0,0 +1,374 @@ +package cpm.com.gskmtorange.fragment; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import android.widget.Toast; + +//import com.crashlytics.android.Crashlytics; +import androidx.appcompat.app.AlertDialog; +import androidx.cardview.widget.CardView; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.squareup.okhttp.MediaType; +import com.squareup.okhttp.MultipartBuilder; +import com.squareup.okhttp.RequestBody; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.net.UnknownHostException; +import java.nio.channels.FileChannel; +import java.text.SimpleDateFormat; +import java.util.ArrayList; + +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.messgae.AlertMessage; +import cpm.com.gskmtorange.retrofit.PostApiForFile; +import cpm.com.gskmtorange.retrofit.StringConverterFactory; +import cpm.com.gskmtorange.upload.UploadImageWithRetrofit; +import retrofit.Call; +import retrofit.Callback; +import retrofit.Response; +import retrofit.Retrofit; + + +/** + * A placeholder fragment containing a simple view. + */ +public class ServiceActivityFragment extends Fragment { + String result = ""; + boolean isvalid = false; + Context context; + + public ServiceActivityFragment() { + } + + ArrayList serviceList; + + private SharedPreferences preferences = null; + + String username, visit_date; + RecyclerView rec; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_service, container, false); + + context = view.getContext(); + preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); + username = preferences.getString(CommonString.KEY_USERNAME, ""); + visit_date = preferences.getString(CommonString.KEY_DATE, null); + + rec = (RecyclerView) view.findViewById(R.id.rec_settings); + + ServiceGetterSetter service = new ServiceGetterSetter(); + service.setName(getString(R.string.export_database)); + service.setIcon(R.mipmap.entry_grey); + //SelectLanguageFragment selectLanguageFragment = new SelectLanguageFragment(); + service.setFragment(null); + serviceList = new ArrayList<>(); + serviceList.add(service); + + /*//Upload all images from folder + ServiceGetterSetter service2 = new ServiceGetterSetter(); + service2.setName(getString(R.string.image)); + service2.setIcon(R.mipmap.entry_grey); + //SelectLanguageFragment selectLanguageFragment = new SelectLanguageFragment(); + service2.setFragment(null); + serviceList.add(service2);*/ + + + rec.setLayoutManager(new LinearLayoutManager(getActivity())); + ServiceAdapter serviceAdapter = new ServiceAdapter(); + rec.setAdapter(serviceAdapter); + + return view; + } + + class ServiceAdapter extends RecyclerView.Adapter{ + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.settings_item_layout, parent, false); + + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(ViewHolder holder, final int position) { + final ServiceGetterSetter mItem = serviceList.get(position); + holder.tv_settings.setText(mItem.getName()); + + holder.cardView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Fragment nextFrag= mItem.getFragment(); + + if(position==0){ + showExportDialog(); + // restoreBackup(); + } + /* else if(position==1){ + + File f = new File(CommonString.getImagesFolder(context)); + if(f!=null){ + File file[] = f.listFiles(); + if(file.length>0){ + UploadImageWithRetrofit.uploadedFiles = 0; + UploadImageWithRetrofit.totalFiles = file.length; + UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit(getActivity()); + uploadImg.UploadImageRecursive(getActivity()); + } + else { + Snackbar.make(rec, R.string.no_data_for_upload,Snackbar.LENGTH_SHORT).show(); + } + } + + }*/ + + } + }); + } + + @Override + public int getItemCount() { + return serviceList.size(); + } + + class ViewHolder extends RecyclerView.ViewHolder{ + + public CardView cardView; + public TextView tv_settings; + + public ViewHolder(View itemView) { + super(itemView); + cardView = (CardView) itemView.findViewById(R.id.card_layout); + tv_settings = (TextView) itemView.findViewById(R.id.tv_settings); + } + } + } + + class ServiceGetterSetter{ + + String name; + int icon; + Fragment fragment; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIcon() { + return icon; + } + + public void setIcon(int icon) { + this.icon = icon; + } + + + public Fragment getFragment() { + return fragment; + } + + public void setFragment(Fragment fragment) { + this.fragment = fragment; + } + } + + public void restoreBackup(){ + + try { + /* File sd = Environment.getExternalStorageDirectory(); + File data = Environment.getDataDirectory();*/ + + File sd = context.getExternalFilesDir(""); + File data = Environment.getDataDirectory(); + + if (sd.canWrite()) { + String currentDBPath = "//data//cpm.com.gskmtorange//databases//" + GSKOrangeDB.DATABASE_NAME; + String backupDBPath = "GSKMT_ORANGE_Database_backup_abdullah.bakr_06122024_144633.db"; + File currentDB = new File(data, currentDBPath); + File backupDB = new File(sd, backupDBPath); + + if (currentDB.exists()) { + FileChannel src = new FileInputStream(backupDB).getChannel(); + FileChannel dst = new FileOutputStream(currentDB).getChannel(); + dst.transferFrom(src, 0, src.size()); + src.close(); + dst.close(); + Toast.makeText(getActivity(), "Database Restored successfully", Toast.LENGTH_SHORT).show(); + } + } + } catch (Exception e) { + + System.out.println(e.getMessage()); + } + } + + public void showExportDialog(){ + String path; + AlertDialog.Builder builder1 = new AlertDialog.Builder(getActivity()); + builder1.setMessage(R.string.Areyou_sure_take_backup) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + @SuppressWarnings("resource") + public void onClick(DialogInterface dialog, int id) { + try { + /*File file = new File(Environment + .getExternalStorageDirectory(), + "gsk_orange_backup"); + if (!file.isDirectory()) { + file.mkdir(); + }*/ + + /* File sd = Environment.getExternalStorageDirectory(); + File data = Environment.getDataDirectory();*/ + + File sd = context.getExternalFilesDir(""); + File data = Environment.getDataDirectory(); + + if (sd.canWrite()) { + long date = System.currentTimeMillis(); + + SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yy"); + String dateString = sdf.format(date); + + String currentDBPath = "//data//cpm.com.gskmtorange//databases//" + GSKOrangeDB.DATABASE_NAME; + String backupDBPath = "GSKMT_ORANGE_Database_backup" + "_"+username+"_"+ visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getActivity()).replace(":", "") ; + + // String path = Environment.getExternalStorageDirectory().getPath()+ "/gsk_orange_backup"; + + String path = CommonString.getBackupFolder(context); + File currentDB = new File(data, currentDBPath); + File backupDB = new File(path, backupDBPath); + + //Snackbar.make(rec_store_data, "Database Exported Successfully", Snackbar.LENGTH_SHORT).show(); + Toast.makeText(getActivity(), getString(R.string.data_exported_successfully), Toast.LENGTH_SHORT).show(); + + if (currentDB.exists()) { + @SuppressWarnings("resource") + FileChannel src = new FileInputStream(currentDB).getChannel(); + FileChannel dst = new FileOutputStream(backupDB).getChannel(); + dst.transferFrom(src, 0, src.size()); + src.close(); + dst.close(); + } + } + + //usk + // File dir = new File(CommonString.BACKUP_PATH); + File dir = new File(CommonString.getBackupFolder(context)); + ArrayList list = new ArrayList(); + list = getFileNames(dir.listFiles()); + if (list.size() > 0) { + for (int i1 = 0; i1 < list.size(); i1++) { + if (list.get(i1).contains("GSKMT_ORANGE_Database_backup")) { + // File originalFile = new File(CommonString.BACKUP_PATH + list.get(i1)); + Object result = uploadBackup(getActivity(), list.get(i1), "DBBackup"); + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + Toast.makeText(getActivity(), getString(R.string.databasexported), Toast.LENGTH_SHORT).show(); + } + } + } + } + + + + } catch (Exception e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + System.out.println(e.getMessage()); + } + } + }) + .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert1 = builder1.create(); + alert1.show(); + } + public ArrayList getFileNames(File[] file) { + ArrayList arrayFiles = new ArrayList(); + if (file.length > 0) { + for (int i = 0; i < file.length; i++) + arrayFiles.add(file[i].getName()); + } + return arrayFiles; + } + + + private String uploadBackup(final Context context, String file_name, String folder_name) { + RequestBody body1; + result = ""; + isvalid = false; + final File originalFile = new File(CommonString.getBackupFolder(context) + file_name); + RequestBody photo = RequestBody.create(MediaType.parse("application/octet-stream"), originalFile); + body1 = new MultipartBuilder().type(MultipartBuilder.FORM) + .addFormDataPart("file", originalFile.getName(), photo) + .addFormDataPart("Foldername", folder_name) + .build(); + Retrofit adapter = new Retrofit.Builder() + .baseUrl(CommonString.URL+"/") + .addConverterFactory(new StringConverterFactory()) + .build(); + PostApiForFile api = adapter.create(PostApiForFile.class); + Call call = api.getUploadImage(body1); + call.enqueue(new Callback() { + @Override + public void onResponse(Response response) { + if (response.toString() != null) { + if (response.body().contains(CommonString.KEY_SUCCESS)) { + isvalid = true; + result = CommonString.KEY_SUCCESS; + originalFile.delete(); + Toast.makeText(context, getString(R.string.databasexported), Toast.LENGTH_SHORT).show(); + } else { + result = "Servererror!"; + } + } else { + result = "Servererror!"; + } + } + + @Override + public void onFailure(Throwable t) { + + // Crashlytics.logException(t); + // Crashlytics.logException(new Exception(t.getCause())); + + isvalid = true; + if (t instanceof UnknownHostException) { + result = AlertMessage.MESSAGE_SOCKETEXCEPTION; + } else { + result = AlertMessage.MESSAGE_SOCKETEXCEPTION; + } + Toast.makeText(context, originalFile.getName() + " not uploaded", Toast.LENGTH_SHORT).show(); + } + }); + return result; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/SettingsActivityFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/SettingsActivityFragment.java new file mode 100644 index 0000000..674e9ce --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/SettingsActivityFragment.java @@ -0,0 +1,141 @@ +package cpm.com.gskmtorange.fragment; + +import android.app.Activity; + +import android.content.SharedPreferences; +import android.os.Bundle; + +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.cardview.widget.CardView; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; + +/** + * A placeholder fragment containing a simple view. + */ +public class SettingsActivityFragment extends Fragment { + + ArrayList settingsList; + + public SettingsActivityFragment() { + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_settings, container, false); + + RecyclerView rec = (RecyclerView) view.findViewById(R.id.rec_settings); + + SettingsGetterSetter settings = new SettingsGetterSetter(); + settings.setName(getString(R.string.select_language_item)); + settings.setIcon(R.mipmap.entry_grey); + SelectLanguageFragment selectLanguageFragment = new SelectLanguageFragment(); + settings.setFragment(selectLanguageFragment); + + settingsList = new ArrayList<>(); + settingsList.add(settings); + + rec.setLayoutManager(new LinearLayoutManager(getActivity())); + SettingsAdapter settingsAdapter = new SettingsAdapter(); + rec.setAdapter(settingsAdapter); + + return view; + } + + class SettingsAdapter extends RecyclerView.Adapter{ + + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.settings_item_layout, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + final SettingsGetterSetter mItem = settingsList.get(position); + holder.tv_settings.setText(mItem.getName()); + + holder.cardView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Fragment nextFrag= mItem.getFragment(); + getActivity().getSupportFragmentManager().beginTransaction() + .add(R.id.fragment, nextFrag,"Settings") + .addToBackStack(null) + .commit(); + } + }); + } + + @Override + public int getItemCount() { + return settingsList.size(); + } + + class ViewHolder extends RecyclerView.ViewHolder{ + + public CardView cardView; + public TextView tv_settings; + + public ViewHolder(View itemView) { + super(itemView); + cardView = (CardView) itemView.findViewById(R.id.card_layout); + tv_settings = (TextView) itemView.findViewById(R.id.tv_settings); + } + } + } + + class SettingsGetterSetter{ + + String name; + int icon; + Fragment fragment; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getIcon() { + return icon; + } + + public void setIcon(int icon) { + this.icon = icon; + } + + + public Fragment getFragment() { + return fragment; + } + + public void setFragment(Fragment fragment) { + this.fragment = fragment; + } + } + + +} 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 new file mode 100644 index 0000000..7b3936d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java @@ -0,0 +1,734 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +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.CategoryGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.T2PGetterSetter; + +public class CategoryListActivity extends AppCompatActivity { + private Context context; + RecyclerView recyclerView; + ArrayList categoryList; + CategoryListAdapter adapter; + GSKOrangeDB db; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str, pog_type_id; + private SharedPreferences preferences; + String visit_type_id = ""; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_category_list); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + db = new GSKOrangeDB(this); + db.open(); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + pog_type_id = preferences.getString(CommonString.KEY_POG_TYPE_ID, ""); + if (preferences.getString(CommonString.KEY_VISIT_ID, "") != null) { + visit_type_id = preferences.getString(CommonString.KEY_VISIT_ID, ""); + } + toolbar.setTitle(getResources().getString(R.string.title_activity_category_list)); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_category); + fab.setOnClickListener(view -> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show()); + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + recyclerView = (RecyclerView) findViewById(R.id.recyclerView); + categoryList = new ArrayList<>(); + Log.e("country_data", country_id + "," + keyAccount_id); + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + categoryList = db.getCategoryListData(null, null, null, store_id, "MAPPING_STOCK_STOREWISE"); + Log.d("catlistsize", String.valueOf(categoryList.size())); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + categoryList = db.getCategoryListData(keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + categoryList = db.getCategoryListData(keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADDITIONAL); + } else { + categoryList = db.getCategoryListData(keyAccount_id, storeType_id, class_id, store_id, "MAPPING_STOCK"); + } + if (categoryList != null && !categoryList.isEmpty()) { + for (int i = 0; i < categoryList.size(); i++) { + boolean flag_filled = false; + String category_id = categoryList.get(i).getCategory_id(); + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + db.open(); + boolean flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADDITIONAL); + if (flag_mapping_stock) { + if (db.checkStockData(store_id, category_id, visit_date)) { + flag_filled = true; + } else { + flag_filled = false; + } + } + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2") && visit_type_id.equals("3")) { + db.open(); + if (db.additionalVisibilitydata(store_id, category_id)) { + flag_filled = true; + } else { + flag_filled = false; + } + } else { + //Additional_Visibility + if (db.additionalVisibilitydata(store_id, category_id)) { + boolean flag = true; + //MSL_Availability + boolean flag_mapping_stock; + //New MSL_Availability_StockFacing + if (country_id.equals("7")) { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + if (flag_mapping_stock) { + if (!db.checkMsl_Availability_StockFacingDataNew(store_id, category_id, visit_date)) { + flag = false; + } + } + + //Stock_Entry + boolean flag_stock_mapping_stock; + if (country_id.equals("10")) { + flag_stock_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_stock_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + flag_stock_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + if (flag_stock_mapping_stock) { + if (!db.checkStock_Entry_FacingDataNew(store_id, category_id, visit_date)) { + flag = false; + } + } + + //Promo Compliance + if (flag) { + if (country_id.equals("7")) { + if (db.getPromoComplianceSkuwiseExistsAfterData(store_id, category_id).size() == 0) { + flag = false; + } + } else { + boolean isMappingPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION_ADHOC); + } else { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION); + } + if (isMappingPromotion_Flag) { + if (!db.checkPromoComplianceData(store_id, category_id)) { + flag = false; + } + } + } + + } + + //T2P + if (flag) { + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, category_id, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, category_id, CommonString.TABLE_MAPPING_T2P); + } + if (flag_t2p_mapping) { + if (!db.isFilledT2P(store_id, category_id)) { + flag = false; + } + } + } + + //Category image + if (camera_allow.equals("1")) { + if (!db.isCategoryPictureData(store_id, category_id)) { + flag = false; + } + } else { + final ArrayList sub_category_list = db.getSubCategoryMaster(category_id, store_id, country_id); + //if Sub Group Data exists for any Sub Category of the Category + boolean isSubGroupDataExists = false; + for (int j = 0; j < sub_category_list.size(); j++) { + if (db.getSkuGroupMasterData(category_id, sub_category_list.get(j).getSub_category_id()).size() > 0) { + isSubGroupDataExists = true; + break; + } + } + + if (isSubGroupDataExists) { + if (db.getNoCameraCategoryDataInserted(store_id, category_id, null).size() == 0) { + flag = false; + } + } + } + + //Order Taking Data + if (country_id.equals("15") || ((country_id.equals("17") && category_id.equals("2")))) { + if (!db.checkOrder_taking_Data(store_id, category_id)) { + flag = false; + } + } + + if (flag) { + //changed on 23.10.2018 + //ArrayList question_list = getAuditAfterDeletion(category_id); + //changed on 03.12.2018 + ArrayList question_list = getAuditQnsRemoved(category_id); + if (question_list.size() > 0) { + /*if (!country_id.equals("6") && db.getAfterSaveAuditQuestionAnswerData(store_id, category_id).size() == 0) { + flag = false; + }*/ + if (db.getAfterSaveAuditQuestionAnswerData(store_id, category_id).size() == 0) { + flag = false; + } + } + } + + //new add UAE pharma + if (flag) { + if (db.getSubCategoryMasterForPOG(category_id, storeType_id, pog_type_id, null).size() > 0) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, category_id).size() == 0) { + flag = false; + } + } + if (country_id.equals("2")) { + if (camera_allow.equals("1")) { + if (db.getSubCategoryMasterForPOG(category_id, storeType_id, pog_type_id, null).size() > 0) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, category_id).size() == 0) { + flag = false; + } + } + } else { + flag = true; + } + } else { + if (db.getSubCategoryMasterForPOG(category_id, storeType_id, pog_type_id, null).size() > 0) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, category_id).size() == 0) { + flag = false; + } + } + } + } + + if (flag) { + //Counterfeit Product Option - Egypt + if (country_id.equals("6")) { + if (db.getCounterfeitProductExistsAfterData(store_id, category_id).size() == 0) { + flag = false; + } + + } + //usk + if (country_id.equals("6") && category_id.equals("2")) { + if (db.getCompetitionPromoExistsAfterData(store_id, category_id).size() == 0) { + flag = false; + } + } + } + + //// IR PD images handling by jp + ArrayList irList = isPdIRMapping(category_id); + if (irList != null && !irList.isEmpty() && camera_allow.equals("1")) { + flag = db.isFilledIRPDdata(store_id, visit_date, category_id); + } else { + flag = true; + } + + + flag_filled = flag; + } + } + + if (flag_filled) { + switch (category_id) { + case "1": + categoryList.get(i).setCategory_img(R.mipmap.health_food_drink_tick); + break; + case "2": + categoryList.get(i).setCategory_img(R.mipmap.oralcare_tick); + break; + case "3": + categoryList.get(i).setCategory_img(R.mipmap.wellness_tick); + break; + case "4": + categoryList.get(i).setCategory_img(R.mipmap.nutritionals_tick); + break; + case "5": + categoryList.get(i).setCategory_img(R.mipmap.gastro_n_indigestion_tick); + break; + case "6": + case "10": + categoryList.get(i).setCategory_img(R.mipmap.cough_n_cold_tick); + break; + case "7": + case "9": + categoryList.get(i).setCategory_img(R.mipmap.analgesics_tick); + break; + case "8": + categoryList.get(i).setCategory_img(R.mipmap.first_aid_tick); + break; + } + } else { + switch (category_id) { + case "1": + categoryList.get(i).setCategory_img(R.mipmap.health_food_drink); + break; + case "2": + categoryList.get(i).setCategory_img(R.mipmap.oral_care); + break; + case "3": + categoryList.get(i).setCategory_img(R.mipmap.wellness); + break; + case "4": + categoryList.get(i).setCategory_img(R.mipmap.nutritionals); + break; + case "5": + categoryList.get(i).setCategory_img(R.mipmap.gastro_n_indigestion); + break; + case "6": + case "10": + categoryList.get(i).setCategory_img(R.mipmap.cough_n_cold); + break; + case "7": + case "9": + categoryList.get(i).setCategory_img(R.mipmap.analgesics); + break; + case "8": + categoryList.get(i).setCategory_img(R.mipmap.first_aid); + break; + } + } + } + + adapter = new CategoryListAdapter(CategoryListActivity.this, categoryList); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new GridLayoutManager(context, 2)); + updateStatus(); + } + + } + + ArrayList getAuditAfterDeletion(String category_id) { + ArrayList question_list = db.getAuditCategoryWise(category_id, storeType_id); + + Iterator iterator = question_list.iterator(); + while (iterator.hasNext()) { + AuditDataGetterSetter item = iterator.next(); // must be called before you can call iterator.remove() + // Check condition + if (!item.getKEYACCOUNT_ID().equals("0") && !item.getKEYACCOUNT_ID().equals(keyAccount_id)) { + iterator.remove(); + } else if (!item.getCHECK_TYPE().equals("NA") && item.getCHECK_TYPE().equals("T2P")) { + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, category_id, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, category_id, CommonString.TABLE_MAPPING_T2P); + } + if (!flag_t2p_mapping) { + iterator.remove(); + } + } + } + + return question_list; + } + + ArrayList getAuditQnsRemoved(String categoryId) { + boolean t2p_flag = false; + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P); + } + if (flag_t2p_mapping) { + db.open(); + if (db.isFilledT2P(store_id, categoryId)) { + ArrayList t2PList = db.getT2pComplianceData(store_id, categoryId); + for (int i = 0; i < t2PList.size(); i++) { + if (t2PList.get(i).getPresent() == 1) { + t2p_flag = true; + break; + } + } + } + } + + if (!t2p_flag) { + if (db.additionalVisibilitydata(store_id, categoryId)) { + ArrayList additionalList = db.getAdditionalMainStock(store_id, categoryId); + + for (int i = 0; i < additionalList.size(); i++) { + if (additionalList.get(i).getBtn_toogle().equals("1")) { + t2p_flag = true; + break; + } + } + } + } + + + ArrayList question_list = db.getAuditCategoryWise(categoryId, storeType_id); + Log.e("questionlistsize", String.valueOf(question_list.size())); + Iterator iterator = question_list.iterator(); + while (iterator.hasNext()) { + AuditDataGetterSetter item = iterator.next(); // must be called before you can call iterator.remove() + // Check condition + if (!item.getKEYACCOUNT_ID().equals("0") && !item.getKEYACCOUNT_ID().equals(keyAccount_id)) { + iterator.remove(); + } else if (!item.getCHECK_TYPE().equals("NA") && item.getCHECK_TYPE().equals("T2P")) { + if (!t2p_flag) { + iterator.remove(); + } + } + } + + return question_list; + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + //getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @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) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + private class CategoryListAdapter extends RecyclerView.Adapter { + List list = Collections.emptyList(); + Context context; + LayoutInflater inflator; + + public CategoryListAdapter(CategoryListActivity context, List list) { + inflator = LayoutInflater.from(context); + this.list = list; + this.context = context; + } + + @NonNull + @Override + public CategoryListAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.category_menu_row, parent, false); + return new MyViewHolder(view); + } + + @Override + public void onBindViewHolder(MyViewHolder holder, int position) { + final CategoryGetterSetter categoryData = list.get(position); + holder.categoryName.setText(categoryData.getCategory()); + holder.categoryIcon.setImageResource(categoryData.getCategory_img()); + holder.lay_menu.setOnClickListener(view -> { + Intent intent = new Intent(CategoryListActivity.this, CategoryWisePerformanceActivity.class); + intent.putExtra("categoryName", categoryData.getCategory()); + intent.putExtra("categoryId", categoryData.getCategory_id()); + startActivity(intent); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + }); + } + + @Override + public int getItemCount() { + return list.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + TextView categoryName; + ImageView categoryIcon; + LinearLayout lay_menu; + + public MyViewHolder(View itemView) { + super(itemView); + categoryName = (TextView) itemView.findViewById(R.id.categoryName); + categoryIcon = (ImageView) itemView.findViewById(R.id.categoryIcon); + lay_menu = (LinearLayout) itemView.findViewById(R.id.lay_menu); + } + } + } + + public void updateStatus() { + //Update Checkout Status + boolean flag_filled = false; + for (int i = 0; i < categoryList.size(); i++) { + String category_id = categoryList.get(i).getCategory_id(); + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + boolean flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADDITIONAL); + if (flag_mapping_stock) { + if (db.checkStockData(store_id, category_id, visit_date)) { + flag_filled = true; + } else { + flag_filled = false; + break; + } + } + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2") && visit_type_id.equals("3")) { + db.open(); + flag_filled = db.additionalVisibilitydata(store_id, category_id); + } else { + db.open(); + if (db.additionalVisibilitydata(store_id, category_id)) { + boolean flag_mapping_stock; + //New MSL_Availability_StockFacing + if (country_id.equals("7") || country_id.equals("8")) { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + if (flag_mapping_stock) { + if (!db.checkMsl_Availability_StockFacingDataNew(store_id, category_id, visit_date)) { + flag_filled = false; + break; + } + } + + //New MSL_Availability_StockFacing + if (country_id.equals("10") || country_id.equals("8")) { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + if (flag_mapping_stock) { + if (!db.checkMsl_Availability_StockFacingDataNew(store_id, category_id, visit_date)) { + flag_filled = false; + break; + } + } + + //Stock_Entry + boolean flag_stock_mapping_stock; + if (country_id.equals("10")) { + flag_stock_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_stock_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + flag_stock_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + if (flag_stock_mapping_stock) { + if (!db.checkStock_Entry_FacingDataNew(store_id, category_id, visit_date)) { + flag_filled = false; + } + } + + if (country_id.equals("7")) { + if (db.getPromoComplianceSkuwiseExistsAfterData(store_id, category_id).isEmpty()) { + flag_filled = false; + break; + } + } else { + boolean isMappingPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION_ADHOC); + } else { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION); + } + if (isMappingPromotion_Flag) { + if (!db.checkPromoComplianceData(store_id, category_id)) { + flag_filled = false; + break; + } + } + } + + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, category_id, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, category_id, CommonString.TABLE_MAPPING_T2P); + } + if (flag_t2p_mapping) { + if (!db.isFilledT2P(store_id, category_id)) { + flag_filled = false; + break; + } + } + + if (camera_allow.equals("1")) { + db.open(); + if (!db.isCategoryPictureData(store_id, category_id)) { + flag_filled = false; + break; + } + } else { + final ArrayList sub_category_list = db.getSubCategoryMaster(category_id, store_id, country_id); + //if Sub Group Data exists for any Sub Category of the Category + boolean isSubGroupDataExists = false; + for (int j = 0; j < sub_category_list.size(); j++) { + if (!db.getSkuGroupMasterData(category_id, sub_category_list.get(j).getSub_category_id()).isEmpty()) { + isSubGroupDataExists = true; + break; + } + } + + if (isSubGroupDataExists) { + if (db.getNoCameraCategoryDataInserted(store_id, category_id, null).isEmpty()) { + flag_filled = false; + break; + } + } + } + + if (!getAuditQnsRemoved(category_id).isEmpty()) { + ///Make non Mandate Audit KPI for EGIPT + //Make Mandate Audit KPI FOR EGYPT 17-01-2023 BY VIKAS + if (db.getAfterSaveAuditQuestionAnswerData(store_id, category_id).isEmpty()) { + flag_filled = false; + break; + } + } + + if (country_id.equals("2")) { + if (camera_allow.equals("1")) { + if (!db.getSubCategoryMasterForPOG(category_id, storeType_id, pog_type_id, null).isEmpty()) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, category_id).isEmpty()) { + flag_filled = false; + break; + } + } + } + } else { + if (!db.getSubCategoryMasterForPOG(category_id, storeType_id, pog_type_id, null).isEmpty()) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, category_id).isEmpty()) { + flag_filled = false; + break; + } + } + } + + //Counterfeit Product Option - Egypt + if (country_id.equals("6")) { + if (db.getCounterfeitProductExistsAfterData(store_id, category_id).isEmpty()) { + flag_filled = false; + break; + } + + } + //usk + if (country_id.equals("6") && category_id.equals("2")) { + if (db.getCompetitionPromoExistsAfterData(store_id, category_id).isEmpty()) { + flag_filled = false; + break; + } + } + if (country_id.equals("15")) { + if (!db.checkOrder_taking_Data(store_id, category_id)) { + flag_filled = false; + break; + } + } + + //// IR PD images handling by jp + ArrayList irList = isPdIRMapping(category_id); + if (irList != null && !irList.isEmpty() && camera_allow.equals("1")) { + if (!db.isFilledIRPDdata(store_id, visit_date, category_id)) { + flag_filled = false; + break; + } + } + + flag_filled = true; + } else { + flag_filled = false; + break; + } + } + } + if (flag_filled) { + db.updateCheckoutStatus(store_id, CommonString.KEY_VALID, CommonString.KEY_JOURNEY_PLAN); + } + } + + + private ArrayList isPdIRMapping(String categoryId) { + ArrayList ir_list; + if (country_id.equals("8")) { + ir_list = db.getCategoryPicturedata(date, categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str != null && store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + ir_list = db.getCategoryPicturedata(date, categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + ir_list = db.getCategoryPicturedata(date, categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + + return ir_list; + } +} 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 new file mode 100644 index 0000000..201474e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java @@ -0,0 +1,271 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +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.dailyentry.MessageActivity; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryWisePerformaceGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.STORE_CATEGORY_WISEGetterSetter; + +public class CategoryWisePerformanceActivity extends AppCompatActivity { + RecyclerView recyclerView,recyclerView_sos; + LinearLayout lay_sos; + Toolbar toolbar; + private Context context; + String categoryName = "", categoryId; + ArrayList categoryWisePerformanceList; + ArrayList store_category_wiseGetterSetters; + CategoryWisePerformaceAdapter adapter; + CategoryWiseSosPerformaceAdapter sos_adapter; + + GSKOrangeDB db; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, store_flag_str; + private SharedPreferences preferences; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_category_wise_performance); + + toolbar = (Toolbar) findViewById(R.id.toolbar); + recyclerView = (RecyclerView) findViewById(R.id.recyclerView); + recyclerView_sos = (RecyclerView) findViewById(R.id.recyclerView_sos); + lay_sos = (LinearLayout) findViewById(R.id.lay_sos); + + + db = new GSKOrangeDB(this); + db.open(); + context = this; + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context,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, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + //txt_categoryName.setText(getResources().getString(R.string.title_activity_category_wise_performance) + " " + categoryName); + toolbar.setTitle(getResources().getString(R.string.title_activity_category_wise_performance) + " " + categoryName); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(CategoryWisePerformanceActivity.this, DailyDataMenuActivity.class); + intent.putExtra("categoryName", categoryName); + intent.putExtra("categoryId", categoryId); + startActivity(intent); + finish(); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + }); + } catch (Resources.NotFoundException e) { + e.printStackTrace(); + } + + } + + @Override + protected void onResume() { + super.onResume(); + try { + CommonFunctions.updateLangResources(context,preferences.getString(CommonString.KEY_LANGUAGE, "")); + if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId, CommonString.TABLE_STORE_PERFORMANCE_NEW_ADHOC); + } + else { + categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId, "STORE_PERFORMANCE_REVISED"); + } + + store_category_wiseGetterSetters = db.getSTORE_CATEGORY_WISE(store_id, categoryId, "CATEGORYWISE_SOS_TARGET"); + if (store_category_wiseGetterSetters.size()==0){ + lay_sos.setVisibility(View.GONE); + } + adapter = new CategoryWisePerformaceAdapter(CategoryWisePerformanceActivity.this, categoryWisePerformanceList); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new LinearLayoutManager(context)); + + sos_adapter = new CategoryWiseSosPerformaceAdapter(CategoryWisePerformanceActivity.this, store_category_wiseGetterSetters); + recyclerView_sos.setAdapter(sos_adapter); + recyclerView_sos.setLayoutManager(new LinearLayoutManager(context)); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @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) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + public class CategoryWisePerformaceAdapter extends RecyclerView.Adapter { + Context context; + List list = Collections.emptyList(); + private LayoutInflater inflator; + + public CategoryWisePerformaceAdapter(Context context, List list) { + inflator = LayoutInflater.from(context); + this.list = list; + this.context = context; + } + + @Override + public CategoryWisePerformaceAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.item_category_wise_performance, parent, false); + CategoryWisePerformaceAdapter.MyViewHolder holder = new CategoryWisePerformaceAdapter.MyViewHolder(view); + return holder; + } + + @Override + public void onBindViewHolder(CategoryWisePerformaceAdapter.MyViewHolder holder, int position) { + final CategoryWisePerformaceGetterSetter categoryData = list.get(position); + + if (categoryData.getPeriod().equalsIgnoreCase("LTM")) { + holder.txt_period.setText(getResources().getString(R.string.category_performance_ltm)); + } else if (categoryData.getPeriod().equalsIgnoreCase("MTD")) { + holder.txt_period.setText(getResources().getString(R.string.category_performance_mtd)); + } else if (categoryData.getPeriod().equalsIgnoreCase("LSV")) { + holder.txt_period.setText(getResources().getString(R.string.category_performance_lsv)); + } + //holder.txt_period.setText(categoryData.getPeriod()); + holder.txt_msl_availability.setText(categoryData.getMsl_availability()); + holder.txt_sos.setText(categoryData.getSos()); + holder.txt_t2p.setText(categoryData.getT2p()); + holder.txt_promo.setText(categoryData.getPromo()); + + holder.txt_planogram.setText(categoryData.getPLANOGRAM()); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + TextView txt_period, txt_sos, txt_t2p, txt_promo, txt_msl_availability,txt_planogram; + LinearLayout lay_menu; + + public MyViewHolder(View itemView) { + super(itemView); + lay_menu = (LinearLayout) itemView.findViewById(R.id.lay_menu); + txt_period = (TextView) itemView.findViewById(R.id.txt_period); + txt_sos = (TextView) itemView.findViewById(R.id.txt_sos); + 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_planogram = (TextView) itemView.findViewById(R.id.txt_planogram); + + } + } + } + + //category wise + public class CategoryWiseSosPerformaceAdapter extends RecyclerView.Adapter { + Context context; + List list = Collections.emptyList(); + private LayoutInflater inflator; + + public CategoryWiseSosPerformaceAdapter(Context context, List list) { + inflator = LayoutInflater.from(context); + this.list = list; + this.context = context; + } + + @Override + public CategoryWiseSosPerformaceAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.item_sos_category_wise_performance, parent, false); + CategoryWiseSosPerformaceAdapter.MyViewHolder holder = new CategoryWiseSosPerformaceAdapter.MyViewHolder(view); + return holder; + } + + @Override + public void onBindViewHolder(CategoryWiseSosPerformaceAdapter.MyViewHolder holder, int position) { + final STORE_CATEGORY_WISEGetterSetter categoryData = list.get(position); + + holder.txt_period.setText(categoryData.getSUB_CATEGORY().get(0)); + holder.txt_msl_availability.setText(categoryData.getSOS_TARGET().get(0)); + + + } + + @Override + public int getItemCount() { + return list.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + TextView txt_period,txt_msl_availability; + public MyViewHolder(View itemView) { + super(itemView); + txt_period = (TextView) itemView.findViewById(R.id.txt_period); + txt_msl_availability = (TextView) itemView.findViewById(R.id.txt_msl_availability); + + } + } + } + +} 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 new file mode 100644 index 0000000..a0504b7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java @@ -0,0 +1,920 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +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.NewStockDataActivity; +import cpm.com.gskmtorange.dailyentry.OrderTakingActivity; +import cpm.com.gskmtorange.dailyentry.PDimageActivity; +import cpm.com.gskmtorange.dailyentry.POGQuestionsActivity; +import cpm.com.gskmtorange.dailyentry.StockActivity; +import cpm.com.gskmtorange.dailyentry.StockDataActivity; +import cpm.com.gskmtorange.dailyentry.StockPricingActivity; +import cpm.com.gskmtorange.dailyentry.T2PComplianceActivity; +import cpm.com.gskmtorange.xmlGetterSetter.AuditDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DailyDataMenuGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.T2PGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; + +public class DailyDataMenuActivity extends AppCompatActivity { + RecyclerView recyclerView; + ArrayList categoryList; + DailyDataMenuAdapter adapter; + TextView txt_categoryName; + private Context context; + GSKOrangeDB db; + String categoryName = "", categoryId; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, pog_type_id, store_flag_str; + private SharedPreferences preferences; + ArrayList category_camera_list; + ArrayList visittypelist = new ArrayList(); + String visit_type_id = ""; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_daily_data_menu); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + recyclerView = (RecyclerView) findViewById(R.id.recyclerView); + //txt_categoryName = (TextView) findViewById(R.id.txt_categoryName); + db = new GSKOrangeDB(this); + db.open(); + context = this; + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + pog_type_id = preferences.getString(CommonString.KEY_POG_TYPE_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + if (preferences.getString(CommonString.KEY_VISIT_ID, "") != null) { + visit_type_id = preferences.getString(CommonString.KEY_VISIT_ID, ""); + } + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + toolbar.setTitle(getResources().getString(R.string.title_activity_daily_main_menu) + " - " + categoryName); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + db.open(); + visittypelist = db.getInsertedVisitType(store_id, visit_date, "3"); + if (visittypelist.size() > 0) { + if (visittypelist.get(0).getVISIT_TYPE_ID().equals("3")) { + + } + } + } catch (Resources.NotFoundException e) { + e.fillInStackTrace(); + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + try { + categoryList = new ArrayList<>(); + DailyDataMenuGetterSetter data = new DailyDataMenuGetterSetter(); + //For Additional Stores in Egypt(6) Only Stock Data will be captured + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + data = new DailyDataMenuGetterSetter(); + data.setCategory_name(getResources().getString(R.string.stock)); + if (isMappingStockData()) { + if (db.checkStockData(store_id, categoryId, visit_date)) { + 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); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION) && country_id.equals("2") && visit_type_id.equals("3")) { + data = new DailyDataMenuGetterSetter(); + data.setCategory_name(getResources().getString(R.string.daily_data_menu_additional_visibility)); + if (db.additionalVisibilitydata(store_id, categoryId)) { + data.setCategory_img(R.mipmap.additional_visibility_done); + } else { + data.setCategory_img(R.mipmap.additional_visibility); + } + categoryList.add(data); + } else { + if (country_id.equals(CommonString.COUNTRY_ID_EGYPT + "") && categoryId.equals("3")) { + data = new DailyDataMenuGetterSetter(); + data.setCategory_name(getResources().getString(R.string.daily_data_menu_stock_facing)); + if (isMappingStockData()) { + if (db.checkMsl_Availability_StockFacingDataNew(store_id, categoryId, visit_date)) { + 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); + } else { + data = new DailyDataMenuGetterSetter(); + data.setCategory_name(getResources().getString(R.string.daily_data_menu_msl_availability)); + if (isMappingStockData()) { + if (db.checkMsl_Availability_StockFacingDataNew(store_id, categoryId, visit_date)) { + 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); + } + + + //T2p and kenya POSm + data = new DailyDataMenuGetterSetter(); + if (country_id.equals("8") || country_id.equals("17")) { + data.setCategory_name(getResources().getString(R.string.title_posm)); + } else { + data.setCategory_name(getResources().getString(R.string.daily_data_menu_t2p)); + } + + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P); + } + + if (flag_t2p_mapping) { + if (db.isFilledT2P(store_id, categoryId)) { + data.setCategory_img(R.mipmap.t2p_compliance_done); + } else { + data.setCategory_img(R.mipmap.t2p_compliance); + } + } else { + data.setCategory_img(R.mipmap.t2pcompliance_grey); + } + categoryList.add(data); + + + //T2p added + data = new DailyDataMenuGetterSetter(); + if (country_id.equals("17")) { + data.setCategory_name(getResources().getString(R.string.title_posm) + "/" + getResources().getString(R.string.daily_data_menu_additional_visibility)); + } else { + data.setCategory_name(getResources().getString(R.string.daily_data_menu_additional_visibility)); + } + // data.setCategory_name(getResources().getString(R.string.daily_data_menu_additional_visibility)); + if (db.additionalVisibilitydata(store_id, categoryId)) { + data.setCategory_img(R.mipmap.additional_visibility_done); + } else { + data.setCategory_img(R.mipmap.additional_visibility); + } + categoryList.add(data); + + data = new DailyDataMenuGetterSetter(); + data.setCategory_name(getResources().getString(R.string.daily_data_menu_promo_compliance)); + if (country_id.equals("7")) { + if (db.getPromoComplianceSkuwiseExistsAfterData(store_id, categoryId).size() == 0) { + data.setCategory_img(R.mipmap.promo_compliance); + } else { + data.setCategory_img(R.mipmap.promo_compliance_done); + } + } else { + boolean isMappingPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC); + } else { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION); + } + + boolean isMappingAdditionalPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC); + } else { + isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION); + } + + if (isMappingPromotion_Flag || isMappingAdditionalPromotion_Flag) { + if (db.checkPromoComplianceData(store_id, categoryId) || db.checkAdditionalPromoComplianceData(store_id, categoryId)) { + data.setCategory_img(R.mipmap.promo_compliance_done); + } else { + data.setCategory_img(R.mipmap.promo_compliance); + } + } else { + data.setCategory_img(R.mipmap.promocompliance_grey); + } + } + categoryList.add(data); + + //Category Pictures + data = new DailyDataMenuGetterSetter(); + data.setCategory_name(getResources().getString(R.string.daily_data_menu_category_picture)); + //category_camera_list = db.getCategoryPicturedata(categoryId, keyAccount_id, storeType_id, class_id); + if (camera_allow.equalsIgnoreCase("1")) { + //if (category_camera_list.size()>0) { + 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_grey); + }*/ + } else if (country_id != null && country_id.equals("17") && camera_allow.equalsIgnoreCase("0")) { + data.setCategory_img(R.mipmap.picturecatogory_grey); + } else { + if (db.getNoCameraCategoryDataInserted(store_id, categoryId, null).size() > 0) { + data.setCategory_img(R.mipmap.picturecatogory_done); + } else { + data.setCategory_img(R.mipmap.picturecatogory); + // } + } + } + categoryList.add(data); + + //Order Taking + data = new DailyDataMenuGetterSetter(); + // ArrayList question_list; + data.setCategory_img(R.mipmap.msl_availability); + if (country_id.equals("15") || (country_id.equals("17") && categoryId.equals("2"))) { + if (isMappingStockData()) { + if (db.checkOrder_taking_Data(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); + } + data.setCategory_name(getString(R.string.order_taking)); + categoryList.add(data); + } + + //Order Confirm + data = new DailyDataMenuGetterSetter(); + // ArrayList question_list; + if (country_id.equals("15")) { + if (db.checkOrder_Received_Data(store_id, categoryId)) { + data.setCategory_img(R.mipmap.msl_availability_done); + } else { + data.setCategory_img(R.mipmap.msl_availability); + } + data.setCategory_name(getString(R.string.order_confirm)); + categoryList.add(data); + } + + //Audit + data = new DailyDataMenuGetterSetter(); + + ArrayList question_list; + + question_list = getAuditQnsRemoved(); + + if (question_list.size() > 0) { + if (db.getAfterSaveAuditQuestionAnswerData(store_id, categoryId).size() > 0) { + 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); + } + + data.setCategory_name(getString(R.string.audit)); + categoryList.add(data); + + //POG + /* data = new DailyDataMenuGetterSetter(); + if (db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, null).size() > 0) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, categoryId).size() > 0) { + 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); + }*/ + //new add UAE Pharma + data = new DailyDataMenuGetterSetter(); + if (country_id.equals("2")) { + if (camera_allow.equals("1")) { + if (db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, null).size() > 0) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, categoryId).size() > 0) { + 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); + } + } else { + data.setCategory_img(R.mipmap.msl_availability_grey); + } + } else { + if (db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, null).size() > 0) { + if (db.getAfterSavePOGUploadQuestionAnswerData(store_id, categoryId).size() > 0) { + 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); + } + } + + data.setCategory_name(getString(R.string.pog)); + categoryList.add(data); + + //Warehouse Stock - Jordan + if (country_id.equals("10")) { + data = new DailyDataMenuGetterSetter(); + data.setCategory_name(getResources().getString(R.string.stock_entry)); + if (isMappingStockData()) { + if (db.checkStock_Entry_FacingDataNew(store_id, categoryId, visit_date)) { + 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); + } + + //Counterfeit Product Option - Egypt + if (country_id.equals("6")) { + data = new DailyDataMenuGetterSetter(); + + if (db.getCounterfeitProductExistsAfterData(store_id, categoryId).size() > 0) { + data.setCategory_img(R.mipmap.counterfeit_done); + } else { + data.setCategory_img(R.mipmap.counterfeit); + } + + data.setCategory_name(getString(R.string.title_activity_counterfeit_products)); + 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); + } + } + + //IR Images + data = new DailyDataMenuGetterSetter(); + ArrayList ir_list = isPdIRMapping(); + if (ir_list != null && !ir_list.isEmpty() && camera_allow.equals("1")) { + data.setCategory_img(R.mipmap.picturecatogory); + db.open(); + if (db.isFilledIRPDdata(store_id, visit_date, categoryId)) { + data.setCategory_img(R.mipmap.picturecatogory_done); + } + } else { + data.setCategory_img(R.mipmap.picturecatogory_grey); + } + data.setCategory_name(getResources() + .getString(R.string.title_activity_ir_image)); + categoryList.add(data); + } + + adapter = new DailyDataMenuAdapter(DailyDataMenuActivity.this, categoryList); + recyclerView.setAdapter(adapter); + recyclerView.setLayoutManager(new GridLayoutManager(context, 2)); + } catch (Resources.NotFoundException e) { + e.fillInStackTrace(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + //getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @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) { + finish(); + } + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + ArrayList getAuditQnsRemoved() { + boolean t2p_flag = false; + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P); + } + + if (flag_t2p_mapping) { + if (db.isFilledT2P(store_id, categoryId)) { + ArrayList t2PList = db.getT2pComplianceData(store_id, categoryId); + + for (int i = 0; i < t2PList.size(); i++) { + if (t2PList.get(i).getPresent() == 1) { + t2p_flag = true; + break; + } + } + } + } + + if (!t2p_flag) { + if (db.additionalVisibilitydata(store_id, categoryId)) { + ArrayList additionalList = db.getAdditionalMainStock(store_id, categoryId); + for (int i = 0; i < additionalList.size(); i++) { + if (additionalList.get(i).getBtn_toogle().equals("1")) { + t2p_flag = true; + break; + } + } + } + } + + ArrayList question_list = db.getAuditCategoryWise(categoryId, storeType_id); + Log.e("catid", categoryId + "," + storeType_id + "," + question_list.size()); + Iterator iterator = question_list.iterator(); + while (iterator.hasNext()) { + AuditDataGetterSetter item = iterator.next(); // must be called before you can call iterator.remove() + // Check condition + if (!item.getKEYACCOUNT_ID().equals("0") && !item.getKEYACCOUNT_ID().equals(keyAccount_id)) { + iterator.remove(); + } else if (!item.getCHECK_TYPE().equals("NA") && item.getCHECK_TYPE().equals("T2P")) { + if (!t2p_flag) { + iterator.remove(); + } + } + } + Log.e("questionlistsize", String.valueOf(question_list)); + return question_list; + } + + private class DailyDataMenuAdapter extends RecyclerView.Adapter { + List list = Collections.emptyList(); + Context context; + LayoutInflater inflator; + + public DailyDataMenuAdapter(Context context, List list) { + inflator = LayoutInflater.from(context); + this.list = list; + this.context = context; + } + + @NonNull + @Override + public DailyDataMenuAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.daily_main_menu_row, parent, false); + return new MyViewHolder(view); + } + + @Override + public void onBindViewHolder(final DailyDataMenuAdapter.MyViewHolder holder, int position) { + final DailyDataMenuGetterSetter dailyData = list.get(position); + holder.categoryName.setText(dailyData.getCategory_name()); + holder.categoryIcon.setImageResource(dailyData.getCategory_img()); + db.open(); + visittypelist = db.getInsertedVisitType(store_id, visit_date, "3"); + if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.daily_data_menu_promo_compliance))) { + if (country_id.equals("7")) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + boolean isMappingPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC); + } else { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION); + } + boolean isMappingAdditionalPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC); + } else { + isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION); + } + if (isMappingPromotion_Flag || isMappingAdditionalPromotion_Flag) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } + } else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_t2p))) || dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.title_posm)))) { + boolean t2p_flag = false; + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P); + } + if (flag_t2p_mapping) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_category_picture)))) { + if (camera_allow.equalsIgnoreCase("1")) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else if (country_id.equals("17") && !camera_allow.equalsIgnoreCase("1")) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.daily_data_menu_msl_availability))) { + if (isMappingStockData()) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.stock_entry))) { + if (isMappingStockData()) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.daily_data_menu_stock_facing)) || dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.stock))) { + if (isMappingStockData()) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.audit))) { + if (!getAuditQnsRemoved().isEmpty()) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.pog))) { + if (country_id.equals("2")) { + if (camera_allow.equals("1")) { + if (!db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, null).isEmpty()) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } else { + db.open(); + if (!db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, null).isEmpty()) { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.black)); + } else { + holder.categoryName.setTextColor(ContextCompat.getColor(context, R.color.grey_background)); + } + } + } else if (dailyData.getCategory_name().equalsIgnoreCase(getString(R.string.title_activity_ir_image))) { + holder.categoryName.setTextColor(isPdIRMapping() != null && !isPdIRMapping().isEmpty() && camera_allow.equals("1") + ? ContextCompat.getColor(context, R.color.black) : ContextCompat.getColor(context, R.color.grey_background)); + } + + + holder.lay_menu.setOnClickListener(view -> { + if (dailyData.getCategory_name().equalsIgnoreCase(getResources().getString(R.string.daily_data_menu_promo_compliance))) { + if (country_id.equals("7")) { + Intent intent = new Intent(DailyDataMenuActivity.this, AdditionalPromoSKUwiseActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + intent.putExtra("categoryId", categoryId); + startActivity(intent); + } else { + boolean isMappingPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC); + } else { + isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION); + } + + boolean isMappingAdditionalPromotion_Flag; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC); + } else { + isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION); + } + + if (isMappingPromotion_Flag || isMappingAdditionalPromotion_Flag) { + 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))) || dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.title_posm)))) { + boolean flag_t2p_mapping; + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC); + } else { + flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P); + } + if (flag_t2p_mapping) { + Intent intent = new Intent(DailyDataMenuActivity.this, T2PComplianceActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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_Additional_visibility))) || + dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.title_posm) + "/" + getResources().getString(R.string.daily_data_menu_additional_visibility)))) { + Intent intent = new Intent(DailyDataMenuActivity.this, AdditionalVisibility.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.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 if (country_id != null && !country_id.equals("17")) { + Intent intent = new Intent(DailyDataMenuActivity.this, CreateSelfActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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_ir_image))) { + if (isPdIRMapping() != null && !isPdIRMapping().isEmpty() && camera_allow.equals("1")) { + Intent intent = new Intent(DailyDataMenuActivity.this, PDimageActivity.class); + intent.putExtra("kpi_name", dailyData.getCategory_name()); + intent.putExtra("categoryName", categoryName); + 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.order_taking))) { + if (isMappingStockData()) { + Intent intent = new Intent(DailyDataMenuActivity.this, OrderTakingActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.order_confirm))) { + if (isMappingStockData()) { + Intent intent = new Intent(DailyDataMenuActivity.this, OrderConfirmActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.daily_data_menu_msl_availability))) { + if (isMappingStockData()) { + Intent intent = new Intent(DailyDataMenuActivity.this, MSL_Availability_StockFacingActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.stock_entry))) { + if (isMappingStockData()) { + Intent intent = new Intent(DailyDataMenuActivity.this, StockEntryActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.daily_data_menu_stock_facing))) { + if (isMappingStockData()) { + Intent intent = new Intent(DailyDataMenuActivity.this, NewStockDataActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.audit))) { + if (!getAuditQnsRemoved().isEmpty()) { + Intent intent = new Intent(DailyDataMenuActivity.this, AuditActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.pog))) { + //add uae pharma + if (country_id.equals("2")) { + if (camera_allow.equals("1")) { + db.open(); + if (!db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, null).isEmpty()) { + Intent intent = new Intent(DailyDataMenuActivity.this, POGQuestionsActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + intent.putExtra("categoryId", categoryId); + startActivity(intent); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + + } + } else { + db.open(); + if (!db.getSubCategoryMasterForPOG(categoryId, storeType_id, pog_type_id, null).isEmpty()) { + Intent intent = new Intent(DailyDataMenuActivity.this, POGQuestionsActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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_counterfeit_products))) { + Intent intent = new Intent(DailyDataMenuActivity.this, CounterfeitProductsActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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.stock))) { + if (isMappingStockData()) { + Intent intent = new Intent(DailyDataMenuActivity.this, StockActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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_stock_pricing))) { + Intent intent = new Intent(DailyDataMenuActivity.this, StockPricingActivity.class); + intent.putExtra("categoryName", dailyData.getCategory_name()); + 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); + } + }); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + TextView categoryName; + ImageView categoryIcon; + LinearLayout lay_menu; + + public MyViewHolder(View itemView) { + super(itemView); + categoryName = (TextView) itemView.findViewById(R.id.categoryName); + categoryIcon = (ImageView) itemView.findViewById(R.id.categoryIcon); + lay_menu = (LinearLayout) itemView.findViewById(R.id.lay_menu); + } + } + } + + boolean isMappingStockData() { + boolean flag; + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + flag = db.isMappingStockDataStockFacing(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + flag = db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_ADDITIONAL)) { + flag = db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADDITIONAL); + } else { + flag = db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK); + } + return flag; + } + + private ArrayList isPdIRMapping() { + ArrayList ir_list; + if (country_id.equals("8")) { + ir_list = db.getCategoryPicturedata( + date, + categoryId, + null, + null, + null, + store_id, + CommonString.TABLE_MAPPING_STOCK_STOREWISE + ); + } else if (store_flag_str != null && store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + ir_list = db.getCategoryPicturedata( + date, + categoryId, + keyAccount_id, + storeType_id, + class_id, + store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC + ); + } else { + ir_list = db.getCategoryPicturedata( + date, + categoryId, + keyAccount_id, + storeType_id, + class_id, + store_id, + CommonString.TABLE_MAPPING_STOCK + ); + } + + return ir_list; + } + + /* private void check() { + ////IRPD-Upload Data + String irPD_xmlData = ""; + String onXML = ""; + ArrayList irdata = db.getIrPDforUpload(store_id, visit_date); + if (irdata != null && !irdata.isEmpty()) { + + for (int j = 0; j < irdata.size(); j++) { + onXML = "[IR_DATA]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + username + "[/USERID]" + + "[CATEGORY_ID]" + irdata.get(j).getCategoryId() + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + irdata.get(j).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[SUB_CATEGORY_CODE]" + irdata.get(j).getSubCatCode() + "[/SUB_CATEGORY_CODE]" + + "[IR_IMAGES]" + irdata.get(j).getSubCategoryCamera2() + "[/IR_IMAGES]" + + "[/IR_DATA]"; + + irPD_xmlData = irPD_xmlData + onXML; + } + + final String irpd_xml = "[DATA]" + irPD_xmlData + "[/DATA]"; + Log.e("irpd_xml",irpd_xml); + } + }*/ +} + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_AvailabilityActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_AvailabilityActivity.java new file mode 100644 index 0000000..d813b77 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_AvailabilityActivity.java @@ -0,0 +1,496 @@ +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.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.Button; +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.Toast; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +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.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityGetterSetter; + +public class MSL_AvailabilityActivity extends AppCompatActivity { + ExpandableListView expandableListView; + TextView txt_mslAvailabilityName; + private Context context; + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + + ExpandableListAdapter adapter; + + GSKOrangeDB db; + + String categoryName, categoryId, storeId; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id; + private SharedPreferences preferences; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_msl__availability); + + 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(); + context = this; + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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().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(listDataHeader, listDataChild)) { + AlertDialog.Builder builder = new AlertDialog.Builder(MSL_AvailabilityActivity.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_AvailabilityData(store_id, categoryId)) { + db.updateMSL_Availability(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(store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(view, getResources().getString(R.string.save_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + + //Toast.makeText(getApplicationContext(), "Data has been saved", Toast.LENGTH_LONG).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_AvailabilityActivity.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(); + CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + headerDataList = db.getMSL_AvailabilityHeaderData(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_AvailabilitySKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (!(childDataList.size() > 0)) { + childDataList = db.getMSL_AvailabilitySKUData(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(); + } + } + + @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) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(MSL_AvailabilityActivity.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) { + + } + }); + android.app.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(); + + super.onBackPressed(); + AlertDialog.Builder builder = new AlertDialog.Builder(MSL_AvailabilityActivity.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_AvailabilityGetterSetter headerTitle = (MSL_AvailabilityGetterSetter) getGroup(groupPosition); + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_msl_availability_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); + txt_categoryHeader.setTextColor(getResources().getColor(R.color.colorPrimary)); + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + /*img_camera.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String date = new Date().toLocaleString().toString(); + String TempDate = new Date().toLocaleString().toString().replace(' ', '_').replace(',', '_').replace(':', '-'); + + _pathforcheck = "Stock" + headerTitle.getBrand_cd() + "_" + store_cd + "_" + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + child_position = groupPosition; + path = str + _pathforcheck; + + startCameraActivity(groupPosition); + } + }); + + if (!img1.equalsIgnoreCase("")) { + if (groupPosition == child_position) { + headerTitle.setImg_cam(img1); + img1 = ""; + } + } + + if (headerTitle.getImg_cam().equals("")) { + img_camera.setBackgroundResource(R.drawable.cam); + } else { + img_camera.setBackgroundResource(R.drawable.camtick); + } + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + txt_header.setTextColor(getResources().getColor(R.color.red)); + } else { + txt_header.setTextColor(getResources().getColor(R.color.grey_dark)); + } + }*/ + + 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_AvailabilityGetterSetter childData = (MSL_AvailabilityGetterSetter) 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_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.toggle_available.setTextOff("No"); + holder.toggle_available.setTextOn("Yes");*/ + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + holder.txt_skuName.setText(childData.getSku()); + holder.txt_mbq.setText(childData.getMbq()); + + /*if (childData.getToggleValue().equals("1")) { + holder.toggle_available.setText("Yes"); + } else { + holder.toggle_available.setText("No"); + }*/ + + holder.toggle_available.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + childData.setToggleValue("1"); + } else { + childData.setToggleValue("0"); + } + + expandableListView.invalidateViews(); + } + }); + + if (childData.getToggleValue().equals("1")) { + holder.toggle_available.setChecked(true); + } else { + holder.toggle_available.setChecked(false); + } + + 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; + } + + +} 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..4c107e5 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java @@ -0,0 +1,1240 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.text.InputFilter; +import android.text.Spanned; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; +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 androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +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.interfaces.DialogCallbackListener; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; + +public class MSL_Availability_StockFacingActivity extends AppCompatActivity implements DialogCallbackListener { + ExpandableListView expandableListView; + private Context context; + TextView txt_mslAvailabilityName; + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + ExpandableListAdapter adapter; + ImageView camera1, camera2, camera3, camera4; + LinearLayout lin_camera1, lin_camera2, lin_camera3, lin_camera4; + GSKOrangeDB db; + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, store_flag_hide, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + String str_planogram = "", _pathforcheck = ""; + + ArrayList planogramShelfHeaderDataList = new ArrayList<>(); + ArrayList planogramSkuChildDataList; + HashMap> planogramHashMapListChildData = new HashMap<>(); + boolean editFlag = false; + public static final String FILE_PATH = Environment.getExternalStorageDirectory() + "/"; + LinearLayout pricingLL; + + @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); + camera1 = (ImageView) findViewById(R.id.img_camera1); + camera2 = (ImageView) findViewById(R.id.img_camera2); + camera3 = (ImageView) findViewById(R.id.img_camera3); + camera4 = (ImageView) findViewById(R.id.img_camera4); + lin_camera1 = (LinearLayout) findViewById(R.id.lin_camera1); + lin_camera2 = (LinearLayout) findViewById(R.id.lin_camera2); + lin_camera3 = (LinearLayout) findViewById(R.id.lin_camera3); + lin_camera4 = (LinearLayout) findViewById(R.id.lin_camera4); + pricingLL = findViewById(R.id.pricingLL); + context = this; + db = new GSKOrangeDB(this); + db.open(); + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + store_flag_hide = preferences.getString(CommonString.KEY_STORE_FLAG_FACING_HIDE, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + if (country_id != null && country_id.equals("5")) { + pricingLL.setVisibility(View.GONE); + } else { + pricingLL.setVisibility(View.VISIBLE); + } + toolbar.setTitle(getResources().getString(R.string.title_activity_msl__availability)); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + str_planogram = CommonString.getDownloadedImageFolder(context); + prepareList(); + prepareDefaultList(); + cameraMethod(); + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(view -> { + expandableListView.clearFocus(); + adapter.notifyDataSetChanged(); + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + db.open(); + if (db.checkMsl_Availability_StockFacingDataNew(store_id, categoryId, visit_date)) { + db.updateMSL_Availability_StockFacingNew(visit_date, store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, getResources().getString(R.string.update_message), Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + /*ArrayList msl_availabilityStockFacingList; + String mslAvailability_stockFacing_xml = ""; + String onXML = ""; + db.open(); + Log.d("listdata", store_id + "," + visit_date); + msl_availabilityStockFacingList = db.getMSL_Availability_StockFacing_UploadServerDataNew(store_id, visit_date, + null, null, null,CommonString.TABLE_MAPPING_STOCK_STOREWISE); + Log.d("msllistsize", String.valueOf(msl_availabilityStockFacingList.size())); + + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + + String stock, pricing; + if (!msl_availabilityStockFacingList.get(j).getStock().equals("")) { + stock = msl_availabilityStockFacingList.get(j).getStock(); + } else { + stock = "0"; + } + if (!msl_availabilityStockFacingList.get(j).getPricingStock().equals("")) { + pricing = msl_availabilityStockFacingList.get(j).getPricingStock(); + } else { + pricing = "-1"; + } + onXML = "[ST]" + + "[MID]" + "0" + "[/MID]" + //+ "[USERID]" + userId + "[/USERID]" + + "[SID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SID]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[AVL]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getToggleValue()) + "[/AVL]" + + "[FC]" + Double.parseDouble(msl_availabilityStockFacingList.get(j).getFacing()) + "[/FC]" + + "[SK]" + Integer.parseInt(stock) + "[/SK]" + + "[PRICING]" + Double.parseDouble(pricing) + "[/PRICING]" + + "[ML]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/ML]" + + "[/ST]"; + + mslAvailability_stockFacing_xml = mslAvailability_stockFacing_xml + onXML; + } + } + final String sos_xml = "[DATA]" + mslAvailability_stockFacing_xml + "[/DATA]"; + Log.d("MSL_DATA", sos_xml); + }*/ + } else { + db.InsertMSL_Availability_StockFacingNew(visit_date, store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, getResources().getString(R.string.save_message), Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } else { + Snackbar.make(expandableListView, Error_Message, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + } + + }); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//.setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + expandableListView.invalidateViews(); + } + }); + + // Listview Group click listener + expandableListView.setOnGroupClickListener((parent, v, groupPosition, id) -> false); + + // Listview Group expanded listener + expandableListView.setOnGroupExpandListener(groupPosition -> { + InputMethodManager inputManager = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + }); + + // Listview Group collasped listener + expandableListView.setOnGroupCollapseListener(groupPosition -> { + InputMethodManager inputManager = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + }); + + // Listview on child click listener + expandableListView.setOnChildClickListener((parent, v, groupPosition, childPosition, id) -> false); + } catch (Resources.NotFoundException e) { + e.printStackTrace(); + } + + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.planogram, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + if (editFlag) { + CommonFunctions.showAlertDialog(context, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } else if (id == R.id.action_planogram) {//Planogram Dialog + expandableListView.clearFocus(); + final Dialog dialog = new Dialog(MSL_Availability_StockFacingActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.setContentView(R.layout.planogram_dialog_layout); + dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + dialog.setCancelable(false); + ArrayList mappingPlanogramList; + //Header + if (country_id.equals("7") || country_id.equals("5") || country_id.equals("8")) { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, null, null, store_id, CommonString.TABLE_MAPPING_PLANOGRAM_STORE_WISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM_ADHOC); + } else { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM); + } + + //ImageView img_planogram = (ImageView) dialog.findViewById(R.id.img_planogram); + WebView webView = (WebView) dialog.findViewById(R.id.webview); + webView.setWebViewClient(new MyWebViewClient()); + webView.getSettings().setAllowFileAccess(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setBuiltInZoomControls(true); + String planogram_image = ""; + if (mappingPlanogramList.size() > 0) { + planogram_image = mappingPlanogramList.get(0).getPLANOGRAM_IMAGE(); + } + if (!planogram_image.equals("")) { + if (new File(str_planogram + planogram_image).exists()) { + Bitmap bmp = BitmapFactory.decodeFile(str_planogram + planogram_image); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + String imagePath = "file://" + str_planogram + "/" + planogram_image; + String html = ""; + webView.loadDataWithBaseURL("", html, "text/html", "utf-8", ""); + dialog.show(); + } + } + + + ImageView cancel = (ImageView) dialog.findViewById(R.id.img_cancel); + cancel.setOnClickListener(v -> { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + dialog.dismiss(); + }); + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onSelect(boolean flag) { + if (flag) { + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onSave(boolean flag) { + + } + + private class MyWebViewClient extends WebViewClient { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + } + + private void cameraMethod() { + if (!camera_allow.equals("1")) { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } else { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } + } + + //Planogram List for check and delete on backPress + private void prepareDefaultList() { + // Planogram After save shelf header data + planogramShelfHeaderDataList = db.getPlanogramAddShelfHeaderAfterSaveData(store_id, categoryId); + if (planogramShelfHeaderDataList.size() > 0) { + for (int i = 0; i < planogramShelfHeaderDataList.size(); i++) { + planogramSkuChildDataList = db.getStockAndFacingPlanogramAfterSKUData(planogramShelfHeaderDataList.get(i).getKey_id()); + //After save sku child data + if (planogramSkuChildDataList.size() > 0) { + planogramHashMapListChildData.put(planogramShelfHeaderDataList.get(i), planogramSkuChildDataList); + } + } + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + //Header + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, null, null, null, + store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC, store_flag_hide); + } else { + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, + store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + db.open(); + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, + CommonString.TABLE_MAPPING_STOCK_STOREWISE, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + childDataList = db.getMSL_Availability_StockFacingSKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), categoryId, + headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK); + } + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + //expand all + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + checkHeaderArray.clear(); + int childCount = 0; + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + HashMap> listDataChildTemp = new HashMap<>(); + for (int i = 0; i < listDataHeader.size(); i++) { + flag = true; + List listTemp = new ArrayList<>(); + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + child_flag = true; + MSL_AvailabilityStockFacingGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + String stock = data.getStock(); + String faceup = data.getFacing(); + String defaultpricing = data.getPricing(); + String pricing = data.getPricingStock(); + String companyId = data.getCompany_id(); + String must_have = data.getMust_have(); + //Company_id + if (companyId.equals("1")) { + if (must_have.equals("1")) { + //usk ksa pricing + if (!defaultpricing.equals("0")) { + if (!country_id.equals("17") && pricing.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.title_activity_stock_pricing); + } + } + + if (store_flag_hide.equals("0") && !country_id.equals("15")) { + if (!country_id.equals("17") && faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + } else { + if (data.getToggleValue().equals("0") && !country_id.equals("10")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } else { + //for Egypt + if (country_id.equals("6")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } + } + } + } else { + if (data.getToggleValue().equals("0") && !country_id.equals("10")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } else { + //for Egypt + if (country_id.equals("6")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } + } + } + + } + } else { + if (store_flag_hide.equals("0")) { + if (country_id != null && !country_id.equals("17") && faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + } + } + } + if (!child_flag) + listTemp.add(data); + } + + if (!flag) { + listDataHeaderTemp.add(listDataHeader.get(i)); + listDataChildTemp.put(listDataHeader.get(i), listTemp); + } else { + childCount = childCount + listDataChild.get(listDataHeader.get(i)).size(); + } + } + + if (!all_flag) { + adapter = new ExpandableListAdapter(context, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false; + } else { + checkflag = true; + } + + return all_flag; + } + + + @Override + public void onBackPressed() { + if (editFlag) { + CommonFunctions.showAlertDialog(context, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + if (headerTitle.getCompany_id().equals("1")) { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.header_text_color)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + txt_categoryHeader.setTextColor(getResources().getColor(R.color.white)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + 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.facing.setFilters(new InputFilter[]{new DecimalDigitsInputFilter(3, 1)}); + holder.stock = (EditText) convertView.findViewById(R.id.ed_stock); + holder.ed_pricing = (EditText) convertView.findViewById(R.id.ed_pricing); + holder.facing_view = convertView.findViewById(R.id.facing_view); + holder.stock_view = convertView.findViewById(R.id.stock_view); + holder.pricing_view = convertView.findViewById(R.id.pricing_view); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + // uae facing hide + if (store_flag_hide.equals("1") || country_id.equals("15") || country_id.equals("17")) { + holder.facing.setVisibility(View.GONE); + holder.facing_view.setVisibility(View.GONE); + } else { + holder.facing.setVisibility(View.VISIBLE); + holder.facing_view.setVisibility(View.VISIBLE); + } + holder.txt_skuName.setText(childData.getSku()); + holder.txt_mbq.setText(childData.getMbq()); + + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + holder.txt_mbq.setVisibility(View.VISIBLE); + holder.toggle_available.setVisibility(View.VISIBLE); + holder.toggle_available.setId(childPosition); + if (country_id.equals("6") || country_id.equals("10")) { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } + else { + if (childData.getToggleValue().equals("1")) { + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + } else { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } + } + } else { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + holder.toggle_available.setId(childPosition); + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + } + + if (country_id != null && !country_id.equals("17")) { + if (childData.getPricing().equals("0")) { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } else { + holder.ed_pricing.setVisibility(View.VISIBLE); + holder.pricing_view.setVisibility(View.VISIBLE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } + } + + if (childData.getCompany_id().equals("1")) { + if (country_id != null && country_id.equals("17") && !childData.getPricing().equals("0")) { + holder.ed_pricing.setVisibility(View.VISIBLE); + holder.pricing_view.setVisibility(View.VISIBLE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } else { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } + if (childData.getMust_have().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + if (country_id != null && country_id.equals("17")) { + holder.toggle_available.setVisibility(View.VISIBLE); + holder.toggle_available.setId(childPosition); + } + holder.txt_skuName.setTextColor(getResources().getColor(R.color.blue)); + } + } else { + if (country_id != null && country_id.equals("17")) { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + holder.toggle_available.setVisibility(View.VISIBLE); + holder.toggle_available.setId(childPosition); + } + + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } + + final ViewHolder finalHolder = holder; + holder.toggle_available.setOnCheckedChangeListener((buttonView, isChecked) -> { + if (buttonView.isPressed()) { + editFlag = true; + if (isChecked) { + childData.setToggleValue("1"); + //for Egypt + finalHolder.stock.setVisibility(country_id != null && (country_id.equals("6")||country_id.equals("10")) ? View.VISIBLE : View.GONE); + } else { + childData.setToggleValue("0"); + finalHolder.stock.setVisibility(country_id != null && country_id.equals("17") ? View.GONE : View.VISIBLE); + //If MBQ Value is 0 + if (Integer.parseInt(childData.getMbq()) == 0) { + childData.setStock("0"); + childData.setFacing("0"); + } else { + //for Egypt + if (country_id.equals("6")|| country_id.equals("10")) { + childData.setStock(""); + childData.setFacing(""); + } + } + } + expandableListView.clearFocus(); + expandableListView.invalidateViews(); + } + }); + + if (childData.getToggleValue().equals("1")) { + holder.toggle_available.setChecked(true); + if ((country_id.equals("6")|| (country_id.equals("10"))) && childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + finalHolder.stock.setVisibility(View.VISIBLE); + } else { + finalHolder.stock.setVisibility(View.GONE); + childData.setStock(""); + } + } else { + holder.toggle_available.setChecked(false); + finalHolder.stock.setVisibility((country_id != null && country_id.equals("17") && (!childData.getCompany_id().equals("1") || childData.getCompany_id().equals("1") && childData.getMust_have().equals("0"))) ? View.GONE : View.VISIBLE); + } + + holder.stock.setOnFocusChangeListener((v, hasFocus) -> { + final EditText caption = (EditText) v; + String edStock = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + editFlag = true; + if (!edStock.equals("")) { + String stock = edStock; + //for Egypt + if ((country_id.equals("6")||country_id.equals("10")) && childData.getToggleValue().equals("1")) { + if (!childData.getFacing().equals("")) { + if (Integer.parseInt(stock) >= 0 && Double.parseDouble(childData.getFacing()) <= Integer.parseInt(stock)) { + childData.setStock(stock); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder.stock.setText(""); + dialog.dismiss(); + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setStock(stock); + } + } else { + int mbq = Integer.parseInt(childData.getMbq()); + if (mbq != 0) { + if (Integer.parseInt(stock) >= 0 && Integer.parseInt(stock) < mbq) { + if (!childData.getFacing().equals("")) { + if (Integer.parseInt(stock) >= 0 && Double.parseDouble(childData.getFacing()) <= Integer.parseInt(stock)) { + childData.setStock(stock); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder.stock.setText(""); + dialog.dismiss(); + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setStock(stock); + } + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_stock)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder.stock.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } else { + if (Integer.parseInt(stock) > 0) { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_stock)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder.stock.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } + } + } else { + childData.setStock(""); + } + }); + holder.stock.setText(childData.getStock()); + + holder.ed_pricing.setOnFocusChangeListener((v, hasFocus) -> { + if (!hasFocus) { + final EditText Caption = (EditText) v; + String value1 = Caption.getText().toString().replaceFirst("^0+(?!$)", ""); + if (value1.equals("")) { + childData.setPricingStock(""); + finalHolder.ed_pricing.setText(""); + finalHolder.ed_pricing.setId(childPosition); + } else { + childData.setPricingStock(value1); + finalHolder.ed_pricing.setText(value1); + finalHolder.ed_pricing.setId(childPosition); + } + } + }); + + holder.ed_pricing.setText(childData.getPricingStock()); + + final ViewHolder finalHolder1 = holder; + final ViewHolder finalHolder2 = holder; + holder.facing.setOnFocusChangeListener((v, hasFocus) -> { + final EditText caption = (EditText) v; + String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + editFlag = true; + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + double faceup = Double.parseDouble(edFaceup); + int num = (int) faceup; + int faceint = (int) ((faceup % 1.0) * 10); + if (faceint != 0) { + if ((faceup % 1.0) * 10 != 5) { + faceint = 5; + edFaceup = String.valueOf(num + faceint / 10.0); + finalHolder2.facing.setText(edFaceup); + } + } + } + + boolean isFill = false; + //Toggle is no selected + if (childData.getToggleValue().equals("0")) { + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + int mbq = Integer.parseInt(childData.getMbq()); + if (mbq != 0) { + if (Double.parseDouble(edFaceup) >= 0 && Double.parseDouble(edFaceup) < mbq) { + if (!childData.getStock().equals("")) { + String faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + if (Double.parseDouble(faceup) <= Integer.parseInt(childData.getStock())) { + isFill = true; + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder1.facing.setText(""); + dialog.dismiss(); + finalHolder2.facing.setText(""); + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + isFill = true; + } + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_faceing)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder.facing.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } else { + if (Double.parseDouble(edFaceup) > 0) { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_faceing)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder.facing.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } + + } + } else { + if (country_id.equals("6")|| country_id.equals("10")) { + if (!childData.getStock().equals("")) { + String faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + if (Double.parseDouble(faceup) <= Integer.parseInt(childData.getStock())) { + isFill = true; + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(_context); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), (dialog, id) -> { + finalHolder1.facing.setText(""); + dialog.dismiss(); + finalHolder2.facing.setText(""); + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + isFill = true; + } + } else { + isFill = true; + } + } else { + isFill = true; + } + } + + if (isFill) { + if (!edFaceup.equals("") && !edFaceup.equals(".")) { + String faceup = ""; + if (edFaceup.equals("0") || edFaceup.equals(".0")) { + faceup = "0"; + } else { + faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + } + childData.setFacing(faceup); + } else { + childData.setFacing(""); + } + } + }); + + holder.facing.setText(childData.getFacing()); + //empty check color change + if (!checkflag) { + boolean tempflag = false; + //usk pricing + if (!childData.getPricing().equals("0")) { + if (holder.ed_pricing.getText().toString().equals("")) { + holder.ed_pricing.setBackgroundColor(getResources().getColor(R.color.white)); + holder.ed_pricing.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.ed_pricing.setHint(getString(R.string.empty)); + tempflag = true; + } + } + + 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 (childData.getMust_have().equals("1")) { + 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; + } + //for Egypt + if (country_id.equals("6")) { + 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; + } + } + } else { + holder.facing.setHint(""); + } + } + + + if (tempflag) { + holder.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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.lin_category.setBackgroundResource(R.drawable.cardview_error_border); + } else { + if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + } else { + holder.lin_category.setBackgroundColor(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, ed_pricing; + View stock_view, pricing_view, facing_view; + } + + + @SuppressLint("LongLogTag") + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("MSL_AVailability_StockFacing", "resultCode: " + resultCode); + + switch (requestCode) { + case 100: + //Planogram List for check and delete on backPress + prepareDefaultList(); + if (db.isPlanogramAddShelfSaveData(store_id, categoryId)) { + camera1.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + camera1.setBackgroundResource(R.mipmap.new_no_camera); + } + + break; + } + super.onActivityResult(requestCode, resultCode, data); + } + + public String PerfectDecimal(String str, int MAX_BEFORE_POINT, int MAX_DECIMAL) { + if (str.charAt(0) == '.') str = "0" + str; + int max = str.length(); + + String rFinal = ""; + boolean after = false; + int i = 0, up = 0, decimal = 0; + char t; + while (i < max) { + t = str.charAt(i); + if (t != '.' && after == false) { + up++; + if (up > MAX_BEFORE_POINT) return rFinal; + } else if (t == '.') { + after = true; + } else { + decimal++; + if (decimal > MAX_DECIMAL) + return rFinal; + } + rFinal = rFinal + t; + i++; + } + return rFinal; + } + + public class DecimalDigitsInputFilter implements InputFilter { + Pattern mPattern; + + public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero) { + mPattern = Pattern.compile("[0-9]{0," + (digitsBeforeZero - 1) + "}+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); + } + + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + Matcher matcher = mPattern.matcher(dest); + if (!matcher.matches()) + return ""; + return null; + } + } + + private void updateCoverage(String table) { + long l = db.updateStockMapping(store_id, visit_date, table); + if (l > 0) Log.e("CoverageUpdate", "" + l); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/OrderConfirmActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/OrderConfirmActivity.java new file mode 100644 index 0000000..52b90fd --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/OrderConfirmActivity.java @@ -0,0 +1,197 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.google.firebase.crashlytics.internal.common.CrashlyticsCore; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.Locale; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.OrderReceivedStatus; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.dailyentry.OrderTakingActivity; +import cpm.com.gskmtorange.xmlGetterSetter.JourneyPlanGetterSetter; + +public class OrderConfirmActivity extends AppCompatActivity { + RecyclerView recyclerview; + GSKOrangeDB db; + String visit_date, username, intime; + private SharedPreferences preferences; + JourneyPlanGetterSetter jcpGetset; + Recycler_view_adapter adapter; + ArrayList inserteslistData; + private Dialog dialog; + private boolean ResultFlag; + Context context; + LinearLayout poLL; + TextView sys_gen_poTV; + String storeid; + String categoryName="",categoryId=""; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_order_confirm); + context = this; + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + //toolbar.setTitle("Order Status" + "-"+"PO List"); + toolbar.setTitle(context.getString(R.string.order_status_polist)); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + declaration(); + } + + private void declaration() { + recyclerview = (RecyclerView) findViewById(R.id.recyclerview); + db = new GSKOrangeDB(this); + db.open(); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + storeid = preferences.getString(CommonString.KEY_STORE_ID, null); + setDataToListView(); + } + + private void setDataToListView() { + try { + db.open(); + inserteslistData=db.getOrderstatusData(storeid,categoryId); + if(inserteslistData.size()>0){ + adapter = new Recycler_view_adapter(context, inserteslistData); + recyclerview.setAdapter(adapter); + recyclerview.setLayoutManager(new LinearLayoutManager(context)); + adapter.notifyDataSetChanged(); + } + } catch (Exception e) { + } + } + + public class Recycler_view_adapter extends RecyclerView.Adapter{ + ArrayList orderReceivedStatuses; + Context context; + public Recycler_view_adapter(Context context, ArrayList list) { + this.context = context; + this.orderReceivedStatuses = list; + } + + @NonNull + @Override + public Recycler_view_adapter.Viewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { + View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.order_status_item_layout,viewGroup,false); + return new Viewholder(view); + } + + @Override + public void onBindViewHolder(@NonNull final Recycler_view_adapter.Viewholder viewholder, final int pos) { + final OrderReceivedStatus current = orderReceivedStatuses.get(pos); + viewholder.sys_gen_poTV.setText(current.getSys_gen_po()); + viewholder.podateTV.setText(current.getPodate()); + viewholder.storepoTV.setText(current.getStorepo()); + + viewholder.lineItemTV.setText( ""+current.getORDERQTY()); + if(current.getStatus().equalsIgnoreCase("CONFIRMED")){ + viewholder.statusTV.setText(context.getString(R.string.confirmed)); + } + else if(current.getStatus().equalsIgnoreCase("CONFIRM")){ + viewholder.statusTV.setText(context.getString(R.string.confirmed)); + } + else if(current.getStatus().equalsIgnoreCase("NOT CONFIRMED")){ + viewholder.statusTV.setText(context.getString(R.string.not_confirmed)); + } + else if(current.getStatus().equalsIgnoreCase("PENDING")){ + viewholder.statusTV.setText(context.getString(R.string.pending)); + } + else{ + viewholder.statusTV.setText(current.getStatus()); + } + + viewholder.cardview.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(OrderConfirmActivity.this,OrderStatusDetailActivity.class).putExtra("categoryId",String.valueOf(current.getCATEGORY_ID())) + .putExtra("SYS_PO_NUM",current.getSys_gen_po()) + .putExtra("PO_NUM",current.getStorepo()) + .putExtra("PO_DATE",current.getPodate()) + .putExtra("POID",String.valueOf(current.getPOID())) + .putExtra("LINE",String.valueOf(current.getORDERQTY()))); + overridePendingTransition(R.anim.activity_in, R.anim.activity_out); + } + }); + } + + @Override + public int getItemCount() { + return orderReceivedStatuses.size(); + } + + public class Viewholder extends RecyclerView.ViewHolder { + TextView sys_gen_poTV,storepoTV,podateTV,lineItemTV,statusTV; + CardView cardview; + LinearLayout storepoLL; + public Viewholder(@NonNull View itemView) { + super(itemView); + cardview= (CardView) itemView.findViewById(R.id.cardview); + storepoLL= itemView.findViewById(R.id.storepoLL); + sys_gen_poTV= itemView.findViewById(R.id.sys_gen_poTV); + storepoTV= itemView.findViewById(R.id.storepoTV); + podateTV= itemView.findViewById(R.id.podateTV); + lineItemTV= itemView.findViewById(R.id.lineItemTV); + statusTV= itemView.findViewById(R.id.statusTV); + } + } + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + //return super.onOptionsItemSelected(item); + int id = item.getItemId(); + if (id == android.R.id.home) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + // super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/OrderStatusDetailActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/OrderStatusDetailActivity.java new file mode 100644 index 0000000..b3f0a85 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/OrderStatusDetailActivity.java @@ -0,0 +1,1040 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.text.InputFilter; +import android.text.Spanned; +import android.util.Log; +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.RadioButton; +import android.widget.RadioGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; +import android.widget.ToggleButton; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +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.dailyentry.OrderTakingActivity; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; + +public class OrderStatusDetailActivity extends AppCompatActivity{ + ExpandableListView expandableListView; + private Context context; + TextView txt_mslAvailabilityName; + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; ExpandableListAdapter adapter; + ImageView camera1, camera2, camera3, camera4; + LinearLayout lin_camera1, lin_camera2, lin_camera3, lin_camera4; + GSKOrangeDB db; + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, store_flag_hide, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + String str_planogram = "", _pathforcheck = ""; + EditText storepoET,podateET; + + ArrayList planogramShelfHeaderDataList = new ArrayList<>(); + ArrayList planogramSkuChildDataList; + HashMap> planogramHashMapListChildData = new HashMap<>(); + boolean editFlag = false; + //temp + public static final String FILE_PATH = Environment.getExternalStorageDirectory() + "/"; + //ImageView bmImage; + RelativeLayout view; + RadioButton radio_yes,radio_no; + RadioGroup radio_group; + String isExist=""; + String sys_po_number=""; + TextView sys_gen_poTV,lineitemTV; + LinearLayout poLL; + String storepo =""; + TextView storepoTV,podateTV; + String SYS_PO_NUM,PO_NUM,PO_DATE,LINE,POID; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + context = this; + try { + setContentView(R.layout.activity_order_status_detail); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + txt_mslAvailabilityName = (TextView) findViewById(R.id.txt_mslAvailabilityName); + camera1 = (ImageView) findViewById(R.id.img_camera1); + camera2 = (ImageView) findViewById(R.id.img_camera2); + camera3 = (ImageView) findViewById(R.id.img_camera3); + camera4 = (ImageView) findViewById(R.id.img_camera4); + storepoTV = findViewById(R.id.storepoTV); + lineitemTV = findViewById(R.id.lineitemTV); + podateTV = findViewById(R.id.podateTV); + poLL = findViewById(R.id.poLL); + + sys_gen_poTV = findViewById(R.id.sys_gen_poTV); + podateTV = findViewById(R.id.podateTV); + + lin_camera1 = (LinearLayout) findViewById(R.id.lin_camera1); + lin_camera2 = (LinearLayout) findViewById(R.id.lin_camera2); + lin_camera3 = (LinearLayout) findViewById(R.id.lin_camera3); + lin_camera4 = (LinearLayout) findViewById(R.id.lin_camera4); + context = this; + db = new GSKOrangeDB(this); + db.open(); + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + store_flag_hide = preferences.getString(CommonString.KEY_STORE_FLAG_FACING_HIDE, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + SYS_PO_NUM = getIntent().getStringExtra("SYS_PO_NUM"); + PO_NUM = getIntent().getStringExtra("PO_NUM"); + PO_DATE = getIntent().getStringExtra("PO_DATE"); + LINE = getIntent().getStringExtra("LINE"); + POID = getIntent().getStringExtra("POID"); + // Log.e("poid",POID); + // Log.e("podetai",SYS_PO_NUM + ","+PO_NUM + ","+PO_DATE + ","+LINE); + + // toolbar.setTitle("Order Status" + "-"+"Entry"); + toolbar.setTitle(context.getString(R.string.order_status_entry)); + setSupportActionBar(toolbar); + + sys_gen_poTV.setText(SYS_PO_NUM); + storepoTV.setText(PO_NUM); + podateTV.setText(PO_DATE); + lineitemTV.setText(LINE); + + // Log.e("sys_po_num",sys_po_number +","+timeMilli); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + str_planogram = CommonString.getDownloadedImageFolder(context); + + prepareList(); + + //Camera + // prepareDefaultList(); + + // cameraMethod(); + + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View view) { + expandableListView.clearFocus(); + adapter.notifyDataSetChanged(); + + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + db.open(); + if (db.checkOrder_Received_Data(store_id, categoryId)) { + db.updateOrder_Received_data(storepoTV.getText().toString(), sys_gen_poTV.getText().toString(), podateTV.getText().toString(), store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Toast.makeText(context, getResources().getString(R.string.update_message), Toast.LENGTH_SHORT).show(); + } else { + db.InsertOrderReceivedStatusData(POID, storepoTV.getText().toString(), sys_gen_poTV.getText().toString(), podateTV.getText().toString(), store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Toast.makeText(context, getResources().getString(R.string.save_message), Toast.LENGTH_SHORT).show(); + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + + /* String order_received_xml = ""; + String onXML = ""; + + ArrayList orderreceiveddata = db.getOrder_RECEIVED_UploadServerData(store_id); + + if (orderreceiveddata.size() > 0) { + for (int j = 0; j < orderreceiveddata.size(); j++) { + onXML = "[ORDER_CONFIRM]" + + "[MID]" + 0 + "[/MID]" + + "[USERID]" + username + "[/USERID]" + + "[CATEGORY_ID]" + orderreceiveddata.get(j).getCategory_id() + "[/CATEGORY_ID]" + + "[PO_DATE]" + orderreceiveddata.get(j).getPO_Date() + "[/PO_DATE]" + + "[POID]" + orderreceiveddata.get(j).getPOID() + "[/POID]" + + "[SKU_ID]" + orderreceiveddata.get(j).getSku_id() + "[/SKU_ID]" + + "[PO_QTY]" + orderreceiveddata.get(j).getOrderqty() + "[/PO_QTY]" + + "[ACTUAL_QTY]" + orderreceiveddata.get(j).getFacing() + "[/ACTUAL_QTY]" + + "[/ORDER_CONFIRM]"; + + order_received_xml = order_received_xml + onXML; + } + + final String sos_xml = "[DATA]" + order_received_xml + "[/DATA]"; + Log.e("order_xml", sos_xml); + + } */ + + } + else{ + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + } + + } + }); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//.setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .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) context + .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) context + .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(); + } + + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + checkHeaderArray.clear(); + int childCount = 0; + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + HashMap> listDataChildTemp = new HashMap<>(); + for (int i = 0; i < listDataHeader.size(); i++) { + flag = true; + + List listTemp = new ArrayList<>(); + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + child_flag = true; + MSL_AvailabilityStockFacingGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + + String faceup = data.getFacing(); + // Log.e("facevalue",faceup); + + //Company_id + if (listDataChild.get(listDataHeader.get(i)).get(j).getCompany_id().equals("1")) { + if (store_flag_hide.equals("0")) { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + // scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + // Toast.makeText(context, getResources().getString(R.string.faceup_value), Toast.LENGTH_SHORT).show(); + Toast.makeText(context, getResources().getString(R.string.pls_fill_order_qty), Toast.LENGTH_SHORT).show(); + } + } + } + + if (!child_flag) + listTemp.add(data); + } + + if (flag == false) { + listDataHeaderTemp.add(listDataHeader.get(i)); + // listDataChildTemp.put(listDataHeader.get(i), listTemp); + } else { + childCount = childCount + listDataChild.get(listDataHeader.get(i)).size(); + } + } + + if (!all_flag) { + adapter.notifyDataSetChanged(); + /*adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter);*/ + checkflag = false; + } else { + checkflag = true; + } + return all_flag; + } + + private void prepareList() { + // Log.e("store_flag_hide",store_flag_hide); + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + if (country_id.equals("7") || country_id.equals("8")) { + // Log.e("childlistsize2", String.valueOf(headerDataList.size())); + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + // Log.e("childlistsize1", String.valueOf(headerDataList.size())); + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC, store_flag_hide); + } else { + //Log.e("categorydata",categoryId + ","+keyAccount_id + ","+storeType_id+","+class_id+","+store_id); + headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + // Log.e("childlistsize", String.valueOf(headerDataList.size())); + } + + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + //childDataList = new ArrayList<>(); + childDataList = db.getOrder_RECEIVED_SKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (!(childDataList.size() > 0)) { + if (country_id.equals("7") || country_id.equals("8")) { + childDataList = db.getOrderReceivedSKUData(headerDataList.get(i).getSub_category_id(), categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + childDataList = db.getOrderReceivedSKUData(headerDataList.get(i).getSub_category_id(), categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC, store_flag_hide); + } else { + //childDataList = db.getMSL_Availability_StockFacingSKUData(headerDataList.get(i).getSub_category_id(), categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, store_flag_hide); + childDataList = db.getOrderReceivedSKUData(headerDataList.get(i).getSub_category_id(), categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, store_flag_hide); + } + } + else{ + + } + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + + //expand all + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + 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_order_taking, 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + 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()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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); + OrderStatusDetailActivity.ViewHolder holder = null; + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_order_received_status_child, null, false); + holder = new OrderStatusDetailActivity.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.poqtyTV = (TextView) convertView.findViewById(R.id.poqtyTV); + 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.facing.setFilters(new InputFilter[]{new OrderStatusDetailActivity.DecimalDigitsInputFilter(3, 1)}); + holder.stock = (EditText) convertView.findViewById(R.id.ed_stock); + holder.ed_pricing = (EditText) convertView.findViewById(R.id.ed_pricing); + + holder.facing_view = convertView.findViewById(R.id.facing_view); + holder.stock_view = convertView.findViewById(R.id.stock_view); + holder.pricing_view = convertView.findViewById(R.id.pricing_view); + convertView.setTag(holder); + } else { + holder = (OrderStatusDetailActivity.ViewHolder) convertView.getTag(); + } + + holder.poqtyTV.setText(context.getString(R.string.po_qty) + ":"+childData.getOrderqty()); + // holder.poqtyTV.setText("PO QTY" + ":"+childData.getOrderqty()); + // uae facing hide + /*if (store_flag_hide.equals("1")) { + holder.facing.setVisibility(View.GONE); + holder.facing_view.setVisibility(View.GONE); + } else { + holder.facing.setVisibility(View.VISIBLE); + holder.facing_view.setVisibility(View.VISIBLE); + }*/ + //usk + /* if (childData.getPricing().equals("0")) { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } else { + holder.ed_pricing.setVisibility(View.VISIBLE); + holder.pricing_view.setVisibility(View.VISIBLE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + }*/ + + holder.txt_skuName.setText(childData.getSku()); + // holder.txt_mbq.setText(childData.getMbq()); + + /* if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + + //holder.txt_mbq.setVisibility(View.VISIBLE); + holder.toggle_available.setVisibility(View.VISIBLE); + // holder.facing.setVisibility(View.VISIBLE); + if (country_id.equals("6")) { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } else { + if (childData.getToggleValue().equals("1")) { + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + } else { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } + } + + + } else { + + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + // holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + // holder.facing.setVisibility(View.VISIBLE); + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + }*/ + + if (childData.getCompany_id().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } + + + final OrderStatusDetailActivity.ViewHolder finalHolder = holder; + holder.toggle_available.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (buttonView.isPressed()) { + + editFlag = true; + + if (isChecked) { + childData.setToggleValue("1"); + //for Egypt + if (country_id.equals("6")) { + finalHolder.stock.setVisibility(View.VISIBLE); + } else { + finalHolder.stock.setVisibility(View.GONE); + } + + /*childData.setStock(""); + childData.setFacing("");*/ + } else { + /* childData.setStock(""); + childData.setFacing("");*/ + childData.setToggleValue("0"); + finalHolder.stock.setVisibility(View.VISIBLE); + + //If MBQ Value is 0 + if (Integer.parseInt(childData.getMbq()) == 0) { + childData.setStock("0"); + childData.setFacing("0"); + } else { + //for Egypt + if (country_id.equals("6")) { + childData.setStock(""); + childData.setFacing(""); + } + } + + /* else { + if (finalHolder.facing.getText().toString() != null && !finalHolder.facing.getText().toString().equals("")) { + if (Integer.parseInt(finalHolder.facing.getText().toString()) >= 0 + && Integer.parseInt(finalHolder.facing.getText().toString()) >= Integer.parseInt(childData.getMbq())) { + childData.setFacing(""); + finalHolder.facing.setText(""); + } + } + }*/ + } + + expandableListView.clearFocus(); + expandableListView.invalidateViews(); + } + } + }); + + /*if (childData.getToggleValue().equals("1")) { + holder.toggle_available.setChecked(true); + if (country_id.equals("6") && childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + finalHolder.stock.setVisibility(View.VISIBLE); + } else { + finalHolder.stock.setVisibility(View.GONE); + childData.setStock(""); + } + + + } else { + holder.toggle_available.setChecked(false); + finalHolder.stock.setVisibility(View.VISIBLE); + }*/ + + + /*holder.stock.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edStock = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + *//*if (!childData.getFacing().equals("") && Integer.parseInt(stock) >= 0 && Integer.parseInt(childData.getFacing()) < Integer.parseInt(stock)) { + + }*//* + editFlag = true; + if (!edStock.equals("")) { + String stock = edStock; + + //for Egypt + if (country_id.equals("6") && childData.getToggleValue().equals("1")) { + if (!childData.getFacing().equals("")) { + if (Integer.parseInt(stock) >= 0 && Double.parseDouble(childData.getFacing()) <= Integer.parseInt(stock)) { + + childData.setStock(stock); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(OrderStatusDetailActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder.stock.setText(""); + dialog.dismiss(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setStock(stock); + } + } else { + int mbq = Integer.parseInt(childData.getMbq()); + if (mbq != 0) { + if (Integer.parseInt(stock) >= 0 && Integer.parseInt(stock) < mbq) { + + if (!childData.getFacing().equals("")) { + if (Integer.parseInt(stock) >= 0 && Double.parseDouble(childData.getFacing()) <= Integer.parseInt(stock)) { + + childData.setStock(stock); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(OrderStatusDetailActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder.stock.setText(""); + dialog.dismiss(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + childData.setStock(stock); + } + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(OrderStatusDetailActivity.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) { + finalHolder.stock.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } else { + if (Integer.parseInt(stock) > 0) { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(OrderStatusDetailActivity.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) { + finalHolder.stock.setText(""); + dialog.dismiss(); + isDialogOpen = !isDialogOpen; + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + } + } + } else { + childData.setStock(""); + } + } + });*/ + /* holder.stock.setText(childData.getStock());*/ + + /*holder.ed_pricing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (!hasFocus) { + final EditText Caption = (EditText) v; + String value1 = Caption.getText().toString().replaceFirst("^0+(?!$)", ""); + if (value1.equals("")) { + childData.setPricingStock(""); + finalHolder.ed_pricing.setText(""); + finalHolder.ed_pricing.setId(childPosition); + } else { + childData.setPricingStock(value1); + finalHolder.ed_pricing.setText(value1); + finalHolder.ed_pricing.setId(childPosition); + } + } + } + });*/ + + // holder.ed_pricing.setText(childData.getPricingStock()); + + + final OrderStatusDetailActivity.ViewHolder finalHolder1 = holder; + final OrderStatusDetailActivity.ViewHolder finalHolder2 = holder; + holder.facing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + editFlag = true; + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + //int num = Integer.parseInt(edFaceup); + double faceup = Double.parseDouble(edFaceup); + int num = (int) faceup; + //int faceint = (int)(faceup - Math.floor( faceup )); + int faceint = (int) ((faceup % 1.0) * 10); + if (faceint != 0) { + if ((faceup % 1.0) * 10 != 5) { + faceint = 5; + edFaceup = String.valueOf(num + faceint / 10.0); + finalHolder2.facing.setText(edFaceup); + } + } + + + /*Double faceup = Double.parseDouble(edFaceup); + DecimalFormat twoDForm = new DecimalFormat(".#"); + faceup= Double.valueOf(twoDForm.format(faceup));*/ + } + + + boolean isFill = false; + + //Toggle is no selected + + if (country_id.equals("6")) { + if (!childData.getStock().equals("")) { + + String faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + if (Double.parseDouble(faceup) <= Integer.parseInt(childData.getStock())) { + + isFill = true; + + /* if (!edFaceup.equals("")) { + childData.setFacing(faceup); + } else { + childData.setFacing(""); + }*/ + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(OrderStatusDetailActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .setCancelable(false) + .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + finalHolder1.facing.setText(""); + dialog.dismiss(); + finalHolder2.facing.setText(""); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } else { + isFill = true; + } + // } + } else { + isFill = true; + } + } else { + isFill = true; + } + + if (isFill) { + if (!edFaceup.equals("") && !edFaceup.equals(".")) { + String faceup = ""; + if (edFaceup.equals("0") || edFaceup.equals(".0")) { + faceup = "0"; + } else { + faceup = edFaceup.replaceFirst("^0+(?!$)", ""); + //faceup = new DecimalFormat("##.#").format(Double.parseDouble(faceup)); + } + + // String str2 = PerfectDecimal(faceup, 3, 1); + childData.setFacing(faceup); + } else { + childData.setFacing(""); + } + } + } + }); + + holder.facing.setText(childData.getFacing()); + + //empty check color change + if (!checkflag) { + boolean tempflag = false; + //usk pricing + /*if (!childData.getPricing().equals("0")) { + if (holder.ed_pricing.getText().toString().equals("")) { + holder.ed_pricing.setBackgroundColor(getResources().getColor(R.color.white)); + holder.ed_pricing.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.ed_pricing.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; + } + + if (childData.getCompany_id().equals("1")) { + holder.facing.setHint(""); + /* 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 (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.lin_category.setBackgroundColor(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)); + holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + if (childData.getCompany_id().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + } else { + holder.lin_category.setBackgroundColor(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,poqtyTV; + ToggleButton toggle_available; + LinearLayout lin_category; + EditText facing, stock, ed_pricing; + View stock_view, pricing_view, facing_view; + } + + public class DecimalDigitsInputFilter implements InputFilter { + Pattern mPattern; + + public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero) { + mPattern = Pattern.compile("[0-9]{0," + (digitsBeforeZero - 1) + "}+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); + } + + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + Matcher matcher = mPattern.matcher(dest); + if (!matcher.matches()) + return ""; + return null; + } + } + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + //return super.onOptionsItemSelected(item); + int id = item.getItemId(); + if (id == android.R.id.home) { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + // super.onBackPressed(); + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/PromoComplianceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/PromoComplianceActivity.java new file mode 100644 index 0000000..4b59886 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/PromoComplianceActivity.java @@ -0,0 +1,1175 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.app.Activity; +import android.app.AlertDialog; +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.content.res.Configuration; +import android.content.res.Resources; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.CompoundButton; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Locale; +import java.util.logging.StreamHandler; + +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.dailyentry.T2PComplianceActivity; +import cpm.com.gskmtorange.xmlGetterSetter.Promo_Compliance_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SelectGetterSetter; + +public class PromoComplianceActivity extends AppCompatActivity { + LinearLayout lin_promo_sku, lin_addtional_promo; + View view_promo_sku, view_additional_promo; + private Context context; + Spinner sp_promo; + Spinner toggle_add_InStock, toggle_add_promoAnnouncer; + ToggleButton toggle_add_runningPos; + //Button btn_add; + ImageView img_addPromotion; + + ArrayList promoSkuListData; + ArrayList promoSpinnerListData; + ArrayList additionalPromoListData; + + GSKOrangeDB db; + String categoryName, categoryId; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, store_flag_str; + private SharedPreferences preferences; + + String str = CommonString.getImagesFolder(context), + path = "", _pathforcheck = "", img = ""; + int child_position = -1; + Uri outputFileUri; + String gallery_package = ""; + String error_msg; + Promo_Compliance_DataGetterSetter cd; + FloatingActionButton fab, fab_add; + ScrollView scrollView; + private int oldScrollYPostion = 0; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_promo_compliance); + + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + toolbar.setTitle(getResources().getString(R.string.title_activity_promo_compliance)); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + context = this; + lin_promo_sku = (LinearLayout) findViewById(R.id.lin_promo_sku); + lin_addtional_promo = (LinearLayout) findViewById(R.id.lin_addtional_promo); + view_promo_sku = findViewById(R.id.view_promo_sku); + //view_additional_promo = findViewById(R.id.view_additional_promo); + + sp_promo = (Spinner) findViewById(R.id.sp_promo); + toggle_add_InStock = (Spinner) findViewById(R.id.toggle_add_InStock); + toggle_add_promoAnnouncer = (Spinner) findViewById(R.id.toggle_add_promoAnnouncer); + toggle_add_runningPos = (ToggleButton) findViewById(R.id.toggle_add_runningPos); + //btn_add = (Button) findViewById(R.id.btn_add); + img_addPromotion = (ImageView) findViewById(R.id.img_addPromotion); + fab = (FloatingActionButton) findViewById(R.id.fab); + fab_add = (FloatingActionButton) findViewById(R.id.fab_add); + scrollView = (ScrollView) findViewById(R.id.scrollView_promoCompliance); + + scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { + @Override + public void onScrollChanged() { + if (scrollView.getScrollY() > oldScrollYPostion) { + fab.hide(); + } else if (scrollView.getScrollY() < oldScrollYPostion || scrollView.getScrollY() <= 0) { + fab.show(); + } + oldScrollYPostion = scrollView.getScrollY(); + } + }); + + + db = new GSKOrangeDB(this); + db.open(); + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + prepareList(); + promoSkuListView(); + adiitionalAnswerList(); + + additionalPromoListData = new ArrayList<>(); + AdditionalPromoListView(); + + cd = new Promo_Compliance_DataGetterSetter(); + + cd.setStore_id(store_id); + cd.setPromo_id(""); + cd.setPromo(""); + cd.setSku_id(""); + cd.setSku(""); + cd.setIn_stock("-1"); + cd.setPromo_announcer("-1"); + cd.setRunning_pos("0"); + cd.setSp_promo("0"); + cd.setImage_promotion(""); + + img_addPromotion.setBackgroundResource(R.mipmap.camera_grey); + + toggle_add_InStock.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int i, long l) { + if (i == 1) { + cd.setIn_stock("1"); + + if (camera_allow.equals("1")) { + img_addPromotion.setBackgroundResource(R.mipmap.camera_orange); + img_addPromotion.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck = "AddPromo_Image_" + store_id + categoryId + "_" + + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(2); + } + }); + } + } else if (i == 2) { + cd.setIn_stock("0"); + img_addPromotion.setClickable(false); + img_addPromotion.setBackgroundResource(R.mipmap.camera_grey); + + if (!cd.getImage_promotion().equalsIgnoreCase("")) { + if (new File(str + cd.getImage_promotion()).exists()) { + //img = _pathforcheck; + new File(str + cd.getImage_promotion()).delete(); + cd.setImage_promotion(""); + } + } + + + } else { + cd.setIn_stock("-1"); + img_addPromotion.setClickable(false); + img_addPromotion.setBackgroundResource(R.mipmap.camera_grey); + if (!cd.getImage_promotion().equalsIgnoreCase("")) { + if (new File(str + cd.getImage_promotion()).exists()) { + //img = _pathforcheck; + new File(str + cd.getImage_promotion()).delete(); + cd.setImage_promotion(""); + } + } + } + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + + if (cd.getIn_stock().equals("1")) { + toggle_add_InStock.setSelection(1); + } else if (cd.getIn_stock().equals("0")) { + toggle_add_InStock.setSelection(2); + } else { + toggle_add_InStock.setSelection(0); + } + + toggle_add_promoAnnouncer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int i, long l) { + if (i == 1) { + cd.setPromo_announcer("1"); + } else if (i == 2) { + cd.setPromo_announcer("0"); + } else { + cd.setPromo_announcer("-1"); + } + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + + if (cd.getPromo_announcer().equals("1")) { + toggle_add_promoAnnouncer.setSelection(1); + } else if (cd.getPromo_announcer().equals("0")) { + toggle_add_promoAnnouncer.setSelection(2); + } else { + toggle_add_promoAnnouncer.setSelection(0); + } + + toggle_add_runningPos.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + cd.setRunning_pos("1"); + } else { + cd.setRunning_pos("0"); + } + } + }); + + if (cd.getRunning_pos().equals("1")) { + toggle_add_runningPos.setChecked(true); + } else { + toggle_add_runningPos.setChecked(false); + } + + sp_promo.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + String item = parent.getItemAtPosition(position).toString(); + // childData.setSp_condition(position); + // childData.setConditionName(item); + + for (int i = 0; i < promoSpinnerListData.size(); i++) { + if (position == i) { + cd.setSku_id(promoSpinnerListData.get(i).getSku_id()); + cd.setSku(promoSpinnerListData.get(i).getSku()); + cd.setSp_promo(promoSpinnerListData.get(i).getPromo_id()); + cd.setPromo(promoSpinnerListData.get(i).getPromo()); + cd.setPromo_id(promoSpinnerListData.get(i).getPromo_id()); + } + } + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + for (int i = 0; i < promoSpinnerListData.size(); i++) { + if (cd.getSp_promo() == promoSpinnerListData.get(i).getPromo_id()) { + sp_promo.setSelection(i); + } + } + + fab_add.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View v) { + if (!cd.getSp_promo().equals("0")) { + boolean flag = true; + + if (cd.getIn_stock().equalsIgnoreCase("-1") || cd.getPromo_announcer().equalsIgnoreCase("-1")) { + flag = false; + } + + if (flag) { + AlertDialog.Builder builder = new AlertDialog.Builder(PromoComplianceActivity.this); + builder.setMessage(getResources().getString(R.string.want_add)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + db.InsertAdditionalPromoData(cd, categoryId); + AdditionalPromoListView(); + + sp_promo.setSelection(0); + toggle_add_InStock.setSelection(0); + toggle_add_promoAnnouncer.setSelection(0); + toggle_add_runningPos.setChecked(false); + img_addPromotion.setBackgroundResource(R.mipmap.camera_grey); + + Snackbar.make(v, getResources().getString(R.string.promo_add), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + + } + }) + .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 { + Snackbar.make(v, getResources().getString(R.string.please_select_answer), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + + } else { + Snackbar.make(v, getResources().getString(R.string.select_promo_value), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + } + }); + + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View view) { + + //if (isValid()) { + boolean flag = true; + if (promoSkuListData.size() <= 0) { + if (additionalPromoListData.size() <= 0) { + flag = false; + Snackbar.make(view, getResources().getString(R.string.fill_data), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } + } else { + for (int i = 0; i < promoSkuListData.size(); i++) { + if (promoSkuListData.get(i).getIn_stock().equalsIgnoreCase("-1") || promoSkuListData.get(i).getPromo_announcer().equalsIgnoreCase("-1")) { + flag = false; + } + } + if (!flag) { + Snackbar.make(view, getResources().getString(R.string.title_activity_select_dropdown), Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + } + + if (flag) { + AlertDialog.Builder builder = new AlertDialog.Builder(PromoComplianceActivity.this); + builder.setMessage(getResources().getString(R.string.want_add)) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + if (db.checkPromoComplianceData(store_id, categoryId)) { + db.updatePromoComplianceSKU(promoSkuListData, categoryId, store_id); + Snackbar.make(view, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + db.InsertPromoSkuData(promoSkuListData, categoryId); + 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 { + Snackbar.make(view, error_msg, Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + }*/ + } + }); + + + /*ViewTreeObserver.OnScrollChangedListener onScrollChangedListener + = new ViewTreeObserver.OnScrollChangedListener() { + @Override + public void onScrollChanged() { + + } + };*/ + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public boolean isValid() { + boolean flag = true; + + for (int i = 0; i < promoSkuListData.size(); i++) { + + if (promoSkuListData.get(i).getIn_stock().equals("1")) { + if (promoSkuListData.get(i).getImage_promotion().equals("")) { + flag = false; + error_msg = getResources().getString(R.string.click_image); + break; + } + } + + } + + return flag; + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + private void prepareList() { + try { + //Promo SKU List + promoSkuListData = db.getPromoComplianceSkuAfterData(store_id, categoryId); + if (!(promoSkuListData.size() > 0)) { + + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + promoSkuListData = db.getPromoComplianceSkuData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC); + } else { + promoSkuListData = db.getPromoComplianceSkuData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION); + } + } + + //Promo Spinner List + if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + promoSpinnerListData = db.getPromoSpinnerData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC); + } else { + promoSpinnerListData = db.getPromoSpinnerData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION); + } + + + ArrayAdapter sp_promo_adapter = new ArrayAdapter<>(PromoComplianceActivity.this, android.R.layout.simple_list_item_1); + for (int i = 0; i < promoSpinnerListData.size(); i++) { + sp_promo_adapter.add(promoSpinnerListData.get(i).getPromo()); + + } + sp_promo_adapter.setDropDownViewResource(R.layout.spinner_text_view); + sp_promo.setAdapter(sp_promo_adapter); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void promoSkuListView() { + try { + View view = null; + + if (lin_promo_sku != null) { + lin_promo_sku.removeAllViews(); + } + + for (int i = 0; i < promoSkuListData.size(); i++) { + + final boolean[] userSelect = {false}; + final boolean[] userSelect2 = {false}; + + view = getLayoutInflater().inflate(R.layout.item_promo_sku_list, null, false); + + final Promo_Compliance_DataGetterSetter data = promoSkuListData.get(i); + + TextView txt_promoSkuName = (TextView) view.findViewById(R.id.txt_promoSkuName); + Spinner spinner_inStock = (Spinner) view.findViewById(R.id.spinner_inStock); + Spinner spinner_promoAnnouncer = (Spinner) view.findViewById(R.id.spinner_promoAnnouncer); + ToggleButton toggle_inStock = (ToggleButton) view.findViewById(R.id.toggle_inStock); + ToggleButton toggle_promoAnnouncer = (ToggleButton) view.findViewById(R.id.toggle_promoAnnouncer); + ToggleButton toggle_runningPos = (ToggleButton) view.findViewById(R.id.toggle_runningPos); + final ImageView img_promotion = (ImageView) view.findViewById(R.id.img_promotion); + + txt_promoSkuName.setText(data.getPromo()); + + ArrayList ans_list = new ArrayList<>(); + SelectGetterSetter select = new SelectGetterSetter(); + select.setAns(getString(R.string.select)); + select.setAns_id(0); + ans_list.clear(); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.yes)); + select.setAns_id(1); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.no)); + select.setAns_id(2); + ans_list.add(select); + + CustomSpinnerAdapter skuadapter = new CustomSpinnerAdapter(PromoComplianceActivity.this, R.layout.custom_t2p_spinner_item, ans_list); + spinner_inStock.setAdapter(skuadapter); + spinner_inStock.setSelection(0); + + ArrayList ans_list2 = new ArrayList<>(); + SelectGetterSetter select2 = new SelectGetterSetter(); + select2.setAns(getString(R.string.select)); + select2.setAns_id(0); + ans_list2.clear(); + ans_list2.add(select2); + + select2 = new SelectGetterSetter(); + select2.setAns(getString(R.string.yes)); + select2.setAns_id(1); + ans_list2.add(select2); + + select2 = new SelectGetterSetter(); + select2.setAns(getString(R.string.no)); + select2.setAns_id(2); + ans_list2.add(select2); + + CustomSpinnerAdapter skuadapter2 = new CustomSpinnerAdapter(PromoComplianceActivity.this, R.layout.custom_t2p_spinner_item, ans_list2); + spinner_promoAnnouncer.setAdapter(skuadapter2); + spinner_promoAnnouncer.setSelection(0); + + spinner_inStock.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + userSelect[0] = true; + return false; + } + }); + + //In Stock + final int finalI = i; + + spinner_inStock.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int position, long l) { + + if (userSelect[0]) { + userSelect[0] = false; + + switch (position) { + + case 0: + data.setIn_stock("-1"); + img_promotion.setClickable(false); + img_promotion.setBackgroundResource(R.mipmap.camera_grey); + + //Camera + if (!data.getImage_promotion().equals("")) { + new File(str + data.getImage_promotion()).delete(); + data.setImage_promotion(""); + } + + + break; + case 1: + data.setIn_stock("1"); + if (camera_allow.equals("1")) { + img_promotion.setClickable(true); + img_promotion.setBackgroundResource(R.mipmap.camera_orange); + img_promotion.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck = "Promo_Image_" + store_id + categoryId + "_" + data.getSku_id() + + data.getPromo_id() + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + //child_position = position; + child_position = finalI; + path = str + _pathforcheck; + + startCameraActivity(1); + } + }); + } + break; + case 2: + + data.setIn_stock("0"); + img_promotion.setClickable(false); + img_promotion.setBackgroundResource(R.mipmap.camera_grey); + + //Camera + if (!data.getImage_promotion().equals("")) { + new File(str + data.getImage_promotion()).delete(); + data.setImage_promotion(""); + } + + break; + } + + } + + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + + + /* toggle_inStock.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + data.setIn_stock("1"); + img_promotion.setBackgroundResource(R.mipmap.camera_orange); + + if (camera_allow.equals("1")) { + img_promotion.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck = "Promo_Image_" + store_id + categoryId + "_" + data.getSku_id() + + data.getPromo_id() + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + //child_position = position; + child_position = finalI; + path = str + _pathforcheck; + + startCameraActivity(1); + } + }); + } + } else { + data.setIn_stock("0"); + img_promotion.setClickable(false); + img_promotion.setBackgroundResource(R.mipmap.camera_grey); + + //Camera + if (!data.getImage_promotion().equals("")) { + new File(str + data.getImage_promotion()).delete(); + data.setImage_promotion(""); + } + } + } + });*/ + + /* if (data.getIn_stock().equals("1")) { + toggle_inStock.setChecked(true); + } else { + toggle_inStock.setChecked(false); + }*/ + + switch (data.getIn_stock()) { + case "-1": + spinner_inStock.setSelection(0); + break; + case "0": + spinner_inStock.setSelection(2); + break; + case "1": + spinner_inStock.setSelection(1); + img_promotion.setClickable(true); + break; + } + + + spinner_promoAnnouncer.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + userSelect2[0] = true; + return false; + } + }); + + + spinner_promoAnnouncer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int position, long l) { + + if (userSelect2[0]) { + userSelect2[0] = false; + + switch (position) { + + case 0: + data.setPromo_announcer("-1"); + + break; + case 1: + data.setPromo_announcer("1"); + break; + case 2: + + data.setPromo_announcer("0"); + + break; + } + + } + + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + + + /* //Promo Announcer + toggle_promoAnnouncer.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + data.setPromo_announcer("1"); + } else { + data.setPromo_announcer("0"); + } + } + }); + + if (data.getPromo_announcer().equals("1")) { + toggle_promoAnnouncer.setChecked(true); + } else { + toggle_promoAnnouncer.setChecked(false); + }*/ + + //Running on POS + /* toggle_runningPos.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + data.setRunning_pos("1"); + } else { + data.setRunning_pos("0"); + } + } + }); + + if (data.getRunning_pos().equals("1")) { + toggle_runningPos.setChecked(true); + } else { + toggle_runningPos.setChecked(false); + }*/ + + switch (data.getPromo_announcer()) { + case "-1": + spinner_promoAnnouncer.setSelection(0); + break; + case "0": + spinner_promoAnnouncer.setSelection(2); + break; + case "1": + spinner_promoAnnouncer.setSelection(1); + break; + } + + + if (!img.equalsIgnoreCase("")) { + if (i == child_position) { + data.setImage_promotion(img); + img = ""; + } + } + + if (camera_allow.equals("1")) { + //Camera + if (data.getIn_stock().equals("1")) { + if (data.getImage_promotion().equals("")) { + img_promotion.setBackgroundResource(R.mipmap.camera_orange); + img_promotion.setClickable(true); + } else { + img_promotion.setBackgroundResource(R.mipmap.camera_green); + } + } else { + img_promotion.setBackgroundResource(R.mipmap.camera_grey); + } + } else { + img_promotion.setBackgroundResource(R.mipmap.camera_grey); + } + + lin_promo_sku.addView(view); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + void adiitionalAnswerList() { + + ArrayList ans_list = new ArrayList<>(); + SelectGetterSetter select = new SelectGetterSetter(); + select.setAns(getString(R.string.select)); + select.setAns_id(0); + ans_list.clear(); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.yes)); + select.setAns_id(1); + ans_list.add(select); + + select = new SelectGetterSetter(); + select.setAns(getString(R.string.no)); + select.setAns_id(2); + ans_list.add(select); + + CustomSpinnerAdapter skuadapter = new CustomSpinnerAdapter(PromoComplianceActivity.this, R.layout.custom_t2p_spinner_item, ans_list); + toggle_add_InStock.setAdapter(skuadapter); + toggle_add_InStock.setSelection(0); + + ArrayList ans_list2 = new ArrayList<>(); + SelectGetterSetter select2 = new SelectGetterSetter(); + select2.setAns(getString(R.string.select)); + select2.setAns_id(0); + ans_list2.clear(); + ans_list2.add(select2); + + select2 = new SelectGetterSetter(); + select2.setAns(getString(R.string.yes)); + select2.setAns_id(1); + ans_list2.add(select2); + + select2 = new SelectGetterSetter(); + select2.setAns(getString(R.string.no)); + select2.setAns_id(2); + ans_list2.add(select2); + + CustomSpinnerAdapter skuadapter2 = new CustomSpinnerAdapter(PromoComplianceActivity.this, R.layout.custom_t2p_spinner_item, ans_list2); + toggle_add_promoAnnouncer.setAdapter(skuadapter2); + toggle_add_promoAnnouncer.setSelection(0); + } + + private void AdditionalPromoListView() { + try { + additionalPromoListData.clear(); + lin_addtional_promo.removeAllViews(); + + //Additional Promo List + additionalPromoListData = db.getAdditionalPromoData(store_id, categoryId); + + View view; + + for (int i = 0; i < additionalPromoListData.size(); i++) { + view = getLayoutInflater().inflate(R.layout.item_additional_promo_list, null, false); + + final Promo_Compliance_DataGetterSetter data = additionalPromoListData.get(i); + + TextView txt_promoName = (TextView) view.findViewById(R.id.txt_promoName); + TextView txt_inStock = (TextView) view.findViewById(R.id.txt_inStock); + TextView txt_promoAnnouncer = (TextView) view.findViewById(R.id.txt_promoAnnouncer); + TextView txt_runningPos = (TextView) view.findViewById(R.id.txt_runningPos); + ImageView img_add_promotion_view = (ImageView) view.findViewById(R.id.img_add_promotion_view); + + txt_promoName.setText(data.getPromo()); + + //In Stock + if (data.getIn_stock().equals("1")) { + txt_inStock.setText(getResources().getString(R.string.yes)); + } else { + txt_inStock.setText(getResources().getString(R.string.no)); + } + + //Promo Announcer + if (data.getPromo_announcer().equals("1")) { + txt_promoAnnouncer.setText(getResources().getString(R.string.yes)); + } else { + txt_promoAnnouncer.setText(getResources().getString(R.string.no)); + } + + //Running on POS + if (data.getRunning_pos().equals("1")) { + txt_runningPos.setText(getResources().getString(R.string.yes)); + } else { + txt_runningPos.setText(getResources().getString(R.string.no)); + } + + //Camera Image + if (!data.getImage_promotion().equals("")) { + img_add_promotion_view.setBackgroundResource(R.mipmap.camera_green); + } else { + img_add_promotion_view.setBackgroundResource(R.mipmap.camera_orange); + } + + lin_addtional_promo.addView(view); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + //getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @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) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(PromoComplianceActivity.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(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + }) + .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + android.app.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(); + + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(PromoComplianceActivity.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(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + }) + .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + } + + private void startCameraActivity(int pos) { + try { + + Log.i("Stock & Facing ", "startCameraActivity()"); + File file = new File(path); + outputFileUri = FileProvider.getUriForFile(context, "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) { + //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 (android.os.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; + } + } + } + } + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + startActivityForResult(intent, pos); + + } 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, pos); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("Stock & Facing", "resultCode: " + resultCode + " requestCode: " + requestCode); + + switch (requestCode) { + case 1: + if (resultCode == 0) { + Log.e("Stock & Facing", "User cancelled"); + } else if (resultCode == -1) { + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + img = _pathforcheck; + promoSkuListView(); + lin_promo_sku.invalidate(); + //t2PAdapter.notifyDataSetChanged(); + _pathforcheck = ""; + } + } + } + break; + + case 2: + if (resultCode == 0) { + Log.e("Stock & Facing", "User cancelled"); + } else if (resultCode == -1) { + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + //img = _pathforcheck; + img_addPromotion.setBackgroundResource(R.mipmap.camera_green); + cd.setImage_promotion(_pathforcheck); + _pathforcheck = ""; + } + } + } + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + return new String(chars); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss:mmm"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KUWAIT)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_BAHRAIN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_OMAN)) { + cdate = arabicToenglish(cdate); + }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_QATAR)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LEBANON)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LIBIYA)) { + cdate = arabicToenglish(cdate); + } + + return cdate; + } + + public class CustomSpinnerAdapter extends ArrayAdapter { + + SelectGetterSetter tempValues = null; + LayoutInflater inflater; + private Activity activity; + private ArrayList data; + + /************* + * CustomAdapter Constructor + *****************/ + public CustomSpinnerAdapter( + PromoComplianceActivity 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 = (SelectGetterSetter) data.get(position); + + TextView label = (TextView) row.findViewById(R.id.tv_text); + + if (position == 0) { + + // Default selected Spinner item + label.setText(getString(R.string.select)); + //sub.setText(""); + } else { + // Set values for spinner each row + label.setText(tempValues.getAns()); + } + + return row; + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StockEntryActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StockEntryActivity.java new file mode 100644 index 0000000..76f7e7e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StockEntryActivity.java @@ -0,0 +1,855 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.text.InputFilter; +import android.text.Spanned; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.AbsListView; +import android.widget.BaseExpandableListAdapter; +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 androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +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.dailyentry.OrderTakingActivity; +import cpm.com.gskmtorange.interfaces.DialogCallbackListener; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; + +public class StockEntryActivity extends AppCompatActivity implements DialogCallbackListener { + ExpandableListView expandableListView; + private Context context; + TextView txt_mslAvailabilityName; + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + ExpandableListAdapter adapter; + ImageView camera1, camera2, camera3, camera4; + LinearLayout lin_camera1, lin_camera2, lin_camera3, lin_camera4; + GSKOrangeDB db; + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, store_flag_hide, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + String str_planogram = "", _pathforcheck = ""; + + ArrayList planogramShelfHeaderDataList = new ArrayList<>(); + ArrayList planogramSkuChildDataList; + HashMap> planogramHashMapListChildData = new HashMap<>(); + boolean editFlag = false; + public static final String FILE_PATH = Environment.getExternalStorageDirectory() + "/"; + LinearLayout pricingLL; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_msl_availability_stock_entry); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + txt_mslAvailabilityName = (TextView) findViewById(R.id.txt_mslAvailabilityName); + camera1 = (ImageView) findViewById(R.id.img_camera1); + camera2 = (ImageView) findViewById(R.id.img_camera2); + camera3 = (ImageView) findViewById(R.id.img_camera3); + camera4 = (ImageView) findViewById(R.id.img_camera4); + lin_camera1 = (LinearLayout) findViewById(R.id.lin_camera1); + lin_camera2 = (LinearLayout) findViewById(R.id.lin_camera2); + lin_camera3 = (LinearLayout) findViewById(R.id.lin_camera3); + lin_camera4 = (LinearLayout) findViewById(R.id.lin_camera4); + pricingLL = findViewById(R.id.pricingLL); + context = this; + db = new GSKOrangeDB(this); + db.open(); + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + store_flag_hide = preferences.getString(CommonString.KEY_STORE_FLAG_FACING_HIDE, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + //Intent data + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + /*if (country_id != null && country_id.equals("5")) { + pricingLL.setVisibility(View.GONE); + } else { + pricingLL.setVisibility(View.VISIBLE); + }*/ + toolbar.setTitle(getResources().getString(R.string.stock_entry)); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + str_planogram = CommonString.getDownloadedImageFolder(context); + prepareList(); + prepareDefaultList(); + cameraMethod(); + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(view -> { + expandableListView.clearFocus(); + adapter.notifyDataSetChanged(); + //if (validateData(hashMapListHeaderData, hashMapListChildData)) { + // if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + db.open(); + if (db.checkStock_Entry_FacingDataNew(store_id, categoryId, visit_date)) { + db.updateStock_Entry_FacingNew(visit_date, store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, getResources().getString(R.string.update_message), Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + ArrayList msl_availabilityStockFacingList; + String mslAvailability_stockFacing_xml = ""; + String onXML = ""; + db.open(); + Log.d("listdata", store_id + "," + visit_date); + msl_availabilityStockFacingList = db.getStock_Entry_UploadServerDataNew(store_id, visit_date, + keyAccount_id, storeType_id, class_id,CommonString.TABLE_MAPPING_STOCK); + Log.d("msllistsize", String.valueOf(msl_availabilityStockFacingList.size())); + + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + + String stock, pricing; + if (!msl_availabilityStockFacingList.get(j).getStock().equals("")) { + stock = msl_availabilityStockFacingList.get(j).getStock(); + } else { + stock = "0"; + } + if (!msl_availabilityStockFacingList.get(j).getPricingStock().equals("")) { + pricing = msl_availabilityStockFacingList.get(j).getPricingStock(); + } else { + pricing = "-1"; + } + onXML = "[ST]" + + "[MID]" + "0" + "[/MID]" + + "[USERID]" + username + "[/USERID]" + + "[SID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SID]" + + "[POSM_STOCK]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getPosmStock()) + "[/POSM_STOCK]" + + "[WAREHOUSE_STOCK]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getWarehouseStock()) + "[/WAREHOUSE_STOCK]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[ML]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/ML]" + + "[/ST]"; + + mslAvailability_stockFacing_xml = mslAvailability_stockFacing_xml + onXML; + } + } + final String sos_xml = "[DATA]" + mslAvailability_stockFacing_xml + "[/DATA]"; + Log.d("MSL_DATA", sos_xml); + } + } else { + db.InsertStock_EntryNew(visit_date, store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(expandableListView, getResources().getString(R.string.save_message), Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + /*} else { + Snackbar.make(expandableListView, Error_Message, Snackbar.LENGTH_SHORT).setAction("Action", null).show(); + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + }*/ + + }); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//.setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + expandableListView.invalidateViews(); + } + }); + + // Listview Group click listener + expandableListView.setOnGroupClickListener((parent, v, groupPosition, id) -> false); + + // Listview Group expanded listener + expandableListView.setOnGroupExpandListener(groupPosition -> { + InputMethodManager inputManager = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + }); + + // Listview Group collasped listener + expandableListView.setOnGroupCollapseListener(groupPosition -> { + InputMethodManager inputManager = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + }); + + // Listview on child click listener + expandableListView.setOnChildClickListener((parent, v, groupPosition, childPosition, id) -> false); + } catch (Resources.NotFoundException e) { + e.printStackTrace(); + } + + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // getMenuInflater().inflate(R.menu.planogram, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + if (editFlag) { + CommonFunctions.showAlertDialog(context, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + return super.onOptionsItemSelected(item); + } + + @Override + public void onSelect(boolean flag) { + if (flag) { + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + @Override + public void onSave(boolean flag) { + + } + + private class MyWebViewClient extends WebViewClient { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + } + + private void cameraMethod() { + if (!camera_allow.equals("1")) { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } else { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } + } + + //Planogram List for check and delete on backPress + private void prepareDefaultList() { + // Planogram After save shelf header data + planogramShelfHeaderDataList = db.getPlanogramAddShelfHeaderAfterSaveData(store_id, categoryId); + if (planogramShelfHeaderDataList.size() > 0) { + for (int i = 0; i < planogramShelfHeaderDataList.size(); i++) { + planogramSkuChildDataList = db.getStockAndFacingPlanogramAfterSKUData(planogramShelfHeaderDataList.get(i).getKey_id()); + //After save sku child data + if (planogramSkuChildDataList.size() > 0) { + planogramHashMapListChildData.put(planogramShelfHeaderDataList.get(i), planogramSkuChildDataList); + } + } + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + //Header + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + headerDataList = db.getStockEntryHeaderData(country_id,categoryId, null, null, null, + store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + headerDataList = db.getStockEntryHeaderData(country_id,categoryId, keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC, store_flag_hide); + } else { + headerDataList = db.getStockEntryHeaderData(country_id,categoryId, keyAccount_id, storeType_id, class_id, + store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET, store_flag_hide); + } + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + if (country_id.equals("7") || country_id.equals("8") || country_id.equals("17")) { + db.open(); + childDataList = db.getStock_Entry_SKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, + CommonString.TABLE_MAPPING_STOCK_STOREWISE, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK_STOREWISE); + } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) { + childDataList = db.getStock_Entry_SKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), + categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK_ADHOC, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK_ADHOC); + } else { + childDataList = db.getStock_Entry_SKUDataNewUpdate(headerDataList.get(i).getSub_category_id(), categoryId, + headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, + CommonString.TABLE_MAPPING_STOCK, store_flag_hide, visit_date, false); + updateCoverage(CommonString.TABLE_MAPPING_STOCK); + } + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + //expand all + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + checkHeaderArray.clear(); + int childCount = 0; + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + HashMap> listDataChildTemp = new HashMap<>(); + for (int i = 0; i < listDataHeader.size(); i++) { + flag = true; + List listTemp = new ArrayList<>(); + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + child_flag = true; + MSL_AvailabilityStockFacingGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + String stock = data.getStock(); + String faceup = data.getFacing(); + String defaultpricing = data.getPricing(); + String pricing = data.getPricingStock(); + String companyId = data.getCompany_id(); + String must_have = data.getMust_have(); + //Company_id + if (companyId.equals("1")) { + if (must_have.equals("1")) { + //usk ksa pricing + if (!defaultpricing.equals("0")) { + if (!country_id.equals("17") && pricing.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.title_activity_stock_pricing); + } + } + + if (store_flag_hide.equals("0") && !country_id.equals("15")) { + if (!country_id.equals("17") && faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + } else { + if (data.getToggleValue().equals("0") && !country_id.equals("10")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } else { + //for Egypt + if (country_id.equals("6")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } + } + } + } else { + if (data.getToggleValue().equals("0") && !country_id.equals("10")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } else { + //for Egypt + if (country_id.equals("6")) { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.stock_value); + } + } + } + } + + } + } else { + if (store_flag_hide.equals("0")) { + if (country_id != null && !country_id.equals("17") && faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + scrollPosition = i + j + childCount; + all_flag = false; + flag = false; + child_flag = false; + Error_Message = getResources().getString(R.string.faceup_value); + } + } + } + if (!child_flag) + listTemp.add(data); + } + + if (!flag) { + listDataHeaderTemp.add(listDataHeader.get(i)); + listDataChildTemp.put(listDataHeader.get(i), listTemp); + } else { + childCount = childCount + listDataChild.get(listDataHeader.get(i)).size(); + } + } + + if (!all_flag) { + adapter = new ExpandableListAdapter(context, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false; + } else { + checkflag = true; + } + + return all_flag; + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + if (editFlag) { + CommonFunctions.showAlertDialog(context, getResources().getString(R.string.data_will_be_lost)); + } else { + finish(); + overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); + } + } + + 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + if (headerTitle.getCompany_id().equals("1")) { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.header_text_color)); + } else { + txt_categoryHeader.setTextColor(getResources().getColor(R.color.black)); + } + txt_categoryHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + txt_categoryHeader.setTextColor(getResources().getColor(R.color.white)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + 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_stock_entry_child, null, false); + holder = new ViewHolder(); + holder.cardView = (CardView) convertView.findViewById(R.id.card_view); + holder.txt_skuName = (TextView) convertView.findViewById(R.id.txt_skuName); + holder.posmStockET = convertView.findViewById(R.id.posmStockET); + holder.warehouse_StockET = convertView.findViewById(R.id.warehouse_StockET); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + holder.txt_skuName.setText(childData.getSku()); + + + /* if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.light_green_background)); + holder.txt_mbq.setVisibility(View.VISIBLE); + holder.toggle_available.setVisibility(View.VISIBLE); + holder.toggle_available.setId(childPosition); + if (country_id.equals("6") || country_id.equals("10")) { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } + else { + if (childData.getToggleValue().equals("1")) { + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + } else { + holder.stock.setVisibility(View.VISIBLE); + holder.stock_view.setVisibility(View.VISIBLE); + } + } + } else { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + holder.txt_mbq.setVisibility(View.GONE); + holder.toggle_available.setVisibility(View.GONE); + holder.toggle_available.setId(childPosition); + holder.stock.setVisibility(View.GONE); + holder.stock_view.setVisibility(View.GONE); + }*/ + + /*if (country_id != null && !country_id.equals("17")) { + if (childData.getPricing().equals("0")) { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } else { + holder.ed_pricing.setVisibility(View.VISIBLE); + holder.pricing_view.setVisibility(View.VISIBLE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } + }*/ + + /* if (childData.getCompany_id().equals("1")) { + if (country_id != null && country_id.equals("17") && !childData.getPricing().equals("0")) { + holder.ed_pricing.setVisibility(View.VISIBLE); + holder.pricing_view.setVisibility(View.VISIBLE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } else { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + } + if (childData.getMust_have().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + if (country_id != null && country_id.equals("17")) { + holder.toggle_available.setVisibility(View.VISIBLE); + holder.toggle_available.setId(childPosition); + } + holder.txt_skuName.setTextColor(getResources().getColor(R.color.blue)); + } + } else { + if (country_id != null && country_id.equals("17")) { + holder.ed_pricing.setVisibility(View.GONE); + holder.pricing_view.setVisibility(View.GONE); + holder.ed_pricing.setId(childPosition); + holder.pricing_view.setId(childPosition); + holder.toggle_available.setVisibility(View.VISIBLE); + holder.toggle_available.setId(childPosition); + } + + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + }*/ + + final ViewHolder finalHolder = holder; + + holder.warehouse_StockET.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + editFlag = true; + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + finalHolder.warehouse_StockET.setText(edFaceup); + childData.setWarehouseStock(edFaceup); + } + } + }); + + holder.warehouse_StockET.setText(childData.getWarehouseStock()); + + holder.posmStockET.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + editFlag = true; + + if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) { + finalHolder.posmStockET.setText(edFaceup); + childData.setPosmStock(edFaceup); + } + } + }); + holder.posmStockET.setText(childData.getPosmStock()); + + + 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; + EditText posmStockET, warehouse_StockET; + } + + + @SuppressLint("LongLogTag") + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("MSL_AVailability_StockFacing", "resultCode: " + resultCode); + + switch (requestCode) { + case 100: + //Planogram List for check and delete on backPress + prepareDefaultList(); + if (db.isPlanogramAddShelfSaveData(store_id, categoryId)) { + camera1.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + camera1.setBackgroundResource(R.mipmap.new_no_camera); + } + + break; + } + super.onActivityResult(requestCode, resultCode, data); + } + + public String PerfectDecimal(String str, int MAX_BEFORE_POINT, int MAX_DECIMAL) { + if (str.charAt(0) == '.') str = "0" + str; + int max = str.length(); + + String rFinal = ""; + boolean after = false; + int i = 0, up = 0, decimal = 0; + char t; + while (i < max) { + t = str.charAt(i); + if (t != '.' && after == false) { + up++; + if (up > MAX_BEFORE_POINT) return rFinal; + } else if (t == '.') { + after = true; + } else { + decimal++; + if (decimal > MAX_DECIMAL) + return rFinal; + } + rFinal = rFinal + t; + i++; + } + return rFinal; + } + + public class DecimalDigitsInputFilter implements InputFilter { + Pattern mPattern; + + public DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero) { + mPattern = Pattern.compile("[0-9]{0," + (digitsBeforeZero - 1) + "}+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); + } + + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + Matcher matcher = mPattern.matcher(dest); + if (!matcher.matches()) + return ""; + return null; + } + } + + private void updateCoverage(String table) { + long l = db.updateStockMapping(store_id, visit_date, table); + if (l > 0) Log.e("CoverageUpdate", "" + l); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StockFacing_PlanogramTrackerActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StockFacing_PlanogramTrackerActivity.java new file mode 100644 index 0000000..2311e72 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StockFacing_PlanogramTrackerActivity.java @@ -0,0 +1,882 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Typeface; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +import android.widget.AbsListView; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.BaseExpandableListAdapter; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +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.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Stock_FacingGetterSetter; + +public class StockFacing_PlanogramTrackerActivity extends AppCompatActivity +{ + private Context context; + Button btn_addShelf, btn_addSKU; + ExpandableListView expandableListView; + String brand, brand_id, company_id, sub_category, sub_category_id; + String addShelfPosition = ""; + ArrayAdapter shelfPositionAdapter, shelfAdapter; + ArrayList shelfList; + GSKOrangeDB db; + PlanogramExpandableListAdapter adapter; + String categoryName, categoryId, Error_Message = ""; + boolean checkflag = true; + List checkHeaderArray = new ArrayList<>(); + + ArrayList shelfHeaderDataList = new ArrayList<>(); + ArrayList childDataList, childDataList1; + HashMap> hashMapListChildData = new HashMap<>(); + private SharedPreferences preferences; + + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow; + + ExpandableListAdapter adapter1; + ArrayList addSkuHeaderList; + ArrayList addSkuChildList; + HashMap> addSkuHashMapChildData; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_stock_facing__planogram_tracker); + + try { + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + toolbar.setTitle(getResources().getString(R.string.stock_planogram_planogram_tracker)); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + db = new GSKOrangeDB(this); + db.open(); + context = this; + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + btn_addShelf = (Button) findViewById(R.id.btn_addShelf); + expandableListView = (ExpandableListView) findViewById(R.id.exp_PlanogramListView); + + Intent intent = getIntent(); + /*brand = intent.getStringExtra("brand"); + brand_id = intent.getStringExtra("brand_id"); + company_id = intent.getStringExtra("company_id"); + sub_category = intent.getStringExtra("sub_category"); + sub_category_id = intent.getStringExtra("sub_category_id");*/ + + + //Shelf Position Adapter + shelfPositionAdapter = new ArrayAdapter(StockFacing_PlanogramTrackerActivity.this, android.R.layout.simple_list_item_1); + shelfPositionAdapter.add(getResources().getString(R.string.select)); //Select + for (int i = 7; i >= 1; i--) { + shelfPositionAdapter.add(String.valueOf(i)); + } + + //Shelf List + shelfList = new ArrayList<>(); + shelfList = db.getSHELF_MASTERData(); + + shelfAdapter = new ArrayAdapter(StockFacing_PlanogramTrackerActivity.this, android.R.layout.simple_list_item_1); + for (int j = 0; j < shelfList.size(); j++) { + shelfAdapter.add(shelfList.get(j).getShelf()); + } + + //DefaultList + prepareDefaultList(); + + + btn_addShelf.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View view1) { + final Dialog dialog = new Dialog(StockFacing_PlanogramTrackerActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.setContentView(R.layout.dialog_stock_facing_planogram_tracker); + + Button addShelf = (Button) dialog.findViewById(R.id.dialog_btn_addShelf); + Button cancel = (Button) dialog.findViewById(R.id.dialog_btn_cancel); + Spinner sp_addShelf = (Spinner) dialog.findViewById(R.id.sp_addShelf); + Spinner sp_shelfPosition = (Spinner) dialog.findViewById(R.id.sp_shelfPosition); + + sp_addShelf.setAdapter(shelfAdapter); + sp_shelfPosition.setAdapter(shelfPositionAdapter); + + final StockFacing_PlanogramTrackerDataGetterSetter data = new StockFacing_PlanogramTrackerDataGetterSetter(); + + sp_addShelf.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int position, long l) { + for (int i1 = 0; i1 < shelfList.size(); i1++) { + if (position == i1) { + //Selected spinner position value + data.setSp_addShelf_id(shelfList.get(i1).getShelf_id()); + data.setSp_addShelf(shelfList.get(i1).getShelf()); + } + } + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + + sp_shelfPosition.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long l) { + data.setSp_shelfPosition(parent.getItemAtPosition(position).toString()); + } + + @Override + public void onNothingSelected(AdapterView adapterView) { + + } + }); + + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + } + }); + + addShelf.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + if (!data.getSp_addShelf_id().equals("0") && !data.getSp_shelfPosition().equals("Select")) { + + //Check here the shelf and position is already exists or not + //if (shelfHeaderDataList.size() > 0) { + + //Checking shelf is exists or not, if not add the shelf + boolean isContain = false; + for (int i = 0; i < shelfHeaderDataList.size(); i++) { + if (data.getSp_addShelf_id().equals(shelfHeaderDataList.get(i).getSp_addShelf_id()) + && data.getSp_shelfPosition().equals(shelfHeaderDataList.get(i).getSp_shelfPosition())) { + + isContain = true; + break; + } + } + + if (isContain) { + Snackbar.make(view, data.getSp_addShelf() + + getString(R.string.stock_planogram_shelf_position) + data.getSp_shelfPosition() + + getString(R.string.stock_planogram_already_exists) + , Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + shelfHeaderDataList.add(data); + dialog.dismiss(); + prepareHeaderList(shelfHeaderDataList); + } + } else { + Toast.makeText(StockFacing_PlanogramTrackerActivity.this, getResources().getString(R.string.empty_field), Toast.LENGTH_SHORT).show(); + } + } + }); + + dialog.show(); + } + }); + + + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_stockFacing_PlanogramTracker); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + if (validateData(shelfHeaderDataList, hashMapListChildData)) { + AlertDialog.Builder builder = new AlertDialog.Builder(StockFacing_PlanogramTrackerActivity.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.InsertStock_Facing_PlanogramTracker(store_id, categoryId, company_id, brand_id, + sub_category_id, shelfHeaderDataList, hashMapListChildData); + + 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(StockFacing_PlanogramTrackerActivity.this); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.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) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + + //expandableListView.invalidateViews(); + } + }); + + expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { + @Override + public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { + return true; + } + }); + } catch (Resources.NotFoundException e) { + e.printStackTrace(); + } + } + + private void prepareDefaultList() { + + //After save shelf header data + shelfHeaderDataList = db.getPlanogramAddShelfHeaderAfterSaveData(store_id, categoryId); + + if (shelfHeaderDataList.size() > 0) { + + //Sort Shelf Position wise + Collections.sort(shelfHeaderDataList, StockFacing_PlanogramTrackerDataGetterSetter.shelfPositionComparator); + //Sort Shelf wise + Collections.sort(shelfHeaderDataList, StockFacing_PlanogramTrackerDataGetterSetter.shelfComparator); + + + for (int i = 0; i < shelfHeaderDataList.size(); i++) { + childDataList = db.getStockAndFacingPlanogramAfterSKUData(shelfHeaderDataList.get(i).getKey_id()); + + //After save sku child data + if (childDataList.size() > 0) { + hashMapListChildData.put(shelfHeaderDataList.get(i), childDataList); + } + } + } + + adapter = new PlanogramExpandableListAdapter(this, shelfHeaderDataList, hashMapListChildData); + expandableListView.setAdapter(adapter); + + if (childDataList != null && childDataList.size() > 0) { + for (int j = 0; j < shelfHeaderDataList.size(); j++) { + if (hashMapListChildData.get(shelfHeaderDataList.get(j)).size() > 0) { + expandableListView.expandGroup(j); + } + } + } + } + + //New Shelf Add + private void prepareHeaderList(ArrayList shelfHeaderDataList1) { + try { + //Header Data + if (shelfHeaderDataList1.size() > 0) { + + //Sort Shelf Position wise +/* Collections.sort(shelfHeaderDataList1, StockFacing_PlanogramTrackerDataGetterSetter.shelfPositionComparator); + //Sort Shelf wise + Collections.sort(shelfHeaderDataList1, StockFacing_PlanogramTrackerDataGetterSetter.shelfComparator);*/ + + adapter.notifyDataSetChanged(); + + if (childDataList1 != null && childDataList1.size() > 0) { + for (int j = 0; j < shelfHeaderDataList.size(); j++) { + if (hashMapListChildData.get(shelfHeaderDataList.get(j)).size() > 0) { + expandableListView.expandGroup(j); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + //Sku Add in Particular Shelf with position + private void prepareSkuList(StockFacing_PlanogramTrackerDataGetterSetter object, + ArrayList tempAddSkuHeaderList, + HashMap> tempAddSkuHashMapChildData) { + try { + childDataList1 = new ArrayList<>(); + + for (int i1 = 0; i1 < tempAddSkuHeaderList.size(); i1++) { + ArrayList tempList = + tempAddSkuHashMapChildData.get(tempAddSkuHeaderList.get(i1)); + + for (int j = 0; j < tempList.size(); j++) { + StockFacing_PlanogramTrackerDataGetterSetter data = tempList.get(j); + + data.setSp_addShelf_id(object.getSp_addShelf_id()); + + if (data.getCheckbox_sku().equals("1")) { + childDataList1.add(data); + } + } + } + + if (shelfHeaderDataList.size() > 0) { + //Child Sku Data + hashMapListChildData.put(object, childDataList1); + adapter.notifyDataSetChanged(); + + if (childDataList1 != null && childDataList1.size() > 0) { + for (int j = 0; j < shelfHeaderDataList.size(); j++) { + if (hashMapListChildData.get(shelfHeaderDataList.get(j)).size() > 0) { + expandableListView.expandGroup(j); + } + } + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + public class PlanogramExpandableListAdapter extends BaseExpandableListAdapter { + private Context _context; + private List _listDataHeader; + private HashMap> _listDataChild; + + public PlanogramExpandableListAdapter(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(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { + final StockFacing_PlanogramTrackerDataGetterSetter headerTitle = + (StockFacing_PlanogramTrackerDataGetterSetter) getGroup(groupPosition); + + if (headerTitle != null) { + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_stock_facing_planogram_header, null, false); + } + + TextView txt_shelfHeader = (TextView) convertView.findViewById(R.id.txt_shelfHeader); + Button btn_addSku = (Button) convertView.findViewById(R.id.btn_addSku); + + txt_shelfHeader.setText(headerTitle.getSp_addShelf() + " (Position : " + headerTitle.getSp_shelfPosition() + ")"); + + btn_addSku.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + //Stock Facing Planogram SKU Data + final Dialog dialog1 = new Dialog(StockFacing_PlanogramTrackerActivity.this); + dialog1.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog1.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog1.setContentView(R.layout.dialog_stock_facing_planogram_tracker_add_sku); + + //LinearLayout lin_addSku = (LinearLayout) dialog1.findViewById(R.id.lin_addSku); + Button addSku_Shelf = (Button) dialog1.findViewById(R.id.dialog_btn_addSku_Shelf); + Button cancel = (Button) dialog1.findViewById(R.id.dialog_btn_cancel_addSku); + ExpandableListView exp_addSkuListView = (ExpandableListView) dialog1.findViewById(R.id.exp_addSkuListView); + + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog1.dismiss(); + } + }); + + //Add Sku Dailog List + dialogAddSkuList(exp_addSkuListView, headerTitle); + + addSku_Shelf.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + boolean flag = false; + + for (int i1 = 0; i1 < addSkuHeaderList.size(); i1++) { + ArrayList tempList = + addSkuHashMapChildData.get(addSkuHeaderList.get(i1)); + + for (int j = 0; j < tempList.size(); j++) { + StockFacing_PlanogramTrackerDataGetterSetter data = tempList.get(j); + + if (data.getCheckbox_sku().equals("1")) { + flag = true; + break; + } + } + } + + if (flag) { + prepareSkuList(headerTitle, addSkuHeaderList, addSkuHashMapChildData); + dialog1.dismiss(); + } else { + Snackbar.make(view, getString(R.string.stock_planogram_data_select_one_sku), Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + + } + }); + dialog1.show(); + } + }); + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + txt_shelfHeader.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + txt_shelfHeader.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); + } + } + + } + 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(int groupPosition, final int childPosition, boolean isLastChild, + View convertView, ViewGroup parent) { + + StockFacing_PlanogramTrackerDataGetterSetter childData = + (StockFacing_PlanogramTrackerDataGetterSetter) getChild(groupPosition, childPosition); + ViewHolder holder = null; + + if (childData != null) { + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_stock_facing_planogram_child, null, false); + + holder = new ViewHolder(); + holder.txt_skuChild = (TextView) convertView.findViewById(R.id.txt_skuChild); + holder.checkBox = (CheckBox) convertView.findViewById(R.id.chk_sku); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.checkBox.setVisibility(View.GONE); + holder.checkBox.setEnabled(false); + + holder.txt_skuChild.setText(childData.getSku()); + + if (childData.getCheckbox_sku().equals("1")) { + holder.checkBox.setChecked(true); + } else { + holder.checkBox.setChecked(false); + } + } + + return convertView; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + } + + public class ViewHolder { + TextView txt_skuChild; + CheckBox checkBox; + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true; + checkHeaderArray.clear(); + + for (int i = 0; i < listDataHeader.size(); i++) { + + if (listDataChild.get(listDataHeader.get(i)) == null) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + checkflag = false; + Error_Message = getString(R.string.stock_planogram_data_add_shelf); + break; + } else { + if (listDataChild.get(listDataHeader.get(i)).size() <= 0) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getString(R.string.stock_planogram_data_add_shelf); + break; + } + } + + if (flag == false) { + checkflag = false; + break; + } else { + checkflag = true; + } + } + + //expListView.invalidate(); + adapter.notifyDataSetChanged(); + + return checkflag; + } + + @Override + public void onBackPressed() { + //super.onBackPressed(); + + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(StockFacing_PlanogramTrackerActivity.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) { + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(StockFacing_PlanogramTrackerActivity.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) { + + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + } + + return super.onOptionsItemSelected(item); + } + + //Add Sku Dailog Display List + private void dialogAddSkuList(ExpandableListView exp_addSkuListView, + StockFacing_PlanogramTrackerDataGetterSetter headerObject) { + try { + //By this headerObject we need to get the sku list + ArrayList tempSkuList = new ArrayList<>(); + tempSkuList = db.getStockAndFacingPlanogramAfterSKU_PerShelfData(headerObject.getSp_addShelf_id(), + headerObject.getSp_shelfPosition()); + + + addSkuHeaderList = new ArrayList<>(); + addSkuChildList = new ArrayList<>(); + addSkuHashMapChildData = new HashMap<>(); + + //Header Data + addSkuHeaderList = db.getPlanogramAddSkuHeaderData(categoryId, keyAccount_id, storeType_id, class_id); + + if (addSkuHeaderList.size() > 0) { + + for (int i = 0; i < addSkuHeaderList.size(); i++) { + //Child Data + if (addSkuHeaderList.get(i).getCompany_id().equals("1")) { + + //Default Case + if (!(tempSkuList.size() > 0)) { + addSkuChildList = db.getPlanogramAddSkuChildData(categoryId, addSkuHeaderList.get(i).getBrand_id(), + keyAccount_id, storeType_id, class_id); + + addSkuHashMapChildData.put(addSkuHeaderList.get(i), addSkuChildList); + + } else { //After Save Sku Data + addSkuChildList = db.getPlanogramAddSkuChildData(categoryId, addSkuHeaderList.get(i).getBrand_id(), + keyAccount_id, storeType_id, class_id); + + for (int i1 = 0; i1 < addSkuChildList.size(); i1++) { + + for (int j = 0; j < tempSkuList.size(); j++) { + if (addSkuChildList.get(i1).getSku_id().equals(tempSkuList.get(j).getSku_id())) { + addSkuChildList.set(i1, tempSkuList.get(j)); + } + } + } + + addSkuHashMapChildData.put(addSkuHeaderList.get(i), addSkuChildList); + } + + } + } + } + + adapter1 = new ExpandableListAdapter(this, addSkuHeaderList, addSkuHashMapChildData); + exp_addSkuListView.setAdapter(adapter1); + } catch (Exception e) { + e.printStackTrace(); + } + } + + //Add Sku Dailog Display List Adapter + 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) { + final StockFacing_PlanogramTrackerDataGetterSetter headerTitle = + (StockFacing_PlanogramTrackerDataGetterSetter) getGroup(groupPosition); + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_stock_facing_add_sku_header, null, false); + } + + TextView txt_stockFaceupHeader = (TextView) convertView.findViewById(R.id.txt_stockFaceupHeader); + + txt_stockFaceupHeader.setTypeface(null, Typeface.BOLD); + txt_stockFaceupHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + 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 StockFacing_PlanogramTrackerDataGetterSetter childData = + (StockFacing_PlanogramTrackerDataGetterSetter) getChild(groupPosition, childPosition); + ViewHolder1 holder = null; + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_stock_facing_planogram_child, null, false); + + holder = new ViewHolder1(); + holder.txt_skuName = (TextView) convertView.findViewById(R.id.txt_skuChild); + holder.chk_sku = (CheckBox) convertView.findViewById(R.id.chk_sku); + + convertView.setTag(holder); + } else { + holder = (ViewHolder1) convertView.getTag(); + } + + holder.txt_skuName.setText(childData.getSku()); + + holder.chk_sku.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean isCheck) { + if (isCheck) { + childData.setCheckbox_sku("1"); + } else { + childData.setCheckbox_sku("0"); + } + } + }); + + if (childData.getCheckbox_sku().equals("0")) { + holder.chk_sku.setChecked(false); + } else if (childData.getCheckbox_sku().equals("1")) { + holder.chk_sku.setChecked(true); + } + + return convertView; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + } + + public class ViewHolder1 { + //CardView cardView; + TextView txt_skuName; + CheckBox chk_sku; + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/Stock_FacingActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/Stock_FacingActivity.java new file mode 100644 index 0000000..c4f7426 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/Stock_FacingActivity.java @@ -0,0 +1,1522 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Color; +import android.graphics.LightingColorFilter; +import android.graphics.Matrix; +import android.graphics.Typeface; +import android.graphics.drawable.ColorDrawable; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.AbsListView; +import android.widget.BaseExpandableListAdapter; +import android.widget.Button; +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.Toast; +import android.widget.ToggleButton; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.cardview.widget.CardView; +import androidx.core.content.FileProvider; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +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.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.dailyentry.T2PComplianceActivity; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Stock_FacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Store_wise_camera_DataGetterSetter; + +import static android.R.attr.angle; + +public class Stock_FacingActivity extends AppCompatActivity { + private Context context; + static int child_position = -1; + ExpandableListView expandableListView; + TextView txt_stockFacingName; + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + List checkHeaderArray = new ArrayList<>(); + ExpandableListAdapter adapter; + GSKOrangeDB db; + String categoryName, categoryId, Error_Message = ""; + String path = "", str = "", _pathforcheck = "", img1 = "", img2 = ""; + boolean isDialogOpen = true; + boolean checkflag = true; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id; + Uri outputFileUri = null; + String gallery_package = ""; + private SharedPreferences preferences; + boolean isExpand = true; + ImageView camera1, camera2, camera3, camera4; + LinearLayout lin_camera1, lin_camera2, lin_camera3, lin_camera4; + String img3 = "", img4 = "", img5 = "", img6 = ""; + Store_wise_camera_DataGetterSetter cameraData; + + ArrayList planogramShelfHeaderDataList = new ArrayList<>(); + ArrayList planogramSkuChildDataList; + HashMap> planogramHashMapListChildData = new HashMap<>(); + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_stock_facing); + + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + + db = new GSKOrangeDB(this); + db.open(); + context = this; + expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); + //txt_stockFacingName = (TextView) findViewById(R.id.txt_stockFacingName); + camera1 = (ImageView) findViewById(R.id.img_camera1); + camera2 = (ImageView) findViewById(R.id.img_camera2); + camera3 = (ImageView) findViewById(R.id.img_camera3); + camera4 = (ImageView) findViewById(R.id.img_camera4); + + lin_camera1 = (LinearLayout) findViewById(R.id.lin_camera1); + lin_camera2 = (LinearLayout) findViewById(R.id.lin_camera2); + lin_camera3 = (LinearLayout) findViewById(R.id.lin_camera3); + lin_camera4 = (LinearLayout) findViewById(R.id.lin_camera4); + + + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + + categoryName = getIntent().getStringExtra("categoryName"); + categoryId = getIntent().getStringExtra("categoryId"); + + //txt_stockFacingName.setText(getResources().getString(R.string.title_activity_stock_facing)); + toolbar.setTitle(getResources().getString(R.string.title_activity_stock_facing)); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + //Stock Facing List + prepareList(); + + str = CommonString.getImagesFolder(context) + _pathforcheck; + + prepareDefaultList(); + + //Camera + cameraMethod(); + + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View view) { + /*Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show();*/ + + /*if (db.isStorewiseCameraSave(store_id, categoryId)) { + db.updateStore_wise_camera(cameraData); + } else { + cameraData.setCheckSaveStatus("1"); + db.InsertStore_wise_camera(cameraData); + }*/ + + if (validateData(hashMapListHeaderData, hashMapListChildData)) { + + db.open(); + //Stock Facing insert or update + if (db.checkStockAndFacingData(store_id, categoryId)) { + db.updateStockAndFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(view, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + db.InsertStock_Facing(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); + + AlertDialog.Builder builder = new AlertDialog.Builder(Stock_FacingActivity.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(); + + //Camera insert or update + /*if (db.isStorewiseCameraSave(store_id, categoryId)) { + db.updateStore_wise_camera(cameraData); + } else { + cameraData.setCheckSaveStatus("1"); + db.InsertStore_wise_camera(cameraData); + }*/ + + //Stock Facing insert or update + if (db.checkStockAndFacingData(store_id, categoryId)) { + db.updateStockAndFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData); + Snackbar.make(view, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show(); + } else { + db.InsertStock_Facing(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(Stock_FacingActivity.this); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(getResources().getString(R.string.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 (isExpand) { + if (firstVisibleItem == 0) { + fab.show();//setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) context + .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) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + + if (groupPosition == 0) { + isExpand = false; + } else { + isExpand = true; + } + + fab.hide();//setVisibility(View.INVISIBLE); + } + }); + + // Listview Group collasped listener + expandableListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { + @Override + public void onGroupCollapse(int groupPosition) { + InputMethodManager inputManager = (InputMethodManager) context + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + getCurrentFocus().clearFocus(); + } + + if (groupPosition == 0) { + isExpand = false; + } else { + isExpand = true; + } + fab.show();//setVisibility(View.VISIBLE); + } + }); + + // 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(); + } + + } + + //Planogram List for check and delete on backPress + private void prepareDefaultList() { + // Planogram After save shelf header data + planogramShelfHeaderDataList = db.getPlanogramAddShelfHeaderAfterSaveData(store_id, categoryId); + + if (planogramShelfHeaderDataList.size() > 0) { + + for (int i = 0; i < planogramShelfHeaderDataList.size(); i++) { + planogramSkuChildDataList = db.getStockAndFacingPlanogramAfterSKUData(planogramShelfHeaderDataList.get(i).getKey_id()); + + //After save sku child data + if (planogramSkuChildDataList.size() > 0) { + planogramHashMapListChildData.put(planogramShelfHeaderDataList.get(i), planogramSkuChildDataList); + } + } + } + } + + private void cameraMethod() { + /*cameraData = new Store_wise_camera_DataGetterSetter(); + + if (db.isStorewiseCameraSave(store_id, categoryId)) { + cameraData = db.getStore_wise_camera(store_id, categoryId); + } else { + cameraData.setStore_id(store_id); + cameraData.setCategory_id(categoryId); + cameraData.setCamera1(""); + cameraData.setCamera2(""); + cameraData.setCamera3(""); + cameraData.setCamera4(""); + cameraData.setCheckSaveStatus("0"); + } + + + if (camera_allow.equals("1")) { + + findViewById(R.id.view_camera2).setVisibility(View.VISIBLE); + findViewById(R.id.view_camera3).setVisibility(View.VISIBLE); + + if (cameraData.getCamera1().equals("")) { + camera1.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera1.setBackgroundResource(R.mipmap.camera_green); + } + + if (cameraData.getCamera2().equals("")) { + camera2.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera2.setBackgroundResource(R.mipmap.camera_green); + } + + if (cameraData.getCamera3().equals("")) { + camera3.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera3.setBackgroundResource(R.mipmap.camera_green); + } + + if (cameraData.getCamera4().equals("")) { + camera4.setBackgroundResource(R.mipmap.camera_orange); + } else { + camera4.setBackgroundResource(R.mipmap.camera_green); + } + + + lin_camera1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera1_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(3); + } + }); + + lin_camera2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera2_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(4); + } + }); + + lin_camera3.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera3_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(5); + } + }); + + lin_camera4.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + _pathforcheck = "Stock_Camera4_" + store_id + "_" + categoryId + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(6); + } + }); + + } else {*/ + + if (!camera_allow.equals("1")) { + findViewById(R.id.lin_camera).setVisibility(View.VISIBLE); + + findViewById(R.id.view_camera2).setVisibility(View.GONE); + findViewById(R.id.view_camera3).setVisibility(View.GONE); + + lin_camera2.setVisibility(View.GONE); + lin_camera3.setVisibility(View.GONE); + lin_camera4.setVisibility(View.GONE); + + if (db.isPlanogramAddShelfSaveData(store_id, categoryId)) { + camera1.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + camera1.setBackgroundResource(R.mipmap.new_no_camera); + } + + lin_camera1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(Stock_FacingActivity.this, StockFacing_PlanogramTrackerActivity.class); + + intent.putExtra("storeId", store_id); + intent.putExtra("keyAccount_id", keyAccount_id); + intent.putExtra("class_id", class_id); + intent.putExtra("storeType_id", storeType_id); + intent.putExtra("categoryId", categoryId); + intent.putExtra("categoryName", categoryName); + + startActivityForResult(intent, 100); + } + + }); + } else { + findViewById(R.id.lin_camera).setVisibility(View.GONE); + } + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header Data + headerDataList = db.getStockAndFacingHeader_AfterSaveData(categoryId, store_id); + if (!(headerDataList.size() > 0)) { + headerDataList = db.getStockAndFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id); + } + + if (headerDataList.size() > 0) { + + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + + //Child Data + childDataList = db.getStockAndFacingSKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (!(childDataList.size() > 0)) { + childDataList = db.getStockAndFacingSKUData(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++) { + String imagePath = listDataHeader.get(i).getImage1(); + String imagePath1 = listDataHeader.get(i).getImage2(); + + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + String stock = listDataChild.get(listDataHeader.get(i)).get(j).getStock(); + String faceup = listDataChild.get(listDataHeader.get(i)).get(j).getFacing(); + + //Company_id + if (listDataChild.get(listDataHeader.get(i)).get(j).getCompany_id().equals("1")) { + //Camera allow enable + if (camera_allow.equalsIgnoreCase("1")) { + + //Atleast Single camera is click + /*if (!cameraData.getCamera1().equals("") || !cameraData.getCamera2().equals("") || + !cameraData.getCamera3().equals("") || !cameraData.getCamera4().equals("")) {*/ + + if (!stock.equals("0")) { + //if (!imagePath.equals("") || !imagePath1.equals("")) { + if (stock.equals("") || faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } else { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } + /*} else { + flag = false; + Error_Message = getResources().getString(R.string.click_image); + break; + }*/ + + } else { + //Camera allow disable + + //Planogram list is not empty + if (planogramShelfHeaderDataList.size() > 0) { + if (!stock.equals("0")) { + if (stock.equals("") || faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } else { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } + } else { + flag = false; + Error_Message = getResources().getString(R.string.stock_planogram_data_noCamera_data); + break; + } + } + } else { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } + } + + if (flag == false) { + checkflag = false; + break; + } else { + checkflag = true; + } + } + + /*for (int i = 0; i < listDataHeader.size(); i++) { + String imagePath = listDataHeader.get(i).getImage1(); + String imagePath1 = listDataHeader.get(i).getImage2(); + + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + String stock = listDataChild.get(listDataHeader.get(i)).get(j).getStock(); + String faceup = listDataChild.get(listDataHeader.get(i)).get(j).getFacing(); + + //Company_id + if (listDataChild.get(listDataHeader.get(i)).get(j).getCompany_id().equals("1")) { + //Camera allow enable + if (camera_allow.equalsIgnoreCase("1")) { + + if (!stock.equals("0")) { + if (!imagePath.equals("") || !imagePath1.equals("")) { + if (stock.equals("") || faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } else { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.click_image); + break; + } + } else { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } + + } else { + //Camera allow disable + if (!stock.equals("0")) { + if (stock.equals("") || faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } else { + if (stock.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } + } + } else { + if (faceup.equals("")) { + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + + flag = false; + Error_Message = getResources().getString(R.string.fill_data); + break; + } + } + } + + if (flag == false) { + checkflag = false; + break; + } else { + checkflag = true; + } + }*/ + //expListView.invalidate(); + adapter.notifyDataSetChanged(); + + return checkflag; + } + + private void startCameraActivity(int position) { + try { + Log.e("MakeMachine", "startCameraActivity()"); + File file = new File(path); + outputFileUri = FileProvider.getUriForFile(context, "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) { + + //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")) { + gallery_package = list.get(n).packageName; + } + + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } else { + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } + } + } + + Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + startActivityForResult(intent, position); + + } 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, position); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void startCameraActivity1(int position) { + try { + Log.e("MakeMachine", "startCameraActivity()"); + File file = new File(path); + outputFileUri = FileProvider.getUriForFile(context, "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")) { + gallery_package = list.get(n).packageName; + } + + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } else { + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } + } + } + + Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + startActivityForResult(intent, 1); + } 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, 1); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void startCameraActivity2(int position) { + + try { + Log.e("MakeMachine", "startCameraActivity()"); + File file = new File(path); + outputFileUri = FileProvider.getUriForFile(context, "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")) { + gallery_package = list.get(n).packageName; + } + + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } else { + if (packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera")) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } + } + } + + Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + startActivityForResult(intent, 2); + } 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, 2); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("Stock & Facing", "resultCode: " + resultCode); + + switch (requestCode) { + + case 100: + //Planogram List for check and delete on backPress + prepareDefaultList(); + if (db.isPlanogramAddShelfSaveData(store_id, categoryId)) { + camera1.setBackgroundResource(R.mipmap.new_no_camera_done_edit); + } else { + camera1.setBackgroundResource(R.mipmap.new_no_camera); + } + + break; + } + super.onActivityResult(requestCode, resultCode, data); + } + + /*public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); + String cdate = formatter.format(m_cal.getTime()); + + return cdate; + }*/ + + private static String arabicToenglish(String number) { + char[] chars = new char[number.length()]; + for (int i = 0; i < number.length(); i++) { + char ch = number.charAt(i); + if (ch >= 0x0660 && ch <= 0x0669) + ch -= 0x0660 - '0'; + else if (ch >= 0x06f0 && ch <= 0x06F9) + ch -= 0x06f0 - '0'; + chars[i] = ch; + } + + return new String(chars); + } + + public String getCurrentTimeNotUsed() { + Calendar m_cal = Calendar.getInstance(); + + SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); + String cdate = formatter.format(m_cal.getTime()); + + if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_JORDAN)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KUWAIT)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_BAHRAIN)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_OMAN)) { + cdate = arabicToenglish(cdate); + } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_QATAR)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LEBANON)) { + cdate = arabicToenglish(cdate); + } + else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_LIBIYA)) { + cdate = arabicToenglish(cdate); + } + return cdate; + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.planogram, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(Stock_FacingActivity.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) { + + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + + finish(); + } + }) + .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + } + }); + android.app.AlertDialog alert = builder.create(); + alert.show(); + //finish(); + } + + //Planogram Dialog + if (id == R.id.action_planogram) { + expandableListView.clearFocus(); + + //final Dialog dialog = new Dialog(Stock_FacingActivity.this, android.R.style.Theme_Black_NoTitleBar_Fullscreen); + final Dialog dialog = new Dialog(Stock_FacingActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + //dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + dialog.setContentView(R.layout.planogram_dialog_layout); + dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + dialog.setCancelable(false); + + ArrayList mappingPlanogramList; + + if (country_id.equals("7")) { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, null, null, store_id, CommonString.TABLE_MAPPING_PLANOGRAM_STORE_WISE); + } else { + mappingPlanogramList = db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM); + } + + //ImageView img_planogram = (ImageView) dialog.findViewById(R.id.img_planogram); + WebView webView = (WebView) dialog.findViewById(R.id.webview); + webView.setWebViewClient(new MyWebViewClient()); + + webView.getSettings().setAllowFileAccess(true); + webView.getSettings().setJavaScriptEnabled(true); + webView.getSettings().setBuiltInZoomControls(true); + + String planogram_image = ""; + if (mappingPlanogramList.size() > 0) { + planogram_image = mappingPlanogramList.get(0).getPLANOGRAM_IMAGE(); + } + if (!planogram_image.equals("")) { + if (new File(CommonString.getDownloadedImageFolder(context) + planogram_image).exists()) { + Bitmap bmp = BitmapFactory.decodeFile(CommonString.getDownloadedImageFolder(context) + planogram_image); + // img_planogram.setRotation(90); + //img_planogram.setImageBitmap(bmp); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + + String imagePath = "file://" + CommonString.getDownloadedImageFolder(context) + "/" + planogram_image; + String html = ""; + webView.loadDataWithBaseURL("", html, "text/html", "utf-8", ""); + + dialog.show(); + } /*else { + //webView.loadUrl(String.valueOf(R.drawable.sad_cloud)); + + //img_planogram.setBackgroundResource(R.drawable.sad_cloud); + }*/ + } + + + ImageView cancel = (ImageView) dialog.findViewById(R.id.img_cancel); + cancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + dialog.dismiss(); + } + }); + + //dialog.show(); + return true; + } + + return super.onOptionsItemSelected(item); + } + + private class MyWebViewClient extends WebViewClient { + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + view.clearCache(true); + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + } + } + + @Override + public void onBackPressed() { + + super.onBackPressed(); + AlertDialog.Builder builder = new AlertDialog.Builder(Stock_FacingActivity.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) { + + if (!validateData(hashMapListHeaderData, hashMapListChildData)) { + if (!camera_allow.equals("1")) { + db.deletePlanogramListStoreAndCategorywise(store_id, categoryId, + planogramShelfHeaderDataList, planogramHashMapListChildData); + } + } + + finish(); + } + }) + .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + 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) { + final Stock_FacingGetterSetter headerTitle = (Stock_FacingGetterSetter) getGroup(groupPosition); + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.item_stock_facing_header, null, false); + } + + TextView txt_stockFaceupHeader = (TextView) convertView.findViewById(R.id.txt_stockFaceupHeader); + TextView txt_sosHeader = (TextView) convertView.findViewById(R.id.txt_sosHeader); + ImageView img_camera1 = (ImageView) convertView.findViewById(R.id.img_camera1); + ImageView img_camera2 = (ImageView) convertView.findViewById(R.id.img_camera2); + LinearLayout lin_stockFaceupHeader = (LinearLayout) convertView.findViewById(R.id.lin_stockFaceupHeader); + + txt_stockFaceupHeader.setTypeface(null, Typeface.BOLD); + txt_stockFaceupHeader.setText(headerTitle.getSub_category() + "-" + headerTitle.getBrand()); + + if (headerTitle.getCompany_id().equals("1")) { + txt_stockFaceupHeader.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); + + if (!headerTitle.getSos_target().equals("") && !headerTitle.getSos_target().equals("-")) { + headerTitle.setSos_target(headerTitle.getSos_target()); + } else if (headerTitle.getSos_target().equals("-")) { + headerTitle.setSos_target("-"); + } + txt_sosHeader.setText(getResources().getString(R.string.stock_facing_sos) + ": \n" + headerTitle.getSos_target().toString()); + + txt_sosHeader.setVisibility(View.VISIBLE); + img_camera1.setVisibility(View.VISIBLE); + img_camera2.setVisibility(View.VISIBLE); + } else { + txt_stockFaceupHeader.setTextColor(getResources().getColor(R.color.black)); + + txt_sosHeader.setVisibility(View.GONE); + img_camera1.setVisibility(View.GONE); + img_camera2.setVisibility(View.GONE); + } + + img_camera1.setVisibility(View.GONE); + img_camera2.setVisibility(View.GONE); + + //Camera allow enable + if (camera_allow.equalsIgnoreCase("1")) { + + img_camera1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //String date = new Date().toLocaleString().toString(); + //String tempDate = new Date().toLocaleString().toString().replace(' ', '_').replace(',', '_').replace(':', '-'); + + _pathforcheck = "Stock_Cam1_" + store_id + "_" + headerTitle.getBrand_id() + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + child_position = groupPosition; + path = str + _pathforcheck; + + startCameraActivity1(groupPosition); + } + }); + + if (!img1.equalsIgnoreCase("")) { + if (groupPosition == child_position) { + headerTitle.setImage1(img1); + img1 = ""; + } + } + + if (headerTitle.getImage1().equals("")) { + img_camera1.setBackgroundResource(R.mipmap.camera_orange); + } else { + img_camera1.setBackgroundResource(R.mipmap.camera_green); + } + + + img_camera2.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //String date = new Date().toLocaleString().toString(); + //String tempDate = new Date().toLocaleString().toString().replace(' ', '_').replace(',', '_').replace(':', '-'); + + _pathforcheck = "Stock_Cam2_" + store_id + "_" + headerTitle.getBrand_id() + + "_" + visit_date.replace("/", "") + "_" + CommonFunctions.getCurrentTimeWithLanguage(context).replace(":", "") + ".jpg"; + child_position = groupPosition; + path = str + _pathforcheck; + + startCameraActivity2(groupPosition); + } + }); + + if (!img2.equalsIgnoreCase("")) { + if (groupPosition == child_position) { + headerTitle.setImage2(img2); + img2 = ""; + } + } + + if (headerTitle.getImage2().equals("")) { + img_camera2.setBackgroundResource(R.mipmap.camera_orange); + } else { + img_camera2.setBackgroundResource(R.mipmap.camera_green); + } + } else { + //Camera allow disable + img_camera1.setBackgroundResource(R.mipmap.camera_grey); + img_camera2.setBackgroundResource(R.mipmap.camera_grey); + + img_camera1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(Stock_FacingActivity.this, StockFacing_PlanogramTrackerActivity.class); + + intent.putExtra("brand", headerTitle.getBrand()); + intent.putExtra("brand_id", headerTitle.getBrand_id()); + intent.putExtra("company_id", headerTitle.getCompany_id()); + intent.putExtra("sub_category", headerTitle.getSub_category()); + intent.putExtra("sub_category_id", headerTitle.getSub_category_id()); + intent.putExtra("categoryName", categoryName); + intent.putExtra("categoryId", categoryId); + + startActivity(intent); + } + }); + } + + if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + txt_stockFaceupHeader.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + txt_stockFaceupHeader.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); + /*if (headerTitle.getCompany_id().equals("1")) { + } else { + txt_stockFaceupHeader.setTextColor(getResources().getColor(R.color.black)); + }*/ + } + } + } else { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + txt_stockFaceupHeader.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + /*if (headerTitle.getCompany_id().equals("1")) { + txt_stockFaceupHeader.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); + } else {*/ + txt_stockFaceupHeader.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 Stock_FacingGetterSetter childData = (Stock_FacingGetterSetter) 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_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.ed_stock = (EditText) convertView.findViewById(R.id.ed_stock); + holder.ed_facing = (EditText) convertView.findViewById(R.id.ed_facing); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.txt_skuName.setText(childData.getSku()); + + if (childData.getCompany_id().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); + holder.ed_stock.setVisibility(View.VISIBLE); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + holder.ed_stock.setVisibility(View.GONE); + } + + if (childData.getStock().equals("0")) { + if (childData.getCompany_id().equals("1")) { + holder.ed_facing.setEnabled(false); + } else { + holder.ed_facing.setEnabled(true); + } + } else { + holder.ed_facing.setEnabled(true); + } + + final ViewHolder finalHolder = holder; + holder.ed_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+(?!$)", ""); + childData.setStock(stock); + + if (stock.equals("0")) { + childData.setFacing("0"); + finalHolder.ed_facing.setText("0"); + + finalHolder.ed_facing.setEnabled(false); + } else { + childData.setFacing(childData.getFacing()); + finalHolder.ed_facing.setEnabled(true); + } + } else { + childData.setStock(""); + childData.setFacing(""); + finalHolder.ed_facing.setEnabled(true); + } + } + }); + + /* holder.ed_stock.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + //final EditText caption = (EditText) v; + String edStock = s.toString(); + + if (!edStock.equals("")) { + String stock = edStock.replaceFirst("^0+(?!$)", ""); + childData.setStock(stock); + + if (edStock.equals("0")) { + if (childData.getCompany_id().equals("1")) { + childData.setFacing("0"); + } + finalHolder.ed_facing.setEnabled(false); + } else { + childData.setFacing(childData.getFacing()); + finalHolder.ed_facing.setEnabled(true); + } + } else { + childData.setStock(""); + childData.setFacing(""); + finalHolder.ed_facing.setEnabled(true); + } + //expandableListView.invalidateViews(); + } + });*/ + + holder.ed_stock.setText(childData.getStock()); + + holder.ed_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 (childData.getCompany_id().equals("1")) { + if (!childData.getStock().equals("")) { + if (!edFaceup.equals("")) { + if (Integer.parseInt(edFaceup) <= Integer.parseInt(childData.getStock())) { + childData.setFacing(edFaceup); + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(Stock_FacingActivity.this); + builder.setMessage(getString(R.string.check_faceup)) + .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.setFacing(""); + } + } else { + if (isDialogOpen) { + isDialogOpen = !isDialogOpen; + AlertDialog.Builder builder = new AlertDialog.Builder(Stock_FacingActivity.this); + builder.setMessage(getString(R.string.fill_stock_value)) + .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.setFacing(edFaceup); + childData.setStock("0"); + } + } + }); + + holder.ed_facing.setText(childData.getFacing()); + + if (!checkflag) { + boolean tempflag = false; + + if (childData.getCompany_id().equals("1")) { + if (holder.ed_stock.getText().toString().equals("")) { + holder.ed_stock.setBackgroundColor(getResources().getColor(R.color.white)); + holder.ed_stock.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.ed_stock.setHint(getString(R.string.empty)); + tempflag = true; + } + + if (holder.ed_facing.getText().toString().equals("")) { + holder.ed_facing.setBackgroundColor(getResources().getColor(R.color.white)); + holder.ed_facing.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.ed_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.ed_facing.getText().toString().equals("")) { + holder.ed_facing.setBackgroundColor(getResources().getColor(R.color.white)); + holder.ed_facing.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.ed_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 { + EditText ed_stock, ed_facing; + CardView cardView; + TextView txt_skuName; + LinearLayout lin_category; + } +} 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 new file mode 100644 index 0000000..eb66778 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java @@ -0,0 +1,239 @@ +package cpm.com.gskmtorange.gsk_dailyentry; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +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.dailyentry.MessageActivity; +import cpm.com.gskmtorange.xmlGetterSetter.StoreWisePerformaceGetterSetter; + +public class StoreWisePerformanceActivity extends AppCompatActivity { + RecyclerView recyclerView; + Toolbar toolbar; + private Context context; + + ArrayList storeWisePerformanceList; + StoreWisePerformaceAdapter adapter; + + GSKOrangeDB db; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id, store_flag_str; + private SharedPreferences preferences; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + setContentView(R.layout.activity_store_wise_performance); + + toolbar = (Toolbar) findViewById(R.id.toolbar); + recyclerView = (RecyclerView) findViewById(R.id.recyclerView); + + db = new GSKOrangeDB(this); + db.open(); + context = this; + //preference data + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, 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, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + + toolbar.setTitle(getResources().getString(R.string.title_activity_store_wise_performance)); + setSupportActionBar(toolbar); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //Intent intent = new Intent(StoreWisePerformanceActivity.this, CategoryListActivity.class); + //Intent intent = new Intent(StoreWisePerformanceActivity.this, MessageActivity.class); + + + /*boolean coaching_visit_flag=false; + //Enable disable According to Configuration + ArrayList configurationData = db.getConfigurationMasterData(country_id); + if(configurationData.size()>0){ + + for(int i=0; i { + Context context; + List list = Collections.emptyList(); + private LayoutInflater inflator; + + public StoreWisePerformaceAdapter(Context context, List list) { + inflator = LayoutInflater.from(context); + this.list = list; + this.context = context; + } + + @Override + public StoreWisePerformaceAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.item_store_wise_performance, parent, false); + StoreWisePerformaceAdapter.MyViewHolder holder = new StoreWisePerformaceAdapter.MyViewHolder(view); + return holder; + } + + @Override + public void onBindViewHolder(StoreWisePerformaceAdapter.MyViewHolder holder, int position) { + final StoreWisePerformaceGetterSetter categoryData = list.get(position); + if (categoryData.getPeriod().equalsIgnoreCase("LTM")) { + holder.txt_period.setText(getResources().getString(R.string.category_performance_ltm)); + } else if (categoryData.getPeriod().equalsIgnoreCase("MTD")) { + holder.txt_period.setText(getResources().getString(R.string.category_performance_mtd)); + } else if (categoryData.getPeriod().equalsIgnoreCase("LSV")) { + holder.txt_period.setText(getResources().getString(R.string.category_performance_lsv)); + } + holder.txt_msl_availability.setText(categoryData.getMsl_availability()); + holder.txt_sos.setText(categoryData.getSos()); + holder.txt_t2p.setText(categoryData.getT2p()); + holder.txt_promo.setText(categoryData.getPromo()); + holder.txt_planogram.setText(categoryData.getPLANOGRAM()); + + } + + @Override + public int getItemCount() { + return list.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + TextView txt_period, txt_sos, txt_t2p, txt_promo, txt_msl_availability, txt_planogram; + LinearLayout lay_menu; + + public MyViewHolder(View itemView) { + super(itemView); + lay_menu = (LinearLayout) itemView.findViewById(R.id.lay_menu); + txt_period = (TextView) itemView.findViewById(R.id.txt_period); + txt_sos = (TextView) itemView.findViewById(R.id.txt_sos); + 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_planogram = (TextView) itemView.findViewById(R.id.txt_planogram); + + } + } + } + +} + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/interfaces/DialogCallbackListener.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/interfaces/DialogCallbackListener.java new file mode 100644 index 0000000..4a036f3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/interfaces/DialogCallbackListener.java @@ -0,0 +1,7 @@ +package cpm.com.gskmtorange.interfaces; + +public interface DialogCallbackListener { + + public void onSelect(boolean flag); + public void onSave(boolean flag); +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/listener/DragListener.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/listener/DragListener.java new file mode 100644 index 0000000..edb255c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/listener/DragListener.java @@ -0,0 +1,82 @@ +package cpm.com.gskmtorange.listener; +import android.view.DragEvent; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.adapter.ListAdapter; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; + +/** + * Created by yadavendras on 25-10-2017. + */ + +public class DragListener implements View.OnDragListener { + + private boolean isDropped = false; + private Listener listener; + + public DragListener(Listener listener) { + this.listener = listener; + } + + @Override + public boolean onDrag(View v, DragEvent event) { + + View viewSource = (View) event.getLocalState(); + int viewId = v.getId(); + + final int rvTop = R.id.rvTop; + + switch (event.getAction()) { + case DragEvent.ACTION_DROP: + isDropped = true; + int positionTarget = -1; + + if( v instanceof TextView || v instanceof RecyclerView || v instanceof LinearLayout){ + + if (viewSource != null) { + + RecyclerView source = (RecyclerView) viewSource.getParent(); + + ListAdapter adapterSource = (ListAdapter) source.getAdapter(); + int positionSource = (int) viewSource.getTag(); + int sourceId = source.getId(); + + NoCameraDataGetterSetter parent_item = adapterSource.getList().get(positionSource); + + if(v instanceof LinearLayout){ + v = (RecyclerView) v.getParent(); + viewId = v.getId(); + } + + if(viewId != rvTop){ + listener.addNUpdateRow(v, viewId, parent_item); + } + } + } + + break; + + case DragEvent.ACTION_DRAG_LOCATION: + + if(viewId == rvTop){ + listener.smoothScrollToRow(v, event); + } + + break; + } + + if (!isDropped && event.getLocalState() != null) { + ((View) event.getLocalState()).setVisibility(View.VISIBLE); + } + + return true; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/listener/Listener.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/listener/Listener.java new file mode 100644 index 0000000..eeaae55 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/listener/Listener.java @@ -0,0 +1,24 @@ +package cpm.com.gskmtorange.listener; + +import android.view.DragEvent; +import android.view.View; +import android.widget.ScrollView; + +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; + +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; + + +/** + * Created by yadavendras on 25-10-2017. + */ + +public interface Listener { + + void setEmptyListBottom(boolean visibility, int tv, RecyclerView rv); + void addNUpdateRow(View v, int view_id, NoCameraDataGetterSetter parent_item); + void smoothScrollToRow(View v, DragEvent event); + void deleteItem(View v, int column_no, RecyclerView rec, NoCameraDataGetterSetter parent_item); +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/messgae/AlertMessage.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/messgae/AlertMessage.java new file mode 100644 index 0000000..c13cc1f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/messgae/AlertMessage.java @@ -0,0 +1,118 @@ +package cpm.com.gskmtorange.messgae; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; + +import cpm.com.gskmtorange.GeoTag.GeoTagStoreList; +import cpm.com.gskmtorange.R; + +/** + * Created by ashishc on 03-01-2017. + */ + +public class AlertMessage { + + public static final String MESSAGE_ERROR = "Network Error , "; + + public static final String MESSAGE_SUCCESS = "Uploaded Data , "; + + public static final String MESSAGE_DATA_NOT = "Data Not Uploaded , "; + + public static final String MESSAGE_SOCKETEXCEPTION = "Network Communication Failure. Check Your Network Connection"; + + + + private Exception exception; + String value; + private String data, condition,exceptionString; + private Activity activity; + private String error; + + + + public AlertMessage(Activity activity, String data, String condition, + Exception exception) { + this.activity = activity; + this.data = data; + this.condition = condition; + this.exception = exception; + } + + public AlertMessage(Activity activity, String data, String condition, + String exception, String a) { + this.activity = activity; + this.data = data; + this.condition = condition; + this.exceptionString = exception; + this.error = a; + } + + + public void showMessage() { + + if (condition.equals("success")) { + + ShowAlert1(data); + } + else if(condition.equals("failure")) + { + ShowAlertSocket(data); + } + + + } + + public void ShowAlert1(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(activity); + builder.setTitle(R.string.dialog_title); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + Intent i = new Intent(activity, GeoTagStoreList.class); + activity.startActivity(i); + + activity.finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + + } + + + public void ShowAlertSocket(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(activity); + builder.setTitle(R.string.dialog_title); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + Intent i = new Intent(activity, GeoTagStoreList.class); + activity.startActivity(i); + + activity.finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + + } + + + + + + +} + + + + + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/ChangePasswordActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/ChangePasswordActivity.java new file mode 100644 index 0000000..316ef49 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/ChangePasswordActivity.java @@ -0,0 +1,429 @@ +package cpm.com.gskmtorange.password; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.ProgressDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.drawable.ColorDrawable; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.regex.Pattern; + +import cpm.com.gskmtorange.LoginActivity; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.messgae.AlertMessage; + +public class ChangePasswordActivity extends AppCompatActivity implements View.OnClickListener { + + EditText et_old_password, et_new_password, et_confirm_password; + Button btn_submit; + ImageView img_info; + + private SharedPreferences preferences = null; + private SharedPreferences.Editor editor = null; + + String user_id; + String new_pw, old_password; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_change_password); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + et_old_password = (EditText) findViewById(R.id.et_old_password); + et_new_password = (EditText) findViewById(R.id.et_new_password); + et_confirm_password = (EditText) findViewById(R.id.et_confirm_password); + btn_submit = (Button) findViewById(R.id.btn_submit); + img_info = (ImageView) findViewById(R.id.img_info); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + editor = preferences.edit(); + + user_id = preferences.getString(CommonString.KEY_USERNAME, ""); + old_password = preferences.getString(CommonString.KEY_PASSWORD, ""); + + //new password + et_new_password.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + String result = s.toString().replaceAll(" ", ""); + if (!s.toString().equals(result)) { + et_new_password.setText(result); + et_new_password.setSelection(result.length()); + et_new_password.setError(getString(R.string.space_not_allowed_in_password)); + et_new_password.requestFocus(); + // alert the user + } + } + }); + + //confirm password + et_confirm_password.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + String result = s.toString().replaceAll(" ", ""); + if (!s.toString().equals(result)) { + et_confirm_password.setText(result); + et_confirm_password.setSelection(result.length()); + et_confirm_password.setError(getString(R.string.space_not_allowed_in_password)); + et_confirm_password.requestFocus(); + // alert the user + } + } + }); + + img_info.setOnClickListener(this); + btn_submit.setOnClickListener(this); + + FloatingActionButton fab = findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + } + + @Override + public void onClick(View v) { + int id = v.getId(); + + switch (id){ + case R.id.img_info: + + Dialog dialog = new Dialog(ChangePasswordActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.setContentView(R.layout.password_rule_dialog); + dialog.show(); + + break; + + case R.id.btn_submit: + + if(isValid()){ + + } + + break; + } + } + + boolean isValid(){ + boolean flag = true; + + boolean cancel = false; + View focusView = null; + + + //New Password + new_pw = et_new_password.getText().toString(); + + if(new_pw.equals("")){ + et_new_password.setError(getString(R.string.error_field_required)); + focusView = et_new_password; + cancel = true; + } + else { + //final String PASSWORD_PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"; + /* if(!PASSWORD_PATTERN.matches(new_pw)){ + et_new_password.setError(getString(R.string.invalid_password)); + focusView = et_new_password; + cancel = true; + }*/ + + Pattern textPattern = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%])(?=.*\\d).+$"); + + if(new_pw.equals(old_password)){ + et_new_password.setError(getString(R.string.new_password_not_equal_to_old_password)); + focusView = et_new_password; + cancel = true; + } + else if(new_pw.length()>=6 && new_pw.length()<=8 && textPattern.matcher(new_pw).matches()){ + //New Password + String confirm_pw = et_confirm_password.getText().toString(); + if(confirm_pw.equals("")){ + et_confirm_password.setError(getString(R.string.error_field_required)); + focusView = et_confirm_password; + cancel = true; + } + else if(!confirm_pw.equals(new_pw)){ + et_confirm_password.setError(getString(R.string.password_and_confirm_password_not_match)); + focusView = et_confirm_password; + cancel = true; + } + else { + new AuthenticateTask().execute(); + } + + } + else { + et_new_password.setError(getString(R.string.invalid_password)); + focusView = et_new_password; + cancel = true; + } + + } + + //Old Password + String old_pw = et_old_password.getText().toString().trim(); + + if(old_pw.equals("")){ + et_old_password.setError(getString(R.string.error_field_required)); + focusView = et_old_password; + cancel = true; + } + else { + + + + if (!old_password.equals("") && !old_pw.equals(old_password)) { + et_old_password.setError(getString(R.string.error_incorrect_password)); + focusView = et_old_password; + cancel = true; + } + } + + if (cancel) { + // There was an error; don't attempt login and focus the first + // form field with an error. + focusView.requestFocus(); + + } else{ + + } + + + return !cancel; + } + + private class AuthenticateTask extends AsyncTask { + private ProgressDialog dialog = null; + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new ProgressDialog(ChangePasswordActivity.this); + dialog.setTitle("Login"); + dialog.setMessage("Authenticating...."); + dialog.setCancelable(false); + dialog.show(); + } + + @Override + protected String doInBackground(Void... params) { + + try { + + String userauth_xml = "[DATA]" + "[USER_DATA][USER_ID]" + + user_id + "[/USER_ID]" + "[OLD_PASSWORD]" + old_password + + "[/OLD_PASSWORD]" + "[NEW_PASSWORD]" + new_pw + + "[/NEW_PASSWORD]" + "[/USER_DATA][/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, + CommonString.METHOD_UPDATE_PASSWORD); + request.addProperty("onXML", userauth_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( + SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE( + CommonString.URL); + + androidHttpTransport.call(CommonString.SOAP_ACTION_UPDATE_PASSWORD, + envelope); + + Object result = (Object) envelope.getResponse(); + + if (result.toString() + .equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + return CommonString.KEY_SUCCESS; + + } else if (result.toString() + .equalsIgnoreCase(CommonString.KEY_FAILURE)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_FAILURE, false); + } + }); + + } else if (result.toString().equalsIgnoreCase( + CommonString.KEY_FALSE)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_FALSE, false); + } + }); + + } else if (result.toString().equalsIgnoreCase( + CommonString.KEY_CHANGED)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + //showAlert(CommonString.MESSAGE_CHANGED); + } + }); + + } else { + + } + + return ""; + + } catch (MalformedURLException e) { + + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, AlertMessage.MESSAGE_EXCEPTION, + "acra_login", e); + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + //showAlert(CommonString.MESSAGE_EXCEPTION); + } + });*/ + + } catch (IOException e) { + final AlertMessage message = new AlertMessage( + ChangePasswordActivity.this, + AlertMessage.MESSAGE_SOCKETEXCEPTION, "socket_login", e); + } catch (Exception e) { + /* final AlertMessage message = new AlertMessage( + LoginActivity.this, AlertMessage.MESSAGE_EXCEPTION, + "acra_login", e);*/ + //Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + //Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception("My custom login Exception")); + runOnUiThread(new Runnable() { + + @Override + public void run() { + //showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + } + return ""; + + } + + @Override + protected void onPostExecute(String result) { + + super.onPostExecute(result); + + //Stop performance trace + //myTrace.stop(); + + if (result.equals(CommonString.KEY_SUCCESS)) { + + // PUT IN PREFERENCES + + editor.putString(CommonString.KEY_PASSWORD, new_pw); + + editor.commit(); + + dialog.dismiss(); + showAlert(getString(R.string.password_updated_successfully), true); + } + else { + dialog.dismiss(); + showAlert(getString(R.string.error), true); + } + + } + + } + + public void showAlert(String str, final boolean flag_finish) { + + AlertDialog.Builder builder = new AlertDialog.Builder(ChangePasswordActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + if(flag_finish){ + Intent i = new Intent(ChangePasswordActivity.this, LoginActivity.class); + // set the new task and clear flags + i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + startActivity(i); + } + + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/MPinActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/MPinActivity.java new file mode 100644 index 0000000..748d181 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/MPinActivity.java @@ -0,0 +1,1045 @@ +package cpm.com.gskmtorange.password; + +import static com.google.android.gms.location.LocationRequest.Builder.IMPLICIT_MIN_UPDATE_INTERVAL; + +import android.Manifest; +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentSender; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.graphics.Color; +import android.graphics.Typeface; +import android.graphics.drawable.ColorDrawable; +import android.location.Location; +import android.location.LocationManager; +import android.os.AsyncTask; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.os.Looper; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.PendingResult; +import com.google.android.gms.common.api.ResultCallback; +import com.google.android.gms.common.api.Status; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.LocationSettingsRequest; +import com.google.android.gms.location.LocationSettingsResult; +import com.google.android.gms.location.LocationSettingsStatusCodes; +import com.google.android.gms.location.Priority; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; +import com.google.firebase.analytics.FirebaseAnalytics; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import org.xmlpull.v1.XmlPullParserFactory; + +import java.io.File; +import java.io.IOException; +import java.io.StringReader; +import java.lang.reflect.Type; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import cpm.com.gskmtorange.LoginActivity; +import cpm.com.gskmtorange.MainActivity; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.autoupdate.AutoUpdateActivity; +import cpm.com.gskmtorange.blurlockview.BlurLockView; +import cpm.com.gskmtorange.blurlockview.Directions.HideType; +import cpm.com.gskmtorange.blurlockview.Directions.ShowType; +import cpm.com.gskmtorange.blurlockview.Eases.EaseType; +import cpm.com.gskmtorange.blurlockview.Password; +import cpm.com.gskmtorange.constant.CommonFunctions; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.constant.CommonUtils; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; +import cpm.com.gskmtorange.xmlHandlers.XMLHandlers; + +public class MPinActivity extends AppCompatActivity implements View.OnClickListener, BlurLockView.OnPasswordInputListener, BlurLockView.OnLeftButtonClickListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { + BlurLockView blurLockView; + ImageView imageView1; + String pin = ""; + boolean IS_PASSWORD_CHECK; + private SharedPreferences preferences = null; + private SharedPreferences.Editor editor = null; + String userId, password, app_ver; + int eventType; + LoginGetterSetter lgs = null; + static int counter = 1; + // Trace myTrace; + private int versionCode; + + private static final int MY_PERMISSIONS_REQUEST_CAMERA = 10; + private static final int MY_PERMISSIONS_REQUEST_LOCATION = 11; + private static final int MY_PERMISSIONS_REQUEST_STORAGE_READ = 12; + private static final int MY_PERMISSIONS_REQUEST_STORAGE_WRITE = 14; + + private static final int PERMISSION_ALL = 99; + + GoogleApiClient mGoogleApiClient; + private static int UPDATE_INTERVAL = 200; // 5 sec + private static int FATEST_INTERVAL = 100; // 1 sec + private static int DISPLACEMENT = 1; // 10 meters + private static final int REQUEST_LOCATION = 1; + private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; + private Location mLastLocation; + private LocationRequest mLocationRequest; + private Context context; + + //New Location Changes + private FusedLocationProviderClient fusedLocationProviderClient; + LocationRequest locationRequest; + + double lat = 0.0; + double lon = 0.0; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + setContentView(R.layout.activity_mpin); + context = this; + fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); + IS_PASSWORD_CHECK = getIntent().getBooleanExtra(CommonString.IS_PASSWORD_CHECK, false); + imageView1 = (ImageView) findViewById(R.id.image_1); + blurLockView = (BlurLockView) findViewById(R.id.blurlockview); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + editor = preferences.edit(); + //USK + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + + try { + app_ver = String.valueOf(getPackageManager().getPackageInfo(getPackageName(), 0).versionName); + + // login_version.setText("Parinaam Version " + app_ver); + } catch (PackageManager.NameNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + // Set the view that need to be blurred + blurLockView.setBlurredView(imageView1); + + // Set the password + if (IS_PASSWORD_CHECK) { + //preferences = PreferenceManager.getDefaultSharedPreferences(this); + String mpin = preferences.getString(CommonString.MPIN, null); + blurLockView.setCorrectPassword(mpin); + blurLockView.setLeftButton(getString(R.string.forget_mpin)); + blurLockView.setTitle(getString(R.string.pls_enter_four_digit_mpin)); + } else { + blurLockView.setCorrectPassword("abcd"); + blurLockView.setLeftButton(getString(R.string.set_mpin)); + blurLockView.setTitle(getString(R.string.pls_set_four_digit_mpin)); + } + + blurLockView.setIs_Password_Check_Mode(IS_PASSWORD_CHECK); + + + blurLockView.setRightButton(getString(R.string.clear)); + blurLockView.setTypeface(getTypeface()); + blurLockView.setOnLeftButtonClickListener(this); + blurLockView.setOnPasswordInputListener(this); + blurLockView.setType(Password.NUMBER, true); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(view -> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show()); + checkAndRequestPermissions(); + } + + private void checkAndRequestPermissions() { + int CAMERA = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA); + int ACCESS_NETWORK_STATE = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE); + int ACCESS_COARSE_LOCATION = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION); + int locationPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION); + int READ_PHONE_STATE = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE); + List listPermissionsNeeded = new ArrayList<>(); + + if (CAMERA != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.CAMERA); + } + + if (ACCESS_NETWORK_STATE != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.ACCESS_NETWORK_STATE); + } + if (ACCESS_COARSE_LOCATION != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.ACCESS_COARSE_LOCATION); + } + if (locationPermission != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.ACCESS_FINE_LOCATION); + } + + if (READ_PHONE_STATE != PackageManager.PERMISSION_GRANTED) { + listPermissionsNeeded.add(Manifest.permission.READ_PHONE_STATE); + } + + if (!listPermissionsNeeded.isEmpty()) { + ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), PERMISSION_ALL); + } + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(context).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + Log.d("", "Permission callback called-------"); + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); + } + if (requestCode == PERMISSION_ALL) { + Map perms = new HashMap<>(); + // Initialize the map with both permissions + perms.put(Manifest.permission.CAMERA, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.ACCESS_NETWORK_STATE, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.ACCESS_COARSE_LOCATION, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.ACCESS_FINE_LOCATION, PackageManager.PERMISSION_GRANTED); + perms.put(Manifest.permission.READ_PHONE_STATE, PackageManager.PERMISSION_GRANTED); + // Fill with actual results from user + if (grantResults.length > 0) { + for (int i = 0; i < permissions.length; i++) + perms.put(permissions[i], grantResults[i]); + // Check for both permissions// + if (perms.get(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED && perms.get(Manifest.permission.ACCESS_NETWORK_STATE) == PackageManager.PERMISSION_GRANTED && perms.get(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED && perms.get(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && perms.get(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { + // imeiNumbers = imei.getDeviceImei(); + Log.d("", "sms & location services permission granted"); + // process the normal flow + //else any one or both the permissions are not granted + } else { + Log.d("", "Some permissions are not granted ask again "); + //permission is denied (this is the first time, when "never ask again" is not checked) so ask again explaining the usage of permission +// // shouldShowRequestPermissionRationale will return true + //show the dialog or snackbar saying its necessary and try again otherwise proceed with setup. + if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_NETWORK_STATE) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) { + showDialogOK("Location,Photos,media,file,manage phone calls and Camera Services Permission required for this app", (dialog, which) -> { + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + checkAndRequestPermissions(); + break; + case DialogInterface.BUTTON_NEGATIVE: + // proceed with logic by disabling the related features or quit the app. + Intent startMain = new Intent(Intent.ACTION_MAIN); + startMain.addCategory(Intent.CATEGORY_HOME); + startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(startMain); + break; + } + }); + } + } + } + } + + } + + private void showDialogOK(String message, DialogInterface.OnClickListener okListener) { + new androidx.appcompat.app.AlertDialog.Builder(this).setMessage(message).setPositiveButton("OK", okListener).setNegativeButton("Cancel", okListener).create().show(); + } + + @Override + protected void onResume() { + super.onResume(); + + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + + } + checkgpsEnableDevice(); + + locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 100000).setWaitForAccurateLocation(false).setMinUpdateIntervalMillis(IMPLICIT_MIN_UPDATE_INTERVAL).setMaxUpdateDelayMillis(1000).build(); + + + LocationCallback locationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult != null) { + if (locationResult == null) { + return; + } + //Showing the latitude, longitude and accuracy on the home screen. + for (Location location : locationResult.getLocations()) { + lat = location.getLatitude(); + lon = location.getLongitude(); + // Log.e("latitude_inside",location.getLatitude() + "," +location.getLongitude()); + } + } + } + }; + if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(MPinActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1); + ActivityCompat.requestPermissions(MPinActivity.this, new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION}, 2); + } + fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); + + } + + private Password getPasswordType() { + if ("PASSWORD_NUMBER".equals(getIntent().getStringExtra("PASSWORD_TYPE"))) + return Password.NUMBER; + else if ("PASSWORD_NUMBER".equals(getIntent().getStringExtra("PASSWORD_TYPE"))) + return Password.TEXT; + return Password.NUMBER; + } + + private Typeface getTypeface() { + if ("SAN".equals(getIntent().getStringExtra("TYPEFACE"))) + return Typeface.createFromAsset(getAssets(), "fonts/San Francisco Regular.ttf"); + else if ("DEFAULT".equals(getIntent().getStringExtra("TYPEFACE"))) return Typeface.DEFAULT; + return Typeface.DEFAULT; + } + + @Override + public void correct(String inputPassword) { + + if (IS_PASSWORD_CHECK) { + userId = preferences.getString(CommonString.KEY_USERNAME, ""); + password = preferences.getString(CommonString.KEY_PASSWORD, ""); + + new AuthenticateTask().execute(); + } else { + Toast.makeText(this, "Correct", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void incorrect(String inputPassword) { + + if (IS_PASSWORD_CHECK) { + + int incorrect_times = blurLockView.getIncorrectInputTimes(); + if (++incorrect_times >= 3) { + /*Toast.makeText(this, + R.string.error_incorrect_password, + Toast.LENGTH_SHORT).show();*/ + + Snackbar snackbar = Snackbar.make(blurLockView, R.string.incorrect_mpin_limit_reached, Snackbar.LENGTH_INDEFINITE); + View view = snackbar.getView(); + snackbar.setAction(R.string.reset, v -> { + editor.putString(CommonString.MPIN, null); + editor.commit(); + Intent in = new Intent(context, LoginActivity.class); + startActivity(in); + finish(); + }); + snackbar.setActionTextColor(Color.GREEN); + snackbar.show(); + } else { + int count = 3 - incorrect_times; + String attemt_str; + if (count == 1) { + attemt_str = ". Attempt left - " + count; + } else { + attemt_str = ". Attempts left - " + count; + } + + String msg = getString(R.string.error_incorrect_pin) + attemt_str; + Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + } + } else { + pin = inputPassword; + } + + } + + @Override + public void input(String inputPassword) { + pin = inputPassword; + } + + @Override + public void clear(String remainingPassword) { + pin = remainingPassword; + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.image_1: + /* blurLockView.show( + getIntent().getIntExtra("SHOW_DURATION", 1000), + getShowType(getIntent().getIntExtra("SHOW_DIRECTION", 0)), + getEaseType(getIntent().getIntExtra("SHOW_EASE_TYPE", 30))); + blurLockView.setType(Password.TEXT, true);*/ + break; + } + } + + @Override + public void onClick() { + + if (IS_PASSWORD_CHECK) { + + Snackbar snackbar = Snackbar.make(blurLockView, R.string.need_to_reset_mpin, Snackbar.LENGTH_INDEFINITE); + View view = snackbar.getView(); + /*TextView tv = (TextView)view.findViewById(android.support.design.R.id.snackbar_text); + tv.setTextColor(Color.RED);*/ + snackbar.setAction(R.string.reset, new View.OnClickListener() { + @Override + public void onClick(View v) { + + editor.putString(CommonString.MPIN, null); + + editor.commit(); + + finish(); + Intent in = new Intent(context, LoginActivity.class); + startActivity(in); + + } + }); + snackbar.setActionTextColor(Color.GREEN); + snackbar.show(); + } else { + if (pin.length() == 4) { + + editor.putString(CommonString.MPIN, pin); + + editor.commit(); + + Intent in = new Intent(context, MainActivity.class); + + startActivity(in); + + finish(); + } else { + Toast.makeText(context, "Please fill four digit MPin", Toast.LENGTH_SHORT).show(); + } + } + + } + + + private int downsamepleFactor; + + private ShowType getShowType(int p) { + ShowType showType = ShowType.FROM_TOP_TO_BOTTOM; + switch (p) { + case 0: + showType = ShowType.FROM_TOP_TO_BOTTOM; + break; + case 1: + showType = ShowType.FROM_RIGHT_TO_LEFT; + break; + case 2: + showType = ShowType.FROM_BOTTOM_TO_TOP; + break; + case 3: + showType = ShowType.FROM_LEFT_TO_RIGHT; + break; + case 4: + showType = ShowType.FADE_IN; + break; + } + return showType; + } + + private HideType getHideType(int p) { + HideType hideType = HideType.FROM_TOP_TO_BOTTOM; + switch (p) { + case 0: + hideType = HideType.FROM_TOP_TO_BOTTOM; + break; + case 1: + hideType = HideType.FROM_RIGHT_TO_LEFT; + break; + case 2: + hideType = HideType.FROM_BOTTOM_TO_TOP; + break; + case 3: + hideType = HideType.FROM_LEFT_TO_RIGHT; + break; + case 4: + hideType = HideType.FADE_OUT; + break; + } + return hideType; + } + + private EaseType getEaseType(int p) { + EaseType easeType = EaseType.Linear; + switch (p) { + case 0: + easeType = EaseType.EaseInSine; + break; + case 1: + easeType = EaseType.EaseOutSine; + break; + case 2: + easeType = EaseType.EaseInOutSine; + break; + case 3: + easeType = EaseType.EaseInQuad; + break; + case 4: + easeType = EaseType.EaseOutQuad; + break; + case 5: + easeType = EaseType.EaseInOutQuad; + break; + case 6: + easeType = EaseType.EaseInCubic; + break; + case 7: + easeType = EaseType.EaseOutCubic; + break; + case 8: + easeType = EaseType.EaseInOutCubic; + break; + case 9: + easeType = EaseType.EaseInQuart; + break; + case 10: + easeType = EaseType.EaseOutQuart; + break; + case 11: + easeType = EaseType.EaseInOutQuart; + break; + case 12: + easeType = EaseType.EaseInQuint; + break; + case 13: + easeType = EaseType.EaseOutQuint; + break; + case 14: + easeType = EaseType.EaseInOutQuint; + break; + case 15: + easeType = EaseType.EaseInExpo; + break; + case 16: + easeType = EaseType.EaseOutExpo; + break; + case 17: + easeType = EaseType.EaseInOutExpo; + break; + case 18: + easeType = EaseType.EaseInCirc; + break; + case 19: + easeType = EaseType.EaseOutCirc; + break; + case 20: + easeType = EaseType.EaseInOutCirc; + break; + case 21: + easeType = EaseType.EaseInBack; + break; + case 22: + easeType = EaseType.EaseOutBack; + break; + case 23: + easeType = EaseType.EaseInOutBack; + break; + case 24: + easeType = EaseType.EaseInElastic; + break; + case 25: + easeType = EaseType.EaseOutElastic; + break; + case 26: + easeType = EaseType.EaseInOutElastic; + break; + case 27: + easeType = EaseType.EaseInBounce; + break; + case 28: + easeType = EaseType.EaseOutBounce; + break; + case 29: + easeType = EaseType.EaseInOutBounce; + break; + case 30: + easeType = EaseType.Linear; + break; + } + return easeType; + } + + private class AuthenticateTask extends AsyncTask { + private Dialog dialog; + + @Override + protected void onPreExecute() { + + super.onPreExecute(); + + dialog = new Dialog(MPinActivity.this); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); + dialog.setContentView(R.layout.progress_layout); + + Window window = dialog.getWindow(); + WindowManager.LayoutParams wlp = window.getAttributes(); + + wlp.gravity = Gravity.CENTER; + //wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND; + window.setAttributes(wlp); + + dialog.setCancelable(false); + + if (!dialog.isShowing()) { + dialog.show(); + } + } + + @Override + protected String doInBackground(Void... params) { + + try { + + versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; + + String userauth_xml = "[DATA]" + "[USER_DATA][USER_ID]" + userId + "[/USER_ID]" + "[PASSWORD]" + password + "[/PASSWORD]" + "[IN_TIME]" + CommonFunctions.getCurrentTimeWithLanguage(context) + "[/IN_TIME]" + "[LATITUDE]" + lat + "[/LATITUDE]" + "[LONGITUDE]" + lon + "[/LONGITUDE]" + "[APP_VERSION]" + app_ver + "[/APP_VERSION]" + "[ATT_MODE]OnLine[/ATT_MODE]" + "[NETWORK_STATUS]" + "LoginStatus" + "[/NETWORK_STATUS]" + "[/USER_DATA][/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_LOGIN); + request.addProperty("onXML", userauth_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION_LOGIN, envelope); + Object result = (Object) envelope.getResponse(); + + if (result.toString().equalsIgnoreCase(CommonString.KEY_FAILURE)) { + runOnUiThread(new Runnable() { + @Override + public void run() { + + showAlert(CommonString.MESSAGE_FAILURE); + } + }); + + } else if (result.toString().equalsIgnoreCase(CommonString.KEY_FALSE)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_FALSE); + } + }); + + } else if (result.toString().equalsIgnoreCase(CommonString.KEY_CHANGED)) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_CHANGED); + } + }); + + } else { + + XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); + factory.setNamespaceAware(true); + XmlPullParser xpp = factory.newPullParser(); + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + final FailureGetterSetter failureGetterSetter = XMLHandlers.failureXMLHandler(xpp, eventType); + + if (failureGetterSetter.getStatus().equalsIgnoreCase(CommonString.KEY_FAILURE)) { + runOnUiThread(new Runnable() { + + @Override + public void run() { + // TODO Auto-generated method stub + showAlert(CommonString.METHOD_LOGIN + failureGetterSetter.getErrorMsg()); + } + }); + } else { + + try { + // For String source + + xpp.setInput(new StringReader(result.toString())); + xpp.next(); + eventType = xpp.getEventType(); + lgs = XMLHandlers.loginXMLHandler(xpp, eventType); + + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + // PUT IN PREFERENCES + editor.putString(CommonString.KEY_USERNAME, userId); + editor.putString(CommonString.KEY_PASSWORD, password); + editor.putString(CommonString.KEY_VERSION, lgs.getAPP_VERSION()); + editor.putString(CommonString.KEY_PATH, lgs.getAPP_PATH()); + editor.putString(CommonString.KEY_DATE, lgs.getCURRENTDATE()); + //editor.putString(CommonString.KEY_DATE, "01/25/2019"); + editor.putString(CommonString.KEY_COUNTRY_ID, lgs.getCOUNTRY_ID()); + editor.commit(); + setDataFromSharedPreferences(lgs); + + Bundle bundle = new Bundle(); + bundle.putString(FirebaseAnalytics.Param.ITEM_ID, userId); + bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, CommonString.KEY_LOGIN_DATA); + bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Data"); + bundle.putString(CommonString.KEY_LANGUAGE, preferences.getString(CommonString.KEY_LANGUAGE, "")); + return CommonString.KEY_SUCCESS; + + } + } + + return ""; + + } catch (MalformedURLException e) { + + runOnUiThread(new Runnable() { + + @Override + public void run() { + + showAlert(CommonString.MESSAGE_EXCEPTION); + } + }); + + } catch (IOException e) { + counter++; + runOnUiThread(() -> { + // TODO Auto-generated method stub + if (counter < 3) { + new AuthenticateTask().execute(); + } else { + showAlert(getString(R.string.nonetwork)); + counter = 1; + } + }); + } catch (Exception e) { + runOnUiThread(() -> showAlert(CommonString.MESSAGE_EXCEPTION)); + } + + return ""; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + initializePDSDK(context, userId); + if (preferences.getString(CommonString.KEY_VERSION, "").equals(Integer.toString(versionCode))) { + setLanguageDataFromSharedPreferences(); + Intent in = new Intent(context, MainActivity.class); + in.putExtra(CommonString.IS_PASSWORD_CHECK, false); + startActivity(in); + finish(); + } else { + Intent intent = new Intent(getBaseContext(), AutoUpdateActivity.class); + intent.putExtra(CommonString.KEY_PATH, preferences.getString(CommonString.KEY_PATH, "")); + startActivity(intent); + finish(); + } + } + + dialog.dismiss(); + } + + } + + ArrayList language, culture_id, notice_url; + LoginGetterSetter login_data; + + private void setLanguageDataFromSharedPreferences() { + Gson gson = new Gson(); + login_data = new LoginGetterSetter(); + String jsonPreferences = preferences.getString(CommonString.KEY_LOOGIN_PREF, ""); + Type type = new TypeToken() { + }.getType(); + login_data = gson.fromJson(jsonPreferences, type); + language = login_data.getCULTURE_NAME(); + culture_id = login_data.getCULTURE_ID(); + notice_url = login_data.getNOTICE_URL(); + String lang = preferences.getString(CommonString.KEY_LANGUAGE, ""); + if (!language.isEmpty()) { + for (int i = 0; i < language.size(); i++) { + if (lang.equals(language.get(i))) { + editor.putString(CommonString.KEY_LANGUAGE, language.get(i)); + editor.putString(CommonString.KEY_CULTURE_ID, culture_id.get(i)); + editor.putString(CommonString.KEY_NOTICE_BOARD_LINK, notice_url.get(i)); + editor.commit(); + break; + } + } + } + } + + public void showAlert(String str) { + AlertDialog.Builder builder = new AlertDialog.Builder(MPinActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false).setPositiveButton("OK", (dialog, id) -> { + finish(); + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + + private void setDataFromSharedPreferences(LoginGetterSetter lgs) { + Gson gson = new Gson(); + String jsonCurProduct = gson.toJson(lgs); + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(CommonString.KEY_LOOGIN_PREF, jsonCurProduct); + editor.apply(); + } + + //permission and location related + void checkAppPermission(String permission, int requestCode) { + boolean permission_flag = false; + // Here, thisActivity is the current activity + if (ContextCompat.checkSelfPermission(MPinActivity.this, permission) != PackageManager.PERMISSION_GRANTED) { + + // Permission is not granted + // Should we show an explanation? + if (ActivityCompat.shouldShowRequestPermissionRationale(MPinActivity.this, permission)) { + // Show an explanation to the user *asynchronously* -- don't block + // this thread waiting for the user's response! After the user + // sees the explanation, try again to request the permission. + showOnPermissiondenied(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA, 1); + } else { + // No explanation needed; request the permission + ActivityCompat.requestPermissions(MPinActivity.this, new String[]{permission}, requestCode); + + // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an + // app-defined int constant. The callback method gets the + // result of the request. + } + } else { + // Permission has already been granted + if (requestCode == MY_PERMISSIONS_REQUEST_CAMERA) { + checkAppPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, MY_PERMISSIONS_REQUEST_STORAGE_WRITE); + } else if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_WRITE) { + checkAppPermission(Manifest.permission.READ_EXTERNAL_STORAGE, MY_PERMISSIONS_REQUEST_STORAGE_READ); + } else if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_READ) { + checkAppPermission(Manifest.permission.ACCESS_FINE_LOCATION, MY_PERMISSIONS_REQUEST_LOCATION); + } else { + + // Create a Folder for Images + + File file = new File(Environment.getExternalStorageDirectory(), ".GSK_MT_ORANGE_IMAGES"); + if (!file.isDirectory()) { + file.mkdir(); + } + File file_planogram = new File(Environment.getExternalStorageDirectory(), "GSK_MT_ORANGE_Planogram_Images"); + if (!file_planogram.isDirectory()) { + file_planogram.mkdir(); + } + + if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + return; + } + + if (checkPlayServices()) { + // Building the GoogleApi client + buildGoogleApiClient(); + + createLocationRequest(); + } + + // Create an instance of GoogleAPIClient. + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); + } + + //attemptLogin(); + } + + } + } + + void showOnPermissiondenied(final String permissionsRequired, final int request_code, final int check) { + AlertDialog.Builder builder = new AlertDialog.Builder(MPinActivity.this); + builder.setTitle("Need Multiple Permissions"); + builder.setMessage("This app needs Camera, Storage and Location permissions."); + builder.setPositiveButton("Grant", (dialog, which) -> { + dialog.cancel(); + if (check == 0) { + checkAppPermission(permissionsRequired, request_code); + } else { + ActivityCompat.requestPermissions(MPinActivity.this, new String[]{permissionsRequired}, request_code); + } + }); + + builder.show(); + } + + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { + GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); + } else { + Toast.makeText(context, getResources().getString(R.string.notsuppoted), Toast.LENGTH_LONG).show(); + finish(); + } + return false; + } + return true; + } + + protected synchronized void buildGoogleApiClient() { + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(context).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); + } + } + + protected void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + @Override + public void onLocationChanged(Location location) { + if (mGoogleApiClient != null) { + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); + } + + } + + + @Override + public void onConnected(Bundle bundle) { + + } + + @Override + public void onConnectionFailed(ConnectionResult connectionResult) { + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + } + + protected void onStart() { + super.onStart(); + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + } + + private boolean checkgpsEnableDevice() { + boolean flag = true; + if (!hasGPSDevice(context)) { + Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show(); + } + final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + enableLoc(); + flag = false; + } else if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { + flag = true; + } + return flag; + } + + private boolean hasGPSDevice(Context context) { + final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + if (mgr == null) return false; + final List providers = mgr.getAllProviders(); + if (providers == null) return false; + return providers.contains(LocationManager.GPS_PROVIDER); + } + + private void enableLoc() { + LocationRequest locationRequest = LocationRequest.create(); + locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + locationRequest.setInterval(30 * 1000); + locationRequest.setFastestInterval(5 * 1000); + LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest); + builder.setAlwaysShow(true); + if (mGoogleApiClient != null) { + PendingResult result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build()); + result.setResultCallback(new ResultCallback() { + @Override + public void onResult(LocationSettingsResult result) { + final Status status = result.getStatus(); + switch (status.getStatusCode()) { + case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: + try { + // Show the dialog by calling startResolutionForResult(), + // and check the result in onActivityResult(). + status.startResolutionForResult((Activity) context, REQUEST_LOCATION); + } catch (IntentSender.SendIntentException e) { + // Ignore the error. + } + break; + } + } + }); + } + } + + private void initializePDSDK(Context context, String _userId) { + CommonUtils.INSTANCE.initializePDSDK(context, _userId); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/MSLFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/MSLFragment.java new file mode 100644 index 0000000..a5c44ed --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/MSLFragment.java @@ -0,0 +1,776 @@ +package cpm.com.gskmtorange.pharma_stores; + +import android.app.AlertDialog; +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.graphics.Color; +import android.graphics.Typeface; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.InputMethodManager; +import android.widget.AbsListView; +import android.widget.BaseExpandableListAdapter; +import android.widget.EditText; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.cardview.widget.CardView; +import androidx.core.content.FileProvider; +import androidx.fragment.app.Fragment; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +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.dailyentry.StockActivity; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaMSLInsertedGetterSetter; + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link MSLFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link MSLFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class MSLFragment extends Fragment { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String CategoryName = "categoryName"; + private static final String CategoryId = "categoryId"; + + private OnFragmentInteractionListener mListener; + + GSKOrangeDB db; + + String categoryName, categoryId, storeId, Error_Message = ""; + String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + ExpandableListView expandableListView; + ExpandableListAdapter adapter; + + ArrayList headerDataList; + ArrayList childDataList; + List hashMapListHeaderData; + HashMap> hashMapListChildData; + + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + FloatingActionButton fab; + boolean editFlag = false; + + String gallery_package = ""; + Uri outputFileUri; + + String str = CommonString.getImagesFolder(getContext()), path = "", _pathforcheck = ""; + + int child_position = -1; + int group_position = -1; + + public MSLFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment MSLFragment. + */ + // TODO: Rename and change types and number of parameters + public static MSLFragment newInstance(String param1, String param2) { + MSLFragment fragment = new MSLFragment(); + Bundle args = new Bundle(); + args.putString(CategoryName, param1); + args.putString(CategoryId, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + categoryName = getArguments().getString(CategoryName); + categoryId = getArguments().getString(CategoryId); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_msl, container, false); + // Inflate the layout for this fragment + + expandableListView = (ExpandableListView) view.findViewById(R.id.expandableListView); + fab = (FloatingActionButton) getActivity().findViewById(R.id.fab); + + preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); + CommonFunctions.updateLangResources(getActivity(), 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, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + expandableListView = (ExpandableListView) view.findViewById(R.id.expandableListView); + + getActivity().setTitle(R.string.msl_availability_availability); + + + db = new GSKOrangeDB(getActivity()); + db.open(); + + prepareList(); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if(validateData(headerDataList, hashMapListChildData)){ + db.InsertPharmaMSL(store_id, headerDataList, hashMapListChildData); + + //update status to valid + db.updateCheckoutStatus(store_id, CommonString.KEY_VALID, CommonString.KEY_JOURNEY_PLAN_PHARMA); + + onButtonPressed(); + } + else { + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + expandableListView.smoothScrollToPosition(scrollPosition); + + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + }); + + return view; + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed() { + if (mListener != null) { + mListener.onFragmentInteraction(getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment)); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Fragment uri); + } + + private void prepareList() { + try { + hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + headerDataList = db.getPharmaMSLHeaderData(); + + if (headerDataList.size() > 0) { + for (int i = 0; i < headerDataList.size(); i++) { + hashMapListHeaderData.add(headerDataList.get(i)); + + childDataList = new ArrayList<>(); + //childDataList = db.getStockAfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id); + if (childDataList.size() == 0) { + childDataList = db.getPharmaMSLSKUData(headerDataList.get(i).getBrand_id()); + } + + hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList); + } + } + + adapter = new ExpandableListAdapter(getActivity(), hashMapListHeaderData, hashMapListChildData); + expandableListView.setAdapter(adapter); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getActivity().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); + getActivity().getCurrentFocus().clearFocus(); + } + + expandableListView.invalidateViews(); + //adapter.notifyDataSetChanged(); + } + }); + + // 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) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getActivity().getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); + getActivity().getCurrentFocus().clearFocus(); + } + } + }); + + // Listview Group collasped listener + expandableListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { + @Override + public void onGroupCollapse(int groupPosition) { + InputMethodManager inputManager = (InputMethodManager) getActivity().getApplicationContext() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getActivity().getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); + getActivity().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 (Exception e) { + e.printStackTrace(); + } + } + + 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + 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()); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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 PharmaMSLInsertedGetterSetter childData = + (PharmaMSLInsertedGetterSetter) getChild(groupPosition, childPosition); + ViewHolder holder = null; + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.pharma_msl_item, 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.rg = (RadioGroup) convertView.findViewById(R.id.radio_group); + holder.radio_yes = (RadioButton) convertView.findViewById(R.id.radio_yes); + holder.radio_no = (RadioButton) convertView.findViewById(R.id.radio_no); + holder.img_cam = (ImageView) convertView.findViewById(R.id.img_cam); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + //hidden for MSL + holder.img_cam.setVisibility(View.GONE); + + holder.txt_skuName.setText(childData.getSku()); + + /* if (childData.getCompany_id().equals("1") && childData.getMust_have().equals("1")) { + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.colorOrange)); + + } else { + + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + + }*/ + + holder.lin_category.setBackgroundColor(getResources().getColor(R.color.white)); + + /*if (childData.getCompany_id().equals("1")) { + + if (childData.getMust_have().equals("1")) { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.colorPrimary)); + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.blue)); + } + + } else { + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + } +*/ + + final ViewHolder finalHolder1 = holder; + holder.rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + if (finalHolder1.radio_yes.isChecked()) { + + finalHolder1.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_green)); + finalHolder1.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_white)); + //finalHolder1.img_cam.setVisibility(View.VISIBLE); + + childData.setPresent(1); + //adapter.notifyDataSetChanged(); + } + if (finalHolder1.radio_no.isChecked()){ + + finalHolder1.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_red)); + finalHolder1.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_white)); + //finalHolder1.img_cam.setVisibility(View.GONE); + + childData.setPresent(0); + //adapter.notifyDataSetChanged(); + } + } + }); + + //Camera + /* holder.img_cam.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck = "Pharma_MSL_Image_" + store_id + categoryId + "_" + childData.getBrand_id() + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getActivity()).replace(":", "") + ".jpg"; + child_position = childPosition; + group_position = groupPosition; + path = str + _pathforcheck; + + startCameraActivity(1); + } + }); +*/ + + + if(childData.getPresent()==1){ + holder.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_green)); + holder.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_white)); + //holder.img_cam.setVisibility(View.VISIBLE); + holder.radio_yes.setChecked(true); + //notifyDataSetChanged(); + } + else if(childData.getPresent()==0){ + holder.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_white)); + holder.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_red)); + //holder.img_cam.setVisibility(View.GONE); + holder.radio_no.setChecked(true); + //notifyDataSetChanged(); + }else { + holder.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_white)); + holder.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_white)); + //holder.img_cam.setVisibility(View.GONE); + holder.rg.clearCheck(); + //notifyDataSetChanged(); + } + + /* if(childData.getImgPath().equals("")){ + holder.img_cam.setBackgroundResource(R.mipmap.camera_orange); + } + else { + holder.img_cam.setBackgroundResource(R.mipmap.camera_green); + }*/ + + //empty check color change + if (!checkflag) { + boolean tempflag = false; + + if (tempflag) { + //holder.cardView.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + holder.lin_category.setBackgroundColor(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; + LinearLayout lin_category; + RadioGroup rg; + RadioButton radio_yes; + RadioButton radio_no; + ImageView img_cam; + } + + private void startCameraActivity(int pos) { + try { + + Log.i("Stock & Facing ", "startCameraActivity()"); + File file = new File(path); + outputFileUri = FileProvider.getUriForFile(getActivity(), "cpm.com.gskmtorange.fileprovider", file); + + String defaultCameraPackage = ""; + final PackageManager packageManager = getActivity().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 (android.os.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; + } + } + } + } + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + //startActivityForResult(intent, 1); + startActivityForResult(intent, pos); + //startActivityForResult(intent, position); + + } 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); + startActivityForResult(intent, pos); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + /*@Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("Stock & Facing", "resultCode: " + resultCode + " requestCode: " + requestCode); + *//*switch (resultCode) { + case 0: + Log.e("Stock & Facing", "User cancelled"); + + break; + case -1: + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + img = _pathforcheck; + t2PAdapter.notifyDataSetChanged(); + _pathforcheck = ""; + } + } + break; + }*//* + + switch (requestCode) { + case 1: + if (resultCode == 0) { + Log.e("Stock & Facing", "User cancelled"); + } else if (resultCode == -1) { + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + hashMapListChildData.get(headerDataList.get(group_position)).get(child_position).setImgPath(_pathforcheck); + + expandableListView.invalidateViews(); + adapter.notifyDataSetChanged(); + _pathforcheck = ""; + } + } + } + break; + } + + super.onActivityResult(requestCode, resultCode, data); + }*/ + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + + checkHeaderArray.clear(); + int childCount = 0; + + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + + HashMap> listDataChildTemp = new HashMap<>(); + + + for (int i = 0; i < listDataHeader.size(); i++) { + flag = true; + + List listTemp = new ArrayList<>(); + + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + + child_flag = true; + + PharmaMSLInsertedGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + + int isChecked = data.getPresent(); + //String imgPath = data.getImgPath(); + + if(isChecked==-1){ + + scrollPosition = i + j + childCount; + + flag = false; + Error_Message = getResources().getString(R.string.msg_select_present); + break; + } + /* else if (isChecked==1) { + + if(imgPath == null || imgPath.equals("")){ + + scrollPosition = i + j + childCount; + + flag = false; + Error_Message = getResources().getString(R.string.click_image); + break; + } + }*/ + /*if (!child_flag) + listTemp.add(data);*/ + + } + + if (flag == false) { + //checkflag = false; + /* listDataHeaderTemp.add(listDataHeader.get(i)); + listDataChildTemp.put(listDataHeader.get(i), listTemp);*/ + + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + checkflag = false; + break; + } else { + childCount = childCount + listDataChild.get(listDataHeader.get(i)).size(); + checkflag = true; + } + } + + /* if (!all_flag) { + adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false; + } else { + checkflag = true; + }*/ + + return checkflag; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/PharmaActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/PharmaActivity.java new file mode 100644 index 0000000..d238785 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/PharmaActivity.java @@ -0,0 +1,113 @@ +package cpm.com.gskmtorange.pharma_stores; + +import android.app.FragmentTransaction; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; + +public class PharmaActivity extends AppCompatActivity implements StoreDetailFragment.OnFragmentInteractionListener, + MSLFragment.OnFragmentInteractionListener, SOSFragment.OnFragmentInteractionListener{ + private SharedPreferences.Editor editor = null; + private SharedPreferences preferences; + FloatingActionButton fab; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_paharma); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + preferences = PreferenceManager.getDefaultSharedPreferences(this); + + editor = preferences.edit(); + + + Bundle bundle = new Bundle(); + bundle.putString("categoryName", "Oral Health"); + bundle.putString("categoryId", "2"); + StoreDetailFragment fragment = new StoreDetailFragment(); + fragment.setArguments(bundle); + + getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).commit(); + + fab = findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment); + if(f instanceof StoreDetailFragment){ + Bundle bundle = new Bundle(); + bundle.putString("categoryName", "Oral Health"); + bundle.putString("categoryId", "2"); + SOSFragment fragment = new SOSFragment(); + fragment.setArguments(bundle); + + getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).commit(); + } + else if(f instanceof SOSFragment){ + Bundle bundle = new Bundle(); + bundle.putString("categoryName", "Oral Health"); + bundle.putString("categoryId", "2"); + MSLFragment fragment = new MSLFragment(); + fragment.setArguments(bundle); + + getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).commit(); + } else{ + // do something with f + Snackbar.make(fab, "---",Snackbar.LENGTH_SHORT).show(); + } + + } + }); + } + + @Override + public void onFragmentInteraction(Fragment f) { + + if(f instanceof StoreDetailFragment){ + Bundle bundle = new Bundle(); + bundle.putString("categoryName", "Oral Health"); + bundle.putString("categoryId", "2"); + SOSFragment fragment = new SOSFragment(); + fragment.setArguments(bundle); + + getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).commit(); + } + else if(f instanceof SOSFragment){ + Bundle bundle = new Bundle(); + bundle.putString("categoryName", "Oral Health"); + bundle.putString("categoryId", "2"); + MSLFragment fragment = new MSLFragment(); + fragment.setArguments(bundle); + + getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).commit(); + }else if(f instanceof MSLFragment){ + /*Bundle bundle = new Bundle(); + bundle.putString("categoryName", "Oral Health"); + bundle.putString("categoryId", "2"); + MSLFragment fragment = new MSLFragment(); + fragment.setArguments(bundle); + + getSupportFragmentManager().beginTransaction().replace(R.id.fragment, fragment).commit();*/ + finish(); + } + } + + @Override + public void onBackPressed() { + //super.onBackPressed(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/PharmaActivityFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/PharmaActivityFragment.java new file mode 100644 index 0000000..c21a111 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/PharmaActivityFragment.java @@ -0,0 +1,24 @@ +package cpm.com.gskmtorange.pharma_stores; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.fragment.app.Fragment; + +import cpm.com.gskmtorange.R; + +/** + * A placeholder fragment containing a simple view. + */ +public class PharmaActivityFragment extends Fragment { + + public PharmaActivityFragment() { + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_paharma, container, false); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/SOSFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/SOSFragment.java new file mode 100644 index 0000000..98fd848 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/SOSFragment.java @@ -0,0 +1,355 @@ +package cpm.com.gskmtorange.pharma_stores; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.cardview.widget.CardView; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +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.MappingPharmaQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaSOSGetterSetter; + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link SOSFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link SOSFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class SOSFragment extends Fragment { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + private OnFragmentInteractionListener mListener; + + RecyclerView rec_sos; + + private SharedPreferences preferences; + String store_id, visit_date, username, intime, keyAccount_id, class_id, storeType_id, country_id, store_flag_str; + GSKOrangeDB db; + + FloatingActionButton fab; + + ArrayList listBrandSubGroup; + + String Error_Message = ""; + int scrollPosition = 0; + boolean checkflag = true; + + SOSAdapter adapter; + + public SOSFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment SOSFragment. + */ + // TODO: Rename and change types and number of parameters + public static SOSFragment newInstance(String param1, String param2) { + SOSFragment fragment = new SOSFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_so, container, false); + + preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); + CommonFunctions.updateLangResources(getActivity(), preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + visit_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, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + fab = (FloatingActionButton) getActivity().findViewById(R.id.fab); + + rec_sos = view.findViewById(R.id.rec_sos); + + getActivity().setTitle(R.string.sos_detail); + + db = new GSKOrangeDB(getActivity()); + db.open(); + + prepareList(); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + rec_sos.clearFocus(); + if(validateData(listBrandSubGroup)){ + db.InsertSOSPharma(store_id, listBrandSubGroup); + onButtonPressed(); + } + else { + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + adapter.notifyDataSetChanged(); + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + } + }); + + return view; + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed() { + if (mListener != null) { + mListener.onFragmentInteraction(getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment)); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + /*throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener");*/ + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Fragment uri); + } + + void prepareList(){ + listBrandSubGroup = db.getStoreDetailPharmaForSOSData(store_id, "1"); + adapter = new SOSAdapter(getActivity()); + rec_sos.setAdapter(adapter); + rec_sos.setLayoutManager(new LinearLayoutManager(getActivity())); + } + + class SOSAdapter extends RecyclerView.Adapter { + + private LayoutInflater inflator; + + public SOSAdapter(Context context) { + inflator = LayoutInflater.from(context); + //this.data = data; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) { + View view = inflator.inflate(R.layout.item_pharma_sos, parent, false); + + MyViewHolder holder = new MyViewHolder(view); + + + + return holder; + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int position) { + final PharmaSOSGetterSetter current = listBrandSubGroup.get(position); + + /*holder.stock.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + final EditText caption = (EditText) v; + String edStock = caption.getText().toString().replaceFirst("^0+(?!$)", "");*/ + myViewHolder.et_gsk_facing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if(!hasFocus){ + final EditText caption = (EditText) v; + String gskFacing = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + if(gskFacing.equals("")){ + current.setGskFacing(""); + } + else { + current.setGskFacing(gskFacing); + } + } + } + }); + + myViewHolder.et_competitor_facing.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if(!hasFocus){ + final EditText caption = (EditText) v; + String compFacing = caption.getText().toString().replaceFirst("^0+(?!$)", ""); + + if(compFacing.equals("")){ + current.setCompetitorFacing(""); + } + else { + current.setCompetitorFacing(compFacing); + } + } + } + }); + + myViewHolder.tv_brand.setText(current.getSUB_CATEGORY() +" - "+ current.getBRAND()); + myViewHolder.et_gsk_facing.setText(current.getGskFacing()); + myViewHolder.et_competitor_facing.setText(current.getCompetitorFacing()); + + if(!checkflag){ + if(current.getGskFacing()==null || current.getGskFacing().equals("") || current.getCompetitorFacing()==null || current.getCompetitorFacing().equals("")){ + myViewHolder.card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } + else { + myViewHolder.card_view.setCardBackgroundColor(getResources().getColor(R.color.white)); + } + } + } + + @Override + public int getItemCount() { + + return listBrandSubGroup.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + TextView tv_brand; + EditText et_gsk_facing, et_competitor_facing; + CardView card_view; + + public MyViewHolder(@NonNull View itemView) { + super(itemView); + tv_brand = (TextView) itemView.findViewById(R.id.tv_brand); + et_gsk_facing = (EditText) itemView.findViewById(R.id.et_gsk_facing); + et_competitor_facing = (EditText) itemView.findViewById(R.id.et_competitor_facing); + card_view = (CardView) itemView.findViewById(R.id.card_view); + } + } + } + + boolean validateData(List listData) { + boolean flag = true, child_flag = true, all_flag = true; + + int childCount = 0; + + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + + flag = true; + + for (int j = 0; j < listData.size(); j++) { + + PharmaSOSGetterSetter data = listData.get(j); + + String gskFacing = data.getGskFacing(); + String competitionFacing = data.getCompetitorFacing(); + + if(gskFacing==null || gskFacing.equals("")){ + + flag = false; + Error_Message = getResources().getString(R.string.enter_facing); + break; + } + else if (competitionFacing==null || competitionFacing.equals("")) { + + flag = false; + Error_Message = getResources().getString(R.string.enter_facing); + break; + } + /*if (!child_flag) + listTemp.add(data);*/ + } + + if(flag){ + checkflag = true; + } + else { + checkflag = false; + } + + /* if (!all_flag) { + adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false; + } else { + checkflag = true; + }*/ + + return checkflag; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/StoreDetailFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/StoreDetailFragment.java new file mode 100644 index 0000000..b040d8e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/pharma_stores/StoreDetailFragment.java @@ -0,0 +1,901 @@ +package cpm.com.gskmtorange.pharma_stores; + +import android.app.AlertDialog; +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.graphics.Typeface; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.MediaStore; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.InputMethodManager; +import android.widget.AbsListView; +import android.widget.BaseExpandableListAdapter; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.cardview.widget.CardView; +import androidx.core.content.FileProvider; +import androidx.fragment.app.Fragment; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +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.ImageGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaQuestionGetterSetter; + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link StoreDetailFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link StoreDetailFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class StoreDetailFragment extends Fragment implements View.OnClickListener { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String CategoryName = "categoryName"; + private static final String CategoryId = "categoryId"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + private OnFragmentInteractionListener mListener; + + GSKOrangeDB db; + + String categoryName, categoryId, Error_Message = ""; + String store_id, visit_date, username, intime, keyAccount_id, class_id, storeType_id, country_id, store_flag_str; + boolean isDialogOpen = true; + private SharedPreferences preferences; + int scrollPosition = 0; + + ExpandableListView expandableListView; + ExpandableListAdapter adapter; + + ImageView img_camera1, img_camera2, img_camera3, img_camera4; + + ArrayList headerDataList; + ArrayList childDataList; + //List hashMapListHeaderData; + HashMap> hashMapListChildData; + + List checkHeaderArray = new ArrayList<>(); + boolean checkflag = true; + FloatingActionButton fab; + boolean editFlag = false; + + String gallery_package = ""; + Uri outputFileUri; + + String str = CommonString.getImagesFolder(getContext()), path = "", _pathforcheck = "", pathForCam1 = "", pathForCam2 = "", pathForCam3 = "", pathForCam4 = ""; + + int child_position = -1; + int group_position = -1; + + ImageGetterSetter imageGetterSetter = new ImageGetterSetter(); + + public StoreDetailFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment StoreDetailFragment. + */ + // TODO: Rename and change types and number of parameters + public static StoreDetailFragment newInstance(String param1, String param2) { + StoreDetailFragment fragment = new StoreDetailFragment(); + Bundle args = new Bundle(); + args.putString(CategoryName, param1); + args.putString(CategoryId, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + categoryName = getArguments().getString(CategoryName); + categoryId = getArguments().getString(CategoryId); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_storedetail, container, false); + + expandableListView = (ExpandableListView) view.findViewById(R.id.expandableListView); + img_camera1 = (ImageView) view.findViewById(R.id.img_camera1); + img_camera2 = (ImageView) view.findViewById(R.id.img_camera2); + img_camera3 = (ImageView) view.findViewById(R.id.img_camera3); + img_camera4 = (ImageView) view.findViewById(R.id.img_camera4); + + img_camera1.setOnClickListener(this); + img_camera2.setOnClickListener(this); + img_camera3.setOnClickListener(this); + img_camera4.setOnClickListener(this); + + fab = (FloatingActionButton) getActivity().findViewById(R.id.fab); + + preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); + CommonFunctions.updateLangResources(getActivity(), preferences.getString(CommonString.KEY_LANGUAGE, "")); + store_id = preferences.getString(CommonString.KEY_STORE_ID, null); + visit_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, ""); + country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, ""); + store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null); + + expandableListView = (ExpandableListView) view.findViewById(R.id.expandableListView); + + getActivity().setTitle(R.string.store_detail); + + db = new GSKOrangeDB(getActivity()); + db.open(); + + prepareList(); + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if(pathForCam1.equals("") && pathForCam2.equals("") && pathForCam3.equals("") && pathForCam4.equals("")){ + Error_Message = getResources().getString(R.string.click_image); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + else { + + if (validateData(headerDataList, hashMapListChildData)) { + + imageGetterSetter.setImage1(pathForCam1); + imageGetterSetter.setImage2(pathForCam2); + imageGetterSetter.setImage3(pathForCam3); + imageGetterSetter.setImage4(pathForCam4); + db.InsertStoreDetailPharma(store_id, headerDataList, hashMapListChildData, imageGetterSetter); + onButtonPressed(); + } else { + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setMessage(Error_Message) + .setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + expandableListView.smoothScrollToPosition(scrollPosition); + + dialog.dismiss(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + } + + } + }); + + return view; + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed() { + if (mListener != null) { + mListener.onFragmentInteraction(getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment)); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + @Override + public void onClick(View v) { + + int id = v.getId(); + switch (id) { + + case R.id.img_camera1: + _pathforcheck = "Pharma_MSL_Top_Image_" + store_id + "_" + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getActivity()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(1); + break; + + case R.id.img_camera2: + _pathforcheck = "Pharma_MSL_Top_Image_" + store_id + "_" + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getActivity()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(2); + break; + + case R.id.img_camera3: + _pathforcheck = "Pharma_MSL_Top_Image_" + store_id + "_" + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getActivity()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(3); + break; + + case R.id.img_camera4: + _pathforcheck = "Pharma_MSL_Top_Image_" + store_id + "_" + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getActivity()).replace(":", "") + ".jpg"; + path = str + _pathforcheck; + + startCameraActivity(4); + break; + } + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Fragment uri); + } + + private void prepareList() { + try { + + //set image data + imageGetterSetter = db.getStoreDetailPharmaImageInsertedData(store_id); + + if(imageGetterSetter.getImage1()!=null && !imageGetterSetter.getImage1().equals("")){ + pathForCam1 = imageGetterSetter.getImage1(); + img_camera1.setBackgroundResource(R.mipmap.camera_green); + } + + if(imageGetterSetter.getImage2()!=null && !imageGetterSetter.getImage2().equals("")){ + pathForCam2 = imageGetterSetter.getImage2(); + img_camera2.setBackgroundResource(R.mipmap.camera_green); + } + + + if(imageGetterSetter.getImage3()!=null && !imageGetterSetter.getImage3().equals("")){ + pathForCam3 = imageGetterSetter.getImage3(); + img_camera3.setBackgroundResource(R.mipmap.camera_green); + } + + + if(imageGetterSetter.getImage4()!=null && !imageGetterSetter.getImage4().equals("")){ + pathForCam4 = imageGetterSetter.getImage4(); + img_camera4.setBackgroundResource(R.mipmap.camera_green); + } + + + //set expandable data + //hashMapListHeaderData = new ArrayList<>(); + hashMapListChildData = new HashMap<>(); + + //Header + headerDataList = db.getStoreDetailPharmaQuestionInsertedData(store_id); + //if inserted data not found + if (headerDataList.size() == 0) { + + //default question data + headerDataList = db.getPharmaQuestionsData(); + + for (int i = 0; i < headerDataList.size(); i++) { + + //childDataList = new ArrayList<>(); + childDataList = db.getPharmaAnswerData(headerDataList.get(i).getQUESTION_ID().get(0)); + + hashMapListChildData.put(headerDataList.get(i), childDataList); + } + } else { + + for (int i = 0; i < headerDataList.size(); i++) { + + childDataList = db.getStoreDetailPharmaAnswerInsertedData(store_id, headerDataList.get(i).getQUESTION_ID().get(0)); + + hashMapListChildData.put(headerDataList.get(i), childDataList); + } + + } + + + adapter = new ExpandableListAdapter(getActivity(), headerDataList, hashMapListChildData); + expandableListView.setAdapter(adapter); + + for (int i = 0; i < adapter.getGroupCount(); i++) + expandableListView.expandGroup(i); + + expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() { + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + + expandableListView.invalidate(); + + int lastItem = firstVisibleItem + visibleItemCount; + + if (firstVisibleItem == 0) { + fab.show();//setVisibility(View.VISIBLE); + } else if (lastItem == totalItemCount) { + fab.hide();//setVisibility(View.INVISIBLE); + } else { + fab.show();//setVisibility(View.VISIBLE); + } + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + InputMethodManager inputManager = (InputMethodManager) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getActivity().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); + getActivity().getCurrentFocus().clearFocus(); + } + + expandableListView.invalidateViews(); + //adapter.notifyDataSetChanged(); + } + }); + + // 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) getActivity() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getActivity().getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); + getActivity().getCurrentFocus().clearFocus(); + } + } + }); + + // Listview Group collasped listener + expandableListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { + @Override + public void onGroupCollapse(int groupPosition) { + InputMethodManager inputManager = (InputMethodManager) getActivity().getApplicationContext() + .getSystemService(Context.INPUT_METHOD_SERVICE); + if (getActivity().getWindow().getCurrentFocus() != null) { + inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); + getActivity().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 (Exception e) { + e.printStackTrace(); + } + } + + 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) { + MappingPharmaQuestionGetterSetter headerTitle = (MappingPharmaQuestionGetterSetter) 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); + CardView card_view = (CardView) convertView.findViewById(R.id.card_view); + + txt_categoryHeader.setTypeface(null, Typeface.BOLD); + + txt_categoryHeader.setText(headerTitle.getQUESTION().get(0)); + + + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + card_view.setCardBackgroundColor(getResources().getColor(R.color.grey_background)); + } + } + + //empty check color change + /*if (headerTitle.getCompany_id().equals("1")) { + if (!checkflag) { + if (checkHeaderArray.contains(groupPosition)) { + //card_view.setCardBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + 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 MappingPharmaQuestionGetterSetter childData = + (MappingPharmaQuestionGetterSetter) getChild(groupPosition, childPosition); + ViewHolder holder = null; + + if (convertView == null) { + LayoutInflater infalInflater = (LayoutInflater) this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = infalInflater.inflate(R.layout.pharma_msl_item, 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.rg = (RadioGroup) convertView.findViewById(R.id.radio_group); + holder.radio_yes = (RadioButton) convertView.findViewById(R.id.radio_yes); + holder.radio_no = (RadioButton) convertView.findViewById(R.id.radio_no); + holder.img_cam = (ImageView) convertView.findViewById(R.id.img_cam); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + holder.txt_skuName.setText(childData.getSUB_CATEGORY().get(0) + " - " + childData.getBRAND().get(0)); + + holder.txt_skuName.setTextColor(getResources().getColor(R.color.black)); + + + final ViewHolder finalHolder1 = holder; + holder.rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + if (finalHolder1.radio_yes.isChecked()) { + + finalHolder1.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_green)); + finalHolder1.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_white)); + finalHolder1.img_cam.setVisibility(View.VISIBLE); + + childData.setIsChecked(1); + //adapter.notifyDataSetChanged(); + } + if (finalHolder1.radio_no.isChecked()) { + + finalHolder1.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_red)); + finalHolder1.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_white)); + finalHolder1.img_cam.setVisibility(View.GONE); + + childData.setIsChecked(0); + //adapter.notifyDataSetChanged(); + } + } + }); + + //Camera + holder.img_cam.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + _pathforcheck = "Pharma_MSL_Image_" + store_id + "_" + childData.getBRAND_ID().get(0) + visit_date.replace("/", "") + "_" + + CommonFunctions.getCurrentTimeWithLanguage(getActivity()).replace(":", "") + ".jpg"; + child_position = childPosition; + group_position = groupPosition; + path = str + _pathforcheck; + + startCameraActivity(5); + } + }); + + + if (childData.getIsChecked() == 1) { + holder.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_green)); + holder.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_white)); + holder.img_cam.setVisibility(View.VISIBLE); + holder.radio_yes.setChecked(true); + //notifyDataSetChanged(); + } else if (childData.getIsChecked() == 0) { + holder.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_white)); + holder.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_red)); + holder.img_cam.setVisibility(View.GONE); + holder.radio_no.setChecked(true); + //notifyDataSetChanged(); + } else { + holder.radio_yes.setBackground(getActivity().getResources().getDrawable(R.mipmap.yes_white)); + holder.radio_no.setBackground(getActivity().getResources().getDrawable(R.mipmap.no_white)); + holder.img_cam.setVisibility(View.GONE); + holder.rg.clearCheck(); + //notifyDataSetChanged(); + } + + if (childData.getImgPath().equals("")) { + holder.img_cam.setBackgroundResource(R.mipmap.camera_orange); + } else { + holder.img_cam.setBackgroundResource(R.mipmap.camera_green); + } + + //empty check color change + if (!checkflag) { + boolean tempflag = false; + + /* 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)); + holder.lin_category.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); + } else { + //holder.cardView.setCardBackgroundColor(getResources().getColor(R.color.white)); + holder.lin_category.setBackgroundColor(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; + LinearLayout lin_category; + RadioGroup rg; + RadioButton radio_yes; + RadioButton radio_no; + ImageView img_cam; + } + + private void startCameraActivity(int pos) { + try { + + Log.i("Stock & Facing ", "startCameraActivity()"); + File file = new File(path); + outputFileUri = FileProvider.getUriForFile(getActivity(), "cpm.com.gskmtorange.fileprovider", file); + + String defaultCameraPackage = ""; + final PackageManager packageManager = getActivity().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; + } + + boolean b = packag.equalsIgnoreCase("Camera") || packag.equalsIgnoreCase("Kamera") || packag.equalsIgnoreCase("الكاميرا"); + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (b) { + defaultCameraPackage = list.get(n).packageName; + break; + } + } else { + + if (b) { + + defaultCameraPackage = list.get(n).packageName; + break; + } + } + } + } + + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); + intent.setPackage(defaultCameraPackage); + //startActivityForResult(intent, 1); + startActivityForResult(intent, pos); + //startActivityForResult(intent, position); + + } 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); + startActivityForResult(intent, pos); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("Stock & Facing", "resultCode: " + resultCode + " requestCode: " + requestCode); + /*switch (resultCode) { + case 0: + Log.e("Stock & Facing", "User cancelled"); + + break; + case -1: + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + img = _pathforcheck; + t2PAdapter.notifyDataSetChanged(); + _pathforcheck = ""; + } + } + break; + }*/ + + switch (resultCode) { + + case 0: + Log.e("Stock & Facing", "User cancelled"); + break; + + case -1: + + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + switch (requestCode) { + + case 1: + pathForCam1 = _pathforcheck; + _pathforcheck = ""; + img_camera1.setBackgroundResource(R.mipmap.camera_green); + break; + + case 2: + pathForCam2 = _pathforcheck; + _pathforcheck = ""; + img_camera2.setBackgroundResource(R.mipmap.camera_green); + break; + + case 3: + pathForCam3 = _pathforcheck; + _pathforcheck = ""; + img_camera3.setBackgroundResource(R.mipmap.camera_green); + break; + + case 4: + pathForCam4 = _pathforcheck; + _pathforcheck = ""; + img_camera4.setBackgroundResource(R.mipmap.camera_green); + break; + + default: + if (_pathforcheck != null && !_pathforcheck.equals("")) { + if (new File(str + _pathforcheck).exists()) { + + hashMapListChildData.get(headerDataList.get(group_position)).get(child_position).setImgPath(_pathforcheck); + + expandableListView.invalidateViews(); + adapter.notifyDataSetChanged(); + _pathforcheck = ""; + } + } + } + } + } + + break; + } + + super.onActivityResult(requestCode, resultCode, data); + } + + boolean validateData(List listDataHeader, + HashMap> listDataChild) { + boolean flag = true, child_flag = true, all_flag = true; + + checkHeaderArray.clear(); + int childCount = 0; + + //temp list data for empty only + List listDataHeaderTemp = new ArrayList<>(); + + HashMap> listDataChildTemp = new HashMap<>(); + + + for (int i = 0; i < listDataHeader.size(); i++) { + flag = true; + + List listTemp = new ArrayList<>(); + + for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) { + + child_flag = true; + + MappingPharmaQuestionGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j); + + int isChecked = data.getIsChecked(); + String imgPath = data.getImgPath(); + + if (isChecked == -1) { + + scrollPosition = i + j + childCount; + + flag = false; + Error_Message = getResources().getString(R.string.msg_select_present); + break; + } else if (isChecked == 1) { + + if (imgPath == null || imgPath.equals("")) { + + scrollPosition = i + j + childCount; + + flag = false; + Error_Message = getResources().getString(R.string.click_image); + break; + } + } + /*if (!child_flag) + listTemp.add(data);*/ + + } + + if (flag == false) { + //checkflag = false; + /* listDataHeaderTemp.add(listDataHeader.get(i)); + listDataChildTemp.put(listDataHeader.get(i), listTemp);*/ + + if (!checkHeaderArray.contains(i)) { + checkHeaderArray.add(i); + } + checkflag = false; + break; + } else { + childCount = childCount + listDataChild.get(listDataHeader.get(i)).size(); + checkflag = true; + } + } + + /* if (!all_flag) { + adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp); + expandableListView.setAdapter(adapter); + checkflag = false; + } else { + checkflag = true; + }*/ + + return checkflag; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/progressbar/CircularProgressBar.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/progressbar/CircularProgressBar.java new file mode 100644 index 0000000..ee7dc38 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/progressbar/CircularProgressBar.java @@ -0,0 +1,274 @@ +package cpm.com.gskmtorange.progressbar; + +import android.animation.Animator; +import android.animation.Animator.AnimatorListener; +import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; +import android.animation.ValueAnimator.AnimatorUpdateListener; +import android.content.Context; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.graphics.RectF; +import android.graphics.Typeface; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.view.animation.LinearInterpolator; +import android.widget.ProgressBar; + +import cpm.com.gskmtorange.R; + + +public class CircularProgressBar extends ProgressBar { + private static final String TAG = "CircularProgressBar"; + + private static final int STROKE_WIDTH = 20; + + private String mTitle = ""; + private String mSubTitle = ""; + + private int mStrokeWidth = STROKE_WIDTH; + + private final RectF mCircleBounds = new RectF(); + + private final Paint mProgressColorPaint = new Paint(); + private final Paint mBackgroundColorPaint = new Paint(); + private final Paint mTitlePaint = new Paint(); + private final Paint mSubtitlePaint = new Paint(); + + private boolean mHasShadow = true; + private int mShadowColor = Color.BLACK; + + public interface ProgressAnimationListener{ + public void onAnimationStart(); + public void onAnimationFinish(); + public void onAnimationProgress(int progress); + } + + public CircularProgressBar(Context context) { + super(context); + init(null, 0); + } + + public CircularProgressBar(Context context, AttributeSet attrs) { + super(context, attrs); + init(attrs, 0); + } + + public CircularProgressBar(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(attrs, defStyle); + } + + public void init(AttributeSet attrs, int style){ + //so that shadow shows up properly for lines and arcs + setLayerType(View.LAYER_TYPE_SOFTWARE, null); + + TypedArray a = getContext().obtainStyledAttributes(attrs, + R.styleable.CircularProgressBar, style, 0); + + String color; + Resources res = getResources(); + + this.mHasShadow = a.getBoolean(R.styleable.CircularProgressBar_cpb_hasShadow, true); + + color = a.getString(R.styleable.CircularProgressBar_cpb_progressColor); + if(color==null) + mProgressColorPaint.setColor(res.getColor(R.color.circular_progress_default_progress)); + else + mProgressColorPaint.setColor(Color.parseColor(color)); + + color = a.getString(R.styleable.CircularProgressBar_cpb_backgroundColor); + if(color==null) + mBackgroundColorPaint.setColor(res.getColor(R.color.circular_progress_default_background)); + else + mBackgroundColorPaint.setColor(Color.parseColor(color)); + + color = a.getString(R.styleable.CircularProgressBar_cpb_titleColor); + if(color==null) + mTitlePaint.setColor(res.getColor(R.color.circular_progress_default_title)); + else + mTitlePaint.setColor(Color.parseColor(color)); + + color = a.getString(R.styleable.CircularProgressBar_cpb_subtitleColor); + if(color==null) + mSubtitlePaint.setColor(res.getColor(R.color.circular_progress_default_subtitle)); + else + mSubtitlePaint.setColor(Color.parseColor(color)); + + + String t = a.getString(R.styleable.CircularProgressBar_cpb_title); + if(t!=null) + mTitle = t; + + t = a.getString(R.styleable.CircularProgressBar_cpb_subtitle); + if(t!=null) + mSubTitle = t; + + mStrokeWidth = a.getInt(R.styleable.CircularProgressBar_cpb_strokeWidth, STROKE_WIDTH); + + a.recycle(); + + + mProgressColorPaint.setAntiAlias(true); + mProgressColorPaint.setStyle(Paint.Style.STROKE); + mProgressColorPaint.setStrokeWidth(mStrokeWidth); + + mBackgroundColorPaint.setAntiAlias(true); + mBackgroundColorPaint.setStyle(Paint.Style.STROKE); + mBackgroundColorPaint.setStrokeWidth(mStrokeWidth); + + mTitlePaint.setTextSize(60); + mTitlePaint.setStyle(Style.FILL); + mTitlePaint.setAntiAlias(true); + mTitlePaint.setTypeface(Typeface.create("Roboto-Thin", Typeface.NORMAL)); + mTitlePaint.setShadowLayer(0.1f, 0, 1, Color.GRAY); + + mSubtitlePaint.setTextSize(20); + mSubtitlePaint.setStyle(Style.FILL); + mSubtitlePaint.setAntiAlias(true); + mSubtitlePaint.setTypeface(Typeface.create("Roboto-Thin", Typeface.BOLD)); + // mSubtitlePaint.setShadowLayer(0.1f, 0, 1, Color.GRAY); + } + + @Override + protected synchronized void onDraw(Canvas canvas) { + canvas.drawArc(mCircleBounds, 0, 360 , false, mBackgroundColorPaint); + + int prog = getProgress(); + float scale = getMax() > 0 ? (float)prog/getMax() *360: 0; + + if(mHasShadow) + mProgressColorPaint.setShadowLayer( 3, 0, 1, mShadowColor); + canvas.drawArc(mCircleBounds, 270, scale , false, mProgressColorPaint); + + + if(!TextUtils.isEmpty(mTitle)){ + int xPos = (int)(getMeasuredWidth()/2 - mTitlePaint.measureText(mTitle) / 2); + int yPos = (int) (getMeasuredHeight()/2); + + float titleHeight = Math.abs(mTitlePaint.descent() + mTitlePaint.ascent()); + if(TextUtils.isEmpty(mSubTitle)){ + yPos += titleHeight/2; + } + canvas.drawText(mTitle, xPos, yPos, mTitlePaint); + + yPos += titleHeight; + xPos = (int)(getMeasuredWidth()/2 - mSubtitlePaint.measureText(mSubTitle) / 2); + + canvas.drawText(mSubTitle, xPos, yPos, mSubtitlePaint); + } + + super.onDraw(canvas); + } + + @Override + protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) { + final int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec); + final int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec); + final int min = Math.min(width, height); + setMeasuredDimension(min+2*STROKE_WIDTH, min+2*STROKE_WIDTH); + + mCircleBounds.set(STROKE_WIDTH, STROKE_WIDTH, min+STROKE_WIDTH, min+STROKE_WIDTH); + } + + @Override + public synchronized void setProgress(int progress) { + super.setProgress(progress); + + // the setProgress super will not change the details of the progress bar + // anymore so we need to force an update to redraw the progress bar + invalidate(); + } + + public void animateProgressTo(final int start, final int end, final ProgressAnimationListener listener){ + if(start!=0) + setProgress(start); + + //check + final ObjectAnimator progressBarAnimator = ObjectAnimator.ofFloat(this, TRANSLATION_X, start, end); + progressBarAnimator.setDuration(1500); + // progressBarAnimator.setInterpolator(new AnticipateOvershootInterpolator(2f, 1.5f)); + progressBarAnimator.setInterpolator(new LinearInterpolator()); + + progressBarAnimator.addListener(new AnimatorListener() { + @Override + public void onAnimationCancel(final Animator animation) { + } + + @Override + public void onAnimationEnd(final Animator animation) { + CircularProgressBar.this.setProgress(end); + if(listener!=null) + listener.onAnimationFinish(); + } + + @Override + public void onAnimationRepeat(final Animator animation) { + } + + @Override + public void onAnimationStart(final Animator animation) { + if(listener!=null) + listener.onAnimationStart(); + } + }); + + progressBarAnimator.addUpdateListener(new AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(final ValueAnimator animation) { + int progress = ((Float) animation.getAnimatedValue()).intValue(); + if(progress!=CircularProgressBar.this.getProgress()){ + Log.d(TAG, progress + ""); + CircularProgressBar.this.setProgress(progress); + if(listener!=null) + listener.onAnimationProgress(progress); + } + } + }); + progressBarAnimator.start(); + } + + public synchronized void setTitle(String title){ + this.mTitle = title; + invalidate(); + } + + public synchronized void setSubTitle(String subtitle){ + this.mSubTitle = subtitle; + invalidate(); + } + + public synchronized void setSubTitleColor(int color){ + mSubtitlePaint.setColor(color); + invalidate(); + } + + public synchronized void setTitleColor(int color){ + mTitlePaint.setColor(color); + invalidate(); + } + + public synchronized void setHasShadow(boolean flag){ + this.mHasShadow = flag; + invalidate(); + } + + public synchronized void setShadow(int color){ + this.mShadowColor = color; + invalidate(); + } + + public String getTitle(){ + return mTitle; + } + + public boolean getHasShadow(){ + return mHasShadow; + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/PostApi.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/PostApi.java new file mode 100644 index 0000000..22efb74 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/PostApi.java @@ -0,0 +1,12 @@ +package cpm.com.gskmtorange.retrofit; + + +/** + * Created by jeevanp on 19-05-2017. + */ + +public interface PostApi { + /* @POST("Uploadimages") + Call getUploadImage(@Body RequestBody reqesBody);*/ +} + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/PostApiForFile.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/PostApiForFile.java new file mode 100644 index 0000000..f288e55 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/PostApiForFile.java @@ -0,0 +1,17 @@ +package cpm.com.gskmtorange.retrofit; + + +import com.squareup.okhttp.RequestBody; + +import retrofit.Call; +import retrofit.http.Body; +import retrofit.http.POST; + +/** + * Created by jeevanp on 05-10-2017. + */ + +public interface PostApiForFile { + @POST("Uploadimages") + Call getUploadImage(@Body RequestBody reqesBody); +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/StringConverterFactory.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/StringConverterFactory.java new file mode 100644 index 0000000..4906adf --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/retrofit/StringConverterFactory.java @@ -0,0 +1,54 @@ +package cpm.com.gskmtorange.retrofit; + + + +import com.squareup.okhttp.MediaType; +import com.squareup.okhttp.RequestBody; +import com.squareup.okhttp.ResponseBody; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Type; + +import retrofit.Converter; + + +/** + * Created by jeevanp on 19-05-2017. + */ + +public class StringConverterFactory implements Converter.Factory { + public StringConverterFactory() { + } + @Override + public Converter get(Type type) { + Class cls = (Class) type; + if (String.class.isAssignableFrom(cls)) { + return new StringConverter(); + } + return null; + } +} + +class StringConverter implements Converter { + private static final MediaType PLAIN_TEXT = MediaType.parse("text/plain; charset=UTF-8"); + + @Override + public String fromBody(ResponseBody body) throws IOException { + return new String(body.bytes()); + } + + @Override + public RequestBody toBody(String value) { + return RequestBody.create(PLAIN_TEXT, convertToBytes(value)); + } + + private static byte[] convertToBytes(String string) { + try { + return string.getBytes("UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/service/FCMNotificationService.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/service/FCMNotificationService.java new file mode 100644 index 0000000..4b948c1 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/service/FCMNotificationService.java @@ -0,0 +1,119 @@ +package cpm.com.gskmtorange.service; + +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Build; +import android.os.IBinder; +import android.util.Log; + +import androidx.core.app.NotificationCompat; + +import com.google.firebase.messaging.FirebaseMessagingService; +import com.google.firebase.messaging.RemoteMessage; + +import cpm.com.gskmtorange.MainActivity; +import cpm.com.gskmtorange.R; + +public class FCMNotificationService extends FirebaseMessagingService { + + String TAG ="FCM Notification"; + + public FCMNotificationService() { + + } + + @Override + public void onMessageReceived(RemoteMessage remoteMessage) { + // ... + + // TODO(developer): Handle FCM messages here. + // Not getting messages here? See why this may be: https://goo.gl/39bRNJ + Log.d(TAG, "From: " + remoteMessage.getFrom()); + + // Check if message contains a data payload. + if (remoteMessage.getData().size() > 0) { + Log.d(TAG, "Message data payload: " + remoteMessage.getData()); + + if (/* Check if data needs to be processed by long running job */ true) { + // For long-running tasks (10 seconds or more) use Firebase Job Dispatcher. + // scheduleJob(); + } else { + // Handle message within 10 seconds + // handleNow(); + } + + } + + // Check if message contains a notification payload. + if (remoteMessage.getNotification() != null) { + Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody()); + sendNotification(remoteMessage.getNotification().getBody()); + } + + // Also if you intend on generating your own notifications as a result of a received FCM + // message, here is where that should be initiated. See sendNotification method below. + } + + /** + * Schedule a job using FirebaseJobDispatcher. + */ + private void scheduleJob() { + // [START dispatch_job] + /* FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this)); + Job myJob = dispatcher.newJobBuilder() + .setService(MyJobService.class) + .setTag("my-job-tag") + .build(); + dispatcher.schedule(myJob);*/ + // [END dispatch_job] + } + + /** + * Handle time allotted to BroadcastReceivers. + */ + private void handleNow() { + Log.d(TAG, "Short lived task is done."); + } + + /** + * Create and show a simple notification containing the received FCM message. + * + * @param messageBody FCM message body received. + */ + private void sendNotification(String messageBody) { + Intent intent = new Intent(this, MainActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, + PendingIntent.FLAG_ONE_SHOT); + + String channelId = getString(R.string.default_notification_channel_id); + Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); + NotificationCompat.Builder notificationBuilder = + new NotificationCompat.Builder(this, channelId) + .setSmallIcon(R.drawable.save_icon) + .setContentTitle("FCM Message") + .setContentText(messageBody) + .setAutoCancel(true) + .setSound(defaultSoundUri) + .setContentIntent(pendingIntent); + + NotificationManager notificationManager = + (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + + // Since android Oreo notification channel is needed. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + NotificationChannel channel = new NotificationChannel(channelId, + "Channel human readable title", + NotificationManager.IMPORTANCE_DEFAULT); + notificationManager.createNotificationChannel(channel); + } + + notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/DataParser.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/DataParser.java new file mode 100644 index 0000000..d14e7a0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/DataParser.java @@ -0,0 +1,102 @@ +package cpm.com.gskmtorange.storeinmap; + +import com.google.android.gms.maps.model.LatLng; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class DataParser { + + /** Receives a JSONObject and returns a list of lists containing latitude and longitude */ + public List>> parse(JSONObject jObject){ + + List>> routes = new ArrayList<>() ; + JSONArray jRoutes; + JSONArray jLegs; + JSONArray jSteps; + + try { + + jRoutes = jObject.getJSONArray("routes"); + + /** Traversing all routes */ + for(int i=0;i(); + + /** Traversing all legs */ + for(int j=0;j list = decodePoly(polyline); + + /** Traversing all points */ + for(int l=0;l hm = new HashMap<>(); + hm.put("lat", Double.toString((list.get(l)).latitude) ); + hm.put("lng", Double.toString((list.get(l)).longitude) ); + path.add(hm); + } + } + routes.add(path); + } + } + + } catch (JSONException e) { + e.printStackTrace(); + }catch (Exception e){ + } + + + return routes; + } + + + /** + * Method to decode polyline points + * Courtesy : http://jeffreysambells.com/2010/05/27/decoding-polylines-from-google-maps-direction-api-with-java + * */ + private List decodePoly(String encoded) { + + List poly = new ArrayList<>(); + int index = 0, len = encoded.length(); + int lat = 0, lng = 0; + + while (index < len) { + int b, shift = 0, result = 0; + do { + b = encoded.charAt(index++) - 63; + result |= (b & 0x1f) << shift; + shift += 5; + } while (b >= 0x20); + int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); + lat += dlat; + + shift = 0; + result = 0; + do { + b = encoded.charAt(index++) - 63; + result |= (b & 0x1f) << shift; + shift += 5; + } while (b >= 0x20); + int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); + lng += dlng; + + LatLng p = new LatLng((((double) lat / 1E5)), + (((double) lng / 1E5))); + poly.add(p); + } + + return poly; + } +} + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/StoreListMapActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/StoreListMapActivity.java new file mode 100644 index 0000000..dce9221 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/StoreListMapActivity.java @@ -0,0 +1,78 @@ +package cpm.com.gskmtorange.storeinmap; + +import android.graphics.Bitmap; +import android.os.Bundle; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.fragment.app.FragmentActivity; + +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; + +import java.util.ArrayList; + +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; + +public class StoreListMapActivity extends FragmentActivity implements OnMapReadyCallback { + + private GoogleMap mMap; + ArrayList storelist = new ArrayList(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_store_list_map); + + storelist = (ArrayList)getIntent().getSerializableExtra(CommonString.KEY_STORE_LIST); + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() + .findFragmentById(R.id.map); + mapFragment.getMapAsync(this); + } + + + /** + * Manipulates the map once available. + * This callback is triggered when the map is ready to be used. + * This is where we can add markers or lines, add listeners or move the camera. In this case, + * we just add a marker near Sydney, Australia. + * If Google Play services is not installed on the device, the user will be prompted to install + * it inside the SupportMapFragment. This method will only be triggered once the user has + * installed Google Play services and returned to the app. + */ + @Override + public void onMapReady(GoogleMap googleMap) { + mMap = googleMap; + + for (int i=0;i storelist = new ArrayList(); + int global_index = 0; + LatLng origin, destination; + double lat, lon; + + ArrayList color_list = new ArrayList<>(); + + //for optimize path + ArrayList sortedList = new ArrayList<>(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_store_list_route); + storelist = (ArrayList)getIntent().getSerializableExtra(CommonString.KEY_STORE_LIST); + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() + .findFragmentById(R.id.map); + mapFragment.getMapAsync(this); + + color_list.add("#f44336"); + color_list.add("#1e88e5"); + color_list.add("#2e7d32"); + color_list.add("#ab47bc"); + color_list.add("#ffcc80"); + color_list.add("#fdd835"); + + } + + + /** + * Manipulates the map once available. + * This callback is triggered when the map is ready to be used. + * This is where we can add markers or lines, add listeners or move the camera. In this case, + * we just add a marker near Sydney, Australia. + * If Google Play services is not installed on the device, the user will be prompted to install + * it inside the SupportMapFragment. This method will only be triggered once the user has + * installed Google Play services and returned to the app. + */ + @Override + public void onMapReady(GoogleMap googleMap) { + mMap = googleMap; + + showRoute(global_index); + } + + public void showRoute(int index){ + LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.marker_view, null, false); + + TextView desc = (TextView) tv.findViewById(R.id.tv_desc); + desc.setText(storelist.get(global_index).getSTORE_NAME()); + + tv.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), + View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); + tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight()); + + tv.setDrawingCacheEnabled(true); + tv.buildDrawingCache(); + Bitmap bm = tv.getDrawingCache(); + lat = Double.parseDouble(storelist.get(index).getLATITUDE()); + lon = Double.parseDouble(storelist.get(index).getLONGITUDE()); + LatLng loc = new LatLng(lat, lon); + + mMap.addMarker(new MarkerOptions().position(loc).anchor(0.5f, 0.5f).icon(BitmapDescriptorFactory.fromBitmap(bm))); + + if(index==0){ + mMap.moveCamera(CameraUpdateFactory.newLatLng(loc)); + mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); + } + + if(index+1 { + + @Override + protected String doInBackground(String... url) { + + // For storing data from web service + String data = ""; + + try { + // Fetching the data from web service + data = downloadUrl(url[0]); + Log.d("Background Task data", data.toString()); + } catch (Exception e) { + Log.d("Background Task", e.toString()); + } + return data; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + ParserTask parserTask = new ParserTask(); + + // Invokes the thread for parsing the JSON data + parserTask.execute(result); + + } + } + + /** + * A class to parse the Google Places in JSON format + */ + private class ParserTask extends AsyncTask>>> { + + // Parsing the data in non-ui thread + @Override + protected List>> doInBackground(String... jsonData) { + + JSONObject jObject; + List>> routes = null; + + try { + jObject = new JSONObject(jsonData[0]); + Log.d("ParserTask",jsonData[0].toString()); + DataParser parser = new DataParser(); + Log.d("ParserTask", parser.toString()); + + // Starts parsing data + routes = parser.parse(jObject); + Log.d("ParserTask","Executing routes"); + Log.d("ParserTask",routes.toString()); + + } catch (Exception e) { + Log.d("ParserTask",e.toString()); + e.printStackTrace(); + } + return routes; + } + + // Executes in UI thread, after the parsing process + @Override + protected void onPostExecute(List>> result) { + ArrayList points; + PolylineOptions lineOptions = null; + + // Traversing through all the routes + for (int i = 0; i < result.size(); i++) { + points = new ArrayList<>(); + lineOptions = new PolylineOptions(); + + // Fetching i-th route + List> path = result.get(i); + + // Fetching all the points in i-th route + for (int j = 0; j < path.size(); j++) { + HashMap point = path.get(j); + + double lat = Double.parseDouble(point.get("lat")); + double lng = Double.parseDouble(point.get("lng")); + LatLng position = new LatLng(lat, lng); + + points.add(position); + } + + // Adding all the points in the route to LineOptions + lineOptions.addAll(points); + lineOptions.width(10); + + /* Random rnd = new Random(); + int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));*/ + int color; + if(global_index= color_list.size()){ + index = index - color_list.size(); + } + + return index; + } + + void getShortestPath(StoreBean store){ + + sortedList.add(store); + + if(sortedList.size() { + + @Override + protected String doInBackground(String... url) { + + // For storing data from web service + String data = ""; + + try { + // Fetching the data from web service + data = downloadUrl(url[0]); + Log.d("Background Task data", data.toString()); + } catch (Exception e) { + Log.d("Background Task", e.toString()); + } + return data; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + ParserTask parserTask = new ParserTask(); + + // Invokes the thread for parsing the JSON data + parserTask.execute(result); + + } + } + + /** + * A class to parse the Google Places in JSON format + */ + private class ParserTask extends AsyncTask>>> { + + // Parsing the data in non-ui thread + @Override + protected List>> doInBackground(String... jsonData) { + + JSONObject jObject; + List>> routes = null; + + try { + jObject = new JSONObject(jsonData[0]); + Log.d("ParserTask",jsonData[0].toString()); + DataParser parser = new DataParser(); + Log.d("ParserTask", parser.toString()); + + // Starts parsing data + routes = parser.parse(jObject); + Log.d("ParserTask","Executing routes"); + Log.d("ParserTask",routes.toString()); + + } catch (Exception e) { + Log.d("ParserTask",e.toString()); + e.printStackTrace(); + } + return routes; + } + + // Executes in UI thread, after the parsing process + @Override + protected void onPostExecute(List>> result) { + ArrayList points; + PolylineOptions lineOptions = null; + + // Traversing through all the routes + for (int i = 0; i < result.size(); i++) { + points = new ArrayList<>(); + lineOptions = new PolylineOptions(); + + // Fetching i-th route + List> path = result.get(i); + + // Fetching all the points in i-th route + for (int j = 0; j < path.size(); j++) { + HashMap point = path.get(j); + + double lat = Double.parseDouble(point.get("lat")); + double lng = Double.parseDouble(point.get("lng")); + LatLng position = new LatLng(lat, lng); + + points.add(position); + } + + // Adding all the points in the route to LineOptions + lineOptions.addAll(points); + lineOptions.width(12); + lineOptions.color(Color.parseColor("#5ac614")); + + Log.d("onPostExecute","onPostExecute lineoptions decoded"); + + } + + // Drawing polyline in the Google Map for the i-th route + if(lineOptions != null) { + mMap.addPolyline(lineOptions); + } + else { + Log.d("onPostExecute","without Polylines drawn"); + } + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/Base64.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/Base64.java new file mode 100644 index 0000000..0853330 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/Base64.java @@ -0,0 +1,1810 @@ +package cpm.com.gskmtorange.upload; + + +/** + *

Encodes and decodes to and from Base64 notation.

+ *

Homepage: http://iharder.net/base64.

+ * + *

The options parameter, which appears in a few places, is used to pass + * several pieces of information to the encoder. In the "higher level" methods such as + * encodeBytes( bytes, options ) the options parameter can be used to indicate such + * things as first gzipping the bytes before encoding them, not inserting linefeeds + * (though that breaks strict Base64 compatibility), and encoding using the URL-safe + * and Ordered dialects.

+ * + *

The constants defined in Base64 can be OR-ed together to combine options, so you + * might make a call like this:

+ * + * String encoded = Base64.encodeBytes( mybytes, Base64.GZIP | Base64.DONT_BREAK_LINES ); + * + *

to compress the data before encoding it and then making the output have no newline characters.

+ * + * + *

+ * Change Log: + *

+ *
    + *
  • v2.2.2 - Fixed encodeFileToFile and decodeFileToFile to use the + * Base64.InputStream class to encode and decode on the fly which uses + * less memory than encoding/decoding an entire file into memory before writing.
  • + *
  • v2.2.1 - Fixed bug using URL_SAFE and ORDERED encodings. Fixed bug + * when using very small files (~< 40 bytes).
  • + *
  • v2.2 - Added some helper methods for encoding/decoding directly from + * one file to the next. Also added a main() method to support command line + * encoding/decoding from one file to the next. Also added these Base64 dialects: + *
      + *
    1. The default is RFC3548 format.
    2. + *
    3. Calling Base64.setFormat(Base64.BASE64_FORMAT.URLSAFE_FORMAT) generates + * URL and file name friendly format as described in Section 4 of RFC3548. + * http://www.faqs.org/rfcs/rfc3548.html
    4. + *
    5. Calling Base64.setFormat(Base64.BASE64_FORMAT.ORDERED_FORMAT) generates + * URL and file name friendly format that preserves lexical ordering as described + * in http://www.faqs.org/qa/rfcc-1940.html
    6. + *
    + * Special thanks to Jim Kellerman at http://www.powerset.com/ + * for contributing the new Base64 dialects. + *
  • + * + *
  • v2.1 - Cleaned up javadoc comments and unused variables and methods. Added + * some convenience methods for reading and writing to and from files.
  • + *
  • v2.0.2 - Now specifies UTF-8 encoding in places where the code fails on systems + * with other encodings (like EBCDIC).
  • + *
  • v2.0.1 - Fixed an error when decoding a single byte, that is, when the + * encoded data was a single byte.
  • + *
  • v2.0 - I got rid of methods that used booleans to set options. + * Now everything is more consolidated and cleaner. The code now detects + * when data that's being decoded is gzip-compressed and will decompress it + * automatically. Generally things are cleaner. You'll probably have to + * change some method calls that you were making to support the new + * options format (ints that you "OR" together).
  • + *
  • v1.5.1 - Fixed bug when decompressing and decoding to a + * byte[] using decode( String s, boolean gzipCompressed ). + * Added the ability to "suspend" encoding in the Output Stream so + * you can turn on and off the encoding if you need to embed base64 + * data in an otherwise "normal" stream (like an XML file).
  • + *
  • v1.5 - Output stream pases on flush() command but doesn't do anything itself. + * This helps when using GZIP streams. + * Added the ability to GZip-compress objects before encoding them.
  • + *
  • v1.4 - Added helper methods to read/write files.
  • + *
  • v1.3.6 - Fixed OutputStream.flush() so that 'position' is reset.
  • + *
  • v1.3.5 - Added flag to turn on and off line breaks. Fixed bug in input stream + * where last buffer being read, if not completely full, was not returned.
  • + *
  • v1.3.4 - Fixed when "improperly padded stream" error was thrown at the wrong time.
  • + *
  • v1.3.3 - Fixed I/O streams which were totally messed up.
  • + *
+ * + *

+ * I am placing this code in the Public Domain. Do with it as you will. + * This software comes with no guarantees or warranties but with + * plenty of well-wishing instead! + * Please visit http://iharder.net/base64 + * periodically to check for updates or to contribute improvements. + *

+ * + * @author Robert Harder + * @author rob@iharder.net + * @version 2.2.2 + */ +public class Base64 +{ + +/* ******** P U B L I C F I E L D S ******** */ + + + /** No options specified. Value is zero. */ + public final static int NO_OPTIONS = 0; + + /** Specify encoding. */ + public final static int ENCODE = 1; + + + /** Specify decoding. */ + public final static int DECODE = 0; + + + /** Specify that data should be gzip-compressed. */ + public final static int GZIP = 2; + + + /** Don't break lines when encoding (violates strict Base64 specification) */ + public final static int DONT_BREAK_LINES = 8; + + /** + * Encode using Base64-like encoding that is URL- and Filename-safe as described + * in Section 4 of RFC3548: + * http://www.faqs.org/rfcs/rfc3548.html. + * It is important to note that data encoded this way is not officially valid Base64, + * or at the very least should not be called Base64 without also specifying that is + * was encoded using the URL- and Filename-safe dialect. + */ + public final static int URL_SAFE = 16; + + + /** + * Encode using the special "ordered" dialect of Base64 described here: + * http://www.faqs.org/qa/rfcc-1940.html. + */ + public final static int ORDERED = 32; + + +/* ******** P R I V A T E F I E L D S ******** */ + + + /** Maximum line length (76) of Base64 output. */ + private final static int MAX_LINE_LENGTH = 76; + + + /** The equals sign (=) as a byte. */ + private final static byte EQUALS_SIGN = (byte)'='; + + + /** The new line character (\n) as a byte. */ + private final static byte NEW_LINE = (byte)'\n'; + + + /** Preferred encoding. */ + private final static String PREFERRED_ENCODING = "UTF-8"; + + + // I think I end up not using the BAD_ENCODING indicator. + //private final static byte BAD_ENCODING = -9; // Indicates error in encoding + private final static byte WHITE_SPACE_ENC = -5; // Indicates white space in encoding + private final static byte EQUALS_SIGN_ENC = -1; // Indicates equals sign in encoding + + +/* ******** S T A N D A R D B A S E 6 4 A L P H A B E T ******** */ + + /** The 64 valid Base64 values. */ + //private final static byte[] ALPHABET; + /* Host platform me be something funny like EBCDIC, so we hardcode these values. */ + private final static byte[] _STANDARD_ALPHABET = + { + (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', + (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', + (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', + (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', + (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', + (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', + (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', + (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z', + (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5', + (byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'+', (byte)'/' + }; + + + /** + * Translates a Base64 value to either its 6-bit reconstruction value + * or a negative number indicating some other meaning. + **/ + private final static byte[] _STANDARD_DECODABET = + { + -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 + -5,-5, // Whitespace: Tab and Linefeed + -9,-9, // Decimal 11 - 12 + -5, // Whitespace: Carriage Return + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 + -9,-9,-9,-9,-9, // Decimal 27 - 31 + -5, // Whitespace: Space + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 + 62, // Plus sign at decimal 43 + -9,-9,-9, // Decimal 44 - 46 + 63, // Slash at decimal 47 + 52,53,54,55,56,57,58,59,60,61, // Numbers zero through nine + -9,-9,-9, // Decimal 58 - 60 + -1, // Equals sign at decimal 61 + -9,-9,-9, // Decimal 62 - 64 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13, // Letters 'A' through 'N' + 14,15,16,17,18,19,20,21,22,23,24,25, // Letters 'O' through 'Z' + -9,-9,-9,-9,-9,-9, // Decimal 91 - 96 + 26,27,28,29,30,31,32,33,34,35,36,37,38, // Letters 'a' through 'm' + 39,40,41,42,43,44,45,46,47,48,49,50,51, // Letters 'n' through 'z' + -9,-9,-9,-9 // Decimal 123 - 126 + /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ + }; + + +/* ******** U R L S A F E B A S E 6 4 A L P H A B E T ******** */ + + /** + * Used in the URL- and Filename-safe dialect described in Section 4 of RFC3548: + * http://www.faqs.org/rfcs/rfc3548.html. + * Notice that the last two bytes become "hyphen" and "underscore" instead of "plus" and "slash." + */ + private final static byte[] _URL_SAFE_ALPHABET = + { + (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', + (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', + (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', + (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', + (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', + (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', + (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', + (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z', + (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5', + (byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'-', (byte)'_' + }; + + /** + * Used in decoding URL- and Filename-safe dialects of Base64. + */ + private final static byte[] _URL_SAFE_DECODABET = + { + -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 + -5,-5, // Whitespace: Tab and Linefeed + -9,-9, // Decimal 11 - 12 + -5, // Whitespace: Carriage Return + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 + -9,-9,-9,-9,-9, // Decimal 27 - 31 + -5, // Whitespace: Space + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 + -9, // Plus sign at decimal 43 + -9, // Decimal 44 + 62, // Minus sign at decimal 45 + -9, // Decimal 46 + -9, // Slash at decimal 47 + 52,53,54,55,56,57,58,59,60,61, // Numbers zero through nine + -9,-9,-9, // Decimal 58 - 60 + -1, // Equals sign at decimal 61 + -9,-9,-9, // Decimal 62 - 64 + 0,1,2,3,4,5,6,7,8,9,10,11,12,13, // Letters 'A' through 'N' + 14,15,16,17,18,19,20,21,22,23,24,25, // Letters 'O' through 'Z' + -9,-9,-9,-9, // Decimal 91 - 94 + 63, // Underscore at decimal 95 + -9, // Decimal 96 + 26,27,28,29,30,31,32,33,34,35,36,37,38, // Letters 'a' through 'm' + 39,40,41,42,43,44,45,46,47,48,49,50,51, // Letters 'n' through 'z' + -9,-9,-9,-9 // Decimal 123 - 126 + /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ + }; + + + +/* ******** O R D E R E D B A S E 6 4 A L P H A B E T ******** */ + + /** + * I don't get the point of this technique, but it is described here: + * http://www.faqs.org/qa/rfcc-1940.html. + */ + private final static byte[] _ORDERED_ALPHABET = + { + (byte)'-', + (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', + (byte)'5', (byte)'6', (byte)'7', (byte)'8', (byte)'9', + (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G', + (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N', + (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U', + (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z', + (byte)'_', + (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g', + (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n', + (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u', + (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z' + }; + + /** + * Used in decoding the "ordered" dialect of Base64. + */ + private final static byte[] _ORDERED_DECODABET = + { + -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8 + -5,-5, // Whitespace: Tab and Linefeed + -9,-9, // Decimal 11 - 12 + -5, // Whitespace: Carriage Return + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26 + -9,-9,-9,-9,-9, // Decimal 27 - 31 + -5, // Whitespace: Space + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42 + -9, // Plus sign at decimal 43 + -9, // Decimal 44 + 0, // Minus sign at decimal 45 + -9, // Decimal 46 + -9, // Slash at decimal 47 + 1,2,3,4,5,6,7,8,9,10, // Numbers zero through nine + -9,-9,-9, // Decimal 58 - 60 + -1, // Equals sign at decimal 61 + -9,-9,-9, // Decimal 62 - 64 + 11,12,13,14,15,16,17,18,19,20,21,22,23, // Letters 'A' through 'M' + 24,25,26,27,28,29,30,31,32,33,34,35,36, // Letters 'N' through 'Z' + -9,-9,-9,-9, // Decimal 91 - 94 + 37, // Underscore at decimal 95 + -9, // Decimal 96 + 38,39,40,41,42,43,44,45,46,47,48,49,50, // Letters 'a' through 'm' + 51,52,53,54,55,56,57,58,59,60,61,62,63, // Letters 'n' through 'z' + -9,-9,-9,-9 // Decimal 123 - 126 + /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243 + -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */ + }; + + +/* ******** D E T E R M I N E W H I C H A L H A B E T ******** */ + + + /** + * Returns one of the _SOMETHING_ALPHABET byte arrays depending on + * the options specified. + * It's possible, though silly, to specify ORDERED and URLSAFE + * in which case one of them will be picked, though there is + * no guarantee as to which one will be picked. + */ + private final static byte[] getAlphabet( int options ) + { + if( (options & URL_SAFE) == URL_SAFE ) return _URL_SAFE_ALPHABET; + else if( (options & ORDERED) == ORDERED ) return _ORDERED_ALPHABET; + else return _STANDARD_ALPHABET; + + } // end getAlphabet + + + /** + * Returns one of the _SOMETHING_DECODABET byte arrays depending on + * the options specified. + * It's possible, though silly, to specify ORDERED and URL_SAFE + * in which case one of them will be picked, though there is + * no guarantee as to which one will be picked. + */ + private final static byte[] getDecodabet( int options ) + { + if( (options & URL_SAFE) == URL_SAFE ) return _URL_SAFE_DECODABET; + else if( (options & ORDERED) == ORDERED ) return _ORDERED_DECODABET; + else return _STANDARD_DECODABET; + + } // end getAlphabet + + + + /** Defeats instantiation. */ + private Base64(){} + + + /** + * Encodes or decodes two files from the command line; + * feel free to delete this method (in fact you probably should) + * if you're embedding this code into a larger program. + */ + public final static void main( String[] args ) + { + if( args.length < 3 ){ + usage("Not enough arguments."); + } // end if: args.length < 3 + else { + String flag = args[0]; + String infile = args[1]; + String outfile = args[2]; + if( flag.equals( "-e" ) ){ + Base64.encodeFileToFile( infile, outfile ); + } // end if: encode + else if( flag.equals( "-d" ) ) { + Base64.decodeFileToFile( infile, outfile ); + } // end else if: decode + else { + usage( "Unknown flag: " + flag ); + } // end else + } // end else + } // end main + + /** + * Prints command line usage. + * + * @param msg A message to include with usage info. + */ + private final static void usage( String msg ) + { + System.err.println( msg ); + System.err.println( "Usage: java Base64 -e|-d inputfile outputfile" ); + } // end usage + + +/* ******** E N C O D I N G M E T H O D S ******** */ + + + /** + * Encodes up to the first three bytes of array threeBytes + * and returns a four-byte array in Base64 notation. + * The actual number of significant bytes in your array is + * given by numSigBytes. + * The array threeBytes needs only be as big as + * numSigBytes. + * Code can reuse a byte array by passing a four-byte array as b4. + * + * @param b4 A reusable byte array to reduce array instantiation + * @param threeBytes the array to convert + * @param numSigBytes the number of significant bytes in your array + * @return four byte array in Base64 notation. + * @since 1.5.1 + */ + private static byte[] encode3to4( byte[] b4, byte[] threeBytes, int numSigBytes, int options ) + { + encode3to4( threeBytes, 0, numSigBytes, b4, 0, options ); + return b4; + } // end encode3to4 + + + /** + *

Encodes up to three bytes of the array source + * and writes the resulting four Base64 bytes to destination. + * The source and destination arrays can be manipulated + * anywhere along their length by specifying + * srcOffset and destOffset. + * This method does not check to make sure your arrays + * are large enough to accomodate srcOffset + 3 for + * the source array or destOffset + 4 for + * the destination array. + * The actual number of significant bytes in your array is + * given by numSigBytes.

+ *

This is the lowest level of the encoding methods with + * all possible parameters.

+ * + * @param source the array to convert + * @param srcOffset the index where conversion begins + * @param numSigBytes the number of significant bytes in your array + * @param destination the array to hold the conversion + * @param destOffset the index where output will be put + * @return the destination array + * @since 1.3 + */ + private static byte[] encode3to4( + byte[] source, int srcOffset, int numSigBytes, + byte[] destination, int destOffset, int options ) + { + byte[] ALPHABET = getAlphabet( options ); + + // 1 2 3 + // 01234567890123456789012345678901 Bit position + // --------000000001111111122222222 Array position from threeBytes + // --------| || || || | Six bit groups to index ALPHABET + // >>18 >>12 >> 6 >> 0 Right shift necessary + // 0x3f 0x3f 0x3f Additional AND + + // Create buffer with zero-padding if there are only one or two + // significant bytes passed in the array. + // We have to shift left 24 in order to flush out the 1's that appear + // when Java treats a value as negative that is cast from a byte to an int. + int inBuff = ( numSigBytes > 0 ? ((source[ srcOffset ] << 24) >>> 8) : 0 ) + | ( numSigBytes > 1 ? ((source[ srcOffset + 1 ] << 24) >>> 16) : 0 ) + | ( numSigBytes > 2 ? ((source[ srcOffset + 2 ] << 24) >>> 24) : 0 ); + + switch( numSigBytes ) + { + case 3: + destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; + destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; + destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; + destination[ destOffset + 3 ] = ALPHABET[ (inBuff ) & 0x3f ]; + return destination; + + case 2: + destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; + destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; + destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ]; + destination[ destOffset + 3 ] = EQUALS_SIGN; + return destination; + + case 1: + destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ]; + destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ]; + destination[ destOffset + 2 ] = EQUALS_SIGN; + destination[ destOffset + 3 ] = EQUALS_SIGN; + return destination; + + default: + return destination; + } // end switch + } // end encode3to4 + + + + /** + * Serializes an object and returns the Base64-encoded + * version of that serialized object. If the object + * cannot be serialized or there is another error, + * the method will return null. + * The object is not GZip-compressed before being encoded. + * + * @param serializableObject The object to encode + * @return The Base64-encoded object + * @since 1.4 + */ + public static String encodeObject( java.io.Serializable serializableObject ) + { + return encodeObject( serializableObject, NO_OPTIONS ); + } // end encodeObject + + + + /** + * Serializes an object and returns the Base64-encoded + * version of that serialized object. If the object + * cannot be serialized or there is another error, + * the method will return null. + *

+ * Valid options:

+		 *	 GZIP: gzip-compresses object before encoding it.
+		 *	 DONT_BREAK_LINES: don't break lines at 76 characters
+		 *		 Note: Technically, this makes your encoding non-compliant.
+		 * 
+ *

+ * Example: encodeObject( myObj, Base64.GZIP ) or + *

+ * Example: encodeObject( myObj, Base64.GZIP | Base64.DONT_BREAK_LINES ) + * + * @param serializableObject The object to encode + * @param options Specified options + * @return The Base64-encoded object + * @see Base64#GZIP + * @see Base64#DONT_BREAK_LINES + * @since 2.0 + */ + public static String encodeObject( java.io.Serializable serializableObject, int options ) + { + // Streams + java.io.ByteArrayOutputStream baos = null; + java.io.OutputStream b64os = null; + java.io.ObjectOutputStream oos = null; + java.util.zip.GZIPOutputStream gzos = null; + + // Isolate options + int gzip = (options & GZIP); + int dontBreakLines = (options & DONT_BREAK_LINES); + + try + { + // ObjectOutputStream -> (GZIP) -> Base64 -> ByteArrayOutputStream + baos = new java.io.ByteArrayOutputStream(); + b64os = new Base64.OutputStream( baos, ENCODE | options ); + + // GZip? + if( gzip == GZIP ) + { + gzos = new java.util.zip.GZIPOutputStream( b64os ); + oos = new java.io.ObjectOutputStream( gzos ); + } // end if: gzip + else + oos = new java.io.ObjectOutputStream( b64os ); + + oos.writeObject( serializableObject ); + } // end try + catch( java.io.IOException e ) + { + e.printStackTrace(); + return null; + } // end catch + finally + { + try{ oos.close(); } catch( Exception e ){} + try{ gzos.close(); } catch( Exception e ){} + try{ b64os.close(); } catch( Exception e ){} + try{ baos.close(); } catch( Exception e ){} + } // end finally + + // Return value according to relevant encoding. + try + { + return new String( baos.toByteArray(), PREFERRED_ENCODING ); + } // end try + catch (java.io.UnsupportedEncodingException uue) + { + return new String( baos.toByteArray() ); + } // end catch + + } // end encode + + + + /** + * Encodes a byte array into Base64 notation. + * Does not GZip-compress data. + * + * @param source The data to convert + * @since 1.4 + */ + public static String encodeBytes( byte[] source ) + { + return encodeBytes( source, 0, source.length, NO_OPTIONS ); + } // end encodeBytes + + + + /** + * Encodes a byte array into Base64 notation. + *

+ * Valid options:

+		 *	 GZIP: gzip-compresses object before encoding it.
+		 *	 DONT_BREAK_LINES: don't break lines at 76 characters
+		 *		 Note: Technically, this makes your encoding non-compliant.
+		 * 
+ *

+ * Example: encodeBytes( myData, Base64.GZIP ) or + *

+ * Example: encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES ) + * + * + * @param source The data to convert + * @param options Specified options + * @see Base64#GZIP + * @see Base64#DONT_BREAK_LINES + * @since 2.0 + */ + public static String encodeBytes( byte[] source, int options ) + { + return encodeBytes( source, 0, source.length, options ); + } // end encodeBytes + + + /** + * Encodes a byte array into Base64 notation. + * Does not GZip-compress data. + * + * @param source The data to convert + * @param off Offset in array where conversion should begin + * @param len Length of data to convert + * @since 1.4 + */ + public static String encodeBytes( byte[] source, int off, int len ) + { + return encodeBytes( source, off, len, NO_OPTIONS ); + } // end encodeBytes + + + + /** + * Encodes a byte array into Base64 notation. + *

+ * Valid options:

+		 *	 GZIP: gzip-compresses object before encoding it.
+		 *	 DONT_BREAK_LINES: don't break lines at 76 characters
+		 *		 Note: Technically, this makes your encoding non-compliant.
+		 * 
+ *

+ * Example: encodeBytes( myData, Base64.GZIP ) or + *

+ * Example: encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES ) + * + * + * @param source The data to convert + * @param off Offset in array where conversion should begin + * @param len Length of data to convert + * @param options Specified options + * @param options alphabet type is pulled from this (standard, url-safe, ordered) + * @see Base64#GZIP + * @see Base64#DONT_BREAK_LINES + * @since 2.0 + */ + public static String encodeBytes( byte[] source, int off, int len, int options ) + { + // Isolate options + int dontBreakLines = ( options & DONT_BREAK_LINES ); + int gzip = ( options & GZIP ); + + // Compress? + if( gzip == GZIP ) + { + java.io.ByteArrayOutputStream baos = null; + java.util.zip.GZIPOutputStream gzos = null; + Base64.OutputStream b64os = null; + + + try + { + // GZip -> Base64 -> ByteArray + baos = new java.io.ByteArrayOutputStream(); + b64os = new Base64.OutputStream( baos, ENCODE | options ); + gzos = new java.util.zip.GZIPOutputStream( b64os ); + + gzos.write( source, off, len ); + gzos.close(); + } // end try + catch( java.io.IOException e ) + { + e.printStackTrace(); + return null; + } // end catch + finally + { + try{ gzos.close(); } catch( Exception e ){} + try{ b64os.close(); } catch( Exception e ){} + try{ baos.close(); } catch( Exception e ){} + } // end finally + + // Return value according to relevant encoding. + try + { + return new String( baos.toByteArray(), PREFERRED_ENCODING ); + } // end try + catch (java.io.UnsupportedEncodingException uue) + { + return new String( baos.toByteArray() ); + } // end catch + } // end if: compress + + // Else, don't compress. Better not to use streams at all then. + else + { + // Convert option to boolean in way that code likes it. + boolean breakLines = dontBreakLines == 0; + + int len43 = len * 4 / 3; + byte[] outBuff = new byte[ ( len43 ) // Main 4:3 + + ( (len % 3) > 0 ? 4 : 0 ) // Account for padding + + (breakLines ? ( len43 / MAX_LINE_LENGTH ) : 0) ]; // New lines + int d = 0; + int e = 0; + int len2 = len - 2; + int lineLength = 0; + for( ; d < len2; d+=3, e+=4 ) + { + encode3to4( source, d+off, 3, outBuff, e, options ); + + lineLength += 4; + if( breakLines && lineLength == MAX_LINE_LENGTH ) + { + outBuff[e+4] = NEW_LINE; + e++; + lineLength = 0; + } // end if: end of line + } // en dfor: each piece of array + + if( d < len ) + { + encode3to4( source, d+off, len - d, outBuff, e, options ); + e += 4; + } // end if: some padding needed + + + // Return value according to relevant encoding. + try + { + return new String( outBuff, 0, e, PREFERRED_ENCODING ); + } // end try + catch (java.io.UnsupportedEncodingException uue) + { + return new String( outBuff, 0, e ); + } // end catch + + } // end else: don't compress + + } // end encodeBytes + + + + + +/* ******** D E C O D I N G M E T H O D S ******** */ + + + /** + * Decodes four bytes from array source + * and writes the resulting bytes (up to three of them) + * to destination. + * The source and destination arrays can be manipulated + * anywhere along their length by specifying + * srcOffset and destOffset. + * This method does not check to make sure your arrays + * are large enough to accomodate srcOffset + 4 for + * the source array or destOffset + 3 for + * the destination array. + * This method returns the actual number of bytes that + * were converted from the Base64 encoding. + *

This is the lowest level of the decoding methods with + * all possible parameters.

+ * + * + * @param source the array to convert + * @param srcOffset the index where conversion begins + * @param destination the array to hold the conversion + * @param destOffset the index where output will be put + * @param options alphabet type is pulled from this (standard, url-safe, ordered) + * @return the number of decoded bytes converted + * @since 1.3 + */ + private static int decode4to3( byte[] source, int srcOffset, byte[] destination, int destOffset, int options ) + { + byte[] DECODABET = getDecodabet( options ); + + // Example: Dk== + if( source[ srcOffset + 2] == EQUALS_SIGN ) + { + // Two ways to do the same thing. Don't know which way I like best. + //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) + // | ( ( DECODABET[ source[ srcOffset + 1] ] << 24 ) >>> 12 ); + int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) + | ( ( DECODABET[ source[ srcOffset + 1] ] & 0xFF ) << 12 ); + + destination[ destOffset ] = (byte)( outBuff >>> 16 ); + return 1; + } + + // Example: DkL= + else if( source[ srcOffset + 3 ] == EQUALS_SIGN ) + { + // Two ways to do the same thing. Don't know which way I like best. + //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) + // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 ) + // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 ); + int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) + | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) + | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6 ); + + destination[ destOffset ] = (byte)( outBuff >>> 16 ); + destination[ destOffset + 1 ] = (byte)( outBuff >>> 8 ); + return 2; + } + + // Example: DkLE + else + { + try{ + // Two ways to do the same thing. Don't know which way I like best. + //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 ) + // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 ) + // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 ) + // | ( ( DECODABET[ source[ srcOffset + 3 ] ] << 24 ) >>> 24 ); + int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 ) + | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 ) + | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6) + | ( ( DECODABET[ source[ srcOffset + 3 ] ] & 0xFF ) ); + + + destination[ destOffset ] = (byte)( outBuff >> 16 ); + destination[ destOffset + 1 ] = (byte)( outBuff >> 8 ); + destination[ destOffset + 2 ] = (byte)( outBuff ); + + return 3; + }catch( Exception e){ + System.out.println(""+source[srcOffset]+ ": " + ( DECODABET[ source[ srcOffset ] ] ) ); + System.out.println(""+source[srcOffset+1]+ ": " + ( DECODABET[ source[ srcOffset + 1 ] ] ) ); + System.out.println(""+source[srcOffset+2]+ ": " + ( DECODABET[ source[ srcOffset + 2 ] ] ) ); + System.out.println(""+source[srcOffset+3]+ ": " + ( DECODABET[ source[ srcOffset + 3 ] ] ) ); + return -1; + } // end catch + } + } // end decodeToBytes + + + + + /** + * Very low-level access to decoding ASCII characters in + * the form of a byte array. Does not support automatically + * gunzipping or any other "fancy" features. + * + * @param source The Base64 encoded data + * @param off The offset of where to begin decoding + * @param len The length of characters to decode + * @return decoded data + * @since 1.3 + */ + public static byte[] decode( byte[] source, int off, int len, int options ) + { + byte[] DECODABET = getDecodabet( options ); + + int len34 = len * 3 / 4; + byte[] outBuff = new byte[ len34 ]; // Upper limit on size of output + int outBuffPosn = 0; + + byte[] b4 = new byte[4]; + int b4Posn = 0; + int i = 0; + byte sbiCrop = 0; + byte sbiDecode = 0; + for( i = off; i < off+len; i++ ) + { + sbiCrop = (byte)(source[i] & 0x7f); // Only the low seven bits + sbiDecode = DECODABET[ sbiCrop ]; + + if( sbiDecode >= WHITE_SPACE_ENC ) // White space, Equals sign or better + { + if( sbiDecode >= EQUALS_SIGN_ENC ) + { + b4[ b4Posn++ ] = sbiCrop; + if( b4Posn > 3 ) + { + outBuffPosn += decode4to3( b4, 0, outBuff, outBuffPosn, options ); + b4Posn = 0; + + // If that was the equals sign, break out of 'for' loop + if( sbiCrop == EQUALS_SIGN ) + break; + } // end if: quartet built + + } // end if: equals sign or better + + } // end if: white space, equals sign or better + else + { + System.err.println( "Bad Base64 input character at " + i + ": " + source[i] + "(decimal)" ); + return null; + } // end else: + } // each input character + + byte[] out = new byte[ outBuffPosn ]; + System.arraycopy( outBuff, 0, out, 0, outBuffPosn ); + return out; + } // end decode + + + + + /** + * Decodes data from Base64 notation, automatically + * detecting gzip-compressed data and decompressing it. + * + * @param s the string to decode + * @return the decoded data + * @since 1.4 + */ + public static byte[] decode( String s ) + { + return decode( s, NO_OPTIONS ); + } + + + /** + * Decodes data from Base64 notation, automatically + * detecting gzip-compressed data and decompressing it. + * + * @param s the string to decode + * @param options encode options such as URL_SAFE + * @return the decoded data + * @since 1.4 + */ + public static byte[] decode( String s, int options ) + { + byte[] bytes; + try + { + bytes = s.getBytes( PREFERRED_ENCODING ); + } // end try + catch( java.io.UnsupportedEncodingException uee ) + { + bytes = s.getBytes(); + } // end catch + // + + // Decode + bytes = decode( bytes, 0, bytes.length, options ); + + + // Check to see if it's gzip-compressed + // GZIP Magic Two-Byte Number: 0x8b1f (35615) + if( bytes != null && bytes.length >= 4 ) + { + + int head = ((int)bytes[0] & 0xff) | ((bytes[1] << 8) & 0xff00); + if( java.util.zip.GZIPInputStream.GZIP_MAGIC == head ) + { + java.io.ByteArrayInputStream bais = null; + java.util.zip.GZIPInputStream gzis = null; + java.io.ByteArrayOutputStream baos = null; + byte[] buffer = new byte[2048]; + int length = 0; + + try + { + baos = new java.io.ByteArrayOutputStream(); + bais = new java.io.ByteArrayInputStream( bytes ); + gzis = new java.util.zip.GZIPInputStream( bais ); + + while( ( length = gzis.read( buffer ) ) >= 0 ) + { + baos.write(buffer,0,length); + } // end while: reading input + + // No error? Get new bytes. + bytes = baos.toByteArray(); + + } // end try + catch( java.io.IOException e ) + { + // Just return originally-decoded bytes + } // end catch + finally + { + try{ baos.close(); } catch( Exception e ){} + try{ gzis.close(); } catch( Exception e ){} + try{ bais.close(); } catch( Exception e ){} + } // end finally + + } // end if: gzipped + } // end if: bytes.length >= 2 + + return bytes; + } // end decode + + + + + /** + * Attempts to decode Base64 data and deserialize a Java + * Object within. Returns null if there was an error. + * + * @param encodedObject The Base64 data to decode + * @return The decoded and deserialized object + * @since 1.5 + */ + public static Object decodeToObject( String encodedObject ) + { + // Decode and gunzip if necessary + byte[] objBytes = decode( encodedObject ); + + java.io.ByteArrayInputStream bais = null; + java.io.ObjectInputStream ois = null; + Object obj = null; + + try + { + bais = new java.io.ByteArrayInputStream( objBytes ); + ois = new java.io.ObjectInputStream( bais ); + + obj = ois.readObject(); + } // end try + catch( java.io.IOException e ) + { + e.printStackTrace(); + obj = null; + } // end catch + catch( ClassNotFoundException e ) + { + e.printStackTrace(); + obj = null; + } // end catch + finally + { + try{ bais.close(); } catch( Exception e ){} + try{ ois.close(); } catch( Exception e ){} + } // end finally + + return obj; + } // end decodeObject + + + + /** + * Convenience method for encoding data to a file. + * + * @param dataToEncode byte array of data to encode in base64 form + * @param filename Filename for saving encoded data + * @return true if successful, false otherwise + * + * @since 2.1 + */ + public static boolean encodeToFile( byte[] dataToEncode, String filename ) + { + boolean success = false; + Base64.OutputStream bos = null; + try + { + bos = new Base64.OutputStream( + new java.io.FileOutputStream( filename ), Base64.ENCODE ); + bos.write( dataToEncode ); + success = true; + } // end try + catch( java.io.IOException e ) + { + + success = false; + } // end catch: IOException + finally + { + try{ bos.close(); } catch( Exception e ){} + } // end finally + + return success; + } // end encodeToFile + + + /** + * Convenience method for decoding data to a file. + * + * @param dataToDecode Base64-encoded data as a string + * @param filename Filename for saving decoded data + * @return true if successful, false otherwise + * + * @since 2.1 + */ + public static boolean decodeToFile( String dataToDecode, String filename ) + { + boolean success = false; + Base64.OutputStream bos = null; + try + { + bos = new Base64.OutputStream( + new java.io.FileOutputStream( filename ), Base64.DECODE ); + bos.write( dataToDecode.getBytes( PREFERRED_ENCODING ) ); + success = true; + } // end try + catch( java.io.IOException e ) + { + success = false; + } // end catch: IOException + finally + { + try{ bos.close(); } catch( Exception e ){} + } // end finally + + return success; + } // end decodeToFile + + + + + /** + * Convenience method for reading a base64-encoded + * file and decoding it. + * + * @param filename Filename for reading encoded data + * @return decoded byte array or null if unsuccessful + * + * @since 2.1 + */ + public static byte[] decodeFromFile( String filename ) + { + byte[] decodedData = null; + Base64.InputStream bis = null; + try + { + // Set up some useful variables + java.io.File file = new java.io.File( filename ); + byte[] buffer = null; + int length = 0; + int numBytes = 0; + + // Check for size of file + if( file.length() > Integer.MAX_VALUE ) + { + System.err.println( "File is too big for this convenience method (" + file.length() + " bytes)." ); + return null; + } // end if: file too big for int index + buffer = new byte[ (int)file.length() ]; + + // Open a stream + bis = new Base64.InputStream( + new java.io.BufferedInputStream( + new java.io.FileInputStream( file ) ), Base64.DECODE ); + + // Read until done + while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 ) + length += numBytes; + + // Save in a variable to return + decodedData = new byte[ length ]; + System.arraycopy( buffer, 0, decodedData, 0, length ); + + } // end try + catch( java.io.IOException e ) + { + System.err.println( "Error decoding from file " + filename ); + } // end catch: IOException + finally + { + try{ bis.close(); } catch( Exception e) {} + } // end finally + + return decodedData; + } // end decodeFromFile + + + + /** + * Convenience method for reading a binary file + * and base64-encoding it. + * + * @param filename Filename for reading binary data + * @return base64-encoded string or null if unsuccessful + * + * @since 2.1 + */ + public static String encodeFromFile( String filename ) + { + String encodedData = null; + Base64.InputStream bis = null; + try + { + // Set up some useful variables + java.io.File file = new java.io.File( filename ); + byte[] buffer = new byte[ Math.max((int)(file.length() * 1.4),40) ]; // Need max() for math on small files (v2.2.1) + int length = 0; + int numBytes = 0; + + // Open a stream + bis = new Base64.InputStream( + new java.io.BufferedInputStream( + new java.io.FileInputStream( file ) ), Base64.ENCODE ); + + // Read until done + while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 ) + length += numBytes; + + // Save in a variable to return + encodedData = new String( buffer, 0, length, Base64.PREFERRED_ENCODING ); + + } // end try + catch( java.io.IOException e ) + { + System.err.println( "Error encoding from file " + filename ); + } // end catch: IOException + finally + { + try{ bis.close(); } catch( Exception e) {} + } // end finally + + return encodedData; + } // end encodeFromFile + + + + + /** + * Reads infile and encodes it to outfile. + * + * @param infile Input file + * @param outfile Output file + * @return true if the operation is successful + * @since 2.2 + */ + public static boolean encodeFileToFile( String infile, String outfile ) + { + boolean success = false; + java.io.InputStream in = null; + java.io.OutputStream out = null; + try{ + in = new Base64.InputStream( + new java.io.BufferedInputStream( + new java.io.FileInputStream( infile ) ), + Base64.ENCODE ); + out = new java.io.BufferedOutputStream( new java.io.FileOutputStream( outfile ) ); + byte[] buffer = new byte[65536]; // 64K + int read = -1; + while( ( read = in.read(buffer) ) >= 0 ){ + out.write( buffer,0,read ); + } // end while: through file + success = true; + } catch( java.io.IOException exc ){ + exc.printStackTrace(); + } finally{ + try{ in.close(); } catch( Exception exc ){} + try{ out.close(); } catch( Exception exc ){} + } // end finally + + return success; + } // end encodeFileToFile + + + + /** + * Reads infile and decodes it to outfile. + * + * @param infile Input file + * @param outfile Output file + * @return true if the operation is successful + * @since 2.2 + */ + public static boolean decodeFileToFile( String infile, String outfile ) + { + boolean success = false; + java.io.InputStream in = null; + java.io.OutputStream out = null; + try{ + in = new Base64.InputStream( + new java.io.BufferedInputStream( + new java.io.FileInputStream( infile ) ), + Base64.DECODE ); + out = new java.io.BufferedOutputStream( new java.io.FileOutputStream( outfile ) ); + byte[] buffer = new byte[65536]; // 64K + int read = -1; + while( ( read = in.read(buffer) ) >= 0 ){ + out.write( buffer,0,read ); + } // end while: through file + success = true; + } catch( java.io.IOException exc ){ + exc.printStackTrace(); + } finally{ + try{ in.close(); } catch( Exception exc ){} + try{ out.close(); } catch( Exception exc ){} + } // end finally + + return success; + } // end decodeFileToFile + + + /* ******** I N N E R C L A S S I N P U T S T R E A M ******** */ + + + + /** + * A {@link Base64.InputStream} will read data from another + * java.io.InputStream, given in the constructor, + * and encode/decode to/from Base64 notation on the fly. + * + * @see Base64 + * @since 1.3 + */ + public static class InputStream extends java.io.FilterInputStream + { + private boolean encode; // Encoding or decoding + private int position; // Current position in the buffer + private byte[] buffer; // Small buffer holding converted data + private int bufferLength; // Length of buffer (3 or 4) + private int numSigBytes; // Number of meaningful bytes in the buffer + private int lineLength; + private boolean breakLines; // Break lines at less than 80 characters + private int options; // Record options used to create the stream. + private byte[] alphabet; // Local copies to avoid extra method calls + private byte[] decodabet; // Local copies to avoid extra method calls + + + /** + * Constructs a {@link Base64.InputStream} in DECODE mode. + * + * @param in the java.io.InputStream from which to read data. + * @since 1.3 + */ + public InputStream( java.io.InputStream in ) + { + this( in, DECODE ); + } // end constructor + + + /** + * Constructs a {@link Base64.InputStream} in + * either ENCODE or DECODE mode. + *

+ * Valid options:

+				 *	 ENCODE or DECODE: Encode or Decode as data is read.
+				 *	 DONT_BREAK_LINES: don't break lines at 76 characters
+				 *		 (only meaningful when encoding)
+				 *		 Note: Technically, this makes your encoding non-compliant.
+				 * 
+ *

+ * Example: new Base64.InputStream( in, Base64.DECODE ) + * + * + * @param in the java.io.InputStream from which to read data. + * @param options Specified options + * @see Base64#ENCODE + * @see Base64#DECODE + * @see Base64#DONT_BREAK_LINES + * @since 2.0 + */ + public InputStream( java.io.InputStream in, int options ) + { + super( in ); + this.breakLines = (options & DONT_BREAK_LINES) != DONT_BREAK_LINES; + this.encode = (options & ENCODE) == ENCODE; + this.bufferLength = encode ? 4 : 3; + this.buffer = new byte[ bufferLength ]; + this.position = -1; + this.lineLength = 0; + this.options = options; // Record for later, mostly to determine which alphabet to use + this.alphabet = getAlphabet(options); + this.decodabet = getDecodabet(options); + } // end constructor + + /** + * Reads enough of the input stream to convert + * to/from Base64 and returns the next byte. + * + * @return next byte + * @since 1.3 + */ + public int read() throws java.io.IOException + { + // Do we need to get data? + if( position < 0 ) + { + if( encode ) + { + byte[] b3 = new byte[3]; + int numBinaryBytes = 0; + for( int i = 0; i < 3; i++ ) + { + try + { + int b = in.read(); + + // If end of stream, b is -1. + if( b >= 0 ) + { + b3[i] = (byte)b; + numBinaryBytes++; + } // end if: not end of stream + + } // end try: read + catch( java.io.IOException e ) + { + // Only a problem if we got no data at all. + if( i == 0 ) + throw e; + + } // end catch + } // end for: each needed input byte + + if( numBinaryBytes > 0 ) + { + encode3to4( b3, 0, numBinaryBytes, buffer, 0, options ); + position = 0; + numSigBytes = 4; + } // end if: got data + else + { + return -1; + } // end else + } // end if: encoding + + // Else decoding + else + { + byte[] b4 = new byte[4]; + int i = 0; + for( i = 0; i < 4; i++ ) + { + // Read four "meaningful" bytes: + int b = 0; + do{ b = in.read(); } + while( b >= 0 && decodabet[ b & 0x7f ] <= WHITE_SPACE_ENC ); + + if( b < 0 ) + break; // Reads a -1 if end of stream + + b4[i] = (byte)b; + } // end for: each needed input byte + + if( i == 4 ) + { + numSigBytes = decode4to3( b4, 0, buffer, 0, options ); + position = 0; + } // end if: got four characters + else if( i == 0 ){ + return -1; + } // end else if: also padded correctly + else + { + // Must have broken out from above. + throw new java.io.IOException( "Improperly padded Base64 input." ); + } // end + + } // end else: decode + } // end else: get data + + // Got data? + if( position >= 0 ) + { + // End of relevant data? + if( /*!encode &&*/ position >= numSigBytes ) + return -1; + + if( encode && breakLines && lineLength >= MAX_LINE_LENGTH ) + { + lineLength = 0; + return '\n'; + } // end if + else + { + lineLength++; // This isn't important when decoding + // but throwing an extra "if" seems + // just as wasteful. + + int b = buffer[ position++ ]; + + if( position >= bufferLength ) + position = -1; + + return b & 0xFF; // This is how you "cast" a byte that's + // intended to be unsigned. + } // end else + } // end if: position >= 0 + + // Else error + else + { + // When JDK1.4 is more accepted, use an assertion here. + throw new java.io.IOException( "Error in Base64 code reading stream." ); + } // end else + } // end read + + + /** + * Calls {@link #read()} repeatedly until the end of stream + * is reached or len bytes are read. + * Returns number of bytes read into array or -1 if + * end of stream is encountered. + * + * @param dest array to hold values + * @param off offset for array + * @param len max number of bytes to read into array + * @return bytes read into array or -1 if end of stream is encountered. + * @since 1.3 + */ + public int read( byte[] dest, int off, int len ) throws java.io.IOException + { + int i; + int b; + for( i = 0; i < len; i++ ) + { + b = read(); + + //if( b < 0 && i == 0 ) + // return -1; + + if( b >= 0 ) + dest[off + i] = (byte)b; + else if( i == 0 ) + return -1; + else + break; // Out of 'for' loop + } // end for: each byte read + return i; + } // end read + + } // end inner class InputStream + + + + + + + /* ******** I N N E R C L A S S O U T P U T S T R E A M ******** */ + + + + /** + * A {@link Base64.OutputStream} will write data to another + * java.io.OutputStream, given in the constructor, + * and encode/decode to/from Base64 notation on the fly. + * + * @see Base64 + * @since 1.3 + */ + public static class OutputStream extends java.io.FilterOutputStream + { + private boolean encode; + private int position; + private byte[] buffer; + private int bufferLength; + private int lineLength; + private boolean breakLines; + private byte[] b4; // Scratch used in a few places + private boolean suspendEncoding; + private int options; // Record for later + private byte[] alphabet; // Local copies to avoid extra method calls + private byte[] decodabet; // Local copies to avoid extra method calls + + /** + * Constructs a {@link Base64.OutputStream} in ENCODE mode. + * + * @param out the java.io.OutputStream to which data will be written. + * @since 1.3 + */ + public OutputStream( java.io.OutputStream out ) + { + this( out, ENCODE ); + } // end constructor + + + /** + * Constructs a {@link Base64.OutputStream} in + * either ENCODE or DECODE mode. + *

+ * Valid options:

+				 *	 ENCODE or DECODE: Encode or Decode as data is read.
+				 *	 DONT_BREAK_LINES: don't break lines at 76 characters
+				 *		 (only meaningful when encoding)
+				 *		 Note: Technically, this makes your encoding non-compliant.
+				 * 
+ *

+ * Example: new Base64.OutputStream( out, Base64.ENCODE ) + * + * @param out the java.io.OutputStream to which data will be written. + * @param options Specified options. + * @see Base64#ENCODE + * @see Base64#DECODE + * @see Base64#DONT_BREAK_LINES + * @since 1.3 + */ + public OutputStream( java.io.OutputStream out, int options ) + { + super( out ); + this.breakLines = (options & DONT_BREAK_LINES) != DONT_BREAK_LINES; + this.encode = (options & ENCODE) == ENCODE; + this.bufferLength = encode ? 3 : 4; + this.buffer = new byte[ bufferLength ]; + this.position = 0; + this.lineLength = 0; + this.suspendEncoding = false; + this.b4 = new byte[4]; + this.options = options; + this.alphabet = getAlphabet(options); + this.decodabet = getDecodabet(options); + } // end constructor + + + /** + * Writes the byte to the output stream after + * converting to/from Base64 notation. + * When encoding, bytes are buffered three + * at a time before the output stream actually + * gets a write() call. + * When decoding, bytes are buffered four + * at a time. + * + * @param theByte the byte to write + * @since 1.3 + */ + public void write(int theByte) throws java.io.IOException + { + // Encoding suspended? + if( suspendEncoding ) + { + super.out.write( theByte ); + return; + } // end if: supsended + + // Encode? + if( encode ) + { + buffer[ position++ ] = (byte)theByte; + if( position >= bufferLength ) // Enough to encode. + { + out.write( encode3to4( b4, buffer, bufferLength, options ) ); + + lineLength += 4; + if( breakLines && lineLength >= MAX_LINE_LENGTH ) + { + out.write( NEW_LINE ); + lineLength = 0; + } // end if: end of line + + position = 0; + } // end if: enough to output + } // end if: encoding + + // Else, Decoding + else + { + // Meaningful Base64 character? + if( decodabet[ theByte & 0x7f ] > WHITE_SPACE_ENC ) + { + buffer[ position++ ] = (byte)theByte; + if( position >= bufferLength ) // Enough to output. + { + int len = Base64.decode4to3( buffer, 0, b4, 0, options ); + out.write( b4, 0, len ); + //out.write( Base64.decode4to3( buffer ) ); + position = 0; + } // end if: enough to output + } // end if: meaningful base64 character + else if( decodabet[ theByte & 0x7f ] != WHITE_SPACE_ENC ) + { + throw new java.io.IOException( "Invalid character in Base64 data." ); + } // end else: not white space either + } // end else: decoding + } // end write + + + + /** + * Calls {@link #write(int)} repeatedly until len + * bytes are written. + * + * @param theBytes array from which to read bytes + * @param off offset for array + * @param len max number of bytes to read into array + * @since 1.3 + */ + public void write( byte[] theBytes, int off, int len ) throws java.io.IOException + { + // Encoding suspended? + if( suspendEncoding ) + { + super.out.write( theBytes, off, len ); + return; + } // end if: supsended + + for( int i = 0; i < len; i++ ) + { + write( theBytes[ off + i ] ); + } // end for: each byte written + + } // end write + + + + /** + * Method added by PHIL. [Thanks, PHIL. -Rob] + * This pads the buffer without closing the stream. + */ + public void flushBase64() throws java.io.IOException + { + if( position > 0 ) + { + if( encode ) + { + out.write( encode3to4( b4, buffer, position, options ) ); + position = 0; + } // end if: encoding + else + { + throw new java.io.IOException( "Base64 input not properly padded." ); + } // end else: decoding + } // end if: buffer partially full + + } // end flush + + + /** + * Flushes and closes (I think, in the superclass) the stream. + * + * @since 1.3 + */ + public void close() throws java.io.IOException + { + // 1. Ensure that pending characters are written + flushBase64(); + + // 2. Actually close the stream + // Base class both flushes and closes. + super.close(); + + buffer = null; + out = null; + } // end close + + + + /** + * Suspends encoding of the stream. + * May be helpful if you need to embed a piece of + * base640-encoded data in a stream. + * + * @since 1.5.1 + */ + public void suspendEncoding() throws java.io.IOException + { + flushBase64(); + this.suspendEncoding = true; + } // end suspendEncoding + + + /** + * Resumes encoding of the stream. + * May be helpful if you need to embed a piece of + * base640-encoded data in a stream. + * + * @since 1.5.1 + */ + public void resumeEncoding() + { + this.suspendEncoding = false; + } // end resumeEncoding + + + + } // end inner class OutputStream + + +} // end class Base64 \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java new file mode 100644 index 0000000..57b30ad --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java @@ -0,0 +1,1978 @@ +package cpm.com.gskmtorange.upload; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.WindowManager; +import android.widget.ProgressBar; +import android.widget.TextView; + +//import com.crashlytics.android.Crashlytics; + +import androidx.appcompat.app.AppCompatActivity; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.util.ArrayList; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.AdditionalDialogGetterSetter; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.GetterSetter.BrandAvabilityGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CoachingVisitGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +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; +import cpm.com.gskmtorange.xmlGetterSetter.ImageGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.POGGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaMSLInsertedGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaSOSGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PromoComplianceSkuwiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Promo_Compliance_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Stock_FacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Store_wise_camera_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.T2PGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; +import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler; + +public class PreviousDataUploadActivity extends AppCompatActivity { + private Context context; + GSKOrangeDB db; + ArrayList coverageList; + String date, userId, app_version; + StoreBean storeData; + String datacheck = ""; + String[] words; + String validity; + int mid; + String errormsg = "", Path; + Data data; + ArrayList msl_availabilityList; + ArrayList stock_facingHeaderList, stock_facingChildList; + ArrayList promotionSkuList, additionalPromotionList; + ArrayList t2PGetterSetters; + ArrayList additionalVisibilityList; + ArrayList additionalVisibilitySkuList; + ArrayList msl_availabilityStockFacingList; + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private FailureGetterSetter failureGetterSetter = null; + private SharedPreferences preferences; + private int factor, k = 0; + ArrayList adddata = new ArrayList(); + ArrayList listdat = new ArrayList(); + ArrayList coachingVisitData; + Object result = ""; + ArrayList stockFacingPlanogramDataList; + ArrayList storeWiseCameraDataGetterSetters; + ArrayList promoComplianceSkuwiseGetterSetters, promoComplianceSkuwiseExistsGetterSetters; + ArrayList counterfeitProductGetterSetters, counterfeitProductExistsGetterSetters; + ArrayList competitonGetterSetters, competitonExistsGetterSetters; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_upload); + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + date = preferences.getString(CommonString.KEY_DATE, null); + userId = preferences.getString(CommonString.KEY_USERNAME, null); + app_version = preferences.getString(CommonString.KEY_VERSION, null); + db = new GSKOrangeDB(this); + db.open(); + context = this; + Path = CommonString.getImagesFolder(context); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + //start upload + new UploadTask(this).execute(); + } + + public String UploadImage(String path, String folder_name) throws Exception { + errormsg = ""; + BitmapFactory.Options o = new BitmapFactory.Options(); + o.inJustDecodeBounds = true; + BitmapFactory.decodeFile(Path + path, o); + + // The new size we want to scale to + final int REQUIRED_SIZE = 1639; + + // Find the correct scale value. It should be the power of 2. + int width_tmp = o.outWidth, height_tmp = o.outHeight; + int scale = 1; + + while (true) { + if (width_tmp < REQUIRED_SIZE && height_tmp < REQUIRED_SIZE) + break; + width_tmp /= 2; + height_tmp /= 2; + scale *= 2; + } + + // Decode with inSampleSize + BitmapFactory.Options o2 = new BitmapFactory.Options(); + o2.inSampleSize = scale; + Bitmap bitmap = BitmapFactory.decodeFile(Path + path, o2); + + ByteArrayOutputStream bao = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bao); + byte[] ba = bao.toByteArray(); + String ba1 = Base64.encodeBytes(ba); + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_IMAGE); + + String[] split = path.split("/"); + String path1 = split[split.length - 1]; + + request.addProperty("img", ba1); + request.addProperty("name", path1); + request.addProperty("FolderName", folder_name); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION_UPLOAD_IMAGE, envelope); + + Object result = envelope.getResponse(); + + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + if (result.toString().equalsIgnoreCase(CommonString.KEY_FALSE)) { + return CommonString.KEY_FALSE; + } + + SAXParserFactory saxPF = SAXParserFactory.newInstance(); + SAXParser saxP = saxPF.newSAXParser(); + XMLReader xmlR = saxP.getXMLReader(); + + // for failure + FailureXMLHandler failureXMLHandler = new FailureXMLHandler(); + xmlR.setContentHandler(failureXMLHandler); + + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(result.toString())); + xmlR.parse(is); + + failureGetterSetter = failureXMLHandler.getFailureGetterSetter(); + + if (failureGetterSetter.getStatus().equalsIgnoreCase(CommonString.KEY_FAILURE)) { + errormsg = failureGetterSetter.getErrorMsg(); + return CommonString.KEY_FAILURE; + } + } else { + new File(Path + path).delete(); + } + + return result.toString(); + } + + class Data { + int value; + String name; + } + + private class UploadTask extends AsyncTask { + private Context context; + + UploadTask(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle("Uploading Data"); + dialog.setCancelable(false); + dialog.show(); + + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + } + + @Override + protected String doInBackground(Void... params) { + try { + data = new Data(); + + ArrayList adhoc_coverageList = db.getPreviousCoverageData(date, CommonString.FROM_DEVIATION); + + if (adhoc_coverageList.size() > 0) { + + for (int i = 0; i < adhoc_coverageList.size(); i++) { + + String onXML = "[ADHOC_JCP]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[VISIT_DATE]" + adhoc_coverageList.get(i).getVisitDate() + "[/VISIT_DATE]" + + "[STORE_CD]" + adhoc_coverageList.get(i).getStoreId() + "[/STORE_CD]" + + "[/ADHOC_JCP]"; + + final String adhoc_xml = "[DATA]" + onXML + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", adhoc_xml); + request.addProperty("KEYS", "ADHOC_JOURNEY_PLAN"); + request.addProperty("USERNAME", userId); + request.addProperty("MID", 0); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_STOCK_XML_DATA, envelope); + + result = envelope.getResponse(); + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + } + } + + + coverageList = db.getPreviousCoverageData(date, null); + + if (coverageList.size() > 0) { + if (coverageList.size() == 1) { + factor = 50; + } else { + factor = 100 / (coverageList.size()); + } + } + + for (int i = 0; i < coverageList.size(); i++) { + + storeData = db.getSpecificStoreData(coverageList.get(i).getVisitDate(), coverageList.get(i).getStoreId(), coverageList.get(i).getFlag_from()); + if (storeData.getSTORE_ID() != null) { + + if (storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_Y) || + storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_L) || + !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U) || + !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_UN)) { + + String camera_allow = storeData.getCAMERA_ALLOW(); + + String adhoc; + if (coverageList.get(i).getFlag_from() != null && coverageList.get(i).getFlag_from().equals(CommonString.FROM_DEVIATION)) { + adhoc = "1"; + } else { + adhoc = "0"; + } + + String coverage_service, status_service; + + if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_ADDITIONAL)) { + status_service = CommonString.METHOD_UPLOAD_COVERAGE_STATUS_ADDITIONAL; + coverage_service = CommonString.METHOD_UPLOAD_COVERAGE_NEW_ADDITIONAL; + } else { + status_service = CommonString.METHOD_UPLOAD_COVERAGE_STATUS; + coverage_service = CommonString.METHOD_UPLOAD_COVERAGE_NEW; + } + + String sub_reason_id = coverageList.get(i).getSub_reasonId(); + if (sub_reason_id != null && sub_reason_id.equals("")) { + sub_reason_id = "0"; + } + + String onXML = "[DATA]" + + "[USER_DATA]" + + "[STORE_CD]" + coverageList.get(i).getStoreId() + "[/STORE_CD]" + + "[VISIT_DATE]" + coverageList.get(i).getVisitDate() + "[/VISIT_DATE]" + + "[LATITUDE]" + coverageList.get(i).getLatitude() + "[/LATITUDE]" + + "[APP_VERSION]" + app_version + "[/APP_VERSION]" + + "[LONGITUDE]" + coverageList.get(i).getLongitude() + "[/LONGITUDE]" + + "[IN_TIME]" + coverageList.get(i).getInTime() + "[/IN_TIME]" + + "[OUT_TIME]" + coverageList.get(i).getOutTime() + "[/OUT_TIME]" + + "[UPLOAD_STATUS]" + "N" + "[/UPLOAD_STATUS]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[IMAGE_URL]" + coverageList.get(i).getImage() + "[/IMAGE_URL]" + + "[REASON_ID]" + coverageList.get(i).getReasonid() + "[/REASON_ID]" + + "[REASON_REMARK]" + coverageList.get(i).getRemark() + "[/REASON_REMARK]" + + "[CAMERA_ALLOWED]" + camera_allow + "[/CAMERA_ALLOWED]" + + "[CHECKOUT_IMAGE]" + coverageList.get(i).getCheckOut_Image() + "[/CHECKOUT_IMAGE]" + + "[ADHOC]" + adhoc + "[/ADHOC]" + + "[SUBREASONID]" + sub_reason_id + "[/SUBREASONID]" + + "[/USER_DATA]" + + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, coverage_service); + request.addProperty("onXML", onXML); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + coverage_service, envelope); + + result = envelope.getResponse(); + + datacheck = result.toString(); + words = datacheck.split("\\;"); + validity = (words[0]); + + if (validity.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + db.updateCoverageStatus(coverageList.get(i).getStoreId(), CommonString.KEY_P); + + db.updateStoreStatusOnLeave(coverageList.get(i).getStoreId(), date, CommonString.KEY_P, coverageList.get(i).getFlag_from()); + } else { + continue; + //return CommonString.METHOD_UPLOAD_COVERAGE; + } + mid = Integer.parseInt((words[1])); + + if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_ADDITIONAL)) { + + //MSL_Availability_StockFacing + String mslAvailability_stockFacing_xml = ""; + onXML = ""; + db.open(); + msl_availabilityStockFacingList = db.getStockUploadServerData(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")) { + + String stock; + if (!msl_availabilityStockFacingList.get(j).getStock().equals("")) { + stock = msl_availabilityStockFacingList.get(j).getStock(); + } else { + stock = "0"; + } + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[SKUID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SKUID]" + + "[STK]" + Integer.parseInt(stock) + "[/STK]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[MSL]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/MSL]" + + + "[/ST]"; + + 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", "STOCK_ADDITIONAL_STORE"); + 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; + }*/ + } + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + } else if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_PHARMA)) { + + //Pharmacy store data + + //Store detail + String store_detail_xml = ""; + onXML = ""; + db.open(); + ImageGetterSetter imageGetterSetter = db.getStoreDetailPharmaImageInsertedData(coverageList.get(i).getStoreId()); + String image_xml = ""; + + image_xml = "[IMG_L]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[IMG1]" + imageGetterSetter.getImage1() + "[/IMG1]" + + "[IMG2]" + imageGetterSetter.getImage2() + "[/IMG2]" + + "[IMG3]" + imageGetterSetter.getImage3() + "[/IMG3]" + + "[IMG4]" + imageGetterSetter.getImage4() + "[/IMG4]" + + "[/IMG_L]"; + ArrayList pharmaStoreDetail = db.getStoreDetailPharmaAnswerInsertedData(coverageList.get(i).getStoreId(), null); + + if (pharmaStoreDetail.size() > 0) { + for (int j = 0; j < pharmaStoreDetail.size(); j++) { + + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[QID]" + Integer.parseInt(pharmaStoreDetail.get(j).getQUESTION_ID().get(0)) + "[/QID]" + + "[BID]" + Integer.parseInt(pharmaStoreDetail.get(j).getBRAND_ID().get(0)) + "[/BID]" + + "[SCID]" + Integer.parseInt(pharmaStoreDetail.get(j).getSUB_CATEGORY_ID().get(0)) + "[/SCID]" + + "[PRESENT]" + pharmaStoreDetail.get(j).getIsChecked() + "[/PRESENT]" + + "[IMG]" + pharmaStoreDetail.get(j).getImgPath() + "[/IMG]" + + + "[/ST]"; + + store_detail_xml = store_detail_xml + onXML; + } + + final String sos_xml = "[DATA]" + image_xml + store_detail_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PHARMA_STORE_DETAIL"); + 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; + }*/ + } + + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + String pharma_sos_xml = ""; + onXML = ""; + + ArrayList pharmaSOSList = db.getStoreDetailPharmaForSOSData(coverageList.get(i).getStoreId(), "1"); + + if (pharmaSOSList.size() > 0) { + for (int j = 0; j < pharmaSOSList.size(); j++) { + + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[QID]" + Integer.parseInt(pharmaSOSList.get(j).getQUESTION_ID()) + "[/QID]" + + "[BID]" + Integer.parseInt(pharmaSOSList.get(j).getBRAND_ID()) + "[/BID]" + + "[SCID]" + Integer.parseInt(pharmaSOSList.get(j).getSUB_CATEGORY_ID()) + "[/SCID]" + + "[G_FAC]" + pharmaSOSList.get(j).getGskFacing() + "[/G_FAC]" + + "[C_FAC]" + pharmaSOSList.get(j).getCompetitorFacing() + "[/C_FAC]" + + "[/ST]"; + + pharma_sos_xml = pharma_sos_xml + onXML; + } + + final String sos_xml = "[DATA]" + pharma_sos_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PHARMA_SOS"); + 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; + }*/ + } + + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + String pharma_msl_xml = ""; + onXML = ""; + + ArrayList pharmaMSLList = db.getPharmaMSLInsertedData(coverageList.get(i).getStoreId()); + + if (pharmaMSLList.size() > 0) { + for (int j = 0; j < pharmaMSLList.size(); j++) { + + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[BID]" + Integer.parseInt(pharmaMSLList.get(j).getBrandId()) + "[/BID]" + + "[SKID]" + Integer.parseInt(pharmaMSLList.get(j).getSkuId()) + "[/SKID]" + + "[PRESENT]" + pharmaMSLList.get(j).getPresent() + "[/PRESENT]" + + "[/ST]"; + + pharma_msl_xml = pharma_msl_xml + onXML; + } + + final String sos_xml = "[DATA]" + pharma_msl_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PHARMA_MSL"); + 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; + }*/ + } + + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + } else { + //MSL_Availability_StockFacing + String mslAvailability_stockFacing_xml = ""; + onXML = ""; + db.open(); + msl_availabilityStockFacingList = db.getMSL_Availability_StockFacing_UploadServerDataNew(coverageList.get(i) + .getStoreId(), coverageList.get(i).getVisitDate(), + coverageList.get(i).getKeyAccountId(), + coverageList.get(i).getStoreTypeId(), + coverageList.get(i).getClassId(), + coverageList.get(i).getMappingStk()); + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + String stock, pricing; + if (!msl_availabilityStockFacingList.get(j).getStock().equals("")) { + stock = msl_availabilityStockFacingList.get(j).getStock(); + } else { + stock = "0"; + } + if (!msl_availabilityStockFacingList.get(j).getPricingStock().equals("")) { + pricing = msl_availabilityStockFacingList.get(j).getPricingStock(); + } else { + pricing = "-1"; + } + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + //+ "[USERID]" + userId + "[/USERID]" + + "[SID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SID]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[AVL]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getToggleValue()) + "[/AVL]" + + "[FC]" + Double.parseDouble(msl_availabilityStockFacingList.get(j).getFacing()) + "[/FC]" + + "[SK]" + Integer.parseInt(stock) + "[/SK]" + + "[PRICING]" + Double.parseDouble(pricing) + "[/PRICING]" + // + "[PRICING]" + Integer.parseInt(pricing) + "[/PRICING]" + + "[ML]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/ML]" + + "[/ST]"; + + 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", "STOCK_AVAILABILITY_WITH_PRICING"); + 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 = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + String msl_availabilityStockEntryXml = ""; + onXML = ""; + db.open(); + msl_availabilityStockFacingList = db.getStock_Entry_UploadServerDataNew(coverageList.get(i) + .getStoreId(), coverageList.get(i).getVisitDate(), + coverageList.get(i).getKeyAccountId(), + coverageList.get(i).getStoreTypeId(), + coverageList.get(i).getClassId(), + coverageList.get(i).getMappingStk()); + + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + String posm_stock, warehouse_stock; + if (!msl_availabilityStockFacingList.get(j).getPosmStock().equals("")) { + posm_stock = msl_availabilityStockFacingList.get(j).getPosmStock(); + } else { + posm_stock = "0"; + } + if (!msl_availabilityStockFacingList.get(j).getWarehouseStock().equals("")) { + warehouse_stock = msl_availabilityStockFacingList.get(j).getWarehouseStock(); + } else { + warehouse_stock = "0"; + } + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[SID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SID]" + + "[POSM_STOCK]" + Integer.parseInt(posm_stock) + "[/POSM_STOCK]" + + "[WAREHOUSE_STOCK]" + Integer.parseInt(warehouse_stock) + "[/WAREHOUSE_STOCK]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[ML]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/ML]" + + "[/ST]"; + + msl_availabilityStockEntryXml = msl_availabilityStockEntryXml + onXML; + } + } + final String sos_xml = "[DATA]" + msl_availabilityStockEntryXml + "[/DATA]"; + Log.d("STOCK_ENTRY_DATA", sos_xml); + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "STOCK_ENTRY"); + 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; + }*/ + } + data.value = 16; + data.name = getString(R.string.stock_entry_data_uploading); + publishProgress(data); + + + //Promo Compliance - Promotion Data + String promoition_data_xml = ""; + onXML = ""; + db.open(); + promotionSkuList = db.getPromoComplianceSkuServerUploadData(coverageList.get(i).getStoreId()); + + if (promotionSkuList.size() > 0) { + for (int i1 = 0; i1 < promotionSkuList.size(); i1++) { + if (!promotionSkuList.get(i1).getCategory_id().equals("0")) { + + onXML = "[PROMOTION_DATA_NEW]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promotionSkuList.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[PROMO_ID]" + Integer.parseInt(promotionSkuList.get(i1).getPromo_id()) + "[/PROMO_ID]" + //+ "[SKU]" + promotionSkuList.get(i1).getSku() + "[/SKU]" + + "[SKU_ID]" + Integer.parseInt(promotionSkuList.get(i1).getSku_id()) + "[/SKU_ID]" + + "[IN_STOCK]" + Integer.parseInt(promotionSkuList.get(i1).getIn_stock()) + "[/IN_STOCK]" + + "[PROMO_ANNOUNCER]" + Integer.parseInt(promotionSkuList.get(i1).getPromo_announcer()) + "[/PROMO_ANNOUNCER]" + + "[RUNNING_POS]" + Integer.parseInt(promotionSkuList.get(i1).getRunning_pos()) + "[/RUNNING_POS]" + + "[PROMO_IMAGE]" + promotionSkuList.get(i1).getImage_promotion() + "[/PROMO_IMAGE]" + + "[/PROMOTION_DATA_NEW]"; + + promoition_data_xml = promoition_data_xml + onXML; + } + } + + final String sos_xml = "[DATA]" + promoition_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PROMOTION_DATA_NEW"); + 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; + }*/ + } + data.value = 30; + data.name = getString(R.string.promo_data_uploading); + publishProgress(data); + + //Promo Compliance - Country Id - 7 (SA) Promotion Data + String promotion_sku_wise_data_xml = "", add_promotion_data_xml = "", exists_xml = "", add_xml = ""; + + db.open(); + promoComplianceSkuwiseExistsGetterSetters = db.getPromoComplianceSkuwiseExistsAfterData(coverageList.get(i).getStoreId(), null); + if (promoComplianceSkuwiseExistsGetterSetters.size() > 0) { + + for (int l = 0; l < promoComplianceSkuwiseExistsGetterSetters.size(); l++) { + + promoComplianceSkuwiseGetterSetters = db.getPromoComplianceSkuwiseAfterData(promoComplianceSkuwiseExistsGetterSetters.get(l).get_id(), null); + + for (int i1 = 0; i1 < promoComplianceSkuwiseGetterSetters.size(); i1++) { + if (!promoComplianceSkuwiseGetterSetters.get(i1).getCategory_id().equals("0")) { + + String discount_val = promoComplianceSkuwiseGetterSetters.get(i1).getDiscount_value(); + if (discount_val.equals("")) { + discount_val = "0"; + } + + add_xml = "[PROMOTION_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getSub_category_id()) + "[/SUB_CATEGORY_ID]" + + "[SKU_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getSku_id()) + "[/SKU_ID]" + + "[BRAND_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getBrand_id()) + "[/BRAND_ID]" + + "[DISCOUNT_VALUE]" + discount_val + "[/DISCOUNT_VALUE]" + + "[PRICE]" + promoComplianceSkuwiseGetterSetters.get(i1).getPrice() + "[/PRICE]" + + "[PROMO_IMAGE]" + promoComplianceSkuwiseGetterSetters.get(i1).getImg() + "[/PROMO_IMAGE]" + + "[PRICE_FLASHER_AVAILABLE]" + promoComplianceSkuwiseGetterSetters.get(i1).getPrice_flasher() + "[/PRICE_FLASHER_AVAILABLE]" + + "[/PROMOTION_DATA]"; + + add_promotion_data_xml = add_promotion_data_xml + add_xml; + } + } + + int exists = 0; + if (promoComplianceSkuwiseExistsGetterSetters.get(l).isExists()) { + exists = 1; + } + + exists_xml = "[ADDITIONAL_PROMOTION_SKUWISE_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseExistsGetterSetters.get(l).getCategory_id()) + "[/CATEGORY_ID]" + + "[IS_EXISTS]" + exists + "[/IS_EXISTS]" + + "[ADDITIONAL_PROMOTION_DATA]" + add_promotion_data_xml + "[/ADDITIONAL_PROMOTION_DATA]" + + "[/ADDITIONAL_PROMOTION_SKUWISE_DATA]"; + + promotion_sku_wise_data_xml = promotion_sku_wise_data_xml + exists_xml; + + } + + final String sos_xml = "[DATA]" + promotion_sku_wise_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ADDITIONAL_PROMOTION_SKUWISE_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; + }*/ + } + + + data.value = 30; + data.name = getString(R.string.promo_data_uploading); + publishProgress(data); + + + //Promo Compliance -Additional Promotion Data + String additional_promoition_data_xml = ""; + onXML = ""; + db.open(); + additionalPromotionList = db.getAdditionalPromotionServerUploadData(coverageList.get(i).getStoreId()); + + if (additionalPromotionList.size() > 0) { + for (int i1 = 0; i1 < additionalPromotionList.size(); i1++) { + if (!additionalPromotionList.get(i1).getCategory_id().equals("0")) { + + onXML = "[ADDITIONAL_PROMOTION_DATA_NEW]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(additionalPromotionList.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[PROMO_ID]" + Integer.parseInt(additionalPromotionList.get(i1).getPromo_id()) + "[/PROMO_ID]" + + "[SKU_ID]" + Integer.parseInt(additionalPromotionList.get(i1).getSku_id()) + "[/SKU_ID]" + //+ "[SKU]" + additionalPromotionList.get(i1).getSku() + "[/SKU]" + + "[IN_STOCK]" + Integer.parseInt(additionalPromotionList.get(i1).getIn_stock()) + "[/IN_STOCK]" + + "[PROMO_ANNOUNCER]" + Integer.parseInt(additionalPromotionList.get(i1).getPromo_announcer()) + "[/PROMO_ANNOUNCER]" + + "[RUNNING_POS]" + Integer.parseInt(additionalPromotionList.get(i1).getRunning_pos()) + "[/RUNNING_POS]" + + "[ADD_PROMO_IMAGE]" + additionalPromotionList.get(i1).getImage_promotion() + "[/ADD_PROMO_IMAGE]" + + "[/ADDITIONAL_PROMOTION_DATA_NEW]"; + + additional_promoition_data_xml = additional_promoition_data_xml + onXML; + } + } + + final String sos_xml = "[DATA]" + additional_promoition_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ADDITIONAL_PROMOTION_DATA_NEW"); + 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; + }*/ + } + data.value = 35; + data.name = getString(R.string.additional_data_uploading); + publishProgress(data); + + + //Additional Visibility Data + String additional_visibility_data_xml = ""; + String additional_visibility_dialog_xml = ""; + onXML = ""; + String onXMLdIALOG = ""; + String imageV1, imageV2, imageV3; + + db.open(); + additionalVisibilityList = db.getAdditionalStockUpload(coverageList.get(i).getStoreId()); + + if (additionalVisibilityList.size() > 0) { + for (int J = 0; J < additionalVisibilityList.size(); J++) { + + if (additionalVisibilityList.get(J).getImage() == null) { + imageV1 = ""; + } else { + imageV1 = additionalVisibilityList.get(J).getImage(); + } + + if (additionalVisibilityList.get(J).getImage2() == null) { + imageV2 = ""; + } else { + imageV2 = additionalVisibilityList.get(J).getImage2(); + } + + if (additionalVisibilityList.get(J).getImage3() == null) { + imageV3 = ""; + } else { + imageV3 = additionalVisibilityList.get(J).getImage3(); + } + + String KeyID = additionalVisibilityList.get(J).getKey_id(); + + additionalVisibilitySkuList = db.getDialogStockUpload(KeyID); + //additionalVisibilitySkuList = additionalVisibilityList.get(J).getSkuDialogList(); + + if (additionalVisibilitySkuList.size() > 0) { + for (int k = 0; k < additionalVisibilitySkuList.size(); k++) { + + onXMLdIALOG = "[VISIBILITY_DAILOG]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + additionalVisibilitySkuList.get(k).getCOMMON_ID() + "[/KEY_ID]" + + "[CATEGORY_ID]" + additionalVisibilitySkuList.get(k).getCategoryId() + "[/CATEGORY_ID]" + + "[SKU_ID]" + additionalVisibilitySkuList.get(k).getSku_id() + "[/SKU_ID]" + + "[QUANTITY]" + additionalVisibilitySkuList.get(k).getQuantity() + "[/QUANTITY]" + + "[/VISIBILITY_DAILOG]"; + + additional_visibility_dialog_xml = additional_visibility_dialog_xml + onXMLdIALOG; + } + } + + onXML = "[ADDITIONAL_VISIBILITY_NEW]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + additionalVisibilityList.get(J).getKey_id() + "[/KEY_ID]" + + "[CATEGORY_ID]" + additionalVisibilityList.get(J).getCategoryId() + "[/CATEGORY_ID]" + + "[ADDITIONAL_DISPLAY]" + additionalVisibilityList.get(J).getBtn_toogle() + "[/ADDITIONAL_DISPLAY]" + //+ "[BRAND_ID]"+ additionalVisibilityList.get(J).getBrand_id()+ "[/BRAND_ID]" + + "[IMAGE_URL]" + imageV1 /*additionalVisibilityList.get(J).getImage()*/ + "[/IMAGE_URL]" + + "[IMAGE_URL1]" + imageV2 /*additionalVisibilityList.get(J).getImage2()*/ + "[/IMAGE_URL1]" + + "[IMAGE_URL2]" + imageV3 /*additionalVisibilityList.get(J).getImage3()*/ + "[/IMAGE_URL2]" + + "[DISPLAY_ID]" + additionalVisibilityList.get(J).getSku_id() + "[/DISPLAY_ID]" + + "[SKU_LIST]" + additional_visibility_dialog_xml + "[/SKU_LIST]" + + "[/ADDITIONAL_VISIBILITY_NEW]"; + //Here getSku_id gives display_id + + additional_visibility_data_xml = additional_visibility_data_xml + onXML; + KeyID = ""; + additionalVisibilitySkuList.clear(); + + additional_visibility_dialog_xml = ""; + } + + final String sos_xml = "[DATA]" + additional_visibility_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ADDITIONAL_VISIBILITY_NEW"); + 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; + }*/ + } + data.value = 45; + data.name = getString(R.string.additional_data_uploading); + publishProgress(data); + + + //T2p Upload Data + String t2p_data_xml = ""; + onXML = ""; + db.open(); + t2PGetterSetters = db.getT2pComplianceData(coverageList.get(i).getStoreId(), null); + + if (t2PGetterSetters.size() > 0) { + for (int i1 = 0; i1 < t2PGetterSetters.size(); i1++) { + + ArrayList gapsList = db.getGapsData(t2PGetterSetters.get(i1).getKey_id()); + ArrayList skuList = db.getT2PSKUData(t2PGetterSetters.get(i1).getKey_id()); + ArrayList brandList = db.getT2BrandData(t2PGetterSetters.get(i1).getKey_id()); + String gaps_xml = ""; + String gaps_child; + + for (int l = 0; l < gapsList.size(); l++) { + String present = ""; + if (gapsList.get(l).isPresent()) { + present = "1"; + } else { + present = "0"; + } + gaps_child = "[GAPS]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CHECK_LIST_ID]" + gapsList.get(l).getChecklist_id() + "[/CHECK_LIST_ID]" + + "[DISPLAY_ID]" + gapsList.get(l).getDisplay_id() + "[/DISPLAY_ID]" + + "[PRESENT]" + present + "[/PRESENT]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[/GAPS]"; + gaps_xml = gaps_xml + gaps_child; + } + + String sku_xml = ""; + String sku_child; + + for (int k = 0; k < skuList.size(); k++) { + sku_child = "[SKU]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[SKU_ID]" + skuList.get(k).getSKU_ID() + "[/SKU_ID]" + + "[BRAND_ID]" + skuList.get(k).getBRAND_ID() + "[/BRAND_ID]" + + "[STOCK]" + skuList.get(k).getSTOCK() + "[/STOCK]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[/SKU]"; + sku_xml = sku_xml + sku_child; + } + + + String brandxml = ""; + String brandchild; + + if (brandList.size() > 0) { + + for (int M = 0; M < brandList.size(); M++) { + brandchild = "[BRAND]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[BRAND_ID]" + brandList.get(M).getBRAND_ID() + "[/BRAND_ID]" + // + "[BRAND]" + brandList.get(M).getBRAND() + "[/BRAND]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[/BRAND]"; + brandxml = brandxml + brandchild; + } + } + + /* String present = ""; + if (t2PGetterSetters.get(i1).isPresent()) { + present = "1"; + } else { + present = "0"; + }*/ + String qty = t2PGetterSetters.get(i1).getQty(); + if (qty.equals("")) { + qty = "0"; + } + + onXML = "[T2P_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[BRAND_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getBrand_id()) + "[/BRAND_ID]" + + "[DISPLAY_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getDisplay_id()) + "[/DISPLAY_ID]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[IMAGE]" + t2PGetterSetters.get(i1).getImage() + "[/IMAGE]" + + "[IMAGE1]" + t2PGetterSetters.get(i1).getImage1() + "[/IMAGE1]" + + "[IMAGE2]" + t2PGetterSetters.get(i1).getImage2() + "[/IMAGE2]" + + "[PRESENT]" + t2PGetterSetters.get(i1).getPresent() + "[/PRESENT]" + + //Quantity visibility added for UAE 04.07.2019 + + "[Quantity]" + qty + "[/Quantity]" + + //Non t2p reason id added - 21-6-2018 + + "[TREASON_ID]" + t2PGetterSetters.get(i1).getNon_t2p_reason_id() + "[/TREASON_ID]" + + + "[GAPS_DATA]" + gaps_xml + "[/GAPS_DATA]" + + "[SKU_DATA]" + sku_xml + "[/SKU_DATA]" + + "[CATEGORY_FIXTURE]" + t2PGetterSetters.get(i1).getCategory_fixture() + "[/CATEGORY_FIXTURE]" + + "[BRAND_DATA]" + brandxml + "[/BRAND_DATA]" + + "[/T2P_DATA]"; + + t2p_data_xml = t2p_data_xml + onXML; + } + + final String t2p_final_xml = "[DATA]" + t2p_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", t2p_final_xml); + request.addProperty("KEYS", "T2P_DATA_FIXTURE_NEW"); + 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; + }*/ + } + data.value = 50; + data.name = getString(R.string.t2p_data_uploading); + publishProgress(data); + + + //Stock Facing Planogram Tracker + String stock_facing_planogram_xml = ""; + onXML = ""; + db.open(); + stockFacingPlanogramDataList = db.getStockAndFacingPlanogramServerUploadData(coverageList.get(i).getStoreId()); + + if (stockFacingPlanogramDataList.size() > 0) { + + for (int i1 = 0; i1 < stockFacingPlanogramDataList.size(); i1++) { + onXML = "[STOCK_FACING_PLANOGRAM_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[SKU_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSku_id()) + "[/SKU_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + //+ "[company_id]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getCompany_id()) + "[/company_id]" + //+ "[sub_category_id]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSub_category_id()) + "[/sub_category_id]" + //+ "[BRAND_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getBrand_id()) + "[/BRAND_ID]" + + "[SHELF_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSp_addShelf_id()) + "[/SHELF_ID]" + + "[SHELF_POSITION]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSp_shelfPosition()) + "[/SHELF_POSITION]" + //+ "[CHECKBOX]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getCheckbox_sku()) + "[/CHECKBOX]" + + "[/STOCK_FACING_PLANOGRAM_DATA]"; + + stock_facing_planogram_xml = stock_facing_planogram_xml + onXML; + } + + final String sos_xml = "[DATA]" + stock_facing_planogram_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "STOCK_FACING_PLANOGRAM_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; + }*/ + } + data.value = 55; + data.name = getString(R.string.stock_planogram_data_uploading); + publishProgress(data); + + + //Category Picture Data + String Category_xml = ""; + onXML = ""; + String onCategoryList = ""; + String CategoryLISTDATA = ""; + String image1, image2, image3, image4; + + db.open(); + adddata = db.getCategoryPictureUpload(coverageList.get(i).getStoreId()); + + if (adddata.size() > 0) { + for (int J = 0; J < adddata.size(); J++) { + if (adddata.get(J).getCategoryImage1() == null) { + image1 = ""; + } else { + image1 = adddata.get(J).getCategoryImage1(); + } + + if (adddata.get(J).getCategoryImage2() == null) { + image2 = ""; + } else { + image2 = adddata.get(J).getCategoryImage2(); + } + + if (adddata.get(J).getCategoryImage3() == null) { + image3 = ""; + } else { + image3 = adddata.get(J).getCategoryImage3(); + } + + if (adddata.get(J).getCategoryImage4() == null) { + image4 = ""; + } else { + image4 = adddata.get(J).getCategoryImage4(); + } + + String KeyID = adddata.get(J).getKEY_ID(); + + listdat = db.getCategoryPictureListUploaded(KeyID); + + if (listdat.size() > 0) { + for (int k = 0; k < listdat.size(); k++) { + onCategoryList = "[SUB_CATEGORY_LIST]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + listdat.get(k).getCOMMON_ID() + "[/KEY_ID]" + + "[SUB_CATEGORY_ID]" + listdat.get(k).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[SUB_CategoryImage1]" + listdat.get(k).getSubCategoryCamera1() + "[/SUB_CategoryImage1]" + + "[SUB_CategoryImage2]" + listdat.get(k).getSubCategoryCamera2() + "[/SUB_CategoryImage2]" + + "[/SUB_CATEGORY_LIST]"; + + CategoryLISTDATA = CategoryLISTDATA + onCategoryList; + } + } + + onXML = "[CATEGORY_LIST]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + adddata.get(J).getKEY_ID() + "[/KEY_ID]" + + "[CATEGORY_ID]" + adddata.get(J).getCategoryId() + "[/CATEGORY_ID]" + + "[CAMERA_ALLOW]" + adddata.get(J).getCamera_allow() + "[/CAMERA_ALLOW]" + + "[IMAGE_URL_1]" + image1 /*adddata.get(J).getCategoryImage1()*/ + "[/IMAGE_URL_1]" + + "[IMAGE_URL_2]" + image2 /*adddata.get(J).getCategoryImage2()*/ + "[/IMAGE_URL_2]" + + "[IMAGE_URL_3]" + image3 /*adddata.get(J).getCategoryImage3()*/ + "[/IMAGE_URL_3]" + + "[IMAGE_URL_4]" + image4 /*adddata.get(J).getCategoryImage4()*/ + "[/IMAGE_URL_4]" + + "[SUB_LIST]" + CategoryLISTDATA + "[/SUB_LIST]" + + "[/CATEGORY_LIST]"; + + Category_xml = Category_xml + onXML; + CategoryLISTDATA = ""; + } + + final String sos_xml = "[DATA]" + Category_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "CATEGORY_PICTURE"); + 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; + }*/ + } else { + + db.open(); + ArrayList nocamera_data_list = db.getNoCameraCategoryStoreWiseDataInserted(coverageList.get(i).getStoreId()); + + if (nocamera_data_list.size() > 0) { + + String onXml_nodata = "", No_camera_data = ""; + for (int n = 0; n < nocamera_data_list.size(); n++) { + + int vertical; + if (nocamera_data_list.get(n).isVertical()) { + vertical = 1; + } else { + vertical = 0; + } + + onXml_nodata = "[NO_CAMERA_POG_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + nocamera_data_list.get(n).getCATEGORY_ID() + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + nocamera_data_list.get(n).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[SKU_GROUP_ID]" + nocamera_data_list.get(n).getSKUGROUP_ID() + "[/SKU_GROUP_ID]" + + "[ROW_NO]" + nocamera_data_list.get(n).getRow_no() + "[/ROW_NO]" + + "[COLUMN_NO]" + nocamera_data_list.get(n).getColumn_no() + "[/COLUMN_NO]" + + "[FACING]" + nocamera_data_list.get(n).getFacing() + "[/FACING]" + + "[IS_VERTICAL]" + vertical + "[/IS_VERTICAL]" + + "[/NO_CAMERA_POG_DATA]"; + + No_camera_data = No_camera_data + onXml_nodata; + } + + final String sos_xml = "[DATA]" + No_camera_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "NO_CAMERA_POG"); + 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 = 60; + data.name = getString(R.string.additional_data_uploading); + publishProgress(data); + + //Audit data + db.open(); + ArrayList audit_data = db.getAuditDataForUpload(coverageList.get(i).getStoreId()); + + if (audit_data.size() > 0) { + + String onXml_audit_data = "", Audit_data = ""; + for (int n = 0; n < audit_data.size(); n++) { + + onXml_audit_data = "[AUDIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + audit_data.get(n).getCATEGORY_ID() + "[/CATEGORY_ID]" + + "[QUESTION_ID]" + audit_data.get(n).getQUESTION_ID() + "[/QUESTION_ID]" + + "[ANSWER_ID]" + audit_data.get(n).getANSWER_ID() + "[/ANSWER_ID]" + + "[ANSWER_IMAGE]" + audit_data.get(n).getCAM_IMAGE() + "[/ANSWER_IMAGE]" + + "[ANSWER_IMAGE2]" + audit_data.get(n).getCAM_IMAGE2() + "[/ANSWER_IMAGE2]" + + "[ANSWER]" + audit_data.get(n).getANSWER() + "[/ANSWER]" + + "[REMARK]" + audit_data.get(n).getTXT_REMARK() + "[/REMARK]" + + "[/AUDIT_DATA]"; + + Audit_data = Audit_data + onXml_audit_data; + } + + final String sos_xml = "[DATA]" + Audit_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "AUDIT_DATA_NEW_REMARK"); + 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 = 62; + data.name = getString(R.string.audit); + publishProgress(data); + + //POG data + db.open(); + ArrayList pog_data = db.getAfterSavePOGForUploadData(coverageList.get(i).getStoreId()); + + if (pog_data.size() > 0) { + + String onXml_pog_data = "", POG_data = ""; + for (int n = 0; n < pog_data.size(); n++) { + + onXml_pog_data = "[POG_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + pog_data.get(n).getCATEGORY_ID() + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + pog_data.get(n).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[QUESTION_ID]" + pog_data.get(n).getQUESTION_ID() + "[/QUESTION_ID]" + + "[ANSWER_ID]" + pog_data.get(n).getANSWER_ID() + "[/ANSWER_ID]" + + "[/POG_DATA]"; + + POG_data = POG_data + onXml_pog_data; + } + + final String sos_xml = "[DATA]" + POG_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "POG_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 = 63; + data.name = getString(R.string.pog); + publishProgress(data); + + //Coaching visit data + db.open(); + coachingVisitData = db.getCoachingVisitData(coverageList.get(i).getStoreId()); + + if (coachingVisitData.size() > 0) { + + String onXml_coaching_data = "", coaching_xml = ""; + for (int j = 0; j < coachingVisitData.size(); j++) { + + String exist; + + if (coachingVisitData.get(j).isExists()) { + exist = "1"; + } else { + exist = "0"; + } + + coaching_xml = "[COACHING_VISIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[EMP_ID]" + coachingVisitData.get(j).getEmp_id() + "[/EMP_ID]" + + "[IMAGE]" + coachingVisitData.get(j).getImg_path() + "[/IMAGE]" + + "[IS_EXIST]" + exist + "[/IS_EXIST]" + + "[/COACHING_VISIT_DATA]"; + onXml_coaching_data = onXml_coaching_data + coaching_xml; + } + + final String sos_xml = "[DATA]" + onXml_coaching_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "COACHING_VISIT_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 = 64; + data.name = getString(R.string.coaching_visit); + publishProgress(data); + } + + //Coaching check visit data + db.open(); + coachingVisitData = db.getCoachingVisitStoreData(coverageList.get(i).getStoreId()); + + if (coachingVisitData.size() > 0) { + + String onXml_coaching_data = "", coaching_xml = ""; + for (int j = 0; j < coachingVisitData.size(); j++) { + + String exist; + + if (coachingVisitData.get(j).isExists()) { + exist = "1"; + } else { + exist = "0"; + } + + coaching_xml = "[CHECK_VISIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[EMP_ID]" + coachingVisitData.get(j).getEmp_id() + "[/EMP_ID]" + + "[IMAGE]" + coachingVisitData.get(j).getImg_path() + "[/IMAGE]" + + "[IS_EXIST]" + exist + "[/IS_EXIST]" + + "[/CHECK_VISIT_DATA]"; + onXml_coaching_data = onXml_coaching_data + coaching_xml; + } + + final String sos_xml = "[DATA]" + onXml_coaching_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "CHECK_VISIT_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 = 65; + data.name = getString(R.string.coaching_visit); + publishProgress(data); + } + + //Counterfeit Product - Country Id - 6 (UAE) + String counterfeit_product_data_xml = "", add_product_data_xml = "", product_exists_xml = "", product_add_xml = ""; + + db.open(); + counterfeitProductExistsGetterSetters = db.getCounterfeitProductExistsAfterData(coverageList.get(i).getStoreId(), null); + if (counterfeitProductExistsGetterSetters.size() > 0) { + + for (int l = 0; l < counterfeitProductExistsGetterSetters.size(); l++) { + + add_product_data_xml = ""; + + counterfeitProductGetterSetters = db.getCounterfeitProductAfterData(counterfeitProductExistsGetterSetters.get(l).get_id(), null); + + for (int i1 = 0; i1 < counterfeitProductGetterSetters.size(); i1++) { + if (!counterfeitProductGetterSetters.get(i1).getCategory_id().equals("0")) { + + product_add_xml = "[PRODUCT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(counterfeitProductGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[SKU_NAME]" + counterfeitProductGetterSetters.get(i1).getSkuName() + "[/SKU_NAME]" + + "[BRAND_ID]" + counterfeitProductGetterSetters.get(i1).getBrandId() + "[/BRAND_ID]" + + "[STOCK]" + counterfeitProductGetterSetters.get(i1).getStock() + "[/STOCK]" + + "[IMAGE]" + counterfeitProductGetterSetters.get(i1).getImgStr() + "[/IMAGE]" + + "[IMAGE1]" + counterfeitProductGetterSetters.get(i1).getImgStr1() + "[/IMAGE1]" + + "[IMAGE2]" + counterfeitProductGetterSetters.get(i1).getImgStr2() + "[/IMAGE2]" + + "[/PRODUCT_DATA]"; + + add_product_data_xml = add_product_data_xml + product_add_xml; + } + } + + int exists = 0; + if (counterfeitProductExistsGetterSetters.get(l).isExists()) { + exists = 1; + } + + product_exists_xml = "[COUNTERFEIT_PRODUCT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(counterfeitProductExistsGetterSetters.get(l).getCategory_id()) + "[/CATEGORY_ID]" + + "[IS_EXISTS]" + exists + "[/IS_EXISTS]" + + "[COUNTERFEIT_DATA]" + add_product_data_xml + "[/COUNTERFEIT_DATA]" + + "[/COUNTERFEIT_PRODUCT_DATA]"; + + counterfeit_product_data_xml = counterfeit_product_data_xml + product_exists_xml; + + } + + final String sos_xml = "[DATA]" + counterfeit_product_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "COUNTERFEIT_PRODUCT_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; + }*/ + } + + 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); + + + String order_taking_xml = ""; + String _onxml = ""; + String categoryxml = ""; + db.open(); + ArrayList ordertakingdata = db.getOrder_TAKING_UploadServerData(coverageList.get(i).getStoreId()); + db.open(); + ArrayList getOrder_TAKING_CategoryData = db.getOrder_TAKING_CategoryData(coverageList.get(i).getStoreId()); + + if (ordertakingdata.size() > 0) { + for (int k = 0; k < getOrder_TAKING_CategoryData.size(); k++) { + _onxml = "[CATEGORY_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[PRESENT]" + getOrder_TAKING_CategoryData.get(k).getIsExist() + "[/PRESENT]" + + "[CATEGORY_ID]" + getOrder_TAKING_CategoryData.get(k).getCategory_id() + "[/CATEGORY_ID]" + + "[/CATEGORY_DATA]"; + categoryxml = categoryxml + _onxml; + } + + String cat_xml = categoryxml; + for (int j = 0; j < ordertakingdata.size(); j++) { + if (ordertakingdata.get(j).getIsExist() == 1) { + if (!ordertakingdata.get(j).getFacing().equals("0") && + !ordertakingdata.get(j).getFacing().equals("")) { + onXML = "[ORDER_TAKING]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[CATEGORY_ID]" + ordertakingdata.get(j).getCategory_id() + "[/CATEGORY_ID]" + + "[SYSTEM_PO_NUM]" + ordertakingdata.get(j).getSys_PO_No() + "[/SYSTEM_PO_NUM]" + + "[STORE_PO_NUM]" + ordertakingdata.get(j).getStore_PO_No() + "[/STORE_PO_NUM]" + + "[PO_DATE]" + ordertakingdata.get(j).getPO_Date() + "[/PO_DATE]" + + "[BRAND_ID]" + ordertakingdata.get(j).getBrand_id() + "[/BRAND_ID]" + + "[SKU_ID]" + ordertakingdata.get(j).getSku_id() + "[/SKU_ID]" + + "[ORDER_QTY]" + ordertakingdata.get(j).getFacing() + "[/ORDER_QTY]" + + "[PO_IMAGE]" + ordertakingdata.get(j).getPO_Img() + "[/PO_IMAGE]" + + "[/ORDER_TAKING]"; + order_taking_xml = order_taking_xml + onXML; + } + } + } + String data_xml = cat_xml + order_taking_xml; + + final String sos_xml = "[DATA]" + data_xml + "[/DATA]"; + Log.e("order_xml_data", sos_xml); + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ORDER_TAKING_NEW_XML"); + 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; + }*/ + } + + data.value = 69; + data.name = getString(R.string.order_taking_data_uploading); + publishProgress(data); + + + String order_received_xml = ""; + onXML = ""; + + ArrayList orderreceiveddata = db.getOrder_RECEIVED_UploadServerData(coverageList.get(i).getStoreId()); + + if (orderreceiveddata.size() > 0) { + for (int j = 0; j < orderreceiveddata.size(); j++) { + onXML = "[ORDER_CONFIRM]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[CATEGORY_ID]" + orderreceiveddata.get(j).getCategory_id() + "[/CATEGORY_ID]" + + "[SYSTEM_PO_NUM]" + orderreceiveddata.get(j).getSys_PO_No() + "[/SYSTEM_PO_NUM]" + + "[STORE_PO_NUM]" + orderreceiveddata.get(j).getStore_PO_No() + "[/STORE_PO_NUM]" + + "[PO_DATE]" + orderreceiveddata.get(j).getPO_Date() + "[/PO_DATE]" + + "[BRAND_ID]" + orderreceiveddata.get(j).getBrand_id() + "[/BRAND_ID]" + + "[SKU_ID]" + orderreceiveddata.get(j).getSku_id() + "[/SKU_ID]" + + "[PO_QTY]" + orderreceiveddata.get(j).getOrderqty() + "[/PO_QTY]" + + "[ACTUAL_QTY]" + orderreceiveddata.get(j).getFacing() + "[/ACTUAL_QTY]" + + "[/ORDER_CONFIRM]"; + + order_received_xml = order_received_xml + onXML; + } + + final String sos_xml = "[DATA]" + order_received_xml + "[/DATA]"; + Log.e("order_xml_data", sos_xml); + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ORDER_RECEIVED_STATUS_XML"); + 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; + }*/ + } + + data.value = 70; + data.name = getString(R.string.order_received_data_uploading); + publishProgress(data); + + + ////IRPD-Upload Data + String irPD_xmlData = ""; + onXML = ""; + ArrayList irdata = db.getIrPDforUpload(coverageList.get(i).getStoreId(), coverageList.get(i).getVisitDate()); + if (irdata != null && !irdata.isEmpty()) { + for (int j = 0; j < irdata.size(); j++) { + onXML = "[IR_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[CATEGORY_ID]" + irdata.get(j).getCategoryId() + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + irdata.get(j).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[SUB_CATEGORY_CODE]" + irdata.get(j).getSubCatCode() + "[/SUB_CATEGORY_CODE]" + + "[IR_IMAGES]" + irdata.get(j).getSubCategoryCamera2() + "[/IR_IMAGES]" + + "[/IR_DATA]"; + + irPD_xmlData = irPD_xmlData + onXML; + } + + final String irpd_xml = "[DATA]" + irPD_xmlData + "[/DATA]"; + Log.e("irp_xml_data", irpd_xml); + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", irpd_xml); + request.addProperty("KEYS", "IR_DATA_XML"); + 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 = 71; + data.name = getString(R.string.ir_data_upload); + publishProgress(data); + + String visit_xml = ""; + onXML = ""; + ArrayList visittypelist = db.getUploadedVisitType(coverageList.get(i).getStoreId()); + + if (visittypelist.size() > 0) { + for (int j = 0; j < visittypelist.size(); j++) { + onXML = "[VISIT_TYPE_STATUS]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[STORE_ID]" + coverageList.get(i).getStoreId() + "[/STORE_ID]" + + "[VISIT_TYPE_ID]" + visittypelist.get(j).getVISIT_TYPE_ID().get(0) + "[/VISIT_TYPE_ID]" + + "[/VISIT_TYPE_STATUS]"; + + visit_xml = visit_xml + onXML; + } + final String sos_xml = "[DATA]" + visit_xml + "[/DATA]"; + Log.e("visit_xml_data", sos_xml); + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "VISIT_TYPE_XML"); + 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; + } + } + data.value = 72; + data.name = getString(R.string.visit_type_data_uploading); + publishProgress(data); + } + + + // SET COVERAGE STATUS + String final_xml = ""; + onXML = ""; + onXML = "[COVERAGE_STATUS]" + + "[STORE_ID]" + coverageList.get(i).getStoreId() + "[/STORE_ID]" + + "[VISIT_DATE]" + coverageList.get(i).getVisitDate() + "[/VISIT_DATE]" + + "[USER_ID]" + coverageList.get(i).getUserId() + "[/USER_ID]" + + "[STATUS]" + CommonString.KEY_D + "[/STATUS]" + + "[/COVERAGE_STATUS]"; + + final_xml = final_xml + onXML; + + final String sos_xml = "[DATA]" + final_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, status_service); + request.addProperty("onXML", sos_xml); + + envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + status_service, envelope); + + result = envelope.getResponse(); + + //to set previous date for further use in UploadImageWithRetrofit + date = coverageList.get(i).getVisitDate(); + + //If Result is success then status of that store is update + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + k = k + factor; + data.value = k; + data.name = "Uploading"; + publishProgress(data); + + db.open(); + //db.updateCoverageStatus(coverageList.get(i).getStoreId(), CommonString.KEY_D); + db.updateStoreStatusOnLeave(coverageList.get(i).getStoreId(), coverageList.get(i) + .getVisitDate(), CommonString.KEY_D, coverageList.get(i).getFlag_from()); + + //db.deleteTableWithStoreID(coverageList.get(i).getStoreId()); + } + + data.value = 100; + publishProgress(data); + } + } + } + return CommonString.KEY_SUCCESS; + + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (XmlPullParserException e) { + //Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } catch (Exception e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + //Crashlytics.logException(e.getCause()); + //Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + + return ""; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + + /*dialog.dismiss(); + db.deleteAllTables(); + if (result.equals("")) { + showAlert(getString(R.string.menu_upload_data)); + }*/ + + dialog.dismiss(); + + if (result.contains(CommonString.KEY_SUCCESS)) { + //db.deleteAllTables(); + File f = new File(CommonString.getImagesFolder(context)); + File file[] = f.listFiles(); + UploadImageWithRetrofit.uploadedFiles = 0; + UploadImageWithRetrofit.totalFiles = file.length; + UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit(date, userId, PreviousDataUploadActivity.this); + uploadImg.UploadImageRecursiveNew(PreviousDataUploadActivity.this); + } else { + showAlert(getString(R.string.error) + result.toString()); + } + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + } + + + public void showAlert(String str) { + + AlertDialog.Builder builder = new AlertDialog.Builder(PreviousDataUploadActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + /* Intent i = new Intent(activity, StorelistActivity.class); + activity.startActivity(i); + activity.finish();*/ + finish(); + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java new file mode 100644 index 0000000..23121ad --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java @@ -0,0 +1,2012 @@ +package cpm.com.gskmtorange.upload; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Matrix; +import android.graphics.RectF; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.WindowManager; +import android.widget.ProgressBar; +import android.widget.TextView; + +//import com.crashlytics.android.Crashlytics; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import com.google.gson.JsonSyntaxException; +import com.squareup.okhttp.MultipartBuilder; +import com.squareup.okhttp.RequestBody; + +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.net.SocketException; +import java.net.SocketTimeoutException; +import java.util.ArrayList; +import java.util.concurrent.TimeUnit; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.AdditionalDialogGetterSetter; +import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter; +import cpm.com.gskmtorange.GetterSetter.BrandAvabilityGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CategoryPictureGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CoachingVisitGetterSetter; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonFunctions; +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; +import cpm.com.gskmtorange.xmlGetterSetter.ImageGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.POGGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaMSLInsertedGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PharmaSOSGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PromoComplianceSkuwiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Promo_Compliance_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Stock_FacingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Store_wise_camera_DataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.T2PGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; +import cpm.com.gskmtorange.xmlHandlers.FailureXMLHandler; +import retrofit.Retrofit; + +public class UploadActivity extends AppCompatActivity { + private Context context; + GSKOrangeDB db; + ArrayList coverageList; + String date, userId, app_version; + StoreBean storeData; + String datacheck = ""; + String[] words; + String validity; + int mid; + String errormsg = "", Path; + Data data; + ArrayList msl_availabilityList; + ArrayList stock_facingHeaderList, stock_facingChildList; + ArrayList promotionSkuList, additionalPromotionList; + ArrayList t2PGetterSetters; + ArrayList additionalVisibilityList; + ArrayList additionalVisibilitySkuList; + ArrayList msl_availabilityStockFacingList; + ArrayList coachingVisitData; + + private Dialog dialog; + private ProgressBar pb; + private TextView percentage, message; + private FailureGetterSetter failureGetterSetter = null; + private SharedPreferences preferences; + private int factor, k = 0; + Object result = ""; + Toolbar toolbar; + ArrayList adddata = new ArrayList(); + ArrayList listdat = new ArrayList<>(); + ArrayList stockFacingPlanogramDataList; + + ArrayList storeWiseCameraDataGetterSetters; + ArrayList promoComplianceSkuwiseGetterSetters, promoComplianceSkuwiseExistsGetterSetters; + ArrayList counterfeitProductGetterSetters, counterfeitProductExistsGetterSetters; + ArrayList competitonGetterSetters, competitonExistsGetterSetters; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + toolbar = (Toolbar) findViewById(R.id.toolbar); + context = this; + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + preferences = PreferenceManager.getDefaultSharedPreferences(this); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + date = preferences.getString(CommonString.KEY_DATE, null); + userId = preferences.getString(CommonString.KEY_USERNAME, null); + app_version = preferences.getString(CommonString.KEY_VERSION, null); + db = new GSKOrangeDB(this); + db.open(); + + Path = CommonString.getImagesFolder(context); + + //start upload + new UploadTask(this).execute(); + } + + class Data { + int value; + String name; + } + + private class UploadTask extends AsyncTask { + private Context context; + + UploadTask(Context context) { + this.context = context; + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + dialog = new Dialog(context); + dialog.setContentView(R.layout.custom); + dialog.setTitle(getString(R.string.uploaddata)); + dialog.setCancelable(false); + dialog.show(); + + pb = (ProgressBar) dialog.findViewById(R.id.progressBar1); + percentage = (TextView) dialog.findViewById(R.id.percentage); + message = (TextView) dialog.findViewById(R.id.message); + ((TextView) dialog.findViewById(R.id.tv_title)).setText(getString(R.string.uploaddata)); + + } + + @Override + protected void onProgressUpdate(Data... values) { + // TODO Auto-generated method stub + + pb.setProgress(values[0].value); + percentage.setText(values[0].value + "%"); + message.setText(values[0].name); + } + + @Override + protected String doInBackground(Void... params) { + try { + data = new Data(); + ArrayList adhoc_coverageList = db.getCoverageData(date, CommonString.FROM_DEVIATION); + if (adhoc_coverageList.size() > 0) { + for (int i = 0; i < adhoc_coverageList.size(); i++) { + String onXML = "[ADHOC_JCP]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[VISIT_DATE]" + adhoc_coverageList.get(i).getVisitDate() + "[/VISIT_DATE]" + + "[STORE_CD]" + adhoc_coverageList.get(i).getStoreId() + "[/STORE_CD]" + + "[/ADHOC_JCP]"; + + final String adhoc_xml = "[DATA]" + onXML + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", adhoc_xml); + request.addProperty("KEYS", "ADHOC_JOURNEY_PLAN"); + request.addProperty("USERNAME", userId); + request.addProperty("MID", 0); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_STOCK_XML_DATA, envelope); + + result = envelope.getResponse(); + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + } + } + + ArrayList additional_adhoc_coverageList = db.getCoverageData(date, CommonString.FROM_ADDITIONAL_ADHOC); + + if (additional_adhoc_coverageList.size() > 0) { + for (int i = 0; i < additional_adhoc_coverageList.size(); i++) { + String onXML = "[ADDITIONAL_ADHOC_JCP]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[VISIT_DATE]" + additional_adhoc_coverageList.get(i).getVisitDate() + "[/VISIT_DATE]" + + "[STORE_CD]" + additional_adhoc_coverageList.get(i).getStoreId() + "[/STORE_CD]" + + "[/ADDITIONAL_ADHOC_JCP]"; + + final String adhoc_xml = "[DATA]" + onXML + "[/DATA]"; + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", adhoc_xml); + request.addProperty("KEYS", "ADDITIONAL_ADHOC_JOURNEY_PLAN"); + request.addProperty("USERNAME", userId); + request.addProperty("MID", 0); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_STOCK_XML_DATA, envelope); + + result = envelope.getResponse(); + if (!result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + return CommonString.METHOD_UPLOAD_STOCK_XML_DATA; + } + } + } + + coverageList = db.getCoverageData(date, null); + + if (coverageList.size() > 0) { + if (coverageList.size() == 1) { + factor = 50; + } else { + factor = 100 / (coverageList.size()); + } + } + + for (int i = 0; i < coverageList.size(); i++) { + + storeData = db.getSpecificStoreData(date, coverageList.get(i).getStoreId(), coverageList.get(i).getFlag_from()); + if (storeData.getSTORE_ID() != null) { + + if (!storeData.getUPLOAD_STATUS().equals(CommonString.KEY_D) && (storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_Y) || + storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_L) || + !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U) || + !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_UN))) { + + String camera_allow = storeData.getCAMERA_ALLOW(); + String adhoc; + if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_DEVIATION)) { + adhoc = "1"; + } else { + adhoc = "0"; + } + + String coverage_service, status_service; + + if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_ADDITIONAL) || coverageList.get(i).getFlag_from().equals(CommonString.FROM_ADDITIONAL_ADHOC)) { + + status_service = CommonString.METHOD_UPLOAD_COVERAGE_STATUS_ADDITIONAL; + coverage_service = CommonString.METHOD_UPLOAD_COVERAGE_NEW_ADDITIONAL; + } else if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_PHARMA)) { + + status_service = CommonString.METHOD_UPLOAD_COVERAGE_STATUS_PHARMA; + coverage_service = CommonString.METHOD_UPLOAD_COVERAGE_NEW_PHARMA; + } else { + + status_service = CommonString.METHOD_UPLOAD_COVERAGE_STATUS; + coverage_service = CommonString.METHOD_UPLOAD_COVERAGE_NEW; + } + + String sub_reason_id = coverageList.get(i).getSub_reasonId(); + if (sub_reason_id.equals("")) { + sub_reason_id = "0"; + } + + String onXML = "[DATA]" + + "[USER_DATA]" + + "[STORE_CD]" + coverageList.get(i).getStoreId() + "[/STORE_CD]" + + "[VISIT_DATE]" + coverageList.get(i).getVisitDate() + "[/VISIT_DATE]" + + "[LATITUDE]" + coverageList.get(i).getLatitude() + "[/LATITUDE]" + + "[APP_VERSION]" + app_version + "[/APP_VERSION]" + + "[LONGITUDE]" + coverageList.get(i).getLongitude() + "[/LONGITUDE]" + + "[IN_TIME]" + coverageList.get(i).getInTime() + "[/IN_TIME]" + + "[OUT_TIME]" + coverageList.get(i).getOutTime() + "[/OUT_TIME]" + + "[UPLOAD_STATUS]" + "N" + "[/UPLOAD_STATUS]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[IMAGE_URL]" + coverageList.get(i).getImage() + "[/IMAGE_URL]" + + "[REASON_ID]" + coverageList.get(i).getReasonid() + "[/REASON_ID]" + + "[REASON_REMARK]" + coverageList.get(i).getRemark() + "[/REASON_REMARK]" + + "[CAMERA_ALLOWED]" + camera_allow + "[/CAMERA_ALLOWED]" + + "[CHECKOUT_IMAGE]" + coverageList.get(i).getCheckOut_Image() + "[/CHECKOUT_IMAGE]" + + "[ADHOC]" + adhoc + "[/ADHOC]" + + "[SUBREASONID]" + sub_reason_id + "[/SUBREASONID]" + + "[/USER_DATA]" + + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, coverage_service); + request.addProperty("onXML", onXML); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + coverage_service, envelope); + + result = envelope.getResponse(); + + datacheck = result.toString(); + words = datacheck.split("\\;"); + validity = (words[0]); + + if (validity.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + db.updateCoverageStatus(coverageList.get(i).getStoreId(), CommonString.KEY_P); + + db.updateStoreStatusOnLeave(coverageList.get(i).getStoreId(), date, CommonString.KEY_P, coverageList.get(i).getFlag_from()); + } else { + continue; + //return CommonString.METHOD_UPLOAD_COVERAGE; + } + + mid = Integer.parseInt((words[1])); + if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_ADDITIONAL)) { + //MSL_Availability_StockFacing + String mslAvailability_stockFacing_xml = ""; + onXML = ""; + db.open(); + msl_availabilityStockFacingList = db.getStockUploadServerData(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")) { + String stock; + if (!msl_availabilityStockFacingList.get(j).getStock().equals("")) { + stock = msl_availabilityStockFacingList.get(j).getStock(); + } else { + stock = "0"; + } + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[SKUID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SKUID]" + + "[STK]" + Integer.parseInt(stock) + "[/STK]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[MSL]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/MSL]" + + "[/ST]"; + + 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", "STOCK_ADDITIONAL_STORE"); + 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 = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + //usk additional store + //Coaching visit data + db.open(); + coachingVisitData = db.getCoachingVisitData(coverageList.get(i).getStoreId()); + + if (coachingVisitData.size() > 0) { + + String onXml_coaching_data = "", coaching_xml = ""; + for (int j = 0; j < coachingVisitData.size(); j++) { + + String exist; + + if (coachingVisitData.get(j).isExists()) { + exist = "1"; + } else { + exist = "0"; + } + + coaching_xml = "[COACHING_VISIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[EMP_ID]" + coachingVisitData.get(j).getEmp_id() + "[/EMP_ID]" + + "[IMAGE]" + coachingVisitData.get(j).getImg_path() + "[/IMAGE]" + + "[IS_EXIST]" + exist + "[/IS_EXIST]" + + "[/COACHING_VISIT_DATA]"; + onXml_coaching_data = onXml_coaching_data + coaching_xml; + } + + final String sos_xml = "[DATA]" + onXml_coaching_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "COACHING_VISIT_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 = 64; + data.name = getString(R.string.coaching_visit); + publishProgress(data); + } + //Coaching check visit data + db.open(); + coachingVisitData = db.getCoachingVisitStoreData(coverageList.get(i).getStoreId()); + + if (coachingVisitData.size() > 0) { + String onXml_coaching_data = "", coaching_xml = ""; + for (int j = 0; j < coachingVisitData.size(); j++) { + String exist; + if (coachingVisitData.get(j).isExists()) { + exist = "1"; + } else { + exist = "0"; + } + + coaching_xml = "[CHECK_VISIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[EMP_ID]" + coachingVisitData.get(j).getEmp_id() + "[/EMP_ID]" + + "[IMAGE]" + coachingVisitData.get(j).getImg_path() + "[/IMAGE]" + + "[IS_EXIST]" + exist + "[/IS_EXIST]" + + "[/CHECK_VISIT_DATA]"; + onXml_coaching_data = onXml_coaching_data + coaching_xml; + } + + final String sos_xml = "[DATA]" + onXml_coaching_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "CHECK_VISIT_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 = 65; + data.name = getString(R.string.coaching_visit); + publishProgress(data); + } + + + //end usk + } else if (coverageList.get(i).getFlag_from().equals(CommonString.FROM_PHARMA)) { + + //Pharmacy store data + + //Store detail + String store_detail_xml = ""; + onXML = ""; + db.open(); + ImageGetterSetter imageGetterSetter = db.getStoreDetailPharmaImageInsertedData(coverageList.get(i).getStoreId()); + String image_xml = ""; + + image_xml = "[IMG_L]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[IMG1]" + imageGetterSetter.getImage1() + "[/IMG1]" + + "[IMG2]" + imageGetterSetter.getImage2() + "[/IMG2]" + + "[IMG3]" + imageGetterSetter.getImage3() + "[/IMG3]" + + "[IMG4]" + imageGetterSetter.getImage4() + "[/IMG4]" + + "[/IMG_L]"; + ArrayList pharmaStoreDetail = db.getStoreDetailPharmaAnswerInsertedData(coverageList.get(i).getStoreId(), null); + + if (pharmaStoreDetail.size() > 0) { + for (int j = 0; j < pharmaStoreDetail.size(); j++) { + + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[QID]" + Integer.parseInt(pharmaStoreDetail.get(j).getQUESTION_ID().get(0)) + "[/QID]" + + "[BID]" + Integer.parseInt(pharmaStoreDetail.get(j).getBRAND_ID().get(0)) + "[/BID]" + + "[SCID]" + Integer.parseInt(pharmaStoreDetail.get(j).getSUB_CATEGORY_ID().get(0)) + "[/SCID]" + + "[PRESENT]" + pharmaStoreDetail.get(j).getIsChecked() + "[/PRESENT]" + + "[IMG]" + pharmaStoreDetail.get(j).getImgPath() + "[/IMG]" + + + "[/ST]"; + + store_detail_xml = store_detail_xml + onXML; + } + + final String sos_xml = "[DATA]" + image_xml + store_detail_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PHARMA_STORE_DETAIL"); + 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; + }*/ + } + + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + String pharma_sos_xml = ""; + onXML = ""; + + ArrayList pharmaSOSList = db.getStoreDetailPharmaForSOSData(coverageList.get(i).getStoreId(), "1"); + + if (pharmaSOSList.size() > 0) { + for (int j = 0; j < pharmaSOSList.size(); j++) { + + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[QID]" + Integer.parseInt(pharmaSOSList.get(j).getQUESTION_ID()) + "[/QID]" + + "[BID]" + Integer.parseInt(pharmaSOSList.get(j).getBRAND_ID()) + "[/BID]" + + "[SCID]" + Integer.parseInt(pharmaSOSList.get(j).getSUB_CATEGORY_ID()) + "[/SCID]" + + "[G_FAC]" + pharmaSOSList.get(j).getGskFacing() + "[/G_FAC]" + + "[C_FAC]" + pharmaSOSList.get(j).getCompetitorFacing() + "[/C_FAC]" + + "[/ST]"; + + pharma_sos_xml = pharma_sos_xml + onXML; + } + + final String sos_xml = "[DATA]" + pharma_sos_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PHARMA_SOS"); + 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; + }*/ + } + + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + String pharma_msl_xml = ""; + onXML = ""; + + ArrayList pharmaMSLList = db.getPharmaMSLInsertedData(coverageList.get(i).getStoreId()); + + if (pharmaMSLList.size() > 0) { + for (int j = 0; j < pharmaMSLList.size(); j++) { + + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[BID]" + Integer.parseInt(pharmaMSLList.get(j).getBrandId()) + "[/BID]" + + "[SKID]" + Integer.parseInt(pharmaMSLList.get(j).getSkuId()) + "[/SKID]" + + "[PRESENT]" + pharmaMSLList.get(j).getPresent() + "[/PRESENT]" + + "[/ST]"; + + pharma_msl_xml = pharma_msl_xml + onXML; + } + + final String sos_xml = "[DATA]" + pharma_msl_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PHARMA_MSL"); + 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; + }*/ + } + + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + } else { + //MSL_Availability_StockFacing + String mslAvailability_stockFacing_xml = ""; + onXML = ""; + db.open(); + msl_availabilityStockFacingList = db.getMSL_Availability_StockFacing_UploadServerDataNew(coverageList.get(i) + .getStoreId(), coverageList.get(i).getVisitDate(), + coverageList.get(i).getKeyAccountId(), + coverageList.get(i).getStoreTypeId(), + coverageList.get(i).getClassId(), + coverageList.get(i).getMappingStk()); + + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + + String stock, pricing; + if (!msl_availabilityStockFacingList.get(j).getStock().equals("")) { + stock = msl_availabilityStockFacingList.get(j).getStock(); + } else { + stock = "0"; + } + if (!msl_availabilityStockFacingList.get(j).getPricingStock().equals("")) { + pricing = msl_availabilityStockFacingList.get(j).getPricingStock(); + } else { + pricing = "-1"; + } + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + //+ "[USERID]" + userId + "[/USERID]" + + "[SID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SID]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[AVL]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getToggleValue()) + "[/AVL]" + + "[FC]" + Double.parseDouble(msl_availabilityStockFacingList.get(j).getFacing()) + "[/FC]" + + "[SK]" + Integer.parseInt(stock) + "[/SK]" + + "[PRICING]" + Double.parseDouble(pricing) + "[/PRICING]" + // + "[PRICING]" + Integer.parseInt(pricing) + "[/PRICING]" + + "[ML]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/ML]" + + "[/ST]"; + + mslAvailability_stockFacing_xml = mslAvailability_stockFacing_xml + onXML; + } + } + + final String sos_xml = "[DATA]" + mslAvailability_stockFacing_xml + "[/DATA]"; + Log.d("MSL_DATA", sos_xml); + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "STOCK_AVAILABILITY_WITH_PRICING"); + 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; + }*/ + } + data.value = 15; + data.name = getString(R.string.availability_data_uploading); + publishProgress(data); + + + //MSL_Availability_StockFacing + String msl_availabilityStockEntryXml = ""; + onXML = ""; + db.open(); + msl_availabilityStockFacingList = db.getStock_Entry_UploadServerDataNew(coverageList.get(i) + .getStoreId(), coverageList.get(i).getVisitDate(), + coverageList.get(i).getKeyAccountId(), + coverageList.get(i).getStoreTypeId(), + coverageList.get(i).getClassId(), + coverageList.get(i).getMappingStk()); + + if (msl_availabilityStockFacingList.size() > 0) { + for (int j = 0; j < msl_availabilityStockFacingList.size(); j++) { + if (!msl_availabilityStockFacingList.get(j).getSku_id().equals("0")) { + String posm_stock, warehouse_stock; + if (!msl_availabilityStockFacingList.get(j).getPosmStock().equals("")) { + posm_stock = msl_availabilityStockFacingList.get(j).getPosmStock(); + } else { + posm_stock = "0"; + } + if (!msl_availabilityStockFacingList.get(j).getWarehouseStock().equals("")) { + warehouse_stock = msl_availabilityStockFacingList.get(j).getWarehouseStock(); + } else { + warehouse_stock = "0"; + } + onXML = "[ST]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[SID]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getSku_id()) + "[/SID]" + + "[POSM_STOCK]" + Integer.parseInt(posm_stock) + "[/POSM_STOCK]" + + "[WAREHOUSE_STOCK]" + Integer.parseInt(warehouse_stock) + "[/WAREHOUSE_STOCK]" + + "[MBQ]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMbq()) + "[/MBQ]" + + "[ML]" + Integer.parseInt(msl_availabilityStockFacingList.get(j).getMust_have()) + "[/ML]" + + "[/ST]"; + + msl_availabilityStockEntryXml = msl_availabilityStockEntryXml + onXML; + } + } + final String sos_xml = "[DATA]" + msl_availabilityStockEntryXml + "[/DATA]"; + Log.d("STOCK_ENTRY_DATA", sos_xml); + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "STOCK_ENTRY"); + 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; + }*/ + } + data.value = 16; + data.name = getString(R.string.stock_entry_data_uploading); + publishProgress(data); + + + //Promo Compliance - Promotion Data + String promoition_data_xml = ""; + onXML = ""; + db.open(); + promotionSkuList = db.getPromoComplianceSkuServerUploadData(coverageList.get(i).getStoreId()); + + if (promotionSkuList.size() > 0) { + for (int i1 = 0; i1 < promotionSkuList.size(); i1++) { + if (!promotionSkuList.get(i1).getCategory_id().equals("0")) { + + onXML = "[PROMOTION_DATA_NEW]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promotionSkuList.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[PROMO_ID]" + Integer.parseInt(promotionSkuList.get(i1).getPromo_id()) + "[/PROMO_ID]" + //+ "[SKU]" + promotionSkuList.get(i1).getSku() + "[/SKU]" + + "[SKU_ID]" + Integer.parseInt(promotionSkuList.get(i1).getSku_id()) + "[/SKU_ID]" + + "[IN_STOCK]" + Integer.parseInt(promotionSkuList.get(i1).getIn_stock()) + "[/IN_STOCK]" + + "[PROMO_ANNOUNCER]" + Integer.parseInt(promotionSkuList.get(i1).getPromo_announcer()) + "[/PROMO_ANNOUNCER]" + + "[RUNNING_POS]" + Integer.parseInt(promotionSkuList.get(i1).getRunning_pos()) + "[/RUNNING_POS]" + + "[PROMO_IMAGE]" + promotionSkuList.get(i1).getImage_promotion() + "[/PROMO_IMAGE]" + + "[/PROMOTION_DATA_NEW]"; + + promoition_data_xml = promoition_data_xml + onXML; + } + } + + final String sos_xml = "[DATA]" + promoition_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "PROMOTION_DATA_NEW"); + 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; + }*/ + } + data.value = 30; + data.name = getString(R.string.promo_data_uploading); + publishProgress(data); + + //Promo Compliance - Country Id - 7 (SA) Promotion Data + String promotion_sku_wise_data_xml = "", add_promotion_data_xml = "", exists_xml = "", add_xml = ""; + + db.open(); + promoComplianceSkuwiseExistsGetterSetters = db.getPromoComplianceSkuwiseExistsAfterData(coverageList.get(i).getStoreId(), null); + if (promoComplianceSkuwiseExistsGetterSetters.size() > 0) { + + for (int l = 0; l < promoComplianceSkuwiseExistsGetterSetters.size(); l++) { + + promoComplianceSkuwiseGetterSetters = db.getPromoComplianceSkuwiseAfterData(promoComplianceSkuwiseExistsGetterSetters.get(l).get_id(), null); + + for (int i1 = 0; i1 < promoComplianceSkuwiseGetterSetters.size(); i1++) { + if (!promoComplianceSkuwiseGetterSetters.get(i1).getCategory_id().equals("0")) { + + String discount_val = promoComplianceSkuwiseGetterSetters.get(i1).getDiscount_value(); + if (discount_val.equals("")) { + discount_val = "0"; + } + + add_xml = "[PROMOTION_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getSub_category_id()) + "[/SUB_CATEGORY_ID]" + + "[SKU_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getSku_id()) + "[/SKU_ID]" + + "[BRAND_ID]" + Integer.parseInt(promoComplianceSkuwiseGetterSetters.get(i1).getBrand_id()) + "[/BRAND_ID]" + + "[DISCOUNT_VALUE]" + discount_val + "[/DISCOUNT_VALUE]" + + "[PRICE]" + promoComplianceSkuwiseGetterSetters.get(i1).getPrice() + "[/PRICE]" + + "[PROMO_IMAGE]" + promoComplianceSkuwiseGetterSetters.get(i1).getImg() + "[/PROMO_IMAGE]" + + "[PRICE_FLASHER_AVAILABLE]" + promoComplianceSkuwiseGetterSetters.get(i1).getPrice_flasher() + "[/PRICE_FLASHER_AVAILABLE]" + + "[/PROMOTION_DATA]"; + add_promotion_data_xml = add_promotion_data_xml + add_xml; + } + } + + int exists = 0; + if (promoComplianceSkuwiseExistsGetterSetters.get(l).isExists()) { + exists = 1; + } + + exists_xml = "[ADDITIONAL_PROMOTION_SKUWISE_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(promoComplianceSkuwiseExistsGetterSetters.get(l).getCategory_id()) + "[/CATEGORY_ID]" + + "[IS_EXISTS]" + exists + "[/IS_EXISTS]" + + "[ADDITIONAL_PROMOTION_DATA]" + add_promotion_data_xml + "[/ADDITIONAL_PROMOTION_DATA]" + + "[/ADDITIONAL_PROMOTION_SKUWISE_DATA]"; + + promotion_sku_wise_data_xml = promotion_sku_wise_data_xml + exists_xml; + + } + + final String sos_xml = "[DATA]" + promotion_sku_wise_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ADDITIONAL_PROMOTION_SKUWISE_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; + }*/ + } + + + data.value = 30; + data.name = getString(R.string.promo_data_uploading); + publishProgress(data); + + + //Promo Compliance -Additional Promotion Data + String additional_promoition_data_xml = ""; + onXML = ""; + db.open(); + additionalPromotionList = db.getAdditionalPromotionServerUploadData(coverageList.get(i).getStoreId()); + + if (additionalPromotionList.size() > 0) { + for (int i1 = 0; i1 < additionalPromotionList.size(); i1++) { + if (!additionalPromotionList.get(i1).getCategory_id().equals("0")) { + + onXML = "[ADDITIONAL_PROMOTION_DATA_NEW]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(additionalPromotionList.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[PROMO_ID]" + Integer.parseInt(additionalPromotionList.get(i1).getPromo_id()) + "[/PROMO_ID]" + + "[SKU_ID]" + Integer.parseInt(additionalPromotionList.get(i1).getSku_id()) + "[/SKU_ID]" + //+ "[SKU]" + additionalPromotionList.get(i1).getSku() + "[/SKU]" + + "[IN_STOCK]" + Integer.parseInt(additionalPromotionList.get(i1).getIn_stock()) + "[/IN_STOCK]" + + "[PROMO_ANNOUNCER]" + Integer.parseInt(additionalPromotionList.get(i1).getPromo_announcer()) + "[/PROMO_ANNOUNCER]" + + "[RUNNING_POS]" + Integer.parseInt(additionalPromotionList.get(i1).getRunning_pos()) + "[/RUNNING_POS]" + + "[ADD_PROMO_IMAGE]" + additionalPromotionList.get(i1).getImage_promotion() + "[/ADD_PROMO_IMAGE]" + + "[/ADDITIONAL_PROMOTION_DATA_NEW]"; + + additional_promoition_data_xml = additional_promoition_data_xml + onXML; + } + } + + final String sos_xml = "[DATA]" + additional_promoition_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ADDITIONAL_PROMOTION_DATA_NEW"); + 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; + }*/ + } + data.value = 35; + data.name = getString(R.string.additional_data_uploading); + publishProgress(data); + + + //Additional Visibility Data + String additional_visibility_data_xml = ""; + String additional_visibility_dialog_xml = ""; + onXML = ""; + String onXMLdIALOG = ""; + String imageV1, imageV2, imageV3; + + db.open(); + additionalVisibilityList = db.getAdditionalStockUpload(coverageList.get(i).getStoreId()); + + if (additionalVisibilityList.size() > 0) { + for (int J = 0; J < additionalVisibilityList.size(); J++) { + + if (additionalVisibilityList.get(J).getImage() == null) { + imageV1 = ""; + } else { + imageV1 = additionalVisibilityList.get(J).getImage(); + } + + if (additionalVisibilityList.get(J).getImage2() == null) { + imageV2 = ""; + } else { + imageV2 = additionalVisibilityList.get(J).getImage2(); + } + + if (additionalVisibilityList.get(J).getImage3() == null) { + imageV3 = ""; + } else { + imageV3 = additionalVisibilityList.get(J).getImage3(); + } + + String KeyID = additionalVisibilityList.get(J).getKey_id(); + + additionalVisibilitySkuList = db.getDialogStockUpload(KeyID); + //additionalVisibilitySkuList = additionalVisibilityList.get(J).getSkuDialogList(); + + if (additionalVisibilitySkuList.size() > 0) { + for (int k = 0; k < additionalVisibilitySkuList.size(); k++) { + + onXMLdIALOG = "[VISIBILITY_DAILOG]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + additionalVisibilitySkuList.get(k).getCOMMON_ID() + "[/KEY_ID]" + + "[CATEGORY_ID]" + additionalVisibilitySkuList.get(k).getCategoryId() + "[/CATEGORY_ID]" + + "[SKU_ID]" + additionalVisibilitySkuList.get(k).getSku_id() + "[/SKU_ID]" + + "[QUANTITY]" + additionalVisibilitySkuList.get(k).getQuantity() + "[/QUANTITY]" + + "[/VISIBILITY_DAILOG]"; + + additional_visibility_dialog_xml = additional_visibility_dialog_xml + onXMLdIALOG; + } + } + + onXML = "[ADDITIONAL_VISIBILITY_NEW]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + additionalVisibilityList.get(J).getKey_id() + "[/KEY_ID]" + + "[CATEGORY_ID]" + additionalVisibilityList.get(J).getCategoryId() + "[/CATEGORY_ID]" + + "[ADDITIONAL_DISPLAY]" + additionalVisibilityList.get(J).getBtn_toogle() + "[/ADDITIONAL_DISPLAY]" + //+ "[BRAND_ID]"+ additionalVisibilityList.get(J).getBrand_id()+ "[/BRAND_ID]" + + "[IMAGE_URL]" + imageV1 /*additionalVisibilityList.get(J).getImage()*/ + "[/IMAGE_URL]" + + "[IMAGE_URL1]" + imageV2 /*additionalVisibilityList.get(J).getImage2()*/ + "[/IMAGE_URL1]" + + "[IMAGE_URL2]" + imageV3 /*additionalVisibilityList.get(J).getImage3()*/ + "[/IMAGE_URL2]" + + "[DISPLAY_ID]" + additionalVisibilityList.get(J).getSku_id() + "[/DISPLAY_ID]" + + "[SKU_LIST]" + additional_visibility_dialog_xml + "[/SKU_LIST]" + + "[/ADDITIONAL_VISIBILITY_NEW]"; + //Here getSku_id gives display_id + + additional_visibility_data_xml = additional_visibility_data_xml + onXML; + KeyID = ""; + additionalVisibilitySkuList.clear(); + + additional_visibility_dialog_xml = ""; + } + + final String sos_xml = "[DATA]" + additional_visibility_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ADDITIONAL_VISIBILITY_NEW"); + 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; + }*/ + } + data.value = 45; + data.name = getString(R.string.additional_data_uploading); + publishProgress(data); + + + //T2p Upload Data + String t2p_data_xml = ""; + onXML = ""; + db.open(); + t2PGetterSetters = db.getT2pComplianceData(coverageList.get(i).getStoreId(), null); + + if (t2PGetterSetters.size() > 0) { + for (int i1 = 0; i1 < t2PGetterSetters.size(); i1++) { + + ArrayList gapsList = db.getGapsData(t2PGetterSetters.get(i1).getKey_id()); + ArrayList skuList = db.getT2PSKUData(t2PGetterSetters.get(i1).getKey_id()); + ArrayList brandList = db.getT2BrandData(t2PGetterSetters.get(i1).getKey_id()); + String gaps_xml = ""; + String gaps_child; + + for (int l = 0; l < gapsList.size(); l++) { + String present = ""; + if (gapsList.get(l).isPresent()) { + present = "1"; + } else { + present = "0"; + } + gaps_child = "[GAPS]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CHECK_LIST_ID]" + gapsList.get(l).getChecklist_id() + "[/CHECK_LIST_ID]" + + "[DISPLAY_ID]" + gapsList.get(l).getDisplay_id() + "[/DISPLAY_ID]" + + "[PRESENT]" + present + "[/PRESENT]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[/GAPS]"; + gaps_xml = gaps_xml + gaps_child; + } + + String sku_xml = ""; + String sku_child; + + for (int k = 0; k < skuList.size(); k++) { + sku_child = "[SKU]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[SKU_ID]" + skuList.get(k).getSKU_ID() + "[/SKU_ID]" + + "[BRAND_ID]" + skuList.get(k).getBRAND_ID() + "[/BRAND_ID]" + + "[STOCK]" + skuList.get(k).getSTOCK() + "[/STOCK]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[/SKU]"; + sku_xml = sku_xml + sku_child; + } + + + String brandxml = ""; + String brandchild; + + if (brandList.size() > 0) { + + for (int M = 0; M < brandList.size(); M++) { + brandchild = "[BRAND]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[BRAND_ID]" + brandList.get(M).getBRAND_ID() + "[/BRAND_ID]" + // + "[BRAND]" + brandList.get(M).getBRAND() + "[/BRAND]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[/BRAND]"; + brandxml = brandxml + brandchild; + } + } + + /* String present = ""; + if (t2PGetterSetters.get(i1).isPresent()) { + present = "1"; + } else { + present = "0"; + }*/ + String qty = t2PGetterSetters.get(i1).getQty(); + if (qty.equals("")) { + qty = "0"; + } + + onXML = "[T2P_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[BRAND_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getBrand_id()) + "[/BRAND_ID]" + + "[DISPLAY_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getDisplay_id()) + "[/DISPLAY_ID]" + + "[COMMON_ID]" + Integer.parseInt(t2PGetterSetters.get(i1).getKey_id()) + "[/COMMON_ID]" + + "[IMAGE]" + t2PGetterSetters.get(i1).getImage() + "[/IMAGE]" + + "[IMAGE1]" + t2PGetterSetters.get(i1).getImage1() + "[/IMAGE1]" + + "[IMAGE2]" + t2PGetterSetters.get(i1).getImage2() + "[/IMAGE2]" + + "[PRESENT]" + t2PGetterSetters.get(i1).getPresent() + "[/PRESENT]" + + //Quantity visibility added for UAE 04.07.2019 + + "[Quantity]" + qty + "[/Quantity]" + + //Non t2p reason id added - 21-6-2018 + + "[TREASON_ID]" + t2PGetterSetters.get(i1).getNon_t2p_reason_id() + "[/TREASON_ID]" + + + "[GAPS_DATA]" + gaps_xml + "[/GAPS_DATA]" + + "[SKU_DATA]" + sku_xml + "[/SKU_DATA]" + + "[CATEGORY_FIXTURE]" + t2PGetterSetters.get(i1).getCategory_fixture() + "[/CATEGORY_FIXTURE]" + + "[BRAND_DATA]" + brandxml + "[/BRAND_DATA]" + + "[/T2P_DATA]"; + + t2p_data_xml = t2p_data_xml + onXML; + } + + final String t2p_final_xml = "[DATA]" + t2p_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", t2p_final_xml); + request.addProperty("KEYS", "T2P_DATA_FIXTURE_QUANTITY"); + 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 = 50; + data.name = getString(R.string.t2p_data_uploading); + publishProgress(data); + + + //Stock Facing Planogram Tracker + String stock_facing_planogram_xml = ""; + onXML = ""; + db.open(); + stockFacingPlanogramDataList = db.getStockAndFacingPlanogramServerUploadData(coverageList.get(i).getStoreId()); + + if (stockFacingPlanogramDataList.size() > 0) { + + for (int i1 = 0; i1 < stockFacingPlanogramDataList.size(); i1++) { + onXML = "[STOCK_FACING_PLANOGRAM_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[SKU_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSku_id()) + "[/SKU_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + //+ "[company_id]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getCompany_id()) + "[/company_id]" + //+ "[sub_category_id]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSub_category_id()) + "[/sub_category_id]" + //+ "[BRAND_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getBrand_id()) + "[/BRAND_ID]" + + "[SHELF_ID]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSp_addShelf_id()) + "[/SHELF_ID]" + + "[SHELF_POSITION]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getSp_shelfPosition()) + "[/SHELF_POSITION]" + //+ "[CHECKBOX]" + Integer.parseInt(stockFacingPlanogramDataList.get(i1).getCheckbox_sku()) + "[/CHECKBOX]" + + "[/STOCK_FACING_PLANOGRAM_DATA]"; + + stock_facing_planogram_xml = stock_facing_planogram_xml + onXML; + } + + final String sos_xml = "[DATA]" + stock_facing_planogram_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "STOCK_FACING_PLANOGRAM_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; + }*/ + } + data.value = 55; + data.name = getString(R.string.stock_planogram_data_uploading); + publishProgress(data); + + + //Category Picture Data + String Category_xml = ""; + onXML = ""; + String onCategoryList = ""; + String CategoryLISTDATA = ""; + String image1, image2, image3, image4; + + db.open(); + adddata = db.getCategoryPictureUpload(coverageList.get(i).getStoreId()); + + if (adddata.size() > 0) { + for (int J = 0; J < adddata.size(); J++) { + if (adddata.get(J).getCategoryImage1() == null) { + image1 = ""; + } else { + image1 = adddata.get(J).getCategoryImage1(); + } + + if (adddata.get(J).getCategoryImage2() == null) { + image2 = ""; + } else { + image2 = adddata.get(J).getCategoryImage2(); + } + + if (adddata.get(J).getCategoryImage3() == null) { + image3 = ""; + } else { + image3 = adddata.get(J).getCategoryImage3(); + } + + if (adddata.get(J).getCategoryImage4() == null) { + image4 = ""; + } else { + image4 = adddata.get(J).getCategoryImage4(); + } + + String KeyID = adddata.get(J).getKEY_ID(); + + listdat = db.getCategoryPictureListUploaded(KeyID); + + if (listdat.size() > 0) { + for (int k = 0; k < listdat.size(); k++) { + onCategoryList = "[SUB_CATEGORY_LIST]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + listdat.get(k).getCOMMON_ID() + "[/KEY_ID]" + + "[SUB_CATEGORY_ID]" + listdat.get(k).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[SUB_CategoryImage1]" + listdat.get(k).getSubCategoryCamera1() + "[/SUB_CategoryImage1]" + + "[SUB_CategoryImage2]" + listdat.get(k).getSubCategoryCamera2() + "[/SUB_CategoryImage2]" + + "[/SUB_CATEGORY_LIST]"; + + CategoryLISTDATA = CategoryLISTDATA + onCategoryList; + } + } + + onXML = "[CATEGORY_LIST]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[KEY_ID]" + adddata.get(J).getKEY_ID() + "[/KEY_ID]" + + "[CATEGORY_ID]" + adddata.get(J).getCategoryId() + "[/CATEGORY_ID]" + + "[CAMERA_ALLOW]" + adddata.get(J).getCamera_allow() + "[/CAMERA_ALLOW]" + + "[IMAGE_URL_1]" + image1 /*adddata.get(J).getCategoryImage1()*/ + "[/IMAGE_URL_1]" + + "[IMAGE_URL_2]" + image2 /*adddata.get(J).getCategoryImage2()*/ + "[/IMAGE_URL_2]" + + "[IMAGE_URL_3]" + image3 /*adddata.get(J).getCategoryImage3()*/ + "[/IMAGE_URL_3]" + + "[IMAGE_URL_4]" + image4 /*adddata.get(J).getCategoryImage4()*/ + "[/IMAGE_URL_4]" + + "[SUB_LIST]" + CategoryLISTDATA + "[/SUB_LIST]" + + "[/CATEGORY_LIST]"; + + Category_xml = Category_xml + onXML; + CategoryLISTDATA = ""; + } + + final String sos_xml = "[DATA]" + Category_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "CATEGORY_PICTURE"); + 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(); + } else { + + db.open(); + ArrayList nocamera_data_list = db.getNoCameraCategoryStoreWiseDataInserted(coverageList.get(i).getStoreId()); + + if (nocamera_data_list.size() > 0) { + + String onXml_nodata = "", No_camera_data = ""; + for (int n = 0; n < nocamera_data_list.size(); n++) { + + int vertical; + if (nocamera_data_list.get(n).isVertical()) { + vertical = 1; + } else { + vertical = 0; + } + + onXml_nodata = "[NO_CAMERA_POG_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + nocamera_data_list.get(n).getCATEGORY_ID() + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + nocamera_data_list.get(n).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[SKU_GROUP_ID]" + nocamera_data_list.get(n).getSKUGROUP_ID() + "[/SKU_GROUP_ID]" + + "[ROW_NO]" + nocamera_data_list.get(n).getRow_no() + "[/ROW_NO]" + + "[COLUMN_NO]" + nocamera_data_list.get(n).getColumn_no() + "[/COLUMN_NO]" + + "[FACING]" + nocamera_data_list.get(n).getFacing() + "[/FACING]" + + "[IS_VERTICAL]" + vertical + "[/IS_VERTICAL]" + + "[/NO_CAMERA_POG_DATA]"; + + No_camera_data = No_camera_data + onXml_nodata; + } + + final String sos_xml = "[DATA]" + No_camera_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "NO_CAMERA_POG"); + 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 = 60; + data.name = getString(R.string.additional_data_uploading); + publishProgress(data); + + //Audit data + db.open(); + ArrayList audit_data = db.getAuditDataForUpload(coverageList.get(i).getStoreId()); + + if (audit_data.size() > 0) { + String onXml_audit_data = "", Audit_data = ""; + for (int n = 0; n < audit_data.size(); n++) { + + onXml_audit_data = "[AUDIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + audit_data.get(n).getCATEGORY_ID() + "[/CATEGORY_ID]" + + "[QUESTION_ID]" + audit_data.get(n).getQUESTION_ID() + "[/QUESTION_ID]" + + "[ANSWER_ID]" + audit_data.get(n).getANSWER_ID() + "[/ANSWER_ID]" + + "[ANSWER_IMAGE]" + audit_data.get(n).getCAM_IMAGE() + "[/ANSWER_IMAGE]" + + "[ANSWER_IMAGE2]" + audit_data.get(n).getCAM_IMAGE2() + "[/ANSWER_IMAGE2]" + + "[ANSWER]" + audit_data.get(n).getANSWER() + "[/ANSWER]" + + "[REMARK]" + audit_data.get(n).getTXT_REMARK() + "[/REMARK]" + + "[/AUDIT_DATA]"; + + Audit_data = Audit_data + onXml_audit_data; + } + + final String sos_xml = "[DATA]" + Audit_data + "[/DATA]"; + Log.d("sos_xml_audit", sos_xml); + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "AUDIT_DATA_NEW_REMARK"); + 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 = 62; + data.name = getString(R.string.audit); + publishProgress(data); + + //POG data + db.open(); + ArrayList pog_data = db.getAfterSavePOGForUploadData(coverageList.get(i).getStoreId()); + + if (pog_data.size() > 0) { + + String onXml_pog_data = "", POG_data = ""; + for (int n = 0; n < pog_data.size(); n++) { + + onXml_pog_data = "[POG_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + pog_data.get(n).getCATEGORY_ID() + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + pog_data.get(n).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[QUESTION_ID]" + pog_data.get(n).getQUESTION_ID() + "[/QUESTION_ID]" + + "[ANSWER_ID]" + pog_data.get(n).getANSWER_ID() + "[/ANSWER_ID]" + + "[/POG_DATA]"; + + POG_data = POG_data + onXml_pog_data; + } + + final String sos_xml = "[DATA]" + POG_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "POG_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 = 63; + data.name = getString(R.string.pog); + publishProgress(data); + + //Coaching visit data + db.open(); + coachingVisitData = db.getCoachingVisitData(coverageList.get(i).getStoreId()); + + if (coachingVisitData.size() > 0) { + + String onXml_coaching_data = "", coaching_xml = ""; + for (int j = 0; j < coachingVisitData.size(); j++) { + + String exist; + + if (coachingVisitData.get(j).isExists()) { + exist = "1"; + } else { + exist = "0"; + } + + coaching_xml = "[COACHING_VISIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[EMP_ID]" + coachingVisitData.get(j).getEmp_id() + "[/EMP_ID]" + + "[IMAGE]" + coachingVisitData.get(j).getImg_path() + "[/IMAGE]" + + "[IS_EXIST]" + exist + "[/IS_EXIST]" + + "[/COACHING_VISIT_DATA]"; + onXml_coaching_data = onXml_coaching_data + coaching_xml; + } + + final String sos_xml = "[DATA]" + onXml_coaching_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "COACHING_VISIT_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 = 64; + data.name = getString(R.string.coaching_visit); + publishProgress(data); + } + + //Coaching check visit data + db.open(); + coachingVisitData = db.getCoachingVisitStoreData(coverageList.get(i).getStoreId()); + + if (coachingVisitData.size() > 0) { + + String onXml_coaching_data = "", coaching_xml = ""; + for (int j = 0; j < coachingVisitData.size(); j++) { + + String exist; + + if (coachingVisitData.get(j).isExists()) { + exist = "1"; + } else { + exist = "0"; + } + + coaching_xml = "[CHECK_VISIT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[EMP_ID]" + coachingVisitData.get(j).getEmp_id() + "[/EMP_ID]" + + "[IMAGE]" + coachingVisitData.get(j).getImg_path() + "[/IMAGE]" + + "[IS_EXIST]" + exist + "[/IS_EXIST]" + + "[/CHECK_VISIT_DATA]"; + onXml_coaching_data = onXml_coaching_data + coaching_xml; + } + + final String sos_xml = "[DATA]" + onXml_coaching_data + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "CHECK_VISIT_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 = 65; + data.name = getString(R.string.coaching_visit); + publishProgress(data); + } + + //Counterfeit Product - Country Id - 6 (UAE) + String counterfeit_product_data_xml = "", add_product_data_xml = "", product_exists_xml = "", product_add_xml = ""; + + db.open(); + counterfeitProductExistsGetterSetters = db.getCounterfeitProductExistsAfterData(coverageList.get(i).getStoreId(), null); + if (counterfeitProductExistsGetterSetters.size() > 0) { + + for (int l = 0; l < counterfeitProductExistsGetterSetters.size(); l++) { + + add_product_data_xml = ""; + + counterfeitProductGetterSetters = db.getCounterfeitProductAfterData(counterfeitProductExistsGetterSetters.get(l).get_id(), null); + + for (int i1 = 0; i1 < counterfeitProductGetterSetters.size(); i1++) { + if (!counterfeitProductGetterSetters.get(i1).getCategory_id().equals("0")) { + + product_add_xml = "[PRODUCT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(counterfeitProductGetterSetters.get(i1).getCategory_id()) + "[/CATEGORY_ID]" + + "[SKU_NAME]" + counterfeitProductGetterSetters.get(i1).getSkuName() + "[/SKU_NAME]" + + "[BRAND_ID]" + counterfeitProductGetterSetters.get(i1).getBrandId() + "[/BRAND_ID]" + + "[STOCK]" + counterfeitProductGetterSetters.get(i1).getStock() + "[/STOCK]" + + "[IMAGE]" + counterfeitProductGetterSetters.get(i1).getImgStr() + "[/IMAGE]" + + "[IMAGE1]" + counterfeitProductGetterSetters.get(i1).getImgStr1() + "[/IMAGE1]" + + "[IMAGE2]" + counterfeitProductGetterSetters.get(i1).getImgStr2() + "[/IMAGE2]" + + "[/PRODUCT_DATA]"; + + add_product_data_xml = add_product_data_xml + product_add_xml; + } + } + + int exists = 0; + if (counterfeitProductExistsGetterSetters.get(l).isExists()) { + exists = 1; + } + + product_exists_xml = "[COUNTERFEIT_PRODUCT_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USER_ID]" + userId + "[/USER_ID]" + + "[CATEGORY_ID]" + Integer.parseInt(counterfeitProductExistsGetterSetters.get(l).getCategory_id()) + "[/CATEGORY_ID]" + + "[IS_EXISTS]" + exists + "[/IS_EXISTS]" + + "[COUNTERFEIT_DATA]" + add_product_data_xml + "[/COUNTERFEIT_DATA]" + + "[/COUNTERFEIT_PRODUCT_DATA]"; + + counterfeit_product_data_xml = counterfeit_product_data_xml + product_exists_xml; + + } + + final String sos_xml = "[DATA]" + counterfeit_product_data_xml + "[/DATA]"; + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "COUNTERFEIT_PRODUCT_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; + }*/ + } + + 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); + + + String order_taking_xml = ""; + String _onxml = ""; + String categoryxml = ""; + db.open(); + ArrayList ordertakingdata = db.getOrder_TAKING_UploadServerData(coverageList.get(i).getStoreId()); + db.open(); + ArrayList getOrder_TAKING_CategoryData = db.getOrder_TAKING_CategoryData(coverageList.get(i).getStoreId()); + + if (ordertakingdata.size() > 0) { + for (int k = 0; k < getOrder_TAKING_CategoryData.size(); k++) { + _onxml = "[CATEGORY_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[PRESENT]" + getOrder_TAKING_CategoryData.get(k).getIsExist() + "[/PRESENT]" + + "[CATEGORY_ID]" + getOrder_TAKING_CategoryData.get(k).getCategory_id() + "[/CATEGORY_ID]" + + "[/CATEGORY_DATA]"; + categoryxml = categoryxml + _onxml; + } + + String cat_xml = categoryxml; + for (int j = 0; j < ordertakingdata.size(); j++) { + if (ordertakingdata.get(j).getIsExist() == 1) { + if (!ordertakingdata.get(j).getFacing().equals("0") && + !ordertakingdata.get(j).getFacing().equals("")) { + onXML = "[ORDER_TAKING]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[CATEGORY_ID]" + ordertakingdata.get(j).getCategory_id() + "[/CATEGORY_ID]" + + "[SYSTEM_PO_NUM]" + ordertakingdata.get(j).getSys_PO_No() + "[/SYSTEM_PO_NUM]" + + "[STORE_PO_NUM]" + ordertakingdata.get(j).getStore_PO_No() + "[/STORE_PO_NUM]" + + "[PO_DATE]" + ordertakingdata.get(j).getPO_Date() + "[/PO_DATE]" + + "[BRAND_ID]" + ordertakingdata.get(j).getBrand_id() + "[/BRAND_ID]" + + "[SKU_ID]" + ordertakingdata.get(j).getSku_id() + "[/SKU_ID]" + + "[ORDER_QTY]" + ordertakingdata.get(j).getFacing() + "[/ORDER_QTY]" + + "[PO_IMAGE]" + ordertakingdata.get(j).getPO_Img() + "[/PO_IMAGE]" + + "[/ORDER_TAKING]"; + order_taking_xml = order_taking_xml + onXML; + } + } + } + String data_xml = cat_xml + order_taking_xml; + + final String sos_xml = "[DATA]" + data_xml + "[/DATA]"; + Log.e("order_xml_data", sos_xml); + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ORDER_TAKING_NEW_XML"); + 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; + }*/ + } + + data.value = 69; + data.name = getString(R.string.order_taking_data_uploading); + publishProgress(data); + + String order_received_xml = ""; + onXML = ""; + ArrayList orderreceiveddata = db.getOrder_RECEIVED_UploadServerData(coverageList.get(i).getStoreId()); + if (orderreceiveddata.size() > 0) { + for (int j = 0; j < orderreceiveddata.size(); j++) { + onXML = "[ORDER_CONFIRM]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[CATEGORY_ID]" + orderreceiveddata.get(j).getCategory_id() + "[/CATEGORY_ID]" + + "[PO_DATE]" + orderreceiveddata.get(j).getPO_Date() + "[/PO_DATE]" + + "[POID]" + orderreceiveddata.get(j).getPOID() + "[/POID]" + + "[SKU_ID]" + orderreceiveddata.get(j).getSku_id() + "[/SKU_ID]" + + "[PO_QTY]" + orderreceiveddata.get(j).getOrderqty() + "[/PO_QTY]" + + "[ACTUAL_QTY]" + orderreceiveddata.get(j).getFacing() + "[/ACTUAL_QTY]" + + "[/ORDER_CONFIRM]"; + + order_received_xml = order_received_xml + onXML; + } + + final String sos_xml = "[DATA]" + order_received_xml + "[/DATA]"; + // Log.e("order_xml_data",sos_xml); + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "ORDER_RECEIVED_STATUS_XML"); + 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; + }*/ + } + + data.value = 70; + data.name = getString(R.string.order_received_data_uploading); + publishProgress(data); + + + ////IRPD-Upload Data + String irPD_xmlData = ""; + onXML = ""; + ArrayList irdata = db.getIrPDforUpload(coverageList.get(i).getStoreId(), coverageList.get(i).getVisitDate()); + if (irdata!=null && !irdata.isEmpty()) { + for (int j = 0; j < irdata.size(); j++) { + onXML = "[IR_DATA]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[CATEGORY_ID]" + irdata.get(j).getCategoryId() + "[/CATEGORY_ID]" + + "[SUB_CATEGORY_ID]" + irdata.get(j).getSUB_CATEGORY_ID() + "[/SUB_CATEGORY_ID]" + + "[SUB_CATEGORY_CODE]" + irdata.get(j).getSubCatCode() + "[/SUB_CATEGORY_CODE]" + + "[IR_IMAGES]" + irdata.get(j).getSubCategoryCamera2() + "[/IR_IMAGES]" + + "[/IR_DATA]"; + + irPD_xmlData = irPD_xmlData + onXML; + } + + final String irpd_xml = "[DATA]" + irPD_xmlData + "[/DATA]"; + Log.e("irp_xml_data", irpd_xml); + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + request.addProperty("XMLDATA", irpd_xml); + request.addProperty("KEYS", "IR_DATA_XML"); + 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 = 71; + data.name = getString(R.string.ir_data_upload); + publishProgress(data); + + + String visit_xml = ""; + onXML = ""; + ArrayList visittypelist = db.getUploadedVisitType(coverageList.get(i).getStoreId()); + if (!visittypelist.isEmpty()) { + for (int j = 0; j < visittypelist.size(); j++) { + onXML = "[VISIT_TYPE_STATUS]" + + "[MID]" + mid + "[/MID]" + + "[USERID]" + userId + "[/USERID]" + + "[STORE_ID]" + coverageList.get(i).getStoreId() + "[/STORE_ID]" + + "[VISIT_TYPE_ID]" + visittypelist.get(j).getVISIT_TYPE_ID().get(0) + "[/VISIT_TYPE_ID]" + + "[/VISIT_TYPE_STATUS]"; + + visit_xml = visit_xml + onXML; + } + final String sos_xml = "[DATA]" + visit_xml + "[/DATA]"; + Log.e("visit_xml_data", sos_xml); + + request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA); + + request.addProperty("XMLDATA", sos_xml); + request.addProperty("KEYS", "VISIT_TYPE_XML"); + 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; + } + } + data.value = 72; + data.name = getString(R.string.visit_type_data_uploading); + publishProgress(data); + } + + + // SET COVERAGE STATUS + String final_xml = ""; + onXML = ""; + onXML = "[COVERAGE_STATUS]" + + "[STORE_ID]" + coverageList.get(i).getStoreId() + "[/STORE_ID]" + + "[VISIT_DATE]" + coverageList.get(i).getVisitDate() + "[/VISIT_DATE]" + + "[USER_ID]" + coverageList.get(i).getUserId() + "[/USER_ID]" + + "[STATUS]" + CommonString.KEY_D + "[/STATUS]" + + "[/COVERAGE_STATUS]"; + + final_xml = final_xml + onXML; + + final String sos_xml = "[DATA]" + final_xml + "[/DATA]"; + + + request = new SoapObject(CommonString.NAMESPACE, status_service); + request.addProperty("onXML", sos_xml); + + envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + status_service, envelope); + + result = envelope.getResponse(); + + //If Result is success then status of that store is update + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + k = k + factor; + data.value = k; + data.name = "Uploading"; + publishProgress(data); + + db.open(); + db.updateStoreStatusOnLeave(coverageList.get(i).getStoreId(), coverageList.get(i) + .getVisitDate(), CommonString.KEY_D, coverageList.get(i).getFlag_from()); + + } + data.value = 90; + publishProgress(data); + + } + } + } + + return CommonString.KEY_SUCCESS; + + } catch (Exception e) { + e.fillInStackTrace(); + } + + return ""; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + dialog.dismiss(); + if (result.contains(CommonString.KEY_SUCCESS)) { + File f = new File(CommonString.getImagesFolder(context)); + //if (f != null && f.listFiles().length > 0) { + File file[] = f.listFiles(); + UploadImageWithRetrofit.uploadedFiles = 0; + UploadImageWithRetrofit.totalFiles = file.length; + UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit(date, userId, UploadActivity.this); + uploadImg.UploadImageRecursiveNew(UploadActivity.this); + } else { + showAlert(getString(R.string.error) + result); + } + } + } + + @Override + protected void onResume() { + super.onResume(); + CommonFunctions.updateLangResources(context, preferences.getString(CommonString.KEY_LANGUAGE, "")); + toolbar.setTitle(getString(R.string.title_activity_upload)); + } + + + public void showAlert(String str) { + AlertDialog.Builder builder = new AlertDialog.Builder(UploadActivity.this); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, (dialog, id) -> finish()); + AlertDialog alert = builder.create(); + alert.show(); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java new file mode 100644 index 0000000..f8c7dc1 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java @@ -0,0 +1,706 @@ +package cpm.com.gskmtorange.upload; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Matrix; +import android.graphics.RectF; +import android.os.AsyncTask; +import android.util.Log; + +//import com.crashlytics.android.Crashlytics; +import com.google.gson.JsonSyntaxException; +import com.squareup.okhttp.MediaType; +import com.squareup.okhttp.MultipartBuilder; +import com.squareup.okhttp.OkHttpClient; +import com.squareup.okhttp.Protocol; +import com.squareup.okhttp.RequestBody; + +import org.json.JSONObject; +import org.ksoap2.SoapEnvelope; +import org.ksoap2.serialization.SoapObject; +import org.ksoap2.serialization.SoapSerializationEnvelope; +import org.ksoap2.transport.HttpTransportSE; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.SocketException; +import java.net.SocketTimeoutException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import cpm.com.gskmtorange.Database.GSKOrangeDB; +import cpm.com.gskmtorange.GetterSetter.CoverageBean; +import cpm.com.gskmtorange.GetterSetter.StoreBean; +import cpm.com.gskmtorange.MainActivity; +import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.retrofit.PostApiForFile; +import cpm.com.gskmtorange.retrofit.StringConverterFactory; +import cpm.com.gskmtorange.xmlGetterSetter.JourneyPlanGetterSetter; +import retrofit.GsonConverterFactory; +import retrofit.Retrofit; + +/** + * Created by yadavendras on 4/5/2018. + */ + +public class UploadImageWithRetrofit { + RequestBody body1; + private Retrofit adapter; + int status = 0; + int count = 0; + public static int uploadedFiles = 0; + public static int totalFiles = 0; + boolean isvalid = false, statusUpdated = true; + Context context; + String visitDate, userID, uploadStatus; + int storeId = 0; + GSKOrangeDB db; + ProgressDialog pd; + ArrayList storeList, storeList_deviation, storeListAdditional, storeListPharma; + private int factor, k = 0; + Data data; + + + public UploadImageWithRetrofit(String visitDate, String userId, Context context) { + this.visitDate = visitDate; + this.userID = userId; + this.context = context; + pd = new ProgressDialog(context); + pd.setCancelable(false); + pd.setTitle("Please wait"); + pd.setMessage("Uploading images"); + pd.show(); + } + + public void UploadImageRecursiveNew(final Context context) { + try { + status = 0; + String filename = null, foldername = null; + int totalfiles = 0; + File f = new File(CommonString.getImagesFolder(context)); + File[] file = f.listFiles(); + assert file != null; + count = file.length; + if (file.length > 0) { + filename = ""; + totalfiles = f.listFiles().length; + pd.setMessage(context.getString(R.string.uploaddata) + " - " + context.getString(R.string.image) + " (" + uploadedFiles + "/" + totalFiles + ")"); + for (int i = 0; i < file.length; i++) { + if (new File(CommonString.getImagesFolder(context) + file[i].getName()).exists()) { + if (file[i].getName().contains("SI_") || file[i].getName().contains("CHK_SI_") || file[i].getName().contains("NonWorking")) { + foldername = "StoreImages"; + } else if (file[i].getName().contains("GeoTag")) { + foldername = "GeotagImages"; + } else if (file[i].getName().contains("T2P_Image")) { + foldername = "T2PImages"; + } else if (file[i].getName().contains("AddPromo_Image") || file[i].getName().contains("Additional_Promo_Skuwise_Image")) { + foldername = "AdditionalPromotionImages"; + } else if (file[i].getName().contains("AdditionalImage")) { + foldername = "AdditionalVisibilityImages"; + } else if (file[i].getName().contains("Promo_Image")) { + foldername = "PromotionImages"; + } else if (file[i].getName().contains("CategoryPicture")) { + foldername = "CategoryImages"; + } else if (file[i].getName().contains("AuditAnsPic")) { + foldername = "AuditImages"; + } else if (file[i].getName().contains("CoachingVisit") || file[i].getName().contains("CheckVisit")) { + foldername = "CoachingVisits"; + } else if (file[i].getName().contains("DeliveryCalls")) { + foldername = "DeliveryCallsImages"; + } else if (file[i].getName().contains("CounterfeitProduct")) {//added 15.04.2019 + foldername = "CounterFeitImages"; + } else if (file[i].getName().contains("POImage")) {//added 15.04.2019 + foldername = "POImages"; + } else if (file[i].getName().contains("_IRPDIMG-")) {//added 15.04.2019 + foldername = "IRPD_Image"; + } else { + foldername = "Bulkimages"; + } + + filename = file[i].getName(); + } + + break; + } + + File originalFile = new File(CommonString.getImagesFolder(context) + filename); + File finalFile = saveBitmapToFileSmaller(originalFile); + if (finalFile == null) { + finalFile = originalFile; + } + + OkHttpClient okHttpClient = new OkHttpClient(); + // okHttpClient.setProtocols(Arrays.asList(Protocol.HTTP_1_1)); + okHttpClient.setConnectTimeout(20, TimeUnit.SECONDS); + okHttpClient.setWriteTimeout(20, TimeUnit.SECONDS); + okHttpClient.setReadTimeout(20, TimeUnit.SECONDS); + // MediaType mediaType = MediaType.parse("text/plain"); + + RequestBody photo = RequestBody.create(MediaType.parse("application/octet-stream"), finalFile); + body1 = new MultipartBuilder() + .type(MultipartBuilder.FORM) + .addFormDataPart("file", finalFile.getName(), photo) + .addFormDataPart("FolderName", foldername) + .build(); + + adapter = new Retrofit.Builder() + .baseUrl(CommonString.URL + "/") + .addConverterFactory(new StringConverterFactory()) + .build(); + + PostApiForFile api = adapter.create(PostApiForFile.class); + retrofit.Call call = api.getUploadImage(body1); + File finalFile1 = finalFile; + call.enqueue(new retrofit.Callback() { + @Override + public void onResponse(retrofit.Response response) { + Log.d("responsedata", String.valueOf(response)); + if (response.isSuccess() && response.body().contains("Success")) { + finalFile1.delete(); + status = 1; + uploadedFiles++; + } else { + status = 0; + //uploadedFiles = 0; + } + if (status == 0) { + pd.dismiss(); + if (!((Activity) context).isFinishing()) { + showAlert((Activity) context, context.getString(R.string.DataNot), false); + } + } else { + UploadImageRecursiveNew(context); + } + } + + @Override + public void onFailure(Throwable t) { + if (t instanceof IOException || t instanceof SocketTimeoutException || t instanceof SocketException) { + status = -1; + pd.dismiss(); + Log.e("Errormsg :", t.toString()); + if (!((Activity) context).isFinishing()) { + showAlert((Activity) context, context.getString(R.string.NetworkError), false); + } + } + } + }); + + + } else { + if (totalFiles == uploadedFiles) { + //region Coverage upload status Data + new StatusUpload().execute(); + } + + } + } catch (JsonSyntaxException e) { + e.fillInStackTrace(); + showAlert((Activity) context, "Invalid Json", false); + } catch (Exception e) { + e.fillInStackTrace(); + if (totalFiles == uploadedFiles) { + showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully), true); + } else { + showAlert((Activity) context, CommonString.KEY_FAILURE, false); + } + } + } + + public void UploadDeliveryImageRecursive(final Context context, final ArrayList file_list, final int index) { + try { + final int[] _index = {index}; + status = 0; + String filename = null, foldername = "DeliveryCallsImages"; + + if (_index[0] < file_list.size()) { + filename = file_list.get(_index[0]); + + pd.setMessage(context.getString(R.string.uploaddata) + " - " + context.getString(R.string.image) + " (" + uploadedFiles + "/" + totalFiles + ")"); + + File originalFile = new File(CommonString.getImagesFolder(context) + filename); + File finalFile = saveBitmapToFileSmaller(originalFile); + + if (finalFile == null) { + finalFile = originalFile; + } + + OkHttpClient okHttpClient = new OkHttpClient(); + okHttpClient.setConnectTimeout(20, TimeUnit.SECONDS); + okHttpClient.setWriteTimeout(20, TimeUnit.SECONDS); + okHttpClient.setReadTimeout(20, TimeUnit.SECONDS); + + com.squareup.okhttp.RequestBody photo = com.squareup.okhttp.RequestBody.create(com.squareup.okhttp.MediaType.parse("application/octet-stream"), finalFile); + body1 = new MultipartBuilder() + .type(MultipartBuilder.FORM) + .addFormDataPart("file", finalFile.getName(), photo) + .addFormDataPart("FolderName", foldername) + .build(); + + adapter = new retrofit.Retrofit.Builder() + .baseUrl(CommonString.URL + "/") + .addConverterFactory(new StringConverterFactory()) + .build(); + PostApiForFile api = adapter.create(PostApiForFile.class); + + retrofit.Call call = api.getUploadImage(body1); + File finalFile1 = finalFile; + call.enqueue(new retrofit.Callback() { + @Override + public void onResponse(retrofit.Response response) { + if (response.isSuccess() && response.body().contains("Success")) { + finalFile1.delete(); + status = 1; + uploadedFiles++; + } else { + status = 0; + //uploadedFiles = 0; + } + if (status == 0) { + pd.dismiss(); + if (!((Activity) context).isFinishing()) { + showAlert((Activity) context, context.getString(R.string.DataNot), false); + } + } else { + UploadDeliveryImageRecursive(context, file_list, ++_index[0]); + } + } + + @Override + public void onFailure(Throwable t) { + if (t instanceof IOException || t instanceof SocketTimeoutException || t instanceof SocketException) { + status = -1; + //uploadedFiles = 0; + pd.dismiss(); + // AlertandMessages.showAlert((Activity) context, "Network Error in upload", false); + if (!((Activity) context).isFinishing()) { + showAlert((Activity) context, context.getString(R.string.NetworkError), false); + } + } + } + }); + + + } else { + + pd.dismiss(); + if (totalFiles == uploadedFiles) { + //region Coverage upload status Data + /*db = new GSKOrangeDB(context); + db.open(); + db.updateDeliveryCallsUploadStatus();*/ + //endregion + //pd.cancel(); + //showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully),true); + } + showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully), true); + } + } catch (JsonSyntaxException e) { + e.printStackTrace(); + showAlert((Activity) context, "Invalid Json", false); + } catch (Exception e) { + e.printStackTrace(); + if (totalFiles == uploadedFiles) { + showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully), true); + } else { + showAlert((Activity) context, CommonString.KEY_FAILURE, false); + } + } + + } + + public File saveBitmapToFileSmaller(File file) { + File file2 = file; + try { + int inWidth = 0; + int inHeight = 0; + + InputStream in = new FileInputStream(file2); + // decode image size (decode metadata only, not the whole image) + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeStream(in, null, options); + in.close(); + in = null; + + // save width and height + inWidth = options.outWidth; + inHeight = options.outHeight; + + // decode full image pre-resized + in = new FileInputStream(file2); + options = new BitmapFactory.Options(); + // calc rough re-size (this is no exact resize) + options.inSampleSize = Math.max(inWidth / 1632, inHeight / 1224); + // decode full image + Bitmap roughBitmap = BitmapFactory.decodeStream(in, null, options); + if (roughBitmap == null) { + return null; + } + + // calc exact destination size + Matrix m = new Matrix(); + RectF inRect = new RectF(0, 0, roughBitmap.getWidth(), roughBitmap.getHeight()); + RectF outRect = new RectF(0, 0, 1632, 1224); + m.setRectToRect(inRect, outRect, Matrix.ScaleToFit.CENTER); + float[] values = new float[9]; + m.getValues(values); + // resize bitmap + Bitmap resizedBitmap = Bitmap.createScaledBitmap(roughBitmap, (int) (roughBitmap.getWidth() * values[0]), (int) (roughBitmap.getHeight() * values[4]), true); + // save image + if (resizedBitmap == null) { + return null; + } + FileOutputStream out = new FileOutputStream(file2); + resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 80, out); + + } catch (Exception e) { + Log.e("Image", e.toString(), e); + return file; + } + return file2; + } + + + public void showAlert(final Context context, String str, final boolean flag) { + + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle("Parinaam"); + builder.setMessage(str).setCancelable(false) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + Activity activity = (Activity) context; + if (flag) { + Intent i = new Intent(activity, MainActivity.class); + activity.startActivity(i); + activity.finish(); + + } + + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + public class StatusUpload extends AsyncTask { + + @Override + protected String doInBackground(String... strings) { + + try { + db = new GSKOrangeDB(context); + db.open(); + data = new Data(); + storeList = db.getStoreData(visitDate, CommonString.KEY_JOURNEY_PLAN); + for (int i = 0; i < storeList.size(); i++) { + if (storeList.get(i).getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) { + // SET COVERAGE STATUS + String final_xml = ""; + String onXML = ""; + onXML = "[COVERAGE_STATUS]" + + "[STORE_ID]" + storeList.get(i).getSTORE_ID() + "[/STORE_ID]" + + "[VISIT_DATE]" + storeList.get(i).getVISIT_DATE() + "[/VISIT_DATE]" + + "[USER_ID]" + userID + "[/USER_ID]" + + "[STATUS]" + CommonString.KEY_U + "[/STATUS]" + + "[/COVERAGE_STATUS]"; + + final_xml = final_xml + onXML; + + final String sos_xml = "[DATA]" + final_xml + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_COVERAGE_STATUS); + request.addProperty("onXML", sos_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_COVERAGE_STATUS, envelope); + + Object result = envelope.getResponse(); + + //If Result is success then status of that store is update + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + db.open(); + + final CoverageBean coverageObj = db.getCoverageSpecificData(storeList.get(i).getVISIT_DATE(), storeList.get(i).getSTORE_ID()); + + String uploadStatus; + if (coverageObj.getReasonid().equalsIgnoreCase("0")) { + uploadStatus = CommonString.KEY_U; + } else { + uploadStatus = CommonString.KEY_UN; + } + + db.updateCoverageStatus(storeList.get(i).getSTORE_ID(), uploadStatus); + db.updateStoreStatusOnLeave(storeList.get(i).getSTORE_ID(), storeList.get(i).getVISIT_DATE(), + uploadStatus, CommonString.FROM_JCP); + + db.deleteTableWithStoreID(storeList.get(i).getSTORE_ID()); + } + + } + } + + db.open(); + storeList_deviation = db.getStoreData(visitDate, CommonString.KEY_ADHOC_JOURNEY_PLAN); + for (int i = 0; i < storeList_deviation.size(); i++) { + if (storeList_deviation.get(i).getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) { + // SET COVERAGE STATUS + String final_xml = ""; + String onXML = ""; + onXML = "[COVERAGE_STATUS]" + + "[STORE_ID]" + storeList_deviation.get(i).getSTORE_ID() + "[/STORE_ID]" + + "[VISIT_DATE]" + storeList_deviation.get(i).getVISIT_DATE() + "[/VISIT_DATE]" + + "[USER_ID]" + userID + "[/USER_ID]" + + "[STATUS]" + CommonString.KEY_U + "[/STATUS]" + + "[/COVERAGE_STATUS]"; + + final_xml = final_xml + onXML; + + final String sos_xml = "[DATA]" + final_xml + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_COVERAGE_STATUS); + request.addProperty("onXML", sos_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_COVERAGE_STATUS, envelope); + + Object result = envelope.getResponse(); + + //If Result is success then status of that store is update + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + db.open(); + db.updateCoverageStatus(storeList_deviation.get(i).getSTORE_ID(), CommonString.KEY_U); + db.updateStoreStatusOnLeave(storeList_deviation.get(i).getSTORE_ID(), storeList_deviation.get(i).getVISIT_DATE(), + CommonString.KEY_U, CommonString.KEY_ADHOC_JOURNEY_PLAN); + + db.deleteTableWithStoreID(storeList_deviation.get(i).getSTORE_ID()); + } + + } + } + + //for Turkey Pharma Stores + storeListPharma = db.getStoreData(visitDate, CommonString.KEY_JOURNEY_PLAN_PHARMA); + for (int i = 0; i < storeListPharma.size(); i++) { + if (storeListPharma.get(i).getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) { + // SET COVERAGE STATUS + String final_xml = ""; + String onXML = ""; + onXML = "[COVERAGE_STATUS]" + + "[STORE_ID]" + storeListPharma.get(i).getSTORE_ID() + "[/STORE_ID]" + + "[VISIT_DATE]" + storeListPharma.get(i).getVISIT_DATE() + "[/VISIT_DATE]" + + "[USER_ID]" + userID + "[/USER_ID]" + + "[STATUS]" + CommonString.KEY_U + "[/STATUS]" + + "[/COVERAGE_STATUS]"; + + final_xml = final_xml + onXML; + + final String sos_xml = "[DATA]" + final_xml + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_COVERAGE_STATUS_PHARMA); + request.addProperty("onXML", sos_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_COVERAGE_STATUS_PHARMA, envelope); + + Object result = envelope.getResponse(); + + //If Result is success then status of that store is update + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + db.open(); + + final CoverageBean coverageObj = db.getCoverageSpecificData(storeListPharma.get(i).getVISIT_DATE(), storeListPharma.get(i).getSTORE_ID()); + + String uploadStatus; + if (coverageObj.getReasonid().equalsIgnoreCase("0")) { + uploadStatus = CommonString.KEY_U; + } else { + uploadStatus = CommonString.KEY_UN; + } + + db.updateCoverageStatus(storeListPharma.get(i).getSTORE_ID(), uploadStatus); + db.updateStoreStatusOnLeave(storeListPharma.get(i).getSTORE_ID(), storeListPharma.get(i).getVISIT_DATE(), + uploadStatus, CommonString.FROM_PHARMA); + + db.deleteTableWithStoreID(storeListPharma.get(i).getSTORE_ID()); + } + + } + } + + //Additional Stores Egypt + storeListAdditional = db.getStoreData(visitDate, CommonString.KEY_JOURNEY_PLAN_ADDITIONAL); + for (int i = 0; i < storeListAdditional.size(); i++) { + if (storeListAdditional.get(i).getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) { + // SET COVERAGE STATUS + String final_xml = ""; + String onXML = ""; + onXML = "[COVERAGE_STATUS]" + + "[STORE_ID]" + storeListAdditional.get(i).getSTORE_ID() + "[/STORE_ID]" + + "[VISIT_DATE]" + storeListAdditional.get(i).getVISIT_DATE() + "[/VISIT_DATE]" + + "[USER_ID]" + userID + "[/USER_ID]" + + "[STATUS]" + CommonString.KEY_U + "[/STATUS]" + + "[/COVERAGE_STATUS]"; + + final_xml = final_xml + onXML; + + final String sos_xml = "[DATA]" + final_xml + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_COVERAGE_STATUS_ADDITIONAL); + request.addProperty("onXML", sos_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_COVERAGE_STATUS_ADDITIONAL, envelope); + + Object result = envelope.getResponse(); + + //If Result is success then status of that store is update + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + db.open(); + + final CoverageBean coverageObj = db.getCoverageSpecificData(storeListAdditional.get(i).getVISIT_DATE(), storeListAdditional.get(i).getSTORE_ID()); + + String uploadStatus; + if (coverageObj.getReasonid().equalsIgnoreCase("0")) { + uploadStatus = CommonString.KEY_U; + } else { + uploadStatus = CommonString.KEY_UN; + } + + db.updateCoverageStatus(storeListAdditional.get(i).getSTORE_ID(), uploadStatus); + db.updateStoreStatusOnLeave(storeListAdditional.get(i).getSTORE_ID(), storeListAdditional.get(i).getVISIT_DATE(), + uploadStatus, CommonString.FROM_ADDITIONAL); + db.deleteTableWithStoreID(storeListAdditional.get(i).getSTORE_ID()); + } + + } + } + + //Additional Adhoc Stores Egypt + storeListAdditional = db.getStoreData(visitDate, CommonString.KEY_ADHOC_JOURNEYPLAN_ADDITIONAL); + for (int i = 0; i < storeListAdditional.size(); i++) { + if (storeListAdditional.get(i).getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) { + // SET COVERAGE STATUS + String final_xml = ""; + String onXML = ""; + onXML = "[COVERAGE_STATUS]" + + "[STORE_ID]" + storeListAdditional.get(i).getSTORE_ID() + "[/STORE_ID]" + + "[VISIT_DATE]" + storeListAdditional.get(i).getVISIT_DATE() + "[/VISIT_DATE]" + + "[USER_ID]" + userID + "[/USER_ID]" + + "[STATUS]" + CommonString.KEY_U + "[/STATUS]" + + "[/COVERAGE_STATUS]"; + + final_xml = final_xml + onXML; + + final String sos_xml = "[DATA]" + final_xml + "[/DATA]"; + + SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_COVERAGE_STATUS_ADDITIONAL); + request.addProperty("onXML", sos_xml); + + SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); + envelope.dotNet = true; + envelope.setOutputSoapObject(request); + + HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL); + androidHttpTransport.call(CommonString.SOAP_ACTION + CommonString.METHOD_UPLOAD_COVERAGE_STATUS_ADDITIONAL, envelope); + + Object result = envelope.getResponse(); + + //If Result is success then status of that store is update + if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + + db.open(); + + final CoverageBean coverageObj = db.getCoverageSpecificData(storeListAdditional.get(i).getVISIT_DATE(), storeListAdditional.get(i).getSTORE_ID()); + + String uploadStatus; + if (coverageObj.getReasonid().equalsIgnoreCase("0")) { + uploadStatus = CommonString.KEY_U; + } else { + uploadStatus = CommonString.KEY_UN; + } + + db.updateCoverageStatus(storeListAdditional.get(i).getSTORE_ID(), uploadStatus); + db.updateStoreStatusOnLeave(storeListAdditional.get(i).getSTORE_ID(), storeListAdditional.get(i).getVISIT_DATE(), + uploadStatus, CommonString.FROM_ADDITIONAL_ADHOC); + + db.deleteTableWithStoreID(storeListAdditional.get(i).getSTORE_ID()); + } + + } + } + + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (Exception e) { + // Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString()); + // Crashlytics.logException(e.getCause()); + // Crashlytics.logException(new Exception(e.getCause())); + e.printStackTrace(); + } + if (statusUpdated) { + return CommonString.KEY_SUCCESS; + } else { + return CommonString.KEY_FAILURE; + } + } + + @Override + protected void onPostExecute(String s) { + super.onPostExecute(s); + pd.dismiss(); + if (s.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { + if (totalFiles == uploadedFiles) { + showAlert((Activity) context, context.getString(R.string.data_uploaded_successfully), true); + } else { + showAlert((Activity) context, context.getString(R.string.DataNot), true); + } + } + } + } + + class Data { + int value; + String name; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ADDITIONAL_DISPLAY_MASTERGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ADDITIONAL_DISPLAY_MASTERGetterSetter.java new file mode 100644 index 0000000..374b63d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ADDITIONAL_DISPLAY_MASTERGetterSetter.java @@ -0,0 +1,74 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by ashishc on 18-01-2017. + */ + +public class ADDITIONAL_DISPLAY_MASTERGetterSetter { + + + ArrayList DISPLAY_ID = new ArrayList<>(); + + ArrayList DISPLAY = new ArrayList<>(); + + ArrayList IMAGE_URL = new ArrayList<>(); + + ArrayList IMAGE_PATH = new ArrayList<>(); + + ArrayList CATEGORY_ID = new ArrayList<>(); + + public String getTable_STORE_ADDITIONAL_DISPLAY() { + return table_STORE_ADDITIONAL_DISPLAY; + } + + public void setTable_STORE_ADDITIONAL_DISPLAY(String table_STORE_ADDITIONAL_DISPLAY) { + this.table_STORE_ADDITIONAL_DISPLAY = table_STORE_ADDITIONAL_DISPLAY; + } + + String table_STORE_ADDITIONAL_DISPLAY; + + + public ArrayList getDISPLAY() { + return DISPLAY; + } + + public void setDISPLAY(String DISPLAY) { + this.DISPLAY.add(DISPLAY); + } + + public ArrayList getDISPLAY_ID() { + return DISPLAY_ID; + } + + public void setDISPLAY_ID(String DISPLAY_ID) { + this.DISPLAY_ID.add(DISPLAY_ID); + } + + public ArrayList getIMAGE_URL() { + return IMAGE_URL; + } + + public void setIMAGE_URL(String IMAGE_URL) { + this.IMAGE_URL.add(IMAGE_URL); + } + + + public ArrayList getIMAGE_PATH() { + return IMAGE_PATH; + } + + public void setIMAGE_PATH(String IMAGE_PATH) { + this.IMAGE_PATH.add(IMAGE_PATH); + } + + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AdditionalQuestiongetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AdditionalQuestiongetterSetter.java new file mode 100644 index 0000000..081e1d3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AdditionalQuestiongetterSetter.java @@ -0,0 +1,168 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 3/22/2018. + */ + +public class AdditionalQuestiongetterSetter { + + String table_ADDITIONAL_QUESTION; + + ArrayList QUESTION_ID = new ArrayList<>(); + ArrayList CULTURE_ID = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList QUESTION = new ArrayList<>(); + ArrayList ANSWER_TYPE = new ArrayList<>(); + ArrayList ANSWER_ID = new ArrayList<>(); + ArrayList ANSWER = new ArrayList<>(); + ArrayList STORETYPE_ID = new ArrayList<>(); + ArrayList CAMERA_ALLOW = new ArrayList<>(); + ArrayList KEYACCOUNT_ID = new ArrayList<>(); + ArrayList NO_OF_CAMERA = new ArrayList<>(); + ArrayList TYPE = new ArrayList<>(); + + ArrayList CAMERA_MANDATORY = new ArrayList<>(); + + public ArrayList getCAMERA_MANDATORY() { + return CAMERA_MANDATORY; + } + public void setCAMERA_MANDATORY(String CAMERA_MANDATORY) { + this.CAMERA_MANDATORY.add(CAMERA_MANDATORY); + } + + + public ArrayList getREMARK_ALLOW() { + return REMARK_ALLOW; + } + + public void setREMARK_ALLOW(String REMARK_ALLOW) { + this.REMARK_ALLOW.add(REMARK_ALLOW); + } + + public ArrayList getREMARK_LEVEL() { + return REMARK_LEVEL; + } + + public void setREMARK_LEVEL(String REMARK_LEVEL) { + this.REMARK_LEVEL.add(REMARK_LEVEL); + } + + ArrayList REMARK_ALLOW = new ArrayList<>(); + ArrayList REMARK_LEVEL = new ArrayList<>(); + + public ArrayList getMAX_LENGTH() { + return MAX_LENGTH; + } + + public void setMAX_LENGTH(String MAX_LENGTH) { + this.MAX_LENGTH.add(MAX_LENGTH); + } + + ArrayList MAX_LENGTH = new ArrayList<>(); + + public String getTable_ADDITIONAL_QUESTION() { + return table_ADDITIONAL_QUESTION; + } + + public void setTable_ADDITIONAL_QUESTION(String table_ADDITIONAL_QUESTION) { + this.table_ADDITIONAL_QUESTION = table_ADDITIONAL_QUESTION; + } + + public ArrayList getQUESTION_ID() { + return QUESTION_ID; + } + + public void setQUESTION_ID(String QUESTION_ID) { + this.QUESTION_ID.add(QUESTION_ID); + } + + public ArrayList getCULTURE_ID() { + return CULTURE_ID; + } + + public void setCULTURE_ID(String CULTURE_ID) { + this.CULTURE_ID.add(CULTURE_ID); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getQUESTION() { + return QUESTION; + } + + public void setQUESTION(String QUESTION) { + this.QUESTION.add(QUESTION); + } + + public ArrayList getANSWER_TYPE() { + return ANSWER_TYPE; + } + + public void setANSWER_TYPE(String ANSWER_TYPE) { + this.ANSWER_TYPE.add(ANSWER_TYPE); + } + + public ArrayList getANSWER_ID() { + return ANSWER_ID; + } + + public void setANSWER_ID(String ANSWER_ID) { + this.ANSWER_ID.add(ANSWER_ID); + } + + public ArrayList getANSWER() { + return ANSWER; + } + + public void setANSWER(String ANSWER) { + this.ANSWER.add(ANSWER); + } + + public ArrayList getSTORETYPE_ID() { + return STORETYPE_ID; + } + + public void setSTORETYPE_ID(String STORETYPE_ID) { + this.STORETYPE_ID.add(STORETYPE_ID); + } + + public ArrayList getCAMERA_ALLOW() { + return CAMERA_ALLOW; + } + + public void setCAMERA_ALLOW(String CAMERA_ALLOW) { + this.CAMERA_ALLOW.add(CAMERA_ALLOW); + } + + public ArrayList getKEYACCOUNT_ID() { + return KEYACCOUNT_ID; + } + + public void setKEYACCOUNT_ID(String KEYACCOUNT_ID) { + this.KEYACCOUNT_ID.add(KEYACCOUNT_ID); + } + + public ArrayList getNO_OF_CAMERA() { + return NO_OF_CAMERA; + } + + public void setNO_OF_CAMERA(String NO_OF_CAMERA) { + this.NO_OF_CAMERA.add(NO_OF_CAMERA); + } + + public ArrayList getTYPE() { + return TYPE; + } + + public void setTYPE(String TYPE) { + this.TYPE.add(TYPE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AuditDataGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AuditDataGetterSetter.java new file mode 100644 index 0000000..ef813a6 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AuditDataGetterSetter.java @@ -0,0 +1,175 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 3/22/2018. + */ + +public class AuditDataGetterSetter { + String QUESTION_ID; + String CULTURE_ID; + String CATEGORY_ID; + String QUESTION; + String ANSWER_TYPE; + String ANSWER_ID = "0"; + String ANSWER=""; + String CAM_IMAGE=""; + + public String getMaxlength() { + return maxlength; + } + + public void setMaxlength(String maxlength) { + this.maxlength = maxlength; + } + + String maxlength="0"; + + public String getTXT_REMARK() { + return TXT_REMARK; + } + + public void setTXT_REMARK(String TXT_REMARK) { + this.TXT_REMARK = TXT_REMARK; + } + + String TXT_REMARK=""; + String CAMERA_ALLOW="0"; + String KEYACCOUNT_ID="0"; + String NO_OF_CAMERA ="1"; + String CAM_IMAGE2=""; + String CHECK_TYPE; + String CAMERA_MANDATORY="0"; + + public String getCAMERA_MANDATORY() { + return CAMERA_MANDATORY; + } + + public void setCAMERA_MANDATORY(String CAMERA_MANDATORY) { + this.CAMERA_MANDATORY = CAMERA_MANDATORY; + } + + + public String getREMARK_ALLOW() { + return REMARK_ALLOW; + } + + public void setREMARK_ALLOW(String REMARK_ALLOW) { + this.REMARK_ALLOW = REMARK_ALLOW; + } + + public String getREMARK_LEVEL() { + return REMARK_LEVEL; + } + + public void setREMARK_LEVEL(String REMARK_LEVEL) { + this.REMARK_LEVEL = REMARK_LEVEL; + } + + String REMARK_ALLOW="0";; + String REMARK_LEVEL=""; + + + public String getQUESTION_ID() { + return QUESTION_ID; + } + + public void setQUESTION_ID(String QUESTION_ID) { + this.QUESTION_ID = QUESTION_ID; + } + + public String getCULTURE_ID() { + return CULTURE_ID; + } + + public void setCULTURE_ID(String CULTURE_ID) { + this.CULTURE_ID = CULTURE_ID; + } + + public String getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID = CATEGORY_ID; + } + + public String getQUESTION() { + return QUESTION; + } + + public void setQUESTION(String QUESTION) { + this.QUESTION = QUESTION; + } + + public String getANSWER_TYPE() { + return ANSWER_TYPE; + } + + public void setANSWER_TYPE(String ANSWER_TYPE) { + this.ANSWER_TYPE = ANSWER_TYPE; + } + + public String getANSWER_ID() { + return ANSWER_ID; + } + + public void setANSWER_ID(String ANSWER_ID) { + this.ANSWER_ID = ANSWER_ID; + } + + public String getANSWER() { + return ANSWER; + } + + public void setANSWER(String ANSWER) { + this.ANSWER = ANSWER; + } + + public String getCAM_IMAGE() { + return CAM_IMAGE; + } + + public void setCAM_IMAGE(String CAM_IMAGE) { + this.CAM_IMAGE = CAM_IMAGE; + } + + public String getCAMERA_ALLOW() { + return CAMERA_ALLOW; + } + + public void setCAMERA_ALLOW(String CAMERA_ALLOW) { + this.CAMERA_ALLOW = CAMERA_ALLOW; + } + + public String getKEYACCOUNT_ID() { + return KEYACCOUNT_ID; + } + + public void setKEYACCOUNT_ID(String KEYACCOUNT_ID) { + this.KEYACCOUNT_ID = KEYACCOUNT_ID; + } + + public String getNO_OF_CAMERA() { + return NO_OF_CAMERA; + } + + public void setNO_OF_CAMERA(String NO_OF_CAMERA) { + this.NO_OF_CAMERA = NO_OF_CAMERA; + } + + public String getCAM_IMAGE2() { + return CAM_IMAGE2; + } + + public void setCAM_IMAGE2(String CAM_IMAGE2) { + this.CAM_IMAGE2 = CAM_IMAGE2; + } + + public String getCHECK_TYPE() { + return CHECK_TYPE; + } + + public void setCHECK_TYPE(String CHECK_TYPE) { + this.CHECK_TYPE = CHECK_TYPE; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/BrandMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/BrandMasterGetterSetter.java new file mode 100644 index 0000000..3b1bbc1 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/BrandMasterGetterSetter.java @@ -0,0 +1,85 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 28-12-2016. + */ + +public class BrandMasterGetterSetter { + + String table_BRAND_MASTER; + + 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<>(); + + public ArrayList getBRAND_SEQUENCE_SA() { + return BRAND_SEQUENCE_SA; + } + + public void setBRAND_SEQUENCE_SA(String BRAND_SEQUENCE_SA) { + this.BRAND_SEQUENCE_SA.add(BRAND_SEQUENCE_SA); + } + + public String getTable_BRAND_MASTER() { + return table_BRAND_MASTER; + } + + public void setTable_BRAND_MASTER(String table_BRAND_MASTER) { + this.table_BRAND_MASTER = table_BRAND_MASTER; + } + + public ArrayList getBRAND_ID() { + return BRAND_ID; + } + + public void setBRAND_ID(String BRAND_ID) { + this.BRAND_ID.add(BRAND_ID); + } + + public ArrayList getBRAND() { + return BRAND; + } + + public void setBRAND(String BRAND) { + this.BRAND.add(BRAND); + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + public ArrayList getCOMPANY_ID() { + return COMPANY_ID; + } + + public void setCOMPANY_ID(String COMPANY_ID) { + this.COMPANY_ID.add(COMPANY_ID); + } + + public ArrayList getBRAND_SEQUENCE() { + return BRAND_SEQUENCE; + } + + public void setBRAND_SEQUENCE(String BRAND_SEQUENCE) { + this.BRAND_SEQUENCE.add(BRAND_SEQUENCE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryGetterSetter.java new file mode 100644 index 0000000..472e412 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryGetterSetter.java @@ -0,0 +1,37 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 22-12-2016. + */ + +public class CategoryGetterSetter { + + String category_id, category; + + int category_img; + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + + public int getCategory_img() { + return category_img; + } + + public void setCategory_img(int category_img) { + this.category_img = category_img; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryImagesAllowed.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryImagesAllowed.java new file mode 100644 index 0000000..4abe03b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryImagesAllowed.java @@ -0,0 +1,42 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 02-01-2018. + */ + +public class CategoryImagesAllowed { + + boolean img_cam1, img_cam2, img_cam3, img_cam4; + + public boolean isImg_cam1() { + return img_cam1; + } + + public void setImg_cam1(boolean img_cam1) { + this.img_cam1 = img_cam1; + } + + public boolean isImg_cam2() { + return img_cam2; + } + + public void setImg_cam2(boolean img_cam2) { + this.img_cam2 = img_cam2; + } + + public boolean isImg_cam3() { + return img_cam3; + } + + public void setImg_cam3(boolean img_cam3) { + this.img_cam3 = img_cam3; + } + + public boolean isImg_cam4() { + return img_cam4; + } + + public void setImg_cam4(boolean img_cam4) { + this.img_cam4 = img_cam4; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryMasterGetterSetter.java new file mode 100644 index 0000000..e502afb --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryMasterGetterSetter.java @@ -0,0 +1,48 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 29-12-2016. + */ + +public class CategoryMasterGetterSetter { + + String table_CATEGORY_MASTER; + + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList CATEGORY = new ArrayList<>(); + ArrayList CATEGORY_SEQUENCE = new ArrayList<>(); + + public String getTable_CATEGORY_MASTER() { + return table_CATEGORY_MASTER; + } + + public void setTable_CATEGORY_MASTER(String table_CATEGORY_MASTER) { + this.table_CATEGORY_MASTER = table_CATEGORY_MASTER; + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getCATEGORY() { + return CATEGORY; + } + + public void setCATEGORY(String CATEGORY) { + this.CATEGORY.add(CATEGORY); + } + + public ArrayList getCATEGORY_SEQUENCE() { + return CATEGORY_SEQUENCE; + } + + public void setCATEGORY_SEQUENCE(String CATEGORY_SEQUENCE) { + this.CATEGORY_SEQUENCE.add(CATEGORY_SEQUENCE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryWisePerformaceGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryWisePerformaceGetterSetter.java new file mode 100644 index 0000000..bb2b301 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CategoryWisePerformaceGetterSetter.java @@ -0,0 +1,90 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 23-12-2016. + */ + +public class CategoryWisePerformaceGetterSetter { + String store_id, category_id, period, msl_availability, sos, t2p, promo, oss, order_id; + + public String getPLANOGRAM() { + return PLANOGRAM; + } + + public void setPLANOGRAM(String PLANOGRAM) { + this.PLANOGRAM = PLANOGRAM; + } + + String PLANOGRAM; + public String getStore_id() { + return store_id; + } + + public void setStore_id(String store_id) { + this.store_id = store_id; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getPeriod() { + return period; + } + + public void setPeriod(String period) { + this.period = period; + } + + public String getMsl_availability() { + return msl_availability; + } + + public void setMsl_availability(String msl_availability) { + this.msl_availability = msl_availability; + } + + public String getSos() { + return sos; + } + + public void setSos(String sos) { + this.sos = sos; + } + + public String getT2p() { + return t2p; + } + + public void setT2p(String t2p) { + this.t2p = t2p; + } + + public String getPromo() { + return promo; + } + + public void setPromo(String promo) { + this.promo = promo; + } + + public String getOss() { + return oss; + } + + public void setOss(String oss) { + this.oss = oss; + } + + public String getOrder_id() { + return order_id; + } + + public void setOrder_id(String order_id) { + this.order_id = order_id; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ChatMessageDownloadGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ChatMessageDownloadGetterSetter.java new file mode 100644 index 0000000..742a22e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ChatMessageDownloadGetterSetter.java @@ -0,0 +1,135 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class ChatMessageDownloadGetterSetter { + + String table_CHAT_MESSAGE; + + ArrayList REC_ID = new ArrayList<>(); + ArrayList CHAT_ID = new ArrayList<>(); + ArrayList MESSAGE = new ArrayList<>(); + ArrayList MESSAGEDATE = new ArrayList<>(); + ArrayList SENDERID = new ArrayList<>(); + ArrayList SENDER = new ArrayList<>(); + ArrayList RECEIVERID = new ArrayList<>(); + ArrayList RECEIVER = new ArrayList<>(); + ArrayList COMMENTDATE = new ArrayList<>(); + ArrayList COMMENT = new ArrayList<>(); + ArrayList STOREID = new ArrayList<>(); + ArrayList ORDERID = new ArrayList<>(); + ArrayList SENDER_USERID = new ArrayList<>(); + + + public String getTable_CHAT_MESSAGE() { + return table_CHAT_MESSAGE; + } + + public void setTable_CHAT_MESSAGE(String table_CHAT_MESSAGE) { + this.table_CHAT_MESSAGE = table_CHAT_MESSAGE; + } + + public ArrayList getREC_ID() { + return REC_ID; + } + + public void setREC_ID(String REC_ID) { + this.REC_ID.add(REC_ID); + } + + public ArrayList getCHAT_ID() { + return CHAT_ID; + } + + public void setCHAT_ID(String CHAT_ID) { + this.CHAT_ID.add(CHAT_ID); + } + + public ArrayList getMESSAGE() { + return MESSAGE; + } + + public void setMESSAGE(String MESSAGE) { + this.MESSAGE.add(MESSAGE); + } + + public ArrayList getMESSAGEDATE() { + return MESSAGEDATE; + } + + public void setMESSAGEDATE(String MESSAGEDATE) { + this.MESSAGEDATE.add(MESSAGEDATE); + } + + public ArrayList getSENDERID() { + return SENDERID; + } + + public void setSENDERID(String SENDERID) { + this.SENDERID.add(SENDERID); + } + + public ArrayList getSENDER() { + return SENDER; + } + + public void setSENDER(String SENDER) { + this.SENDER.add(SENDER); + } + + public ArrayList getRECEIVERID() { + return RECEIVERID; + } + + public void setRECEIVERID(String RECEIVERID) { + this.RECEIVERID.add(RECEIVERID); + } + + public ArrayList getRECEIVER() { + return RECEIVER; + } + + public void setRECEIVER(String RECEIVER) { + this.RECEIVER.add(RECEIVER); + } + + public ArrayList getCOMMENTDATE() { + return COMMENTDATE; + } + + public void setCOMMENTDATE(String COMMENTDATE) { + this.COMMENTDATE.add(COMMENTDATE); + } + + public ArrayList getCOMMENT() { + return COMMENT; + } + + public void setCOMMENT(String COMMENT) { + this.COMMENT.add(COMMENT); + } + + public ArrayList getSTOREID() { + return STOREID; + } + + public void setSTOREID(String STOREID) { + this.STOREID.add(STOREID); + } + + public ArrayList getORDERID() { + return ORDERID; + } + + public void setORDERID(String ORDERID) { + this.ORDERID.add(ORDERID); + } + + public ArrayList getSENDER_USERID() { + return SENDER_USERID; + } + + public void setSENDER_USERID(String SENDER_USERID) { + this.SENDER_USERID.add(SENDER_USERID); + } +} 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/ConfigurationContrywiseGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ConfigurationContrywiseGetterSetter.java new file mode 100644 index 0000000..880cb2d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ConfigurationContrywiseGetterSetter.java @@ -0,0 +1,44 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class ConfigurationContrywiseGetterSetter { + + String table_CONFIGURATION_COUNTRY_WISE; + + ArrayList COUNTRY_ID = new ArrayList<>(); + ArrayList ADHOC_REPORTING = new ArrayList<>(); + ArrayList PDF_ALLOW = new ArrayList<>(); + + public String getTable_CONFIGURATION_COUNTRY_WISE() { + return table_CONFIGURATION_COUNTRY_WISE; + } + + public void setTable_CONFIGURATION_COUNTRY_WISE(String table_CONFIGURATION_COUNTRY_WISE) { + this.table_CONFIGURATION_COUNTRY_WISE = table_CONFIGURATION_COUNTRY_WISE; + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } + + public ArrayList getADHOC_REPORTING() { + return ADHOC_REPORTING; + } + + public void setADHOC_REPORTING(String ADHOC_REPORTING) { + this.ADHOC_REPORTING.add(ADHOC_REPORTING); + } + + public ArrayList getPDF_ALLOW() { + return PDF_ALLOW; + } + + public void setPDF_ALLOW(String PDF_ALLOW) { + this.PDF_ALLOW.add(PDF_ALLOW); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ConfigurationMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ConfigurationMasterGetterSetter.java new file mode 100644 index 0000000..c24d5d8 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ConfigurationMasterGetterSetter.java @@ -0,0 +1,44 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class ConfigurationMasterGetterSetter { + + String table_CONFIGURATION_MASTER; + + ArrayList COUNTRY_ID = new ArrayList<>(); + ArrayList CONFIGURE = new ArrayList<>(); + ArrayList ACTIVE = new ArrayList<>(); + + public String getTable_CONFIGURATION_MASTER() { + return table_CONFIGURATION_MASTER; + } + + public void setTable_CONFIGURATION_MASTER(String table_CONFIGURATION_MASTER) { + this.table_CONFIGURATION_MASTER = table_CONFIGURATION_MASTER; + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } + + public ArrayList getCONFIGURE() { + return CONFIGURE; + } + + public void setCONFIGURE(String CONFIGURE) { + this.CONFIGURE.add(CONFIGURE); + } + + public ArrayList getACTIVE() { + return ACTIVE; + } + + public void setACTIVE(String ACTIVE) { + this.ACTIVE.add(ACTIVE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CounterfeitProductGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CounterfeitProductGetterSetter.java new file mode 100644 index 0000000..48aa0c2 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/CounterfeitProductGetterSetter.java @@ -0,0 +1,89 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +public class CounterfeitProductGetterSetter { + + String skuName, imgStr, imgStr1, imgStr2, brand, _id, category_id; + int stock, brandId; + + 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 getStock() { + return stock; + } + + public void setStock(int stock) { + this.stock = stock; + } + + 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/DailyDataMenuGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DailyDataMenuGetterSetter.java new file mode 100644 index 0000000..f5f0a43 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DailyDataMenuGetterSetter.java @@ -0,0 +1,27 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 22-12-2016. + */ + +public class DailyDataMenuGetterSetter { + + String category_name; + int category_img = -1; + + public String getCategory_name() { + return category_name; + } + + public void setCategory_name(String category_name) { + this.category_name = category_name; + } + + public int getCategory_img() { + return category_img; + } + + public void setCategory_img(int category_img) { + this.category_img = category_img; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DeliveryCallsGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DeliveryCallsGetterSetter.java new file mode 100644 index 0000000..6f41973 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DeliveryCallsGetterSetter.java @@ -0,0 +1,97 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.io.Serializable; + +public class DeliveryCallsGetterSetter implements Serializable{ + + String STORE_NAME, ADDRESS, IN_TIME_IMAGE, OUT_TIME_IMAGE, UPLOAD_STATUS, VISIT_DATE, id, in_time, out_time; + double LATITUDE, LONGITUDE; + + public String getSTORE_NAME() { + return STORE_NAME; + } + + public void setSTORE_NAME(String STORE_NAME) { + this.STORE_NAME = STORE_NAME; + } + + public String getADDRESS() { + return ADDRESS; + } + + public void setADDRESS(String ADDRESS) { + this.ADDRESS = ADDRESS; + } + + public String getIN_TIME_IMAGE() { + return IN_TIME_IMAGE; + } + + public void setIN_TIME_IMAGE(String IN_TIME_IMAGE) { + this.IN_TIME_IMAGE = IN_TIME_IMAGE; + } + + public String getOUT_TIME_IMAGE() { + return OUT_TIME_IMAGE; + } + + public void setOUT_TIME_IMAGE(String OUT_TIME_IMAGE) { + this.OUT_TIME_IMAGE = OUT_TIME_IMAGE; + } + + public String getUPLOAD_STATUS() { + return UPLOAD_STATUS; + } + + public void setUPLOAD_STATUS(String UPLOAD_STATUS) { + this.UPLOAD_STATUS = UPLOAD_STATUS; + } + + public String getVISIT_DATE() { + return VISIT_DATE; + } + + public void setVISIT_DATE(String VISIT_DATE) { + this.VISIT_DATE = VISIT_DATE; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIn_time() { + return in_time; + } + + public void setIn_time(String in_time) { + this.in_time = in_time; + } + + public String getOut_time() { + return out_time; + } + + public void setOut_time(String out_time) { + this.out_time = out_time; + } + + public double getLATITUDE() { + return LATITUDE; + } + + public void setLATITUDE(double LATITUDE) { + this.LATITUDE = LATITUDE; + } + + public double getLONGITUDE() { + return LONGITUDE; + } + + public void setLONGITUDE(double LONGITUDE) { + this.LONGITUDE = LONGITUDE; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DisplayChecklistMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DisplayChecklistMasterGetterSetter.java new file mode 100644 index 0000000..8604038 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DisplayChecklistMasterGetterSetter.java @@ -0,0 +1,40 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 03-01-2017. + */ + +public class DisplayChecklistMasterGetterSetter { + + String table_DISPLAY_CHECKLIST_MASTER; + + public String getTable_DISPLAY_CHECKLIST_MASTER() { + return table_DISPLAY_CHECKLIST_MASTER; + } + + public void setTable_DISPLAY_CHECKLIST_MASTER(String table_DISPLAY_CHECKLIST_MASTER) { + this.table_DISPLAY_CHECKLIST_MASTER = table_DISPLAY_CHECKLIST_MASTER; + } + + public ArrayList getCHECKLIST_ID() { + return CHECKLIST_ID; + } + + public void setCHECKLIST_ID(String CHECKLIST_ID) { + this.CHECKLIST_ID.add(CHECKLIST_ID); + } + + public ArrayList getCHECKLIST() { + return CHECKLIST; + } + + public void setCHECKLIST(String CHECKLIST) { + this.CHECKLIST.add(CHECKLIST); + } + + ArrayList CHECKLIST_ID = new ArrayList<>(); + ArrayList CHECKLIST = new ArrayList<>(); + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DisplayMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DisplayMasterGetterSetter.java new file mode 100644 index 0000000..01d3d4c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DisplayMasterGetterSetter.java @@ -0,0 +1,57 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 29-12-2016. + */ + +public class DisplayMasterGetterSetter { + + String table_DISPLAY_MASTER; + + ArrayList DISPLAY_ID = new ArrayList<>(); + ArrayList DISPLAY = new ArrayList<>(); + ArrayList IMAGE_URL = new ArrayList<>(); + ArrayList IMAGE_PATH = new ArrayList<>(); + + public String getTable_DISPLAY_MASTER() { + return table_DISPLAY_MASTER; + } + + public void setTable_DISPLAY_MASTER(String table_DISPLAY_MASTER) { + this.table_DISPLAY_MASTER = table_DISPLAY_MASTER; + } + + public ArrayList getDISPLAY_ID() { + return DISPLAY_ID; + } + + public void setDISPLAY_ID(String DISPLAY_ID) { + this.DISPLAY_ID.add(DISPLAY_ID); + } + + public ArrayList getDISPLAY() { + return DISPLAY; + } + + public void setDISPLAY(String DISPLAY) { + this.DISPLAY.add(DISPLAY); + } + + public ArrayList getIMAGE_URL() { + return IMAGE_URL; + } + + public void setIMAGE_URL(String IMAGE_URL) { + this.IMAGE_URL.add(IMAGE_URL); + } + + public ArrayList getIMAGE_PATH() { + return IMAGE_PATH; + } + + public void setIMAGE_PATH(String IMAGE_PATH) { + this.IMAGE_PATH.add(IMAGE_PATH); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DynamycIdsGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DynamycIdsGetterSetter.java new file mode 100644 index 0000000..c229aee --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/DynamycIdsGetterSetter.java @@ -0,0 +1,36 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 25-10-2017. + */ + +public class DynamycIdsGetterSetter { + + int recycler_id = 0; + int textview_id = 0; + int total_unit = 0; + + public int getRecycler_id() { + return recycler_id; + } + + public void setRecycler_id(int recycler_id) { + this.recycler_id = recycler_id; + } + + public int getTextview_id() { + return textview_id; + } + + public void setTextview_id(int textview_id) { + this.textview_id = textview_id; + } + + public int getTotal_unit() { + return total_unit; + } + + public void setTotal_unit(int total_unit) { + this.total_unit = total_unit; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/FailureGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/FailureGetterSetter.java new file mode 100644 index 0000000..f3eb242 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/FailureGetterSetter.java @@ -0,0 +1,24 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +public class FailureGetterSetter { + + private String status="",errorMsg; + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/GapsChecklistGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/GapsChecklistGetterSetter.java new file mode 100644 index 0000000..055c66a --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/GapsChecklistGetterSetter.java @@ -0,0 +1,43 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 04-01-2017. + */ + +public class GapsChecklistGetterSetter { + + String checklist, checklist_id, display_id; + boolean present; + + public String getChecklist() { + return checklist; + } + + public void setChecklist(String checklist) { + this.checklist = checklist; + } + + public String getChecklist_id() { + return checklist_id; + } + + public void setChecklist_id(String checklist_id) { + this.checklist_id = checklist_id; + } + + public boolean isPresent() { + return present; + } + + public void setPresent(boolean present) { + this.present = present; + } + + public String getDisplay_id() { + return display_id; + } + + public void setDisplay_id(String display_id) { + this.display_id = display_id; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/GeoFencingGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/GeoFencingGetterSetter.java new file mode 100644 index 0000000..5b5c8f3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/GeoFencingGetterSetter.java @@ -0,0 +1,44 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class GeoFencingGetterSetter { + + String table_GEO_FENCING; + + ArrayList COUNTRY_ID = new ArrayList<>(); + ArrayList DISTANCE_MTR = new ArrayList<>(); + ArrayList GEO_FENCING = new ArrayList<>(); + + public String getTable_GEO_FENCING() { + return table_GEO_FENCING; + } + + public void setTable_GEO_FENCING(String table_GEO_FENCING) { + this.table_GEO_FENCING = table_GEO_FENCING; + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } + + public ArrayList getDISTANCE_MTR() { + return DISTANCE_MTR; + } + + public void setDISTANCE_MTR(String DISTANCE_MTR) { + this.DISTANCE_MTR.add(DISTANCE_MTR); + } + + public ArrayList getGEO_FENCING() { + return GEO_FENCING; + } + + public void setGEO_FENCING(String GEO_FENCING) { + this.GEO_FENCING.add(GEO_FENCING); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ImageGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ImageGetterSetter.java new file mode 100644 index 0000000..a0263d0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ImageGetterSetter.java @@ -0,0 +1,38 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +public class ImageGetterSetter { + + String image1="", image2="", image3="", image4=""; + + public String getImage1() { + return image1; + } + + public void setImage1(String image1) { + this.image1 = image1; + } + + public String getImage2() { + return image2; + } + + public void setImage2(String image2) { + this.image2 = image2; + } + + public String getImage3() { + return image3; + } + + public void setImage3(String image3) { + this.image3 = image3; + } + + public String getImage4() { + return image4; + } + + public void setImage4(String image4) { + this.image4 = image4; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/JourneyPlanGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/JourneyPlanGetterSetter.java new file mode 100644 index 0000000..5c41a84 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/JourneyPlanGetterSetter.java @@ -0,0 +1,205 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.io.Serializable; +import java.util.ArrayList; + +public class JourneyPlanGetterSetter implements Serializable{ + + String table_journey_plan; + + ArrayList STORE_ID = new ArrayList(); + ArrayList EMP_ID = new ArrayList(); + ArrayList VISIT_DATE = new ArrayList(); + ArrayList KEYACCOUNT = new ArrayList(); + ArrayList STORE_NAME = new ArrayList(); + ArrayList CITY = new ArrayList(); + ArrayList STORETYPE = new ArrayList(); + ArrayList UPLOAD_STATUS = new ArrayList(); + ArrayList CHECKOUT_STATUS = new ArrayList(); + ArrayList GEO_TAG = new ArrayList(); + + ArrayList ADDRESS = new ArrayList(); + ArrayList CLASSIFICATION = new ArrayList(); + ArrayList KEYACCOUNT_ID = new ArrayList(); + ArrayList STORETYPE_ID = new ArrayList(); + ArrayList CLASS_ID = new ArrayList(); + ArrayList CAMERA_ALLOW = new ArrayList(); + ArrayList VISIT_ORDER = new ArrayList(); + ArrayList LATITUDE = new ArrayList(); + ArrayList LONGITUDE = new ArrayList(); + + ArrayList POG_TYPE_ID = new ArrayList(); + + public ArrayList getFACING_HIDE() { + return FACING_HIDE; + } + + public void setFACING_HIDE(String FACING_HIDE) { + this.FACING_HIDE.add(FACING_HIDE); + } + + ArrayList FACING_HIDE = new ArrayList(); + + public ArrayList getCHANNEL_ID() { + return CHANNEL_ID; + } + + public void setCHANNEL_ID(String CHANNEL_ID) { + this.CHANNEL_ID.add(CHANNEL_ID); + } + + ArrayList CHANNEL_ID = new ArrayList(); + + + + + public ArrayList getCHECKOUT_STATUS() { + return CHECKOUT_STATUS; + } + public void setCHECKOUT_STATUS(String CHECKOUT_STATUS) { + this.CHECKOUT_STATUS.add(CHECKOUT_STATUS); + } + public ArrayList getVISIT_DATE() { + return VISIT_DATE; + } + public void setVISIT_DATE(String vISIT_DATE) { + this.VISIT_DATE.add(vISIT_DATE); + } + public ArrayList getSTORE_ID() { + return STORE_ID; + } + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + public ArrayList getEMP_ID() { + return EMP_ID; + } + public void setEMP_ID(String EMP_ID) { + this.EMP_ID.add(EMP_ID); + } + public ArrayList getKEYACCOUNT() { + return KEYACCOUNT; + } + public void setKEYACCOUNT(String KEYACCOUNT) { + this.KEYACCOUNT.add(KEYACCOUNT); + } + public ArrayList getSTORE_NAME() { + return STORE_NAME; + } + public void setSTORE_NAME(String STORE_NAME) { + this.STORE_NAME.add(STORE_NAME); + } + public ArrayList getCITY() { + return CITY; + } + public void setCITY(String CITY) { + this.CITY.add(CITY); + } + public ArrayList getSTORETYPE() { + return STORETYPE; + } + public void setSTORETYPE(String STORETYPE) { + this.STORETYPE.add(STORETYPE); + } + + public ArrayList getUPLOAD_STATUS() { + return UPLOAD_STATUS; + } + public void setUPLOAD_STATUS(String UPLOAD_STATUS) { + this.UPLOAD_STATUS.add(UPLOAD_STATUS); + } + public String getTable_journey_plan() { + return table_journey_plan; + } + public void setTable_journey_plan(String table_journey_plan) { + this.table_journey_plan = table_journey_plan; + } + + public ArrayList getCAMERA_ALLOW() { + return CAMERA_ALLOW; + } + + public void setCAMERA_ALLOW(String CAMERA_ALLOW) { + this.CAMERA_ALLOW.add(CAMERA_ALLOW); + } + + public ArrayList getCLASS_ID() { + return CLASS_ID; + } + + public void setCLASS_ID(String CLASS_ID) { + this.CLASS_ID.add(CLASS_ID); + } + + public ArrayList getSTORETYPE_ID() { + return STORETYPE_ID; + } + + public void setSTORETYPE_ID(String STORETYPE_ID) { + this.STORETYPE_ID.add(STORETYPE_ID); + } + + public ArrayList getKEYACCOUNT_ID() { + return KEYACCOUNT_ID; + } + + public void setKEYACCOUNT_ID(String KEYACCOUNT_ID) { + this.KEYACCOUNT_ID.add(KEYACCOUNT_ID); + } + + public ArrayList getCLASSIFICATION() { + return CLASSIFICATION; + } + + public void setCLASSIFICATION(String CLASSIFICATION) { + this.CLASSIFICATION.add(CLASSIFICATION); + } + + public ArrayList getADDRESS() { + return ADDRESS; + } + + public void setADDRESS(String ADDRESS) { + this.ADDRESS.add(ADDRESS); + } + + public ArrayList getGEO_TAG() { + return GEO_TAG; + } + + public void setGEO_TAG(String GEO_TAG) { + this.GEO_TAG.add(GEO_TAG); + } + + public ArrayList getVISIT_ORDER() { + return VISIT_ORDER; + } + + public void setVISIT_ORDER(String VISIT_ORDER) { + this.VISIT_ORDER.add(VISIT_ORDER); + } + + public ArrayList getLATITUDE() { + return LATITUDE; + } + + public void setLATITUDE(String LATITUDE) { + this.LATITUDE.add(LATITUDE); + } + + public ArrayList getLONGITUDE() { + return LONGITUDE; + } + + public void setLONGITUDE(String LONGITUDE) { + this.LONGITUDE.add(LONGITUDE); + } + + public ArrayList getPOG_TYPE_ID() { + return POG_TYPE_ID; + } + + public void setPOG_TYPE_ID(String POG_TYPE_ID) { + this.POG_TYPE_ID.add(POG_TYPE_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/LoginGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/LoginGetterSetter.java new file mode 100644 index 0000000..50d6708 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/LoginGetterSetter.java @@ -0,0 +1,82 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.io.Serializable; +import java.util.ArrayList; + +/** + * Created by yadavendras on 21-12-2016. + */ + +public class LoginGetterSetter implements Serializable{ + + String RIGHT_NAME, APP_VERSION, APP_PATH, CURRENTDATE,COUNTRY_ID; + + ArrayList CULTURE_ID = new ArrayList<>(); + ArrayList CULTURE_NAME = new ArrayList<>(); + ArrayList NOTICE_URL = new ArrayList<>(); + + + public String getRIGHT_NAME() { + return RIGHT_NAME; + } + + public void setRIGHT_NAME(String rIGHT_NAME) { + RIGHT_NAME = rIGHT_NAME; + } + + public String getAPP_VERSION() { + return APP_VERSION; + } + + public void setAPP_VERSION(String aPP_VERSION) { + APP_VERSION = aPP_VERSION; + } + + public String getAPP_PATH() { + return APP_PATH; + } + + public void setAPP_PATH(String aPP_PATH) { + APP_PATH = aPP_PATH; + } + + public String getCURRENTDATE() { + return CURRENTDATE; + } + + public void setCURRENTDATE(String cURRENTDATE) { + CURRENTDATE = cURRENTDATE; + } + + public ArrayList getCULTURE_ID() { + return CULTURE_ID; + } + + public void setCULTURE_ID(String CULTURE_ID) { + this.CULTURE_ID.add(CULTURE_ID); + } + + public ArrayList getCULTURE_NAME() { + return CULTURE_NAME; + } + + public void setCULTURE_NAME(String CULTURE_NAME) { + this.CULTURE_NAME.add(CULTURE_NAME); + } + + public ArrayList getNOTICE_URL() { + return NOTICE_URL; + } + + public void setNOTICE_URL(String NOTICE_URL) { + this.NOTICE_URL.add(NOTICE_URL); + } + + public String getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID = COUNTRY_ID; + } +} \ No newline at end of file diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPINGT2PGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPINGT2PGetterSetter.java new file mode 100644 index 0000000..600fa20 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPINGT2PGetterSetter.java @@ -0,0 +1,66 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 29-12-2016. + */ + +public class MAPPINGT2PGetterSetter { + + String table_MAPPING_T2P; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList BRAND_ID = new ArrayList<>(); + ArrayList DISPLAY_ID = new ArrayList<>(); + ArrayList CATEGORY_FIXTURE = new ArrayList<>(); + ArrayList ALLOW_QTY = new ArrayList<>(); + + public ArrayList getALLOW_QTY() { + return ALLOW_QTY; + } + + public void setALLOW_QTY(String ALLOW_QTY) { + this.ALLOW_QTY.add(ALLOW_QTY); + } + + public String getTable_MAPPING_T2P() { + return table_MAPPING_T2P; + } + + public void setTable_MAPPING_T2P(String table_MAPPING_T2P) { + this.table_MAPPING_T2P = table_MAPPING_T2P; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getBRAND_ID() { + return BRAND_ID; + } + + public void setBRAND_ID(String BRAND_ID) { + this.BRAND_ID.add(BRAND_ID); + } + + public ArrayList getDISPLAY_ID() { + return DISPLAY_ID; + } + + public void setDISPLAY_ID(String DISPLAY_ID) { + this.DISPLAY_ID.add(DISPLAY_ID); + } + + public ArrayList getCATEGORY_FIXTURE() { + return CATEGORY_FIXTURE; + } + + public void setCATEGORY_FIXTURE(String CATEGORY_FIXTURE) { + this.CATEGORY_FIXTURE.add(CATEGORY_FIXTURE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter.java new file mode 100644 index 0000000..75193e8 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter.java @@ -0,0 +1,65 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by gagang on 06-01-2017. + */ + +public class MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter { + String table_MAPPING_ADDITIONAL_PROMOTION; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList SKU_ID = new ArrayList<>(); + ArrayList SKU = new ArrayList<>(); + ArrayList PROMO_ID = new ArrayList<>(); + ArrayList PROMO = new ArrayList<>(); + + public String getTable_MAPPING_ADDITIONAL_PROMOTION() { + return table_MAPPING_ADDITIONAL_PROMOTION; + } + + public void setTable_MAPPING_ADDITIONAL_PROMOTION(String table_MAPPING_ADDITIONAL_PROMOTION) { + this.table_MAPPING_ADDITIONAL_PROMOTION = table_MAPPING_ADDITIONAL_PROMOTION; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(String SKU_ID) { + this.SKU_ID.add(SKU_ID); + } + + public ArrayList getSKU() { + return SKU; + } + + public void setSKU(String SKU) { + this.SKU.add(SKU); + } + + public ArrayList getPROMO_ID() { + return PROMO_ID; + } + + public void setPROMO_ID(String PROMO_ID) { + this.PROMO_ID.add(PROMO_ID); + } + + public ArrayList getPROMO() { + return PROMO; + } + + public void setPROMO(String PROMO) { + this.PROMO.add(PROMO); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_PLANOGRAM_DataGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_PLANOGRAM_DataGetterSetter.java new file mode 100644 index 0000000..99581ea --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_PLANOGRAM_DataGetterSetter.java @@ -0,0 +1,59 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by gagang on 12-01-2017. + */ + +public class MAPPING_PLANOGRAM_DataGetterSetter { + String KEYACCOUNT_ID, STORETYPE_ID, CLASS_ID, PLANOGRAM_IMAGE, IMAGE_PATH,CATEGORY_ID; + + public String getKEYACCOUNT_ID() { + return KEYACCOUNT_ID; + } + + public void setKEYACCOUNT_ID(String KEYACCOUNT_ID) { + this.KEYACCOUNT_ID = KEYACCOUNT_ID; + } + + public String getSTORETYPE_ID() { + return STORETYPE_ID; + } + + public void setSTORETYPE_ID(String STORETYPE_ID) { + this.STORETYPE_ID = STORETYPE_ID; + } + + public String getCLASS_ID() { + return CLASS_ID; + } + + public void setCLASS_ID(String CLASS_ID) { + this.CLASS_ID = CLASS_ID; + } + + public String getPLANOGRAM_IMAGE() { + return PLANOGRAM_IMAGE; + } + + public void setPLANOGRAM_IMAGE(String PLANOGRAM_IMAGE) { + this.PLANOGRAM_IMAGE = PLANOGRAM_IMAGE; + } + + public String getIMAGE_PATH() { + return IMAGE_PATH; + } + + public void setIMAGE_PATH(String IMAGE_PATH) { + this.IMAGE_PATH = IMAGE_PATH; + } + + 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/MAPPING_PLANOGRAM_MasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_PLANOGRAM_MasterGetterSetter.java new file mode 100644 index 0000000..12671d3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_PLANOGRAM_MasterGetterSetter.java @@ -0,0 +1,74 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by gagang on 12-01-2017. + */ + +public class MAPPING_PLANOGRAM_MasterGetterSetter { + String table_MAPPING_PLANOGRAM; + + ArrayList KEYACCOUNT_ID = new ArrayList<>(); + ArrayList STORETYPE_ID = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList CLASS_ID = new ArrayList<>(); + ArrayList PLANOGRAM_IMAGE = new ArrayList<>(); + ArrayList IMAGE_PATH = new ArrayList<>(); + + public String getTable_MAPPING_PLANOGRAM() { + return table_MAPPING_PLANOGRAM; + } + + public void setTable_MAPPING_PLANOGRAM(String table_MAPPING_PLANOGRAM) { + this.table_MAPPING_PLANOGRAM = table_MAPPING_PLANOGRAM; + } + + public ArrayList getKEYACCOUNT_ID() { + return KEYACCOUNT_ID; + } + + public void setKEYACCOUNT_ID(String KEYACCOUNT_ID) { + this.KEYACCOUNT_ID.add(KEYACCOUNT_ID); + } + + public ArrayList getSTORETYPE_ID() { + return STORETYPE_ID; + } + + public void setSTORETYPE_ID(String STORETYPE_ID) { + this.STORETYPE_ID.add(STORETYPE_ID); + } + + public ArrayList getCLASS_ID() { + return CLASS_ID; + } + + public void setCLASS_ID(String CLASS_ID) { + this.CLASS_ID.add(CLASS_ID); + } + + public ArrayList getPLANOGRAM_IMAGE() { + return PLANOGRAM_IMAGE; + } + + public void setPLANOGRAM_IMAGE(String PLANOGRAM_IMAGE) { + this.PLANOGRAM_IMAGE.add(PLANOGRAM_IMAGE); + } + + public ArrayList getIMAGE_PATH() { + return IMAGE_PATH; + } + + public void setIMAGE_PATH(String IMAGE_PATH) { + this.IMAGE_PATH.add(IMAGE_PATH); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_SKU_PRICING_ENABLEGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_SKU_PRICING_ENABLEGetterSetter.java new file mode 100644 index 0000000..87949b0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_SKU_PRICING_ENABLEGetterSetter.java @@ -0,0 +1,40 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by upendra on 01-03-2021. + */ + +public class MAPPING_SKU_PRICING_ENABLEGetterSetter { + + String table_MAPPING_SKU_PRICING_ENABLE; + ArrayList STORE_ID = new ArrayList<>(); + ArrayList SUB_CATEGORY_ID = new ArrayList<>(); + + public String getTable_MAPPING_SKU_PRICING_ENABLE() { + return table_MAPPING_SKU_PRICING_ENABLE; + } + + public void setTable_MAPPING_SKU_PRICING_ENABLE(String table_MAPPING_SKU_PRICING_ENABLE) { + this.table_MAPPING_SKU_PRICING_ENABLE = table_MAPPING_SKU_PRICING_ENABLE; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_SOS_TARGET_MasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_SOS_TARGET_MasterGetterSetter.java new file mode 100644 index 0000000..be42361 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MAPPING_SOS_TARGET_MasterGetterSetter.java @@ -0,0 +1,47 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by gagang on 21-01-2017. + */ + +public class MAPPING_SOS_TARGET_MasterGetterSetter { + String table_MAPPING_SOS_TARGET; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList BRAND_ID = new ArrayList<>(); + ArrayList SOS_TARGET = new ArrayList<>(); + + public String getTable_MAPPING_SOS_TARGET() { + return table_MAPPING_SOS_TARGET; + } + + public void setTable_MAPPING_SOS_TARGET(String table_MAPPING_SOS_TARGET) { + this.table_MAPPING_SOS_TARGET = table_MAPPING_SOS_TARGET; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getBRAND_ID() { + return BRAND_ID; + } + + public void setBRAND_ID(String BRAND_ID) { + this.BRAND_ID.add(BRAND_ID); + } + + public ArrayList getSOS_TARGET() { + return SOS_TARGET; + } + + public void setSOS_TARGET(String SOS_TARGET) { + this.SOS_TARGET.add(SOS_TARGET); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MSL_AvailabilityGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MSL_AvailabilityGetterSetter.java new file mode 100644 index 0000000..6adc182 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MSL_AvailabilityGetterSetter.java @@ -0,0 +1,98 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 23-12-2016. + */ + +public class MSL_AvailabilityGetterSetter { + String sub_category_id, sub_category, brand_id, brand, + sku_id, sku, mrp, sku_sequence, toggleValue,mbq,category_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; + } +} 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..c1755af --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MSL_AvailabilityStockFacingGetterSetter.java @@ -0,0 +1,271 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.io.Serializable; + +/** + * Created by gagang on 23-12-2016. + */ + +public class MSL_AvailabilityStockFacingGetterSetter implements Serializable{ + String sub_category_id; + String sub_category; + String brand_id; + String brand; + String sku_id; + String sku; + String mrp; + String sku_sequence; + String toggleValue; + String mbq; + String category_id; + String facing=""; + String stock; + String posmStock; + String warehouseStock; + String company_id; + String must_have; + + public String getPOID() { + return POID; + } + + public void setPOID(String POID) { + this.POID = POID; + } + + String POID; + + + public String getOrderqty() { + return orderqty; + } + + public void setOrderqty(String orderqty) { + this.orderqty = orderqty; + } + + String orderqty = ""; + + public String getPricing() { + return pricing; + } + + public void setPricing(String pricing) { + this.pricing = pricing; + } + + String pricing; + + public String getPricingStock() { + return pricingStock; + } + + public void setPricingStock(String pricingStock) { + this.pricingStock = pricingStock; + } + + String pricingStock=""; + + public String getImgPath() { + return imgPath; + } + + public void setImgPath(String imgPath) { + this.imgPath = imgPath; + } + + public int getIsChecked() { + return isChecked; + } + + public void setIsChecked(int isChecked) { + this.isChecked = isChecked; + } + + String imgPath=""; + int isChecked=-1; + + 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; + } + + public String getMust_have() { + return must_have; + } + + public void setMust_have(String must_have) { + this.must_have = must_have; + } + + int IsExist = -1; + + public int getIsExist() { + return IsExist; + } + + public void setIsExist(int isExist) { + IsExist = isExist; + } + String Sys_PO_No = ""; + String Store_PO_No = ""; + String PO_Date = ""; + + public String getPO_Img() { + return PO_Img; + } + + public void setPO_Img(String PO_Img) { + this.PO_Img = PO_Img; + } + + String PO_Img = ""; + + public String getSys_PO_No() { + return Sys_PO_No; + } + + public void setSys_PO_No(String sys_PO_No) { + Sys_PO_No = sys_PO_No; + } + + public String getStore_PO_No() { + return Store_PO_No; + } + + public void setStore_PO_No(String store_PO_No) { + Store_PO_No = store_PO_No; + } + + public String getPO_Date() { + return PO_Date; + } + + public void setPO_Date(String PO_Date) { + this.PO_Date = PO_Date; + } + + public String getPosmStock() { + return posmStock; + } + + public void setPosmStock(String posmStock) { + this.posmStock = posmStock; + } + + public String getWarehouseStock() { + return warehouseStock; + } + + public void setWarehouseStock(String warehouseStock) { + this.warehouseStock = warehouseStock; + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingCategoryImageAllowGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingCategoryImageAllowGetterSetter.java new file mode 100644 index 0000000..a106d67 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingCategoryImageAllowGetterSetter.java @@ -0,0 +1,76 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 30-12-2017. + */ + +public class MappingCategoryImageAllowGetterSetter { + + String table_MAPPING_CATEGORY_IMAGE_ALLOW; + + ArrayList COUNTRY_ID = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList IMAGE1_ALLOW = new ArrayList<>(); + ArrayList IMAGE2_ALLOW = new ArrayList<>(); + ArrayList IMAGE3_ALLOW = new ArrayList<>(); + ArrayList IMAGE4_ALLOW = new ArrayList<>(); + + + public String getTable_MAPPING_CATEGORY_IMAGE_ALLOW() { + return table_MAPPING_CATEGORY_IMAGE_ALLOW; + } + + public void setTable_MAPPING_CATEGORY_IMAGE_ALLOW(String table_MAPPING_CATEGORY_IMAGE_ALLOW) { + this.table_MAPPING_CATEGORY_IMAGE_ALLOW = table_MAPPING_CATEGORY_IMAGE_ALLOW; + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getIMAGE1_ALLOW() { + return IMAGE1_ALLOW; + } + + public void setIMAGE1_ALLOW(String IMAGE1_ALLOW) { + this.IMAGE1_ALLOW.add(IMAGE1_ALLOW); + } + + public ArrayList getIMAGE2_ALLOW() { + return IMAGE2_ALLOW; + } + + public void setIMAGE2_ALLOW(String IMAGE2_ALLOW) { + this.IMAGE2_ALLOW.add(IMAGE2_ALLOW); + } + + public ArrayList getIMAGE3_ALLOW() { + return IMAGE3_ALLOW; + } + + public void setIMAGE3_ALLOW(String IMAGE3_ALLOW) { + this.IMAGE3_ALLOW.add(IMAGE3_ALLOW); + } + + public ArrayList getIMAGE4_ALLOW() { + return IMAGE4_ALLOW; + } + + public void setIMAGE4_ALLOW(String IMAGE4_ALLOW) { + this.IMAGE4_ALLOW.add(IMAGE4_ALLOW); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingDisplayChecklistGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingDisplayChecklistGetterSetter.java new file mode 100644 index 0000000..908d632 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingDisplayChecklistGetterSetter.java @@ -0,0 +1,39 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 03-01-2017. + */ + +public class MappingDisplayChecklistGetterSetter { + + String table_MAPPING_DISPLAY_CHECKLIST; + + ArrayList DISPLAY_ID = new ArrayList<>(); + ArrayList CHECKLIST_ID = new ArrayList<>(); + + public String getTable_MAPPING_DISPLAY_CHECKLIST() { + return table_MAPPING_DISPLAY_CHECKLIST; + } + + public void setTable_MAPPING_DISPLAY_CHECKLIST(String table_MAPPING_DISPLAY_CHECKLIST) { + this.table_MAPPING_DISPLAY_CHECKLIST = table_MAPPING_DISPLAY_CHECKLIST; + } + + public ArrayList getDISPLAY_ID() { + return DISPLAY_ID; + } + + public void setDISPLAY_ID(String DISPLAY_ID) { + this.DISPLAY_ID.add(DISPLAY_ID); + } + + public ArrayList getCHECKLIST_ID() { + return CHECKLIST_ID; + } + + public void setCHECKLIST_ID(String CHECKLIST_ID) { + this.CHECKLIST_ID.add(CHECKLIST_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPharmaMSLGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPharmaMSLGetterSetter.java new file mode 100644 index 0000000..92ac507 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPharmaMSLGetterSetter.java @@ -0,0 +1,35 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class MappingPharmaMSLGetterSetter { + + String table_MAPPING_PHARMA_MSL; + + ArrayList COUNTRY_ID = new ArrayList<>(); + ArrayList SKU_ID = new ArrayList<>(); + + public String getTable_MAPPING_PHARMA_MSL() { + return table_MAPPING_PHARMA_MSL; + } + + public void setTable_MAPPING_PHARMA_MSL(String table_MAPPING_PHARMA_MSL) { + this.table_MAPPING_PHARMA_MSL = table_MAPPING_PHARMA_MSL; + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } + + public ArrayList getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(String SKU_ID) { + this.SKU_ID.add(SKU_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPharmaQuestionGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPharmaQuestionGetterSetter.java new file mode 100644 index 0000000..b72fef3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPharmaQuestionGetterSetter.java @@ -0,0 +1,99 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class MappingPharmaQuestionGetterSetter { + + String table_MAPPING_PHARMA_QUESTION; + + public String getImgPath() { + return imgPath; + } + + public void setImgPath(String imgPath) { + this.imgPath = imgPath; + } + + public int getIsChecked() { + return isChecked; + } + + public void setIsChecked(int isChecked) { + this.isChecked = isChecked; + } + + String imgPath=""; + int isChecked=-1; + + ArrayList QUESTION_ID = new ArrayList<>(); + ArrayList QUESTION= new ArrayList<>(); + ArrayList BRAND_ID= new ArrayList<>(); + ArrayList BRAND= new ArrayList<>(); + ArrayList SUB_CATEGORY_ID= new ArrayList<>(); + ArrayList SUB_CATEGORY= new ArrayList<>(); + ArrayList QUESTION_SEQUENCE= new ArrayList<>(); + + public String getTable_MAPPING_PHARMA_QUESTION() { + return table_MAPPING_PHARMA_QUESTION; + } + + public void setTable_MAPPING_PHARMA_QUESTION(String table_MAPPING_PHARMA_QUESTION) { + this.table_MAPPING_PHARMA_QUESTION = table_MAPPING_PHARMA_QUESTION; + } + + public ArrayList getQUESTION_ID() { + return QUESTION_ID; + } + + public void setQUESTION_ID(String QUESTION_ID) { + this.QUESTION_ID.add(QUESTION_ID); + } + + public ArrayList getQUESTION() { + return QUESTION; + } + + public void setQUESTION(String QUESTION) { + this.QUESTION.add(QUESTION); + } + + public ArrayList getBRAND_ID() { + return BRAND_ID; + } + + public void setBRAND_ID(String BRAND_ID) { + this.BRAND_ID.add(BRAND_ID); + } + + public ArrayList getBRAND() { + return BRAND; + } + + public void setBRAND(String BRAND) { + this.BRAND.add(BRAND); + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + public ArrayList getSUB_CATEGORY() { + return SUB_CATEGORY; + } + + public void setSUB_CATEGORY(String SUB_CATEGORY) { + this.SUB_CATEGORY.add(SUB_CATEGORY); + } + + public ArrayList getQUESTION_SEQUENCE() { + return QUESTION_SEQUENCE; + } + + public void setQUESTION_SEQUENCE(String QUESTION_SEQUENCE) { + this.QUESTION_SEQUENCE.add(QUESTION_SEQUENCE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPlanogramCountrywiseGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPlanogramCountrywiseGetterSetter.java new file mode 100644 index 0000000..7e7df26 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPlanogramCountrywiseGetterSetter.java @@ -0,0 +1,48 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 05-01-2018. + */ + +public class MappingPlanogramCountrywiseGetterSetter { + + String table_MAPPING_COUNTRYWISE_PLANOGRAM; + + ArrayList COUNTRY_ID = new ArrayList<>(); + ArrayList FILE_PATH = new ArrayList<>(); + ArrayList PLANOGRAM_URL = new ArrayList<>(); + + public String getTable_MAPPING_COUNTRYWISE_PLANOGRAM() { + return table_MAPPING_COUNTRYWISE_PLANOGRAM; + } + + public void setTable_MAPPING_COUNTRYWISE_PLANOGRAM(String table_MAPPING_COUNTRYWISE_PLANOGRAM) { + this.table_MAPPING_COUNTRYWISE_PLANOGRAM = table_MAPPING_COUNTRYWISE_PLANOGRAM; + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } + + public ArrayList getFILE_PATH() { + return FILE_PATH; + } + + public void setFILE_PATH(String FILE_PATH) { + this.FILE_PATH.add(FILE_PATH); + } + + public ArrayList getPLANOGRAM_URL() { + return PLANOGRAM_URL; + } + + public void setPLANOGRAM_URL(String PLANOGRAM_URL) { + this.PLANOGRAM_URL.add(PLANOGRAM_URL); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPlanogramStorewiseGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPlanogramStorewiseGetterSetter.java new file mode 100644 index 0000000..e37c5cc --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPlanogramStorewiseGetterSetter.java @@ -0,0 +1,53 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class MappingPlanogramStorewiseGetterSetter { + + String table_MAPPING_PLANOGRAM_STORE_WISE; + + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList STORE_ID = new ArrayList<>(); + ArrayList PLANOGRAM_IMAGE = new ArrayList<>(); + ArrayList IMAGE_PATH = new ArrayList<>(); + + public ArrayList getPLANOGRAM_IMAGE() { + return PLANOGRAM_IMAGE; + } + + public void setPLANOGRAM_IMAGE(String PLANOGRAM_IMAGE) { + this.PLANOGRAM_IMAGE.add(PLANOGRAM_IMAGE); + } + + public ArrayList getIMAGE_PATH() { + return IMAGE_PATH; + } + + public void setIMAGE_PATH(String IMAGE_PATH) { + this.IMAGE_PATH.add(IMAGE_PATH); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public String getTable_MAPPING_PLANOGRAM_STORE_WISE() { + return table_MAPPING_PLANOGRAM_STORE_WISE; + } + + public void setTable_MAPPING_PLANOGRAM_STORE_WISE(String table_MAPPING_PLANOGRAM_STORE_WISE) { + this.table_MAPPING_PLANOGRAM_STORE_WISE = table_MAPPING_PLANOGRAM_STORE_WISE; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPromotionGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPromotionGetterSetter.java new file mode 100644 index 0000000..ce1406d --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingPromotionGetterSetter.java @@ -0,0 +1,65 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 03-01-2017. + */ + +public class MappingPromotionGetterSetter { + String table_MAPPING_PROMOTION; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList SKU_ID = new ArrayList<>(); + ArrayList SKU = new ArrayList<>(); + ArrayList PROMO_ID = new ArrayList<>(); + ArrayList PROMO = new ArrayList<>(); + + public String getTable_MAPPING_PROMOTION() { + return table_MAPPING_PROMOTION; + } + + public void setTable_MAPPING_PROMOTION(String table_MAPPING_PROMOTION) { + this.table_MAPPING_PROMOTION = table_MAPPING_PROMOTION; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(String SKU_ID) { + this.SKU_ID.add(SKU_ID); + } + + public ArrayList getSKU() { + return SKU; + } + + public void setSKU(String SKU) { + this.SKU.add(SKU); + } + + public ArrayList getPROMO_ID() { + return PROMO_ID; + } + + public void setPROMO_ID(String PROMO_ID) { + this.PROMO_ID.add(PROMO_ID); + } + + public ArrayList getPROMO() { + return PROMO; + } + + public void setPROMO(String PROMO) { + this.PROMO.add(PROMO); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingStockGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingStockGetterSetter.java new file mode 100644 index 0000000..006823c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingStockGetterSetter.java @@ -0,0 +1,84 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 29-12-2016. + */ + +public class MappingStockGetterSetter { + + String table_MAPPING_STOCK; + + ArrayList KEYACCOUNT_ID = new ArrayList<>(); + ArrayList STORETYPE_ID = new ArrayList<>(); + ArrayList CLASS_ID = new ArrayList<>(); + ArrayList SKU_ID = new ArrayList<>(); + ArrayList MUST_HAVE = new ArrayList<>(); + ArrayList MBQ = new ArrayList<>(); + ArrayList SHOW_ADDITIONAL_VISIBILITY = new ArrayList<>(); + + public String getTable_MAPPING_STOCK() { + return table_MAPPING_STOCK; + } + + public void setTable_MAPPING_STOCK(String table_MAPPING_STOCK) { + this.table_MAPPING_STOCK = table_MAPPING_STOCK; + } + + public ArrayList getKEYACCOUNT_ID() { + return KEYACCOUNT_ID; + } + + public void setKEYACCOUNT_ID(String KEYACCOUNT_ID) { + this.KEYACCOUNT_ID.add(KEYACCOUNT_ID); + } + + public ArrayList getSTORETYPE_ID() { + return STORETYPE_ID; + } + + public void setSTORETYPE_ID(String STORETYPE_ID) { + this.STORETYPE_ID.add(STORETYPE_ID); + } + + public ArrayList getCLASS_ID() { + return CLASS_ID; + } + + public void setCLASS_ID(String CLASS_ID) { + this.CLASS_ID.add(CLASS_ID); + } + + public ArrayList getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(String SKU_ID) { + this.SKU_ID.add(SKU_ID); + } + + public ArrayList getMUST_HAVE() { + return MUST_HAVE; + } + + public void setMUST_HAVE(String MUST_HAVE) { + this.MUST_HAVE.add(MUST_HAVE); + } + + public ArrayList getMBQ() { + return MBQ; + } + + public void setMBQ(String MBQ) { + this.MBQ.add(MBQ); + } + + public ArrayList getSHOW_ADDITIONAL_VISIBILITY() { + return SHOW_ADDITIONAL_VISIBILITY; + } + + public void setSHOW_ADDITIONAL_VISIBILITY(String SHOW_ADDITIONAL_VISIBILITY) { + this.SHOW_ADDITIONAL_VISIBILITY.add(SHOW_ADDITIONAL_VISIBILITY); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingStockStorewiseGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingStockStorewiseGetterSetter.java new file mode 100644 index 0000000..d3e5489 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingStockStorewiseGetterSetter.java @@ -0,0 +1,71 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class MappingStockStorewiseGetterSetter { + + String table_MAPPING_STOCK_STOREWISE; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList SKU_ID = new ArrayList<>(); + ArrayList MUST_HAVE = new ArrayList<>(); + ArrayList MBQ = new ArrayList<>(); + ArrayList SHOW_ADDITIONAL_VISIBILITY = new ArrayList<>(); + ArrayList COUNTRY_ID = new ArrayList<>(); + + public String getTable_MAPPING_STOCK_STOREWISE() { + return table_MAPPING_STOCK_STOREWISE; + } + + public void setTable_MAPPING_STOCK_STOREWISE(String table_MAPPING_STOCK_STOREWISE) { + this.table_MAPPING_STOCK_STOREWISE = table_MAPPING_STOCK_STOREWISE; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(String SKU_ID) { + this.SKU_ID.add(SKU_ID); + } + + public ArrayList getMUST_HAVE() { + return MUST_HAVE; + } + + public void setMUST_HAVE(String MUST_HAVE) { + this.MUST_HAVE.add(MUST_HAVE); + } + + public ArrayList getMBQ() { + return MBQ; + } + + public void setMBQ(String MBQ) { + this.MBQ.add(MBQ); + } + + public ArrayList getSHOW_ADDITIONAL_VISIBILITY() { + return SHOW_ADDITIONAL_VISIBILITY; + } + + public void setSHOW_ADDITIONAL_VISIBILITY(String SHOW_ADDITIONAL_VISIBILITY) { + this.SHOW_ADDITIONAL_VISIBILITY.add(SHOW_ADDITIONAL_VISIBILITY); + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingSubCategoryImageAllowGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingSubCategoryImageAllowGetterSetter.java new file mode 100644 index 0000000..36cdab7 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/MappingSubCategoryImageAllowGetterSetter.java @@ -0,0 +1,48 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 28-12-2016. + */ + +public class MappingSubCategoryImageAllowGetterSetter { + + String table_MAPPING_SUB_CATEGORY_IMAGE_ALLOW; + + ArrayList COUNTRY_ID = new ArrayList<>(); + ArrayList SUB_CATEGORY_ID = new ArrayList<>(); + ArrayList IMAGE_ALLOW = new ArrayList<>(); + + public String getTable_MAPPING_SUB_CATEGORY_IMAGE_ALLOW() { + return table_MAPPING_SUB_CATEGORY_IMAGE_ALLOW; + } + + public void setTable_MAPPING_SUB_CATEGORY_IMAGE_ALLOW(String table_MAPPING_SUB_CATEGORY_IMAGE_ALLOW) { + this.table_MAPPING_SUB_CATEGORY_IMAGE_ALLOW = table_MAPPING_SUB_CATEGORY_IMAGE_ALLOW; + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + public ArrayList getIMAGE_ALLOW() { + return IMAGE_ALLOW; + } + + public void setIMAGE_ALLOW(String IMAGE_ALLOW) { + this.IMAGE_ALLOW.add(IMAGE_ALLOW); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NoCameraDataGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NoCameraDataGetterSetter.java new file mode 100644 index 0000000..63c62a3 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NoCameraDataGetterSetter.java @@ -0,0 +1,91 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 26-10-2017. + */ + +public class NoCameraDataGetterSetter { + + String SKUGROUP_ID; + String SKUGROUP_NAME; + + boolean isVertical=false; + + String SUB_CATEGORY_ID; + String SUB_CATEGORY; + int facing, row_no, column_no; + + public String getSKUGROUP_ID() { + return SKUGROUP_ID; + } + + public void setSKUGROUP_ID(String SKUGROUP_ID) { + this.SKUGROUP_ID = SKUGROUP_ID; + } + + public String getSKUGROUP_NAME() { + return SKUGROUP_NAME; + } + + public void setSKUGROUP_NAME(String SKUGROUP_NAME) { + this.SKUGROUP_NAME = SKUGROUP_NAME; + } + + String CATEGORY_ID; + + public int getFacing() { + return facing; + } + + public void setFacing(int facing) { + this.facing = facing; + } + + public int getRow_no() { + return row_no; + } + + public void setRow_no(int row_no) { + this.row_no = row_no; + } + + public int getColumn_no() { + return column_no; + } + + public void setColumn_no(int column_no) { + this.column_no = column_no; + } + + public String getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID = CATEGORY_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 boolean isVertical() { + return isVertical; + } + + public void setVertical(boolean vertical) { + isVertical = vertical; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NoCameraLastVisitGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NoCameraLastVisitGetterSetter.java new file mode 100644 index 0000000..81e9955 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NoCameraLastVisitGetterSetter.java @@ -0,0 +1,108 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class NoCameraLastVisitGetterSetter { + + String table_NO_CAMERA_LAST_VISIT_DATA; + + ArrayList MID = new ArrayList<>(); + ArrayList STORE_ID = new ArrayList<>(); + ArrayList VISIT_DATE = new ArrayList<>(); + ArrayList SKUGROUP_ID = new ArrayList<>(); + ArrayList ROW_NO = new ArrayList<>(); + ArrayList COLUMN_NO = new ArrayList<>(); + ArrayList FACING = new ArrayList<>(); + ArrayList IS_VERTICAL = new ArrayList<>(); + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList SUB_CATEGORY_ID = new ArrayList<>(); + + public String getTable_NO_CAMERA_LAST_VISIT_DATA() { + return table_NO_CAMERA_LAST_VISIT_DATA; + } + + public void setTable_NO_CAMERA_LAST_VISIT_DATA(String table_NO_CAMERA_LAST_VISIT_DATA) { + this.table_NO_CAMERA_LAST_VISIT_DATA = table_NO_CAMERA_LAST_VISIT_DATA; + } + + public ArrayList getMID() { + return MID; + } + + public void setMID(String MID) { + this.MID.add(MID); + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getVISIT_DATE() { + return VISIT_DATE; + } + + public void setVISIT_DATE(String VISIT_DATE) { + this.VISIT_DATE.add(VISIT_DATE); + } + + public ArrayList getSKUGROUP_ID() { + return SKUGROUP_ID; + } + + public void setSKUGROUP_ID(String SKUGROUP_ID) { + this.SKUGROUP_ID.add(SKUGROUP_ID); + } + + public ArrayList getROW_NO() { + return ROW_NO; + } + + public void setROW_NO(String ROW_NO) { + this.ROW_NO.add(ROW_NO); + } + + public ArrayList getCOLUMN_NO() { + return COLUMN_NO; + } + + public void setCOLUMN_NO(String COLUMN_NO) { + this.COLUMN_NO.add(COLUMN_NO); + } + + public ArrayList getFACING() { + return FACING; + } + + public void setFACING(String FACING) { + this.FACING.add(FACING); + } + + public ArrayList getIS_VERTICAL() { + return IS_VERTICAL; + } + + public void setIS_VERTICAL(String IS_VERTICAL) { + this.IS_VERTICAL.add(IS_VERTICAL); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonT2pReasonGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonT2pReasonGetterSetter.java new file mode 100644 index 0000000..a833694 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonT2pReasonGetterSetter.java @@ -0,0 +1,35 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class NonT2pReasonGetterSetter { + + String table_NON_T2P_REASON; + + ArrayList TREASON_ID = new ArrayList<>(); + ArrayList TREASON = new ArrayList<>(); + + public String getTable_NON_T2P_REASON() { + return table_NON_T2P_REASON; + } + + public void setTable_NON_T2P_REASON(String table_NON_T2P_REASON) { + this.table_NON_T2P_REASON = table_NON_T2P_REASON; + } + + public ArrayList getTREASON_ID() { + return TREASON_ID; + } + + public void setTREASON_ID(String TREASON_ID) { + this.TREASON_ID.add(TREASON_ID); + } + + public ArrayList getTREASON() { + return TREASON; + } + + public void setTREASON(String TREASON) { + this.TREASON.add(TREASON); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonWorkingReasonGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonWorkingReasonGetterSetter.java new file mode 100644 index 0000000..07ab029 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonWorkingReasonGetterSetter.java @@ -0,0 +1,94 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 03-01-2017. + */ + +public class NonWorkingReasonGetterSetter { + + String table_NON_WORKING_REASON; + + ArrayList REASON_ID = new ArrayList<>(); + ArrayList REASON = new ArrayList<>(); + ArrayList ENTRY_ALLOW = new ArrayList<>(); + ArrayList IMAGE_ALLOW = new ArrayList<>(); + ArrayList REMARK_REQUIRED = new ArrayList<>(); + ArrayList REMARK_TYPE = new ArrayList<>(); + ArrayList REMARK_LABEL = new ArrayList<>(); + ArrayList REMARK_MANDATORY = new ArrayList<>(); + + + public String getTable_NON_WORKING_REASON() { + return table_NON_WORKING_REASON; + } + + public void setTable_NON_WORKING_REASON(String table_NON_WORKING_REASON) { + this.table_NON_WORKING_REASON = table_NON_WORKING_REASON; + } + + public ArrayList getREASON_ID() { + return REASON_ID; + } + + public void setREASON_ID(String REASON_ID) { + this.REASON_ID.add(REASON_ID); + } + + public ArrayList getREASON() { + return REASON; + } + + public void setREASON(String REASON) { + this.REASON.add(REASON); + } + + public ArrayList getENTRY_ALLOW() { + return ENTRY_ALLOW; + } + + public void setENTRY_ALLOW(String ENTRY_ALLOW) { + this.ENTRY_ALLOW.add(ENTRY_ALLOW); + } + + public ArrayList getIMAGE_ALLOW() { + return IMAGE_ALLOW; + } + + public void setIMAGE_ALLOW(String IMAGE_ALLOW) { + this.IMAGE_ALLOW.add(IMAGE_ALLOW); + } + + public ArrayList getREMARK_REQUIRED() { + return REMARK_REQUIRED; + } + + public void setREMARK_REQUIRED(String REMARK_REQUIRED) { + this.REMARK_REQUIRED.add(REMARK_REQUIRED); + } + + public ArrayList getREMARK_TYPE() { + return REMARK_TYPE; + } + + public void setREMARK_TYPE(String REMARK_TYPE) { + this.REMARK_TYPE.add(REMARK_TYPE); + } + + public ArrayList getREMARK_LABEL() { + return REMARK_LABEL; + } + + public void setREMARK_LABEL(String REMARK_LABEL) { + this.REMARK_LABEL.add(REMARK_LABEL); + } + + public ArrayList getREMARK_MANDATORY() { + return REMARK_MANDATORY; + } + + public void setREMARK_MANDATORY(String REMARK_MANDATORY) { + this.REMARK_MANDATORY.add(REMARK_MANDATORY); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonWorkingSubReasonGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonWorkingSubReasonGetterSetter.java new file mode 100644 index 0000000..0a476a5 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/NonWorkingSubReasonGetterSetter.java @@ -0,0 +1,45 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class NonWorkingSubReasonGetterSetter { + + String table_NON_WORKING_SUB_REASON; + + ArrayList SUB_REASON_ID = new ArrayList<>(); + ArrayList SUB_REASON = new ArrayList<>(); + ArrayList REASON_ID = new ArrayList<>(); + + + public String getTable_NON_WORKING_SUB_REASON() { + return table_NON_WORKING_SUB_REASON; + } + + public void setTable_NON_WORKING_SUB_REASON(String table_NON_WORKING_SUB_REASON) { + this.table_NON_WORKING_SUB_REASON = table_NON_WORKING_SUB_REASON; + } + + public ArrayList getSUB_REASON_ID() { + return SUB_REASON_ID; + } + + public void setSUB_REASON_ID(String SUB_REASON_ID) { + this.SUB_REASON_ID.add(SUB_REASON_ID); + } + + public ArrayList getSUB_REASON() { + return SUB_REASON; + } + + public void setSUB_REASON(String SUB_REASON) { + this.SUB_REASON.add(SUB_REASON); + } + + public ArrayList getREASON_ID() { + return REASON_ID; + } + + public void setREASON_ID(String REASON_ID) { + this.REASON_ID.add(REASON_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Order_Received_Status_GetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Order_Received_Status_GetterSetter.java new file mode 100644 index 0000000..7dc9730 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Order_Received_Status_GetterSetter.java @@ -0,0 +1,100 @@ +package cpm.com.gskmtorange.xmlGetterSetter; +import java.util.ArrayList; + +public class Order_Received_Status_GetterSetter { + + String table_Order_Received_Status; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList APP_PONUMBER = new ArrayList<>(); + ArrayList STORE_PONUMBER = new ArrayList<>(); + ArrayList PO_DATE = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList SKU_ID = new ArrayList<>(); + ArrayList ORDERQTY = new ArrayList<>(); + ArrayList STATUS = new ArrayList<>(); + ArrayList POID = new ArrayList<>(); + + public ArrayList getPOID() { + return POID; + } + + public void setPOID(String POID) { + this.POID.add(POID); + } + + + + public String getTable_Order_Received_Status() { + return table_Order_Received_Status; + } + + public void setTable_Order_Received_Status(String table_Order_Received_Status) { + this.table_Order_Received_Status = table_Order_Received_Status; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getAPP_PONUMBER() { + return APP_PONUMBER; + } + + public void setAPP_PONUMBER(String APP_PONUMBER) { + this.APP_PONUMBER.add(APP_PONUMBER); + } + + public ArrayList getSTORE_PONUMBER() { + return STORE_PONUMBER; + } + + public void setSTORE_PONUMBER(String STORE_PONUMBER) { + this.STORE_PONUMBER.add(STORE_PONUMBER); + } + + public ArrayList getPO_DATE() { + return PO_DATE; + } + + public void setPO_DATE(String PO_DATE) { + this.PO_DATE.add(PO_DATE); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(String SKU_ID) { + this.SKU_ID.add(SKU_ID); + } + + public ArrayList getORDERQTY() { + return ORDERQTY; + } + + public void setORDERQTY(String ORDERQTY) { + this.ORDERQTY.add(ORDERQTY); + } + + public ArrayList getSTATUS() { + return STATUS; + } + + public void setSTATUS(String STATUS) { + this.STATUS.add(STATUS); + } + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/POGGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/POGGetterSetter.java new file mode 100644 index 0000000..29bae7c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/POGGetterSetter.java @@ -0,0 +1,114 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class POGGetterSetter { + + String QUESTION_ID, CULTURE_ID, SUB_CATEGORY_ID, QUESTION, ANSWER_TYPE, ANSWER_ID = "0", ANSWER, CAM_IMAGE="", CAMERA_ALLOW="0",QTYPE_ID,QTYPE, CATEGORY_ID; + + ArrayList answerList = new ArrayList<>(); + + public String getQUESTION_ID() { + return QUESTION_ID; + } + + public void setQUESTION_ID(String QUESTION_ID) { + this.QUESTION_ID = QUESTION_ID; + } + + public String getCULTURE_ID() { + return CULTURE_ID; + } + + public void setCULTURE_ID(String CULTURE_ID) { + this.CULTURE_ID = CULTURE_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 getQUESTION() { + return QUESTION; + } + + public void setQUESTION(String QUESTION) { + this.QUESTION = QUESTION; + } + + public String getANSWER_TYPE() { + return ANSWER_TYPE; + } + + public void setANSWER_TYPE(String ANSWER_TYPE) { + this.ANSWER_TYPE = ANSWER_TYPE; + } + + public String getANSWER_ID() { + return ANSWER_ID; + } + + public void setANSWER_ID(String ANSWER_ID) { + this.ANSWER_ID = ANSWER_ID; + } + + public String getANSWER() { + return ANSWER; + } + + public void setANSWER(String ANSWER) { + this.ANSWER = ANSWER; + } + + public String getCAM_IMAGE() { + return CAM_IMAGE; + } + + public void setCAM_IMAGE(String CAM_IMAGE) { + this.CAM_IMAGE = CAM_IMAGE; + } + + public String getCAMERA_ALLOW() { + return CAMERA_ALLOW; + } + + public void setCAMERA_ALLOW(String CAMERA_ALLOW) { + this.CAMERA_ALLOW = CAMERA_ALLOW; + } + + public String getQTYPE_ID() { + return QTYPE_ID; + } + + public void setQTYPE_ID(String QTYPE_ID) { + this.QTYPE_ID = QTYPE_ID; + } + + public String getQTYPE() { + return QTYPE; + } + + public void setQTYPE(String QTYPE) { + this.QTYPE = QTYPE; + } + + public ArrayList getAnswerList() { + return answerList; + } + + public void setAnswerList(ArrayList answerList) { + this.answerList = answerList; + } + + 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/POGQuestionGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/POGQuestionGetterSetter.java new file mode 100644 index 0000000..a76937c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/POGQuestionGetterSetter.java @@ -0,0 +1,116 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class POGQuestionGetterSetter { + String table_POG_QUESTION; + + ArrayList QUESTION_ID = new ArrayList<>(); + ArrayList CULTURE_ID = new ArrayList<>(); + ArrayList QUESTION = new ArrayList<>(); + ArrayList SUB_CATEGORY_ID = new ArrayList<>(); + ArrayList QTYPE_ID = new ArrayList<>(); + ArrayList QTYPE = new ArrayList<>(); + ArrayList KPI = new ArrayList<>(); + ArrayList ANSWER_ID = new ArrayList<>(); + ArrayList ANSWER = new ArrayList<>(); + + ArrayList STORETYPE_ID = new ArrayList<>(); + ArrayList POG_TYPE_ID = new ArrayList<>(); + + public String getTable_POG_QUESTION() { + return table_POG_QUESTION; + } + + public void setTable_POG_QUESTION(String table_POG_QUESTION) { + this.table_POG_QUESTION = table_POG_QUESTION; + } + + public ArrayList getQUESTION_ID() { + return QUESTION_ID; + } + + public void setQUESTION_ID(String QUESTION_ID) { + this.QUESTION_ID.add(QUESTION_ID); + } + + public ArrayList getCULTURE_ID() { + return CULTURE_ID; + } + + public void setCULTURE_ID(String CULTURE_ID) { + this.CULTURE_ID.add(CULTURE_ID); + } + + public ArrayList getQUESTION() { + return QUESTION; + } + + public void setQUESTION(String QUESTION) { + this.QUESTION.add(QUESTION); + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + public ArrayList getQTYPE_ID() { + return QTYPE_ID; + } + + public void setQTYPE_ID(String QTYPE_ID) { + this.QTYPE_ID.add(QTYPE_ID); + } + + public ArrayList getQTYPE() { + return QTYPE; + } + + public void setQTYPE(String QTYPE) { + this.QTYPE.add(QTYPE); + } + + public ArrayList getKPI() { + return KPI; + } + + public void setKPI(String KPI) { + this.KPI.add(KPI); + } + + public ArrayList getANSWER_ID() { + return ANSWER_ID; + } + + public void setANSWER_ID(String ANSWER_ID) { + this.ANSWER_ID.add(ANSWER_ID); + } + + public ArrayList getANSWER() { + return ANSWER; + } + + public void setANSWER(String ANSWER) { + this.ANSWER.add(ANSWER); + } + + public ArrayList getSTORETYPE_ID() { + return STORETYPE_ID; + } + + public void setSTORETYPE_ID(String STORETYPE_ID) { + this.STORETYPE_ID.add(STORETYPE_ID); + } + + public ArrayList getPOG_TYPE_ID() { + return POG_TYPE_ID; + } + + public void setPOG_TYPE_ID(String POG_TYPE_ID) { + this.POG_TYPE_ID.add(POG_TYPE_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/PharmaMSLInsertedGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PharmaMSLInsertedGetterSetter.java new file mode 100644 index 0000000..07e7d2b --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PharmaMSLInsertedGetterSetter.java @@ -0,0 +1,40 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +public class PharmaMSLInsertedGetterSetter { + + int present = -1; + + String skuId, sku, brandId; + + public int getPresent() { + return present; + } + + public void setPresent(int present) { + this.present = present; + } + + public String getSkuId() { + return skuId; + } + + public void setSkuId(String skuId) { + this.skuId = skuId; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public String getBrandId() { + return brandId; + } + + public void setBrandId(String brandId) { + this.brandId = brandId; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PharmaSOSGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PharmaSOSGetterSetter.java new file mode 100644 index 0000000..0e0277a --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PharmaSOSGetterSetter.java @@ -0,0 +1,72 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class PharmaSOSGetterSetter { + + String QUESTION_ID, QUESTION, BRAND_ID, BRAND, SUB_CATEGORY_ID, SUB_CATEGORY, gskFacing, competitorFacing; + + public String getQUESTION_ID() { + return QUESTION_ID; + } + + public void setQUESTION_ID(String QUESTION_ID) { + this.QUESTION_ID = QUESTION_ID; + } + + public String getQUESTION() { + return QUESTION; + } + + public void setQUESTION(String QUESTION) { + this.QUESTION = QUESTION; + } + + 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 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 getGskFacing() { + return gskFacing; + } + + public void setGskFacing(String gskFacing) { + this.gskFacing = gskFacing; + } + + public String getCompetitorFacing() { + return competitorFacing; + } + + public void setCompetitorFacing(String competitorFacing) { + this.competitorFacing = competitorFacing; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PromoComplianceSkuwiseGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PromoComplianceSkuwiseGetterSetter.java new file mode 100644 index 0000000..4cbc393 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/PromoComplianceSkuwiseGetterSetter.java @@ -0,0 +1,112 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +public class PromoComplianceSkuwiseGetterSetter { + + String sku, sku_id, brand, brand_id, sub_category, sub_category_id, img, discount_value, price, category_id, _id; + boolean isExists = true; + int price_flasher = -1; + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public String getSku_id() { + return sku_id; + } + + public void setSku_id(String sku_id) { + this.sku_id = sku_id; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getBrand_id() { + return brand_id; + } + + public void setBrand_id(String brand_id) { + this.brand_id = brand_id; + } + + public String getSub_category() { + return sub_category; + } + + public void setSub_category(String sub_category) { + this.sub_category = sub_category; + } + + 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 getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + public String getDiscount_value() { + return discount_value; + } + + public void setDiscount_value(String discount_value) { + this.discount_value = discount_value; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public boolean isExists() { + return isExists; + } + + public void setExists(boolean exists) { + isExists = exists; + } + + public String get_id() { + return _id; + } + + public void set_id(String _id) { + this._id = _id; + } + + public int getPrice_flasher() { + return price_flasher; + } + + public void setPrice_flasher(int price_flasher) { + this.price_flasher = price_flasher; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Promo_Compliance_DataGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Promo_Compliance_DataGetterSetter.java new file mode 100644 index 0000000..65d30e0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Promo_Compliance_DataGetterSetter.java @@ -0,0 +1,100 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by gagang on 06-01-2017. + */ + +public class Promo_Compliance_DataGetterSetter { + String store_id, sku_id, sku, promo_id, promo, in_stock = "-1", promo_announcer = "-1", + running_pos, sp_promo, category_id,image_promotion; + + public String getStore_id() { + return store_id; + } + + public void setStore_id(String store_id) { + this.store_id = store_id; + } + + 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 getPromo_id() { + return promo_id; + } + + public void setPromo_id(String promo_id) { + this.promo_id = promo_id; + } + + public String getPromo() { + return promo; + } + + public void setPromo(String promo) { + this.promo = promo; + } + + public String getIn_stock() { + return in_stock; + } + + public void setIn_stock(String in_stock) { + this.in_stock = in_stock; + } + + public String getPromo_announcer() { + return promo_announcer; + } + + public void setPromo_announcer(String promo_announcer) { + this.promo_announcer = promo_announcer; + } + + public String getRunning_pos() { + return running_pos; + } + + public void setRunning_pos(String running_pos) { + this.running_pos = running_pos; + } + + public String getSp_promo() { + return sp_promo; + } + + public void setSp_promo(String sp_promo) { + this.sp_promo = sp_promo; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getImage_promotion() { + return image_promotion; + } + + public void setImage_promotion(String image_promotion) { + this.image_promotion = image_promotion; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/RowColumnGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/RowColumnGetterSetter.java new file mode 100644 index 0000000..546b02f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/RowColumnGetterSetter.java @@ -0,0 +1,28 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 30-10-2017. + */ + +public class RowColumnGetterSetter { + + int row, column; + + public int getRow() { + return row; + } + + public void setRow(int row) { + this.row = row; + } + + public int getColumn() { + return column; + } + + public void setColumn(int column) { + this.column = column; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_CATEGORY_WISEGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_CATEGORY_WISEGetterSetter.java new file mode 100644 index 0000000..6b44bef --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_CATEGORY_WISEGetterSetter.java @@ -0,0 +1,56 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by UPENDRA on 01-06-2020. + */ + +public class STORE_CATEGORY_WISEGetterSetter { + String table_CATEGORYWISE_SOS_TARGET; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList SUB_CATEGORY = new ArrayList<>(); + ArrayList SOS_TARGET = new ArrayList<>(); + + public String getTable_CATEGORYWISE_SOS_TARGET() { + return table_CATEGORYWISE_SOS_TARGET; + } + + public void setTable_CATEGORYWISE_SOS_TARGET(String table_CATEGORYWISE_SOS_TARGET) { + this.table_CATEGORYWISE_SOS_TARGET = table_CATEGORYWISE_SOS_TARGET; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getSUB_CATEGORY() { + return SUB_CATEGORY; + } + + public void setSUB_CATEGORY(String SUB_CATEGORY) { + this.SUB_CATEGORY.add(SUB_CATEGORY); + } + + public ArrayList getSOS_TARGET() { + return SOS_TARGET; + } + + public void setSOS_TARGET(String SOS_TARGET) { + this.SOS_TARGET.add(SOS_TARGET); + } +} 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 new file mode 100644 index 0000000..96317c6 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/STORE_PERFORMANCE_MasterGetterSetter.java @@ -0,0 +1,104 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by gagang on 11-01-2017. + */ + +public class STORE_PERFORMANCE_MasterGetterSetter { + String table_STORE_PERFORMANCE; + + ArrayList STORE_ID = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList PERIOD = new ArrayList<>(); + ArrayList SOS = new ArrayList<>(); + ArrayList T2P = new ArrayList<>(); + ArrayList PROMO = new ArrayList<>(); + ArrayList MSL_AVAILABILITY = new ArrayList<>(); + ArrayList ORDERID = new ArrayList<>(); + ArrayList PLANOGRAM = new ArrayList<>(); + public ArrayList getPLANOGRAM() { + return PLANOGRAM; + } + + public void setPLANOGRAM(String PLANOGRAM) { + this.PLANOGRAM.add(PLANOGRAM); + } + + + + + + public String getTable_STORE_PERFORMANCE() { + return table_STORE_PERFORMANCE; + } + + public void setTable_STORE_PERFORMANCE(String table_STORE_PERFORMANCE) { + this.table_STORE_PERFORMANCE = table_STORE_PERFORMANCE; + } + + public ArrayList getSTORE_ID() { + return STORE_ID; + } + + public void setSTORE_ID(String STORE_ID) { + this.STORE_ID.add(STORE_ID); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getPERIOD() { + return PERIOD; + } + + public void setPERIOD(String PERIOD) { + this.PERIOD.add(PERIOD); + } + + public ArrayList getSOS() { + return SOS; + } + + public void setSOS(String SOS) { + this.SOS.add(SOS); + } + + public ArrayList getT2P() { + return T2P; + } + + public void setT2P(String t2P) { + this.T2P.add(t2P); + } + + public ArrayList getPROMO() { + return PROMO; + } + + public void setPROMO(String PROMO) { + this.PROMO.add(PROMO); + } + + public ArrayList getMSL_AVAILABILITY() { + return MSL_AVAILABILITY; + } + + public void setMSL_AVAILABILITY(String MSL_AVAILABILITY) { + this.MSL_AVAILABILITY.add(MSL_AVAILABILITY); + } + + public ArrayList getORDERID() { + return ORDERID; + } + + public void setORDERID(String ORDERID) { + this.ORDERID.add(ORDERID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SelectGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SelectGetterSetter.java new file mode 100644 index 0000000..430943c --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SelectGetterSetter.java @@ -0,0 +1,27 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 31-05-2017. + */ + +public class SelectGetterSetter { + + int ans_id; + String ans; + + public int getAns_id() { + return ans_id; + } + + public void setAns_id(int ans_id) { + this.ans_id = ans_id; + } + + public String getAns() { + return ans; + } + + public void setAns(String ans) { + this.ans = ans; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ShelfMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ShelfMasterGetterSetter.java new file mode 100644 index 0000000..0761aa1 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/ShelfMasterGetterSetter.java @@ -0,0 +1,34 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class ShelfMasterGetterSetter { + String table_SHELF_MASTER; + + ArrayList SHELF_ID = new ArrayList<>(); + ArrayList SHELF = new ArrayList<>(); + + public String getTable_SHELF_MASTER() { + return table_SHELF_MASTER; + } + + public void setTable_SHELF_MASTER(String table_SHELF_MASTER) { + this.table_SHELF_MASTER = table_SHELF_MASTER; + } + + public ArrayList getSHELF_ID() { + return SHELF_ID; + } + + public void setSHELF_ID(String SHELF_ID) { + this.SHELF_ID.add(SHELF_ID); + } + + public ArrayList getSHELF() { + return SHELF; + } + + public void setSHELF(String SHELF) { + this.SHELF.add(SHELF); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuGetterSetter.java new file mode 100644 index 0000000..5bee077 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuGetterSetter.java @@ -0,0 +1,65 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 28-12-2016. + */ + +public class SkuGetterSetter { + String SKU_ID, SKU, BRAND_ID, BRAND, MRP, SKU_SEQUENCE,STOCK; + + 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 getBRAND_ID() { + return BRAND_ID; + } + + public void setBRAND_ID(String BRAND_ID) { + this.BRAND_ID = BRAND_ID; + } + + 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 getBRAND() { + return BRAND; + } + + public void setBRAND(String BRAND) { + this.BRAND = BRAND; + } + + public String getSTOCK() { + return STOCK; + } + + public void setSTOCK(String STOCK) { + this.STOCK = STOCK; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuGroupMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuGroupMasterGetterSetter.java new file mode 100644 index 0000000..8903451 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuGroupMasterGetterSetter.java @@ -0,0 +1,68 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 27-10-2017. + */ + +public class SkuGroupMasterGetterSetter { + + public String getTable_SKUGROUP_MASTER() { + return table_SKUGROUP_MASTER; + } + + public void setTable_SKUGROUP_MASTER(String table_SKUGROUP_MASTER) { + this.table_SKUGROUP_MASTER = table_SKUGROUP_MASTER; + } + + String table_SKUGROUP_MASTER; + + ArrayList SKUGROUP_ID = new ArrayList<>(); + ArrayList SKUGROUP_NAME = new ArrayList<>(); + + public ArrayList getSKUGROUP_ID() { + return SKUGROUP_ID; + } + + public void setSKUGROUP_ID(String SKUGROUP_ID) { + this.SKUGROUP_ID.add(SKUGROUP_ID); + } + + public ArrayList getSKUGROUP_NAME() { + return SKUGROUP_NAME; + } + + public void setSKUGROUP_NAME(String SKUGROUP_NAME) { + this.SKUGROUP_NAME.add(SKUGROUP_NAME); + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getSKUGROUP_SEQUENCE() { + return SKUGROUP_SEQUENCE; + } + + public void setSKUGROUP_SEQUENCE(String SKUGROUP_SEQUENCE) { + this.SKUGROUP_SEQUENCE.add(SKUGROUP_SEQUENCE); + } + + ArrayList SUB_CATEGORY_ID = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList SKUGROUP_SEQUENCE = new ArrayList<>(); + +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuMasterGetterSetter.java new file mode 100644 index 0000000..a76a37a --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SkuMasterGetterSetter.java @@ -0,0 +1,85 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 28-12-2016. + */ + +public class SkuMasterGetterSetter { + + String table_SKU_MASTER; + + ArrayList SKU_ID = new ArrayList<>(); + ArrayList SKU = new ArrayList<>(); + ArrayList BRAND_ID = new ArrayList<>(); + ArrayList MRP = new ArrayList<>(); + ArrayList SKU_SEQUENCE = new ArrayList<>(); + ArrayList PROMO_SKU = new ArrayList<>(); + + public ArrayList getSKU_SEQUENCE_SA() { + return SKU_SEQUENCE_SA; + } + + public void setSKU_SEQUENCE_SA(String SKU_SEQUENCE_SA) { + this.SKU_SEQUENCE_SA.add(SKU_SEQUENCE_SA); + } + + ArrayList SKU_SEQUENCE_SA = new ArrayList<>(); + + public ArrayList getSKU_ID() { + return SKU_ID; + } + + public void setSKU_ID(String SKU_ID) { + this.SKU_ID.add(SKU_ID); + } + + public ArrayList getSKU() { + return SKU; + } + + public void setSKU(String SKU) { + this.SKU.add(SKU); + } + + public ArrayList getBRAND_ID() { + return BRAND_ID; + } + + public void setBRAND_ID(String BRAND_ID) { + this.BRAND_ID.add(BRAND_ID); + } + + public ArrayList getMRP() { + return MRP; + } + + public void setMRP(String MRP) { + this.MRP.add(MRP); + } + + public ArrayList getSKU_SEQUENCE() { + return SKU_SEQUENCE; + } + + public void setSKU_SEQUENCE(String SKU_SEQUENCE) { + this.SKU_SEQUENCE.add(SKU_SEQUENCE); + } + + public String getTable_SKU_MASTER() { + return table_SKU_MASTER; + } + + public void setTable_SKU_MASTER(String table_SKU_MASTER) { + this.table_SKU_MASTER = table_SKU_MASTER; + } + + public ArrayList getPROMO_SKU() { + return PROMO_SKU; + } + + public void setPROMO_SKU(String PROMO_SKU) { + this.PROMO_SKU.add(PROMO_SKU); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/StockFacing_PlanogramTrackerDataGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/StockFacing_PlanogramTrackerDataGetterSetter.java new file mode 100644 index 0000000..1c68e5e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/StockFacing_PlanogramTrackerDataGetterSetter.java @@ -0,0 +1,226 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; +import java.util.Comparator; + +public class StockFacing_PlanogramTrackerDataGetterSetter { + String shelf_id, shelf, sp_addShelf_id, sp_addShelf, sp_shelfPosition, checkbox_sku; + String category_id, sub_category_id, sub_category, brand_id, brand, + sku_id, sku, mrp, sku_sequence, stock, facing, mbq, company_id, image1, image2, sos_target, key_id; + + public String getShelf_id() { + return shelf_id; + } + + public void setShelf_id(String shelf_id) { + this.shelf_id = shelf_id; + } + + public String getShelf() { + return shelf; + } + + public void setShelf(String shelf) { + this.shelf = shelf; + } + + public String getSp_addShelf_id() { + return sp_addShelf_id; + } + + public void setSp_addShelf_id(String sp_addShelf_id) { + this.sp_addShelf_id = sp_addShelf_id; + } + + public String getSp_addShelf() { + return sp_addShelf; + } + + public void setSp_addShelf(String sp_addShelf) { + this.sp_addShelf = sp_addShelf; + } + + public String getSp_shelfPosition() { + return sp_shelfPosition; + } + + public void setSp_shelfPosition(String sp_shelfPosition) { + this.sp_shelfPosition = sp_shelfPosition; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_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 getStock() { + return stock; + } + + public void setStock(String stock) { + this.stock = stock; + } + + public String getFacing() { + return facing; + } + + public void setFacing(String facing) { + this.facing = facing; + } + + public String getMbq() { + return mbq; + } + + public void setMbq(String mbq) { + this.mbq = mbq; + } + + public String getCompany_id() { + return company_id; + } + + public void setCompany_id(String company_id) { + this.company_id = company_id; + } + + public String getImage1() { + return image1; + } + + public void setImage1(String image1) { + this.image1 = image1; + } + + public String getImage2() { + return image2; + } + + public void setImage2(String image2) { + this.image2 = image2; + } + + public String getSos_target() { + return sos_target; + } + + public void setSos_target(String sos_target) { + this.sos_target = sos_target; + } + + public String getCheckbox_sku() { + return checkbox_sku; + } + + public void setCheckbox_sku(String checkbox_sku) { + this.checkbox_sku = checkbox_sku; + } + + public String getKey_id() { + return key_id; + } + + public void setKey_id(String key_id) { + this.key_id = key_id; + } + + + //Comparator Interface + public static Comparator shelfComparator = + new Comparator() { + + public int compare(StockFacing_PlanogramTrackerDataGetterSetter s1, StockFacing_PlanogramTrackerDataGetterSetter s2) { + String shelf1 = s1.getSp_addShelf_id(); + String shelf2 = s2.getSp_addShelf_id(); + + //ascending order + return shelf1.compareTo(shelf2); + + //descending order + //return StudentName2.compareTo(StudentName1); + } + }; + + public static Comparator shelfPositionComparator = + new Comparator() { + + public int compare(StockFacing_PlanogramTrackerDataGetterSetter s1, StockFacing_PlanogramTrackerDataGetterSetter s2) { + String shelf1 = s1.getSp_shelfPosition(); + String shelf2 = s2.getSp_shelfPosition(); + + //ascending order + return shelf1.compareTo(shelf2); + + //descending order + //return StudentName2.compareTo(StudentName1); + } + }; +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Stock_FacingGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Stock_FacingGetterSetter.java new file mode 100644 index 0000000..105cec6 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Stock_FacingGetterSetter.java @@ -0,0 +1,138 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 23-12-2016. + */ + +public class Stock_FacingGetterSetter { + String category_id, sub_category_id, sub_category, brand_id, brand, + sku_id, sku, mrp, sku_sequence, stock, facing, mbq, company_id, image1, image2, sos_target; + + 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 getStock() { + return stock; + } + + public void setStock(String stock) { + this.stock = stock; + } + + public String getFacing() { + return facing; + } + + public void setFacing(String facing) { + this.facing = facing; + } + + public String getMbq() { + return mbq; + } + + public void setMbq(String mbq) { + this.mbq = mbq; + } + + public String getCompany_id() { + return company_id; + } + + public void setCompany_id(String company_id) { + this.company_id = company_id; + } + + public String getImage1() { + return image1; + } + + public void setImage1(String image1) { + this.image1 = image1; + } + + public String getImage2() { + return image2; + } + + public void setImage2(String image2) { + this.image2 = image2; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getSos_target() { + return sos_target; + } + + public void setSos_target(String sos_target) { + this.sos_target = sos_target; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Stock_Facing_PlanogramTrackerGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Stock_Facing_PlanogramTrackerGetterSetter.java new file mode 100644 index 0000000..8422f9f --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Stock_Facing_PlanogramTrackerGetterSetter.java @@ -0,0 +1,138 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 23-12-2016. + */ + +public class Stock_Facing_PlanogramTrackerGetterSetter { + String category_id, sub_category_id, sub_category, brand_id, brand, + sku_id, sku, mrp, sku_sequence, stock, facing, mbq, company_id, image1, image2, sos_target; + + 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 getStock() { + return stock; + } + + public void setStock(String stock) { + this.stock = stock; + } + + public String getFacing() { + return facing; + } + + public void setFacing(String facing) { + this.facing = facing; + } + + public String getMbq() { + return mbq; + } + + public void setMbq(String mbq) { + this.mbq = mbq; + } + + public String getCompany_id() { + return company_id; + } + + public void setCompany_id(String company_id) { + this.company_id = company_id; + } + + public String getImage1() { + return image1; + } + + public void setImage1(String image1) { + this.image1 = image1; + } + + public String getImage2() { + return image2; + } + + public void setImage2(String image2) { + this.image2 = image2; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getSos_target() { + return sos_target; + } + + public void setSos_target(String sos_target) { + this.sos_target = sos_target; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/StoreWisePerformaceGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/StoreWisePerformaceGetterSetter.java new file mode 100644 index 0000000..5bfa4c5 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/StoreWisePerformaceGetterSetter.java @@ -0,0 +1,91 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 23-12-2016. + */ + +public class StoreWisePerformaceGetterSetter { + String store_id, category_id, period, msl_availability, sos, t2p, promo, oss, order_id; + + public String getPLANOGRAM() { + return PLANOGRAM; + } + + public void setPLANOGRAM(String PLANOGRAM) { + this.PLANOGRAM = PLANOGRAM; + } + + String PLANOGRAM; + + public String getStore_id() { + return store_id; + } + + public void setStore_id(String store_id) { + this.store_id = store_id; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getPeriod() { + return period; + } + + public void setPeriod(String period) { + this.period = period; + } + + public String getMsl_availability() { + return msl_availability; + } + + public void setMsl_availability(String msl_availability) { + this.msl_availability = msl_availability; + } + + public String getSos() { + return sos; + } + + public void setSos(String sos) { + this.sos = sos; + } + + public String getT2p() { + return t2p; + } + + public void setT2p(String t2p) { + this.t2p = t2p; + } + + public String getPromo() { + return promo; + } + + public void setPromo(String promo) { + this.promo = promo; + } + + public String getOss() { + return oss; + } + + public void setOss(String oss) { + this.oss = oss; + } + + public String getOrder_id() { + return order_id; + } + + public void setOrder_id(String order_id) { + this.order_id = order_id; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Store_wise_camera_DataGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Store_wise_camera_DataGetterSetter.java new file mode 100644 index 0000000..f5faf4e --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Store_wise_camera_DataGetterSetter.java @@ -0,0 +1,65 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by gagang on 06-01-2017. + */ + +public class Store_wise_camera_DataGetterSetter { + String store_id, category_id, camera1, camera2, camera3, camera4,checkSaveStatus; + + public String getStore_id() { + return store_id; + } + + public void setStore_id(String store_id) { + this.store_id = store_id; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getCamera1() { + return camera1; + } + + public void setCamera1(String camera1) { + this.camera1 = camera1; + } + + public String getCamera2() { + return camera2; + } + + public void setCamera2(String camera2) { + this.camera2 = camera2; + } + + public String getCamera3() { + return camera3; + } + + public void setCamera3(String camera3) { + this.camera3 = camera3; + } + + public String getCamera4() { + return camera4; + } + + public void setCamera4(String camera4) { + this.camera4 = camera4; + } + + public String getCheckSaveStatus() { + return checkSaveStatus; + } + + public void setCheckSaveStatus(String checkSaveStatus) { + this.checkSaveStatus = checkSaveStatus; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SubCategoryMasterGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SubCategoryMasterGetterSetter.java new file mode 100644 index 0000000..83ca362 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SubCategoryMasterGetterSetter.java @@ -0,0 +1,73 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +/** + * Created by yadavendras on 29-12-2016. + */ + +public class SubCategoryMasterGetterSetter { + String table_SUB_CATEGORY_MASTER; + ArrayList SUB_CATEGORY_ID = new ArrayList<>(); + ArrayList SUB_CATEGORY = new ArrayList<>(); + ArrayList CATEGORY_ID = new ArrayList<>(); + ArrayList SUB_CATEGORY_SEQUENCE = new ArrayList<>(); + ArrayList PD_SUB_CATEGORY_CODE = new ArrayList<>(); + public ArrayList getPD_SUB_CATEGORY_CODE() { + return PD_SUB_CATEGORY_CODE; + } + public void setPD_SUB_CATEGORY_CODE(String PD_SUB_CATEGORY_CODE ) { + this.PD_SUB_CATEGORY_CODE.add(PD_SUB_CATEGORY_CODE); + } + + public ArrayList getSUB_CATEGORY_SEQUENCE_SA() { + return SUB_CATEGORY_SEQUENCE_SA; + } + + public void setSUB_CATEGORY_SEQUENCE_SA(String SUB_CATEGORY_SEQUENCE_SA) { + this.SUB_CATEGORY_SEQUENCE_SA.add(SUB_CATEGORY_SEQUENCE_SA); + } + + ArrayList SUB_CATEGORY_SEQUENCE_SA = new ArrayList<>(); + + + public String getTable_SUB_CATEGORY_MASTER() { + return table_SUB_CATEGORY_MASTER; + } + + public void setTable_SUB_CATEGORY_MASTER(String table_SUB_CATEGORY_MASTER) { + this.table_SUB_CATEGORY_MASTER = table_SUB_CATEGORY_MASTER; + } + + public ArrayList getSUB_CATEGORY_ID() { + return SUB_CATEGORY_ID; + } + + public void setSUB_CATEGORY_ID(String SUB_CATEGORY_ID) { + this.SUB_CATEGORY_ID.add(SUB_CATEGORY_ID); + } + + public ArrayList getSUB_CATEGORY() { + return SUB_CATEGORY; + } + + public void setSUB_CATEGORY(String SUB_CATEGORY) { + this.SUB_CATEGORY.add(SUB_CATEGORY); + } + + public ArrayList getCATEGORY_ID() { + return CATEGORY_ID; + } + + public void setCATEGORY_ID(String CATEGORY_ID) { + this.CATEGORY_ID.add(CATEGORY_ID); + } + + public ArrayList getSUB_CATEGORY_SEQUENCE() { + return SUB_CATEGORY_SEQUENCE; + } + + public void setSUB_CATEGORY_SEQUENCE(String SUB_CATEGORY_SEQUENCE) { + this.SUB_CATEGORY_SEQUENCE.add(SUB_CATEGORY_SEQUENCE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SupervisorListGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SupervisorListGetterSetter.java new file mode 100644 index 0000000..1528186 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/SupervisorListGetterSetter.java @@ -0,0 +1,63 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class SupervisorListGetterSetter { + + String table_SUPERVISOR_LIST; + + ArrayList EMP_ID = new ArrayList<>(); + ArrayList SUPERVISOR = new ArrayList<>(); + ArrayList COUNTRY_ID = new ArrayList<>(); + + public ArrayList getCOACHING_VISIT() { + return COACHING_VISIT; + } + + public void setCOACHING_VISIT(String COACHING_VISIT) { + this.COACHING_VISIT.add(COACHING_VISIT); + } + + public ArrayList getCHECK_VISIT() { + return CHECK_VISIT; + } + + public void setCHECK_VISIT(String CHECK_VISIT) { + this.CHECK_VISIT.add(CHECK_VISIT); + } + + ArrayList COACHING_VISIT = new ArrayList<>(); + ArrayList CHECK_VISIT = new ArrayList<>(); + + public String getTable_SUPERVISOR_LIST() { + return table_SUPERVISOR_LIST; + } + + public void setTable_SUPERVISOR_LIST(String table_SUPERVISOR_LIST) { + this.table_SUPERVISOR_LIST = table_SUPERVISOR_LIST; + } + + public ArrayList getEMP_ID() { + return EMP_ID; + } + + public void setEMP_ID(String EMP_ID) { + this.EMP_ID.add(EMP_ID); + } + + public ArrayList getSUPERVISOR() { + return SUPERVISOR; + } + + public void setSUPERVISOR(String SUPERVISOR) { + this.SUPERVISOR.add(SUPERVISOR); + } + + public ArrayList getCOUNTRY_ID() { + return COUNTRY_ID; + } + + public void setCOUNTRY_ID(String COUNTRY_ID) { + this.COUNTRY_ID.add(COUNTRY_ID); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/T2PGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/T2PGetterSetter.java new file mode 100644 index 0000000..a2a32e0 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/T2PGetterSetter.java @@ -0,0 +1,201 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +import cpm.com.gskmtorange.GetterSetter.BrandAvabilityGetterSetter; + +/** + * Created by yadavendras on 02-01-2017. + */ + +public class T2PGetterSetter { + + String brand_id, display_id, brand, display, image, remark, key_id, category_id, ref_image_url, ref_image_path, image1, image2, category_fixture, non_t2p_reason_id="0"; + boolean isPresent; + int present = -1; + String allowQty =""; + String qty=""; + + public String getQty() { + return qty; + } + + public void setQty(String qty) { + this.qty = qty; + } + + public String getAllowQty() { + return allowQty; + } + + public void setAllowQty(String allowQty) { + this.allowQty = allowQty; + } + + ArrayList gapsChecklist = new ArrayList<>(); + ArrayList skulist = new ArrayList<>(); + + public ArrayList getnon_t2p_reason_list() { + return non_t2p_reason_list; + } + + public void setnon_t2p_reason_list(ArrayList non_t2p_reason) { + this.non_t2p_reason_list = non_t2p_reason; + } + + ArrayList non_t2p_reason_list = new ArrayList<>(); + + public ArrayList getBrandlist() { + return brandlist; + } + + public void setBrandlist(ArrayList brandlist) { + this.brandlist = brandlist; + } + + ArrayList brandlist = new ArrayList<>(); + + public String getBrand_id() { + return brand_id; + } + + public void setBrand_id(String brand_id) { + this.brand_id = brand_id; + } + + public String getDisplay_id() { + return display_id; + } + + public void setDisplay_id(String display_id) { + this.display_id = display_id; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getDisplay() { + return display; + } + + public void setDisplay(String display) { + this.display = display; + } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public boolean isPresent() { + return isPresent; + } + + public void setPresent(boolean present) { + isPresent = present; + } + + public ArrayList getGapsChecklist() { + return gapsChecklist; + } + + public void setGapsChecklist(ArrayList gapsChecklist) { + this.gapsChecklist = gapsChecklist; + } + + public ArrayList getSkulist() { + return skulist; + } + + public void setSkulist(ArrayList skulist) { + this.skulist = skulist; + } + + public String getKey_id() { + return key_id; + } + + public void setKey_id(String key_id) { + this.key_id = key_id; + } + + public String getCategory_id() { + return category_id; + } + + public void setCategory_id(String category_id) { + this.category_id = category_id; + } + + public String getRef_image_url() { + return ref_image_url; + } + + public void setRef_image_url(String ref_image_url) { + this.ref_image_url = ref_image_url; + } + + public String getRef_image_path() { + return ref_image_path; + } + + public void setRef_image_path(String ref_image_path) { + this.ref_image_path = ref_image_path; + } + + public String getImage1() { + return image1; + } + + public void setImage1(String image1) { + this.image1 = image1; + } + + public String getImage2() { + return image2; + } + + public void setImage2(String image2) { + this.image2 = image2; + } + + public String getCategory_fixture() { + return category_fixture; + } + + public void setCategory_fixture(String category_fixture) { + this.category_fixture = category_fixture; + } + + public int getPresent() { + return present; + } + + public void setPresent(int present) { + this.present = present; + } + + public String getNon_t2p_reason_id() { + return non_t2p_reason_id; + } + + public void setNon_t2p_reason_id(String non_t2p_reason_id) { + this.non_t2p_reason_id = non_t2p_reason_id; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/TableBean.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/TableBean.java new file mode 100644 index 0000000..6c5db60 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/TableBean.java @@ -0,0 +1,434 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +/** + * Created by yadavendras on 28-12-2016. + */ + +public class TableBean { + + public static String JOURNEY_PLAN; + public static String ADHOC_JOURNEY_PLAN; + public static String SKU_MASTER; + public static String BRAND_MASTER; + public static String SUB_CATEGORY_MASTER; + public static String CATEGORY_MASTER; + public static String DISPLAY_MASTER; + public static String MAPPING_STOCK; + public static String MAPPING_T2P; + public static String DISPLAY_CHECKLIST_MASTER; + public static String MAPPING_DISPLAY_CHECKLIST; + public static String NON_WORKING_REASON; + public static String MAPPING_PROMOTION; + + public static String getCategoryWiseSos() { + return CATEGORY_WISE_SOS; + } + + public static void setCategoryWiseSos(String categoryWiseSos) { + CATEGORY_WISE_SOS = categoryWiseSos; + } + + public static String CATEGORY_WISE_SOS; + + //Gagan start code + public static String MAPPING_ADDITIONAL_PROMOTION; + public static String STORE_PERFORMANCE; + public static String MAPPING_PLANOGRAM; + public static String MAPPING_SOS_TARGET; + public static String SHELF_MASTER; + public static String MAPPING_SUB_CATEGORY_IMAGE_ALLOW; + public static String SKUGROUP_MASTER; + + //YSY + public static String MAPPING_CATEGORY_IMAGE_ALLOW; + public static String MAPPING_COUNTRYWISE_PLANOGRAM; + public static String Table_ADDITIONAL_QUESTION; + public static String Table_POG_QUESTION; + public static String Table_NON_T2P_REASON; + public static String Table_CONFIGURATION_COUNTRY_WISE; + public static String Table_NO_CAMERA_LAST_VISIT_DATA; + public static String Table_GEO_FENCING; + public static String Table_NON_WORKING_SUB_REASON; + public static String Table_SUPERVISOR_LIST; + 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 Table_ORDER_RECEIVED_STATUS; + + public static String getTable_VISIT_TYPE_STATUS() { + return Table_VISIT_TYPE_STATUS; + } + + public static void setTable_VISIT_TYPE_STATUS(String table_VISIT_TYPE_STATUS) { + Table_VISIT_TYPE_STATUS = table_VISIT_TYPE_STATUS; + } + + public static String Table_VISIT_TYPE_STATUS; + + public static String getTable_ORDER_RECEIVED_STATUS() { + return Table_ORDER_RECEIVED_STATUS; + } + + public static void setTable_ORDER_RECEIVED_STATUS(String table_ORDER_RECEIVED_STATUS) { + Table_ORDER_RECEIVED_STATUS = table_ORDER_RECEIVED_STATUS; + } + + public static String getTable_MAPPING_SKU_PRICING_ENABLE() { + return Table_MAPPING_SKU_PRICING_ENABLE; + } + + public static void setTable_MAPPING_SKU_PRICING_ENABLE(String table_MAPPING_SKU_PRICING_ENABLE) { + Table_MAPPING_SKU_PRICING_ENABLE = table_MAPPING_SKU_PRICING_ENABLE; + } + + public static String Table_MAPPING_SKU_PRICING_ENABLE; + + 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; + } + + public static void setTable_MAPPING_PHARMA_MSL(String table_MAPPING_PHARMA_MSL) { + Table_MAPPING_PHARMA_MSL = table_MAPPING_PHARMA_MSL; + } + + public static String Table_MAPPING_PHARMA_MSL; + + public static String getTable_MAPPING_PHARMA_QUESTION() { + return Table_MAPPING_PHARMA_QUESTION; + } + + public static void setTable_MAPPING_PHARMA_QUESTION(String table_MAPPING_PHARMA_QUESTION) { + Table_MAPPING_PHARMA_QUESTION = table_MAPPING_PHARMA_QUESTION; + } + + public static String getTable_JOURNEY_PLAN_PHARMA() { + return Table_JOURNEY_PLAN_PHARMA; + } + + public static void setTable_JOURNEY_PLAN_PHARMA(String table_JOURNEY_PLAN_PHARMA) { + Table_JOURNEY_PLAN_PHARMA = table_JOURNEY_PLAN_PHARMA; + } + + public static String Table_MAPPING_PHARMA_QUESTION; + public static String Table_JOURNEY_PLAN_PHARMA; + + public static String getAdditionalJourneyPlan() { + return ADDITIONAL_JOURNEY_PLAN; + } + + public static void setAdditionalJourneyPlan(String additionalJourneyPlan) { + ADDITIONAL_JOURNEY_PLAN = additionalJourneyPlan; + } + + public static String ADDITIONAL_JOURNEY_PLAN; + + public static String getAdhocJourneyplanAdditional() { + return ADHOC_JOURNEYPLAN_ADDITIONAL; + } + + public static void setAdhocJourneyplanAdditional(String adhocJourneyplanAdditional) { + ADHOC_JOURNEYPLAN_ADDITIONAL = adhocJourneyplanAdditional; + } + + public static String ADHOC_JOURNEYPLAN_ADDITIONAL; + + public static String getMappingStockAdditional() { + return MAPPING_STOCK_ADDITIONAL; + } + + public static void setMappingStockAdditional(String mappingStockAdditional) { + MAPPING_STOCK_ADDITIONAL = mappingStockAdditional; + } + + public static String MAPPING_STOCK_ADDITIONAL; + + public static String getTable_NON_WORKING_SUB_REASON() { + return Table_NON_WORKING_SUB_REASON; + } + + public static void setTable_NON_WORKING_SUB_REASON(String table_NON_WORKING_SUB_REASON) { + Table_NON_WORKING_SUB_REASON = table_NON_WORKING_SUB_REASON; + } + + public static String getAdditionalDisplay() { + return ADDITIONAL_DISPLAY; + } + + public static void setAdditionalDisplay(String additionalDisplay) { + ADDITIONAL_DISPLAY = additionalDisplay; + } + + public static String ADDITIONAL_DISPLAY; + + //Gagan end code + + public static String getJourneyPlan() { + return JOURNEY_PLAN; + } + + public static void setJourneyPlan(String journeyPlan) { + JOURNEY_PLAN = journeyPlan; + } + + public static String getSkuMaster() { + return SKU_MASTER; + } + + public static void setSkuMaster(String skuMaster) { + SKU_MASTER = skuMaster; + } + + public static String getBrandMaster() { + return BRAND_MASTER; + } + + public static void setBrandMaster(String brandMaster) { + BRAND_MASTER = brandMaster; + } + + public static String getSubCategoryMaster() { + return SUB_CATEGORY_MASTER; + } + + public static void setSubCategoryMaster(String subCategoryMaster) { + SUB_CATEGORY_MASTER = subCategoryMaster; + } + + public static String getCategoryMaster() { + return CATEGORY_MASTER; + } + + public static void setCategoryMaster(String categoryMaster) { + CATEGORY_MASTER = categoryMaster; + } + + public static String getDisplayMaster() { + return DISPLAY_MASTER; + } + + public static void setDisplayMaster(String displayMaster) { + DISPLAY_MASTER = displayMaster; + } + + public static String getMappingStock() { + return MAPPING_STOCK; + } + + public static void setMappingStock(String mappingStock) { + MAPPING_STOCK = mappingStock; + } + + public static String getMappingT2p() { + return MAPPING_T2P; + } + + public static void setMappingT2p(String mappingT2p) { + MAPPING_T2P = mappingT2p; + } + + public static String getDisplayChecklistMaster() { + return DISPLAY_CHECKLIST_MASTER; + } + + public static void setDisplayChecklistMaster(String displayChecklistMaster) { + DISPLAY_CHECKLIST_MASTER = displayChecklistMaster; + } + + public static String getMappingDisplayChecklist() { + return MAPPING_DISPLAY_CHECKLIST; + } + + public static void setMappingDisplayChecklist(String mappingDisplayChecklist) { + MAPPING_DISPLAY_CHECKLIST = mappingDisplayChecklist; + } + + public static String getNonWorkingReason() { + return NON_WORKING_REASON; + } + + public static void setNonWorkingReason(String nonWorkingReason) { + NON_WORKING_REASON = nonWorkingReason; + } + + public static String getMappingPromotion() { + return MAPPING_PROMOTION; + } + + public static void setMappingPromotion(String mappingPromotion) { + MAPPING_PROMOTION = mappingPromotion; + } + + //Gagan start code + + public static String getMappingAdditionalPromotion() { + return MAPPING_ADDITIONAL_PROMOTION; + } + + public static void setMappingAdditionalPromotion(String mappingAdditionalPromotion) { + MAPPING_ADDITIONAL_PROMOTION = mappingAdditionalPromotion; + } + + public static String getStorePerformance() { + return STORE_PERFORMANCE; + } + + public static void setStorePerformance(String storePerformance) { + STORE_PERFORMANCE = storePerformance; + } + + public static String getMappingPlanogram() { + return MAPPING_PLANOGRAM; + } + + public static void setMappingPlanogram(String mappingPlanogram) { + MAPPING_PLANOGRAM = mappingPlanogram; + } + + public static String getMappingSosTarget() { + return MAPPING_SOS_TARGET; + } + + public static void setMappingSosTarget(String mappingSosTarget) { + MAPPING_SOS_TARGET = mappingSosTarget; + } + + public static String getShelfMaster() { + return SHELF_MASTER; + } + + public static void setShelfMaster(String shelfMaster) { + SHELF_MASTER = shelfMaster; + } + + //Gagan end code + + + public static String getMappingSubCategoryImageAllow() { + return MAPPING_SUB_CATEGORY_IMAGE_ALLOW; + } + + public static void setMappingSubCategoryImageAllow(String mappingSubCategoryImageAllow) { + MAPPING_SUB_CATEGORY_IMAGE_ALLOW = mappingSubCategoryImageAllow; + } + + public static String getSkugroupMaster() { + return SKUGROUP_MASTER; + } + + public static void setSkugroupMaster(String skugroupMaster) { + SKUGROUP_MASTER = skugroupMaster; + } + + public static String getMappingCategoryImageAllow() { + return MAPPING_CATEGORY_IMAGE_ALLOW; + } + + public static void setMappingCategoryImageAllow(String mappingCategoryImageAllow) { + MAPPING_CATEGORY_IMAGE_ALLOW = mappingCategoryImageAllow; + } + + public static String getMappingCountrywisePlanogram() { + return MAPPING_COUNTRYWISE_PLANOGRAM; + } + + public static void setMappingCountrywisePlanogram(String mappingCountrywisePlanogram) { + MAPPING_COUNTRYWISE_PLANOGRAM = mappingCountrywisePlanogram; + } + + public static String getTable_ADDITIONAL_QUESTION() { + return Table_ADDITIONAL_QUESTION; + } + + public static void setTable_ADDITIONAL_QUESTION(String table_ADDITIONAL_QUESTION) { + Table_ADDITIONAL_QUESTION = table_ADDITIONAL_QUESTION; + } + + public static String getTable_POG_QUESTION() { + return Table_POG_QUESTION; + } + + public static void setTable_POG_QUESTION(String table_POG_QUESTION) { + Table_POG_QUESTION = table_POG_QUESTION; + } + + public static String getTable_NON_T2P_REASON() { + return Table_NON_T2P_REASON; + } + + public static void setTable_NON_T2P_REASON(String table_NON_T2P_REASON) { + Table_NON_T2P_REASON = table_NON_T2P_REASON; + } + + public static String getAdhocJourneyPlan() { + return ADHOC_JOURNEY_PLAN; + } + + public static void setAdhocJourneyPlan(String adhocJourneyPlan) { + ADHOC_JOURNEY_PLAN = adhocJourneyPlan; + } + + public static String getTable_CONFIGURATION_COUNTRY_WISE() { + return Table_CONFIGURATION_COUNTRY_WISE; + } + + public static void setTable_CONFIGURATION_COUNTRY_WISE(String table_CONFIGURATION_COUNTRY_WISE) { + Table_CONFIGURATION_COUNTRY_WISE = table_CONFIGURATION_COUNTRY_WISE; + } + + public static String getTable_NO_CAMERA_LAST_VISIT_DATA() { + return Table_NO_CAMERA_LAST_VISIT_DATA; + } + + public static void setTable_NO_CAMERA_LAST_VISIT_DATA(String table_NO_CAMERA_LAST_VISIT_DATA) { + Table_NO_CAMERA_LAST_VISIT_DATA = table_NO_CAMERA_LAST_VISIT_DATA; + } + + public static String getTable_GEO_FENCING() { + return Table_GEO_FENCING; + } + + public static void setTable_GEO_FENCING(String table_GEO_FENCING) { + Table_GEO_FENCING = table_GEO_FENCING; + } + + public static String getTable_SUPERVISOR_LIST() { + return Table_SUPERVISOR_LIST; + } + + public static void setTable_SUPERVISOR_LIST(String table_SUPERVISOR_LIST) { + Table_SUPERVISOR_LIST = table_SUPERVISOR_LIST; + } + + public static String getTable_CONFIGURATION_MASTER() { + return Table_CONFIGURATION_MASTER; + } + + public static void setTable_CONFIGURATION_MASTER(String table_CONFIGURATION_MASTER) { + Table_CONFIGURATION_MASTER = table_CONFIGURATION_MASTER; + } + + public static String getTable_MAPPING_STOCK_STOREWISE() { + return Table_MAPPING_STOCK_STOREWISE; + } + + public static void setTable_MAPPING_STOCK_STOREWISE(String table_MAPPING_STOCK_STOREWISE) { + Table_MAPPING_STOCK_STOREWISE = table_MAPPING_STOCK_STOREWISE; + } + + public static String getTable_MAPPING_PLANOGRAM_STORE_WISE() { + return Table_MAPPING_PLANOGRAM_STORE_WISE; + } + + public static void setTable_MAPPING_PLANOGRAM_STORE_WISE(String table_MAPPING_PLANOGRAM_STORE_WISE) { + Table_MAPPING_PLANOGRAM_STORE_WISE = table_MAPPING_PLANOGRAM_STORE_WISE; + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Visit_Type_Master_GetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Visit_Type_Master_GetterSetter.java new file mode 100644 index 0000000..7227679 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/Visit_Type_Master_GetterSetter.java @@ -0,0 +1,34 @@ +package cpm.com.gskmtorange.xmlGetterSetter; + +import java.util.ArrayList; + +public class Visit_Type_Master_GetterSetter { + + String table_Visit_Type_Status; + ArrayList VISIT_TYPE_ID = new ArrayList(); + ArrayList VISIT_TYPE = new ArrayList(); + + public String getTable_Visit_Type_Status() { + return table_Visit_Type_Status; + } + + public void setTable_Visit_Type_Status(String table_Visit_Type_Status) { + this.table_Visit_Type_Status = table_Visit_Type_Status; + } + + public ArrayList getVISIT_TYPE_ID() { + return VISIT_TYPE_ID; + } + + public void setVISIT_TYPE_ID(String VISIT_TYPE_ID) { + this.VISIT_TYPE_ID.add(VISIT_TYPE_ID); + } + + public ArrayList getVISIT_TYPE() { + return VISIT_TYPE; + } + + public void setVISIT_TYPE(String VISIT_TYPE) { + this.VISIT_TYPE.add(VISIT_TYPE); + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/FailureXMLHandler.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/FailureXMLHandler.java new file mode 100644 index 0000000..71e1d36 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/FailureXMLHandler.java @@ -0,0 +1,47 @@ +package cpm.com.gskmtorange.xmlHandlers; + +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; + +public class FailureXMLHandler extends DefaultHandler { + + private String elementValue; + private FailureGetterSetter failureGetterSetter = null; + + + public FailureGetterSetter getFailureGetterSetter() { + return failureGetterSetter; + } + + @Override + public void startDocument() throws SAXException { + // TODO Auto-generated method stub + super.startDocument(); + + failureGetterSetter = new FailureGetterSetter(); + } + + @Override + public void characters(char[] ch, int start, int length) + throws SAXException { + // TODO Auto-generated method stub + super.characters(ch, start, length); + + elementValue = new String(ch, start, length); + } + + @Override + public void endElement(String uri, String localName, String qName) + throws SAXException { + // TODO Auto-generated method stub + super.endElement(uri, localName, qName); + + if (qName.equals("STATUS")) { + failureGetterSetter.setStatus(elementValue); + } else if (qName.equals("ERRORMSG")) { + failureGetterSetter.setErrorMsg(elementValue); + } + } +} diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java new file mode 100644 index 0000000..368c495 --- /dev/null +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlHandlers/XMLHandlers.java @@ -0,0 +1,1799 @@ +package cpm.com.gskmtorange.xmlHandlers; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.IOException; + +import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.AdditionalQuestiongetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.CategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ChatMessageDownloadGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.GeoFencingGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.JourneyPlanGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPINGT2PGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SKU_PRICING_ENABLEGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SOS_TARGET_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingDisplayChecklistGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaMSLGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPharmaQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramCountrywiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingPromotionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingStockStorewiseGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraDataGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NoCameraLastVisitGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonT2pReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingSubReasonGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Order_Received_Status_GetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.POGQuestionGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.PROMOTION_TYPE_MASTERGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.STORE_CATEGORY_WISEGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.STORE_PERFORMANCE_MasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SkuMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SubCategoryMasterGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter; +import cpm.com.gskmtorange.xmlGetterSetter.Visit_Type_Master_GetterSetter; + +/** + * Created by yadavendras on 21-12-2016. + */ + +public class XMLHandlers { + + + // FAILURE XML HANDLER + public static FailureGetterSetter failureXMLHandler(XmlPullParser xpp, + int eventType) { + FailureGetterSetter failureGetterSetter = new FailureGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("STATUS")) { + failureGetterSetter.setStatus(xpp.nextText()); + } + if (xpp.getName().equals("ERRORMSG")) { + failureGetterSetter.setErrorMsg(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return failureGetterSetter; + } + + // LOGIN XML HANDLER + public static LoginGetterSetter loginXMLHandler(XmlPullParser xpp, + int eventType) { + LoginGetterSetter lgs = new LoginGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("RIGHT_NAME")) { + lgs.setRIGHT_NAME(xpp.nextText()); + } + if (xpp.getName().equals("APP_VERSION")) { + lgs.setAPP_VERSION(xpp.nextText()); + } + if (xpp.getName().equals("APP_PATH")) { + lgs.setAPP_PATH(xpp.nextText()); + } + if (xpp.getName().equals("CURRENTDATE")) { + lgs.setCURRENTDATE(xpp.nextText()); + } + if (xpp.getName().equals("CULTURE_ID")) { + lgs.setCULTURE_ID(xpp.nextText()); + } + if (xpp.getName().equals("CULTURE_NAME")) { + lgs.setCULTURE_NAME(xpp.nextText()); + } + if (xpp.getName().equals("NOTICE_URL")) { + lgs.setNOTICE_URL(xpp.nextText()); + } + + if (xpp.getName().equals("COUNTRY_ID")) { + lgs.setCOUNTRY_ID(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return lgs; + } + + // JCP XML HANDLER + public static JourneyPlanGetterSetter JCPXMLHandler(XmlPullParser xpp, int eventType) { + JourneyPlanGetterSetter jcpGetterSetter = new JourneyPlanGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + + if (xpp.getName().equals("META_DATA")) { + jcpGetterSetter.setTable_journey_plan(xpp.nextText()); + } + + if (xpp.getName().equals("STORE_ID")) { + jcpGetterSetter.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("EMP_ID")) { + jcpGetterSetter.setEMP_ID(xpp.nextText()); + } + + if (xpp.getName().equals("STORE_NAME")) { + jcpGetterSetter.setSTORE_NAME(xpp.nextText()); + //jcpGetterSetter.setSTORE_NAME("Dummy Store"); + } + if (xpp.getName().equals("CITY")) { + jcpGetterSetter.setCITY(xpp.nextText()); + } + if (xpp.getName().equals("VISIT_DATE")) { + jcpGetterSetter.setVISIT_DATE(xpp.nextText()); + } + if (xpp.getName().equals("ADDRESS")) { + jcpGetterSetter.setADDRESS(xpp.nextText()); + //jcpGetterSetter.setADDRESS("Dummy Address"); + } + if (xpp.getName().equals("UPLOAD_STATUS")) { + jcpGetterSetter.setUPLOAD_STATUS(xpp.nextText()); + } + + if (xpp.getName().equals("STORETYPE")) { + jcpGetterSetter.setSTORETYPE(xpp.nextText()); + } + + if (xpp.getName().equals("KEYACCOUNT_ID")) { + jcpGetterSetter.setKEYACCOUNT_ID(xpp.nextText()); + } + + if (xpp.getName().equals("STORETYPE_ID")) { + jcpGetterSetter.setSTORETYPE_ID(xpp.nextText()); + } + + if (xpp.getName().equals("CHECKOUT_STATUS")) { + jcpGetterSetter.setCHECKOUT_STATUS(xpp.nextText()); +// jcpGetterSetter.setCHECKOUT_STATUS("N"); + } + + if (xpp.getName().equals("CLASSIFICATION")) { + jcpGetterSetter.setCLASSIFICATION(xpp.nextText()); + } + + if (xpp.getName().equals("KEYACCOUNT")) { + jcpGetterSetter.setKEYACCOUNT(xpp.nextText()); + } + + if (xpp.getName().equals("CLASS_ID")) { + jcpGetterSetter.setCLASS_ID(xpp.nextText()); + } + + if (xpp.getName().equals("CAMERA_ALLOW")) { + jcpGetterSetter.setCAMERA_ALLOW(xpp.nextText()); + } + + if (xpp.getName().equals("GEO_TAG")) { + jcpGetterSetter.setGEO_TAG(xpp.nextText()); + } + + if (xpp.getName().equals("CHANNEL_ID")) { + jcpGetterSetter.setCHANNEL_ID(xpp.nextText()); + } + + if (xpp.getName().equals("VISIT_ORDER")) { + jcpGetterSetter.setVISIT_ORDER(xpp.nextText()); + } + + if (xpp.getName().equals("LATITUDE")) { + jcpGetterSetter.setLATITUDE(xpp.nextText()); + } + + if (xpp.getName().equals("LONGITUDE")) { + jcpGetterSetter.setLONGITUDE(xpp.nextText()); + } + if (xpp.getName().equals("POG_TYPE_ID")) { + jcpGetterSetter.setPOG_TYPE_ID(xpp.nextText()); + } + if (xpp.getName().equals("FACING_HIDE")) { + jcpGetterSetter.setFACING_HIDE(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return jcpGetterSetter; + } + + // SKU_MASTER XML HANDLER + public static SkuMasterGetterSetter skuMasterXMLHandler(XmlPullParser xpp, + int eventType) { + SkuMasterGetterSetter sku = new SkuMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + sku.setTable_SKU_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("SKU_ID")) { + sku.setSKU_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU")) { + sku.setSKU(xpp.nextText()); + } + if (xpp.getName().equals("BRAND_ID")) { + sku.setBRAND_ID(xpp.nextText()); + } + if (xpp.getName().equals("MRP")) { + sku.setMRP(xpp.nextText()); + } + if (xpp.getName().equals("SKU_SEQUENCE")) { + sku.setSKU_SEQUENCE(xpp.nextText()); + } + if (xpp.getName().equals("PROMO_SKU")) { + sku.setPROMO_SKU(xpp.nextText()); + } + if (xpp.getName().equals("SKU_SEQUENCE_SA")) { + sku.setSKU_SEQUENCE_SA(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return sku; + } + + // BRAND_MASTER XML HANDLER + public static BrandMasterGetterSetter brandMasterXMLHandler(XmlPullParser xpp, + int eventType) { + BrandMasterGetterSetter brand = new BrandMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + brand.setTable_BRAND_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("BRAND_ID")) { + brand.setBRAND_ID(xpp.nextText()); + } + if (xpp.getName().equals("BRAND")) { + brand.setBRAND(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + brand.setSUB_CATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("COMPANY_ID")) { + brand.setCOMPANY_ID(xpp.nextText()); + } + if (xpp.getName().equals("BRAND_SEQUENCE")) { + brand.setBRAND_SEQUENCE(xpp.nextText()); + } + if (xpp.getName().equals("BRAND_SEQUENCE_SA")) { + brand.setBRAND_SEQUENCE_SA(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return brand; + } + + // SUB_CATEGORY_MASTER XML HANDLER + public static SubCategoryMasterGetterSetter subCategoryMasterXMLHandler(XmlPullParser xpp, + int eventType) { + SubCategoryMasterGetterSetter category = new SubCategoryMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + category.setTable_SUB_CATEGORY_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + category.setSUB_CATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY")) { + category.setSUB_CATEGORY(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + category.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_SEQUENCE")) { + category.setSUB_CATEGORY_SEQUENCE(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_SEQUENCE_SA")) { + category.setSUB_CATEGORY_SEQUENCE_SA(xpp.nextText()); + } + if (xpp.getName().equals("PD_SUB_CATEGORY_CODE")) { + category.setPD_SUB_CATEGORY_CODE(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return category; + } + + // CATEGORY_MASTER XML HANDLER + public static CategoryMasterGetterSetter categoryMasterXMLHandler(XmlPullParser xpp, + int eventType) { + CategoryMasterGetterSetter category = new CategoryMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + category.setTable_CATEGORY_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + category.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY")) { + category.setCATEGORY(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_SEQUENCE")) { + category.setCATEGORY_SEQUENCE(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return category; + } + + // DISPLAY_MASTER XML HANDLER + public static DisplayMasterGetterSetter displayMasterXMLHandler(XmlPullParser xpp, + int eventType) { + DisplayMasterGetterSetter display = new DisplayMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + display.setTable_DISPLAY_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("DISPLAY_ID")) { + display.setDISPLAY_ID(xpp.nextText()); + } + if (xpp.getName().equals("DISPLAY")) { + display.setDISPLAY(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_URL")) { + display.setIMAGE_URL(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_PATH")) { + display.setIMAGE_PATH(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return display; + } + + // MAPPING_STOCK XML HANDLER + public static MappingStockGetterSetter mappingStockXMLHandler(XmlPullParser xpp, + int eventType) { + MappingStockGetterSetter stock = new MappingStockGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + stock.setTable_MAPPING_STOCK(xpp.nextText()); + } + if (xpp.getName().equals("KEYACCOUNT_ID")) { + stock.setKEYACCOUNT_ID(xpp.nextText()); + } + if (xpp.getName().equals("STORETYPE_ID")) { + stock.setSTORETYPE_ID(xpp.nextText()); + } + if (xpp.getName().equals("CLASS_ID")) { + stock.setCLASS_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU_ID")) { + stock.setSKU_ID(xpp.nextText()); + } + if (xpp.getName().equals("MUST_HAVE")) { + stock.setMUST_HAVE(xpp.nextText()); + } + if (xpp.getName().equals("MBQ")) { + stock.setMBQ(xpp.nextText()); + }if (xpp.getName().equals("SHOW_ADDITIONAL_VISIBILITY")) { + stock.setSHOW_ADDITIONAL_VISIBILITY(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return stock; + } + + // MAPPING_STOCK_STOREWISE XML HANDLER + public static MappingStockStorewiseGetterSetter mappingStockStorewiseXMLHandler(XmlPullParser xpp, + int eventType) { + MappingStockStorewiseGetterSetter stock = new MappingStockStorewiseGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + stock.setTable_MAPPING_STOCK_STOREWISE(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + stock.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU_ID")) { + stock.setSKU_ID(xpp.nextText()); + } + if (xpp.getName().equals("MUST_HAVE")) { + stock.setMUST_HAVE(xpp.nextText()); + } + if (xpp.getName().equals("MBQ")) { + stock.setMBQ(xpp.nextText()); + } + if (xpp.getName().equals("SHOW_ADDITIONAL_VISIBILITY")) { + stock.setSHOW_ADDITIONAL_VISIBILITY(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + stock.setCOUNTRY_ID(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return stock; + } + + // MAPPING_T2P XML HANDLER + public static MAPPINGT2PGetterSetter mappingT2pXMLHandler(XmlPullParser xpp, + int eventType) { + MAPPINGT2PGetterSetter t2p = new MAPPINGT2PGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + t2p.setTable_MAPPING_T2P(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + t2p.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("BRAND_ID")) { + t2p.setBRAND_ID(xpp.nextText()); + } + if (xpp.getName().equals("DISPLAY_ID")) { + t2p.setDISPLAY_ID(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_FIXTURE")) { + t2p.setCATEGORY_FIXTURE(xpp.nextText()); + } if (xpp.getName().equals("ALLOW_QTY")) { + t2p.setALLOW_QTY(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return t2p; + } + + // DISPLAY_CHECKLIST_MASTER XML HANDLER + public static DisplayChecklistMasterGetterSetter mappingDisplayChecklistMasterXMLHandler(XmlPullParser xpp, + int eventType) { + DisplayChecklistMasterGetterSetter checklist = new DisplayChecklistMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + checklist.setTable_DISPLAY_CHECKLIST_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("CHECKLIST_ID")) { + checklist.setCHECKLIST_ID(xpp.nextText()); + } + if (xpp.getName().equals("CHECKLIST")) { + checklist.setCHECKLIST(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return checklist; + } + + // MAPPING_DISPLAY_CHECKLIST XML HANDLER + public static MappingDisplayChecklistGetterSetter mappingMappingDisplayChecklistXMLHandler(XmlPullParser xpp, + int eventType) { + MappingDisplayChecklistGetterSetter checklist = new MappingDisplayChecklistGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + checklist.setTable_MAPPING_DISPLAY_CHECKLIST(xpp.nextText()); + } + if (xpp.getName().equals("CHECKLIST_ID")) { + checklist.setCHECKLIST_ID(xpp.nextText()); + } + if (xpp.getName().equals("DISPLAY_ID")) { + checklist.setDISPLAY_ID(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return checklist; + } + + // NON_WORKING_REASON XML HANDLER + public static NonWorkingReasonGetterSetter nonWorkingReasonXMLHandler(XmlPullParser xpp, + int eventType) { + NonWorkingReasonGetterSetter reason = new NonWorkingReasonGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + reason.setTable_NON_WORKING_REASON(xpp.nextText()); + } + if (xpp.getName().equals("REASON_ID")) { + reason.setREASON_ID(xpp.nextText()); + } + if (xpp.getName().equals("REASON")) { + reason.setREASON(xpp.nextText()); + } + if (xpp.getName().equals("ENTRY_ALLOW")) { + reason.setENTRY_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_ALLOW")) { + reason.setIMAGE_ALLOW(xpp.nextText()); + } + + if (xpp.getName().equals("REMARK_REQUIRED")) { + reason.setREMARK_REQUIRED(xpp.nextText()); + } + if (xpp.getName().equals("REMARK_TYPE")) { + reason.setREMARK_TYPE(xpp.nextText()); + } + if (xpp.getName().equals("REMARK_LABEL")) { + reason.setREMARK_LABEL(xpp.nextText()); + } + if (xpp.getName().equals("REMARK_MANDATORY")) { + reason.setREMARK_MANDATORY(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return reason; + } + + // MAPPING_PROMOTION XML HANDLER + public static MappingPromotionGetterSetter mappingPromotionXMLHandler(XmlPullParser xpp, int eventType) { + MappingPromotionGetterSetter t2p = new MappingPromotionGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + t2p.setTable_MAPPING_PROMOTION(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + t2p.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU_ID")) { + t2p.setSKU_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU")) { + t2p.setSKU(xpp.nextText()); + } + if (xpp.getName().equals("PROMO_ID")) { + t2p.setPROMO_ID(xpp.nextText()); + } + if (xpp.getName().equals("PROMO")) { + t2p.setPROMO(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return t2p; + } + + //Gagan Start Code + + //MAPPING_ADDITIONAL_PROMOTION + public static MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter mappingAdditionalPromotionXMLHandler(XmlPullParser xpp, int eventType) { + MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter map = new MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + map.setTable_MAPPING_ADDITIONAL_PROMOTION(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + map.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU_ID")) { + map.setSKU_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU")) { + map.setSKU(xpp.nextText()); + } + if (xpp.getName().equals("PROMO_ID")) { + map.setPROMO_ID(xpp.nextText()); + } + if (xpp.getName().equals("PROMO")) { + map.setPROMO(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return map; + } + + + public static STORE_PERFORMANCE_MasterGetterSetter STORE_PERFORMANCEXMLHandler(XmlPullParser xpp, int eventType) { + STORE_PERFORMANCE_MasterGetterSetter st = new STORE_PERFORMANCE_MasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_STORE_PERFORMANCE(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + st.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("PERIOD")) { + st.setPERIOD(xpp.nextText()); + } + if (xpp.getName().equals("SOS")) { + st.setSOS(xpp.nextText()); + } + if (xpp.getName().equals("T2P")) { + st.setT2P(xpp.nextText()); + } + if (xpp.getName().equals("PROMO")) { + st.setPROMO(xpp.nextText()); + } + if (xpp.getName().equals("MSL")) { + st.setMSL_AVAILABILITY(xpp.nextText()); + } + if (xpp.getName().equals("ORDERID")) { + st.setORDERID(xpp.nextText()); + } + if (xpp.getName().equals("PLANOGRAM")) { + st.setPLANOGRAM(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + public static MAPPING_PLANOGRAM_MasterGetterSetter MAPPING_PLANOGRAM_XMLHandler(XmlPullParser xpp, int eventType) { + MAPPING_PLANOGRAM_MasterGetterSetter st = new MAPPING_PLANOGRAM_MasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_MAPPING_PLANOGRAM(xpp.nextText()); + } + if (xpp.getName().equals("KEYACCOUNT_ID")) { + st.setKEYACCOUNT_ID(xpp.nextText()); + } + if (xpp.getName().equals("STORETYPE_ID")) { + st.setSTORETYPE_ID(xpp.nextText()); + } + if (xpp.getName().equals("CLASS_ID")) { + st.setCLASS_ID(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("PLANOGRAM_IMAGE")) { + st.setPLANOGRAM_IMAGE(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_PATH")) { + st.setIMAGE_PATH(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + //Gagan End Code + + + public static ADDITIONAL_DISPLAY_MASTERGetterSetter ADDITIONAL_DISPLAY_MASTERXMLHandler(XmlPullParser xpp, int eventType) { + ADDITIONAL_DISPLAY_MASTERGetterSetter st = new ADDITIONAL_DISPLAY_MASTERGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_STORE_ADDITIONAL_DISPLAY(xpp.nextText()); + } + if (xpp.getName().equals("DISPLAY_ID")) { + st.setDISPLAY_ID(xpp.nextText()); + } + if (xpp.getName().equals("DISPLAY")) { + st.setDISPLAY(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_URL")) { + st.setIMAGE_URL(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_PATH")) { + st.setIMAGE_PATH(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + public static MAPPING_SOS_TARGET_MasterGetterSetter MAPPING_SOS_TARGETXMLHandler(XmlPullParser xpp, int eventType) { + MAPPING_SOS_TARGET_MasterGetterSetter st = new MAPPING_SOS_TARGET_MasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_MAPPING_SOS_TARGET(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + st.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("BRAND_ID")) { + st.setBRAND_ID(xpp.nextText()); + } + if (xpp.getName().equals("SOS_TARGET")) { + st.setSOS_TARGET(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + public static ShelfMasterGetterSetter shelfMasterXMLHandler(XmlPullParser xpp, int eventType) { + ShelfMasterGetterSetter st = new ShelfMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_SHELF_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("SHELF_ID")) { + st.setSHELF_ID(xpp.nextText()); + } + if (xpp.getName().equals("SHELF")) { + st.setSHELF(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + public static MappingSubCategoryImageAllowGetterSetter mappingSubCategoryImageAllowXMLHandler(XmlPullParser xpp, int eventType) { + MappingSubCategoryImageAllowGetterSetter st = new MappingSubCategoryImageAllowGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_MAPPING_SUB_CATEGORY_IMAGE_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + st.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + st.setSUB_CATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_ALLOW")) { + st.setIMAGE_ALLOW(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //MAPPING_CATEGORY_IMAGE_ALLOW + public static MappingCategoryImageAllowGetterSetter mappingCategoryImageAllowXMLHandler(XmlPullParser xpp, int eventType) { + MappingCategoryImageAllowGetterSetter st = new MappingCategoryImageAllowGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_MAPPING_CATEGORY_IMAGE_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + st.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE1_ALLOW")) { + st.setIMAGE1_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE2_ALLOW")) { + st.setIMAGE2_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE3_ALLOW")) { + st.setIMAGE3_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE4_ALLOW")) { + st.setIMAGE4_ALLOW(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //SKUGROUP_MASTER + public static SkuGroupMasterGetterSetter skuGroupMasterXMLHandler(XmlPullParser xpp, int eventType) { + SkuGroupMasterGetterSetter st = new SkuGroupMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_SKUGROUP_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("SKUGROUP_ID")) { + st.setSKUGROUP_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKUGROUP_NAME")) { + st.setSKUGROUP_NAME(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + st.setSUB_CATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKUGROUP_SEQUENCE")) { + st.setSKUGROUP_SEQUENCE(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //MAPPING_COUNTRYWISE_PLANOGRAM + public static MappingPlanogramCountrywiseGetterSetter MAPPING_COUNTRYWISE_PLANOGRAM_XMLHandler(XmlPullParser xpp, int eventType) { + MappingPlanogramCountrywiseGetterSetter st = new MappingPlanogramCountrywiseGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_MAPPING_COUNTRYWISE_PLANOGRAM(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + st.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("FILE_PATH")) { + st.setFILE_PATH(xpp.nextText()); + } + if (xpp.getName().equals("PLANOGRAM_URL")) { + st.setPLANOGRAM_URL(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //ADDITIONAL_QUESTION + public static AdditionalQuestiongetterSetter additionalXMLHandler(XmlPullParser xpp, int eventType) { + AdditionalQuestiongetterSetter st = new AdditionalQuestiongetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_ADDITIONAL_QUESTION(xpp.nextText()); + } + if (xpp.getName().equals("QUESTION_ID")) { + st.setQUESTION_ID(xpp.nextText()); + } + + if (xpp.getName().equals("CULTURE_ID")) { + st.setCULTURE_ID(xpp.nextText()); + } + + if (xpp.getName().equals("STORETYPE_ID")) { + st.setSTORETYPE_ID(xpp.nextText()); + } + + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("QUESTION")) { + st.setQUESTION(xpp.nextText()); + } + if (xpp.getName().equals("ANSWER_TYPE")) { + st.setANSWER_TYPE(xpp.nextText()); + } + + if (xpp.getName().equals("ANSWER_ID")) { + st.setANSWER_ID(xpp.nextText()); + } + if (xpp.getName().equals("ANSWER")) { + st.setANSWER(xpp.nextText()); + } + if (xpp.getName().equals("CAMERA_ALLOW")) { + st.setCAMERA_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("KEYACCOUNT_ID")) { + st.setKEYACCOUNT_ID(xpp.nextText()); + } + if (xpp.getName().equals("NO_OF_CAMERA")) { + st.setNO_OF_CAMERA(xpp.nextText()); + } + if (xpp.getName().equals("QTYPE")) { + st.setTYPE(xpp.nextText()); + } + if (xpp.getName().equals("REMARK_ALLOW")) { + st.setREMARK_ALLOW(xpp.nextText()); + } + if (xpp.getName().equals("REMARK_LEVEL")) { + st.setREMARK_LEVEL(xpp.nextText()); + } + + if (xpp.getName().equals("MAX_LENGTH")) { + st.setMAX_LENGTH(xpp.nextText()); + } + + if (xpp.getName().equals("CAMERA_MANDATORY")) { + st.setCAMERA_MANDATORY(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //POG_QUESTION + public static POGQuestionGetterSetter pogQuestionsXMLHandler(XmlPullParser xpp, int eventType) { + POGQuestionGetterSetter st = new POGQuestionGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_POG_QUESTION(xpp.nextText()); + } + if (xpp.getName().equals("QUESTION_ID")) { + st.setQUESTION_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + st.setSUB_CATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("QUESTION")) { + st.setQUESTION(xpp.nextText()); + } + if (xpp.getName().equals("CULTURE_ID")) { + st.setCULTURE_ID(xpp.nextText()); + } + if (xpp.getName().equals("QTYPE_ID")) { + st.setQTYPE_ID(xpp.nextText()); + } + if (xpp.getName().equals("ANSWER_ID")) { + st.setANSWER_ID(xpp.nextText()); + } + if (xpp.getName().equals("ANSWER")) { + st.setANSWER(xpp.nextText()); + } + if (xpp.getName().equals("QTYPE")) { + st.setQTYPE(xpp.nextText()); + } + if (xpp.getName().equals("KPI")) { + st.setKPI(xpp.nextText()); + } + if (xpp.getName().equals("STORETYPE_ID")) { + st.setSTORETYPE_ID(xpp.nextText()); + } + if (xpp.getName().equals("POG_TYPE_ID")) { + st.setPOG_TYPE_ID(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //POG_QUESTION + public static NonT2pReasonGetterSetter nonT2pReasonXMLHandler(XmlPullParser xpp, int eventType) { + NonT2pReasonGetterSetter st = new NonT2pReasonGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_NON_T2P_REASON(xpp.nextText()); + } + if (xpp.getName().equals("TREASON")) { + st.setTREASON(xpp.nextText()); + } + if (xpp.getName().equals("TREASON_ID")) { + st.setTREASON_ID(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //CHAT_MESSAGE + public static ChatMessageDownloadGetterSetter CHAT_MESSAGE_XMLHandler(XmlPullParser xpp, int eventType) { + ChatMessageDownloadGetterSetter st = new ChatMessageDownloadGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_CHAT_MESSAGE(xpp.nextText()); + } + if (xpp.getName().equals("REC_ID")) { + st.setREC_ID(xpp.nextText()); + } + if (xpp.getName().equals("CHAT_ID")) { + st.setCHAT_ID(xpp.nextText()); + } + if (xpp.getName().equals("MESSAGE")) { + st.setMESSAGE(xpp.nextText()); + } + if (xpp.getName().equals("MESSAGEDATE")) { + st.setMESSAGEDATE(xpp.nextText()); + } + if (xpp.getName().equals("SENDERID")) { + st.setSENDERID(xpp.nextText()); + } + if (xpp.getName().equals("SENDER")) { + st.setSENDER(xpp.nextText()); + } + if (xpp.getName().equals("RECEIVERID")) { + st.setRECEIVERID(xpp.nextText()); + } + if (xpp.getName().equals("RECEIVER")) { + st.setRECEIVER(xpp.nextText()); + } + if (xpp.getName().equals("COMMENTDATE")) { + st.setCOMMENTDATE(xpp.nextText()); + } + if (xpp.getName().equals("COMMENT")) { + st.setCOMMENT(xpp.nextText()); + } + if (xpp.getName().equals("STOREID")) { + st.setSTOREID(xpp.nextText()); + } + if (xpp.getName().equals("ORDERID")) { + st.setORDERID(xpp.nextText()); + } + if (xpp.getName().equals("SENDER_USERID")) { + st.setSENDER_USERID(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //CONFIGURATION_COUNTRY_WISE + public static ConfigurationContrywiseGetterSetter configurationCountryWiseXMLHandler(XmlPullParser xpp, int eventType) { + ConfigurationContrywiseGetterSetter st = new ConfigurationContrywiseGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_CONFIGURATION_COUNTRY_WISE(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + st.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("ADHOC_REPORTING")) { + st.setADHOC_REPORTING(xpp.nextText()); + } + + if (xpp.getName().equals("PDF_ALLOW")) { + st.setPDF_ALLOW(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //NO_CAMERA_LAST_VISIT_DATA + public static NoCameraLastVisitGetterSetter noCameraLastVisitXMLHandler(XmlPullParser xpp, int eventType) { + NoCameraLastVisitGetterSetter st = new NoCameraLastVisitGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_NO_CAMERA_LAST_VISIT_DATA(xpp.nextText()); + } + if (xpp.getName().equals("MID")) { + st.setMID(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + st.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("VISIT_DATE")) { + st.setVISIT_DATE(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + st.setSUB_CATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKUGROUP_ID")) { + st.setSKUGROUP_ID(xpp.nextText()); + } + if (xpp.getName().equals("ROW_NO")) { + st.setROW_NO(xpp.nextText()); + } + if (xpp.getName().equals("COLUMN_NO")) { + st.setCOLUMN_NO(xpp.nextText()); + } + if (xpp.getName().equals("FACING")) { + st.setFACING(xpp.nextText()); + } + if (xpp.getName().equals("IS_VERTICAL")) { + st.setIS_VERTICAL(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //GEO_FENCING + public static GeoFencingGetterSetter geoFencingXMLHandler(XmlPullParser xpp, int eventType) { + GeoFencingGetterSetter st = new GeoFencingGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_GEO_FENCING(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + st.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("DISTANCE_MTR")) { + st.setDISTANCE_MTR(xpp.nextText()); + } + if (xpp.getName().equals("GEO_FENCING")) { + st.setGEO_FENCING(xpp.nextText()); + } + } + + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + // NON_WORKING_SUB_REASON XML HANDLER + public static NonWorkingSubReasonGetterSetter nonWorkingSubReasonXMLHandler(XmlPullParser xpp, int eventType) { + NonWorkingSubReasonGetterSetter reason = new NonWorkingSubReasonGetterSetter(); + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + reason.setTable_NON_WORKING_SUB_REASON(xpp.nextText()); + } + if (xpp.getName().equals("REASON_ID")) { + reason.setREASON_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_REASON_ID")) { + reason.setSUB_REASON_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_REASON")) { + reason.setSUB_REASON(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return reason; + } + + //SUPERVISOR_LIST + public static SupervisorListGetterSetter supervisorListXMLHandler(XmlPullParser xpp, int eventType) { + SupervisorListGetterSetter st = new SupervisorListGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_SUPERVISOR_LIST(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + st.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("EMP_ID")) { + st.setEMP_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUPERVISOR")) { + st.setSUPERVISOR(xpp.nextText()); + } + if (xpp.getName().equals("COACHING_VISIT")) { + st.setCOACHING_VISIT(xpp.nextText()); + } + if (xpp.getName().equals("CHECK_VISIT")) { + st.setCHECK_VISIT(xpp.nextText()); + } + } + + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + //CONFIGURATION_MASTER + public static ConfigurationMasterGetterSetter configurationMasterXMLHandler(XmlPullParser xpp, int eventType) { + ConfigurationMasterGetterSetter st = new ConfigurationMasterGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_CONFIGURATION_MASTER(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + st.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("CONFIGURE")) { + st.setCONFIGURE(xpp.nextText()); + } + + if (xpp.getName().equals("ACTIVE")) { + st.setACTIVE(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + public static MappingPlanogramStorewiseGetterSetter MAPPING_PLANOGRAM_STORE_WISE_XMLHandler(XmlPullParser xpp, int eventType) { + MappingPlanogramStorewiseGetterSetter st = new MappingPlanogramStorewiseGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_MAPPING_PLANOGRAM_STORE_WISE(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + st.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("PLANOGRAM_IMAGE")) { + st.setPLANOGRAM_IMAGE(xpp.nextText()); + } + if (xpp.getName().equals("IMAGE_PATH")) { + st.setIMAGE_PATH(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + // MAPPING_PHARMA_QUESTION XML HANDLER + public static MappingPharmaQuestionGetterSetter mappingPharmaQuestionXMLHandler(XmlPullParser xpp, + int eventType) { + MappingPharmaQuestionGetterSetter stock = new MappingPharmaQuestionGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + stock.setTable_MAPPING_PHARMA_QUESTION(xpp.nextText()); + } + if (xpp.getName().equals("QUESTION_ID")) { + stock.setQUESTION_ID(xpp.nextText()); + } + if (xpp.getName().equals("QUESTION")) { + stock.setQUESTION(xpp.nextText()); + } + if (xpp.getName().equals("BRAND_ID")) { + stock.setBRAND_ID(xpp.nextText()); + } + if (xpp.getName().equals("BRAND")) { + stock.setBRAND(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + stock.setSUB_CATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY")) { + stock.setSUB_CATEGORY(xpp.nextText()); + }if (xpp.getName().equals("QUESTION_SEQUENCE")) { + stock.setQUESTION_SEQUENCE(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return stock; + } + + // MAPPING_PHARMA_MSL XML HANDLER + public static MappingPharmaMSLGetterSetter mappingPharmaMSLXMLHandler(XmlPullParser xpp, + int eventType) { + MappingPharmaMSLGetterSetter stock = new MappingPharmaMSLGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + stock.setTable_MAPPING_PHARMA_MSL(xpp.nextText()); + } + if (xpp.getName().equals("COUNTRY_ID")) { + stock.setCOUNTRY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU_ID")) { + stock.setSKU_ID(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + 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; + } + + + public static STORE_CATEGORY_WISEGetterSetter CATEGORYWISE_SOS_TARGETXMLHandler(XmlPullParser xpp, int eventType) { + STORE_CATEGORY_WISEGetterSetter st = new STORE_CATEGORY_WISEGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + + if (xpp.getName().equals("META_DATA")) { + st.setTable_CATEGORYWISE_SOS_TARGET(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + st.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + st.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY")) { + st.setSUB_CATEGORY(xpp.nextText()); + } + if (xpp.getName().equals("SOS_TARGET")) { + st.setSOS_TARGET(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return st; + } + + public static MAPPING_SKU_PRICING_ENABLEGetterSetter mappingMAPPING_SKU_PRICING_ENABLEXMLHandler(XmlPullParser xpp, + int eventType) { + MAPPING_SKU_PRICING_ENABLEGetterSetter stock = new MAPPING_SKU_PRICING_ENABLEGetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + stock.setTable_MAPPING_SKU_PRICING_ENABLE(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + stock.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("SUB_CATEGORY_ID")) { + stock.setSUB_CATEGORY_ID(xpp.nextText()); + } + + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return stock; + } + + + public static Order_Received_Status_GetterSetter order_Received_Status_XMLHandler(XmlPullParser xpp, + int eventType) { + Order_Received_Status_GetterSetter stock = new Order_Received_Status_GetterSetter(); + + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + stock.setTable_Order_Received_Status(xpp.nextText()); + } + if (xpp.getName().equals("STORE_ID")) { + stock.setSTORE_ID(xpp.nextText()); + } + if (xpp.getName().equals("APP_PONUMBER")) { + stock.setAPP_PONUMBER(xpp.nextText()); + } + if (xpp.getName().equals("STORE_PONUMBER")) { + stock.setSTORE_PONUMBER(xpp.nextText()); + } + if (xpp.getName().equals("PO_DATE")) { + stock.setPO_DATE(xpp.nextText()); + } + if (xpp.getName().equals("CATEGORY_ID")) { + stock.setCATEGORY_ID(xpp.nextText()); + } + if (xpp.getName().equals("SKU_ID")) { + stock.setSKU_ID(xpp.nextText()); + } + if (xpp.getName().equals("ORDERQTY")) { + stock.setORDERQTY(xpp.nextText()); + } + if (xpp.getName().equals("STATUS")) { + stock.setSTATUS(xpp.nextText()); + } + if (xpp.getName().equals("POID")) { + stock.setPOID(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return stock; + } + + + public static Visit_Type_Master_GetterSetter Visit_Type_Status_XMLHandler(XmlPullParser xpp, + int eventType) { + Visit_Type_Master_GetterSetter visittype = new Visit_Type_Master_GetterSetter(); + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("META_DATA")) { + visittype.setTable_Visit_Type_Status(xpp.nextText()); + } + if (xpp.getName().equals("VISIT_TYPE_ID")) { + visittype.setVISIT_TYPE_ID(xpp.nextText()); + } + if (xpp.getName().equals("VISIT_TYPE")) { + visittype.setVISIT_TYPE(xpp.nextText()); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + + e.printStackTrace(); + } catch (IOException e) { + + e.printStackTrace(); + } + return visittype; + } + +} diff --git a/GSKMTOrange/src/main/res/anim/activity_back_in.xml b/GSKMTOrange/src/main/res/anim/activity_back_in.xml new file mode 100644 index 0000000..c1704a7 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_back_in.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/activity_back_out.xml b/GSKMTOrange/src/main/res/anim/activity_back_out.xml new file mode 100644 index 0000000..2d13167 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_back_out.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/activity_in.xml b/GSKMTOrange/src/main/res/anim/activity_in.xml new file mode 100644 index 0000000..efb4b90 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_in.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/activity_out.xml b/GSKMTOrange/src/main/res/anim/activity_out.xml new file mode 100644 index 0000000..aa791c5 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/activity_out.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/alpha.xml b/GSKMTOrange/src/main/res/anim/alpha.xml new file mode 100644 index 0000000..62f84a6 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/alpha.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab2_hide.xml b/GSKMTOrange/src/main/res/anim/fab2_hide.xml new file mode 100644 index 0000000..e85bcbf --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab2_hide.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab2_show.xml b/GSKMTOrange/src/main/res/anim/fab2_show.xml new file mode 100644 index 0000000..eef4b68 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab2_show.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab_hide.xml b/GSKMTOrange/src/main/res/anim/fab_hide.xml new file mode 100644 index 0000000..d533454 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab_hide.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/fab_show.xml b/GSKMTOrange/src/main/res/anim/fab_show.xml new file mode 100644 index 0000000..2473127 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/fab_show.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/slide_in_bottom.xml b/GSKMTOrange/src/main/res/anim/slide_in_bottom.xml new file mode 100644 index 0000000..e1d5802 --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/slide_in_bottom.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/anim/translate.xml b/GSKMTOrange/src/main/res/anim/translate.xml new file mode 100644 index 0000000..53b20fe --- /dev/null +++ b/GSKMTOrange/src/main/res/anim/translate.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/animator-hdpi/list_selector.xml b/GSKMTOrange/src/main/res/animator-hdpi/list_selector.xml new file mode 100644 index 0000000..448c9f5 --- /dev/null +++ b/GSKMTOrange/src/main/res/animator-hdpi/list_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/color/drawer_item.xml b/GSKMTOrange/src/main/res/color/drawer_item.xml new file mode 100644 index 0000000..bb2f800 --- /dev/null +++ b/GSKMTOrange/src/main/res/color/drawer_item.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable-v21/gradient_bg.xml b/GSKMTOrange/src/main/res/drawable-v21/gradient_bg.xml new file mode 100644 index 0000000..b16ac3b --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/gradient_bg.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable-v21/gradient_bg_hover.xml b/GSKMTOrange/src/main/res/drawable-v21/gradient_bg_hover.xml new file mode 100644 index 0000000..791f976 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/gradient_bg_hover.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_camera.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_camera.xml new file mode 100644 index 0000000..0d9ea10 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_camera.xml @@ -0,0 +1,12 @@ + + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_gallery.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_gallery.xml new file mode 100644 index 0000000..f6872c4 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_gallery.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_manage.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_manage.xml new file mode 100644 index 0000000..c1be60b --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_manage.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_send.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_send.xml new file mode 100644 index 0000000..00c668c --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_send.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_share.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_share.xml new file mode 100644 index 0000000..a28fb9e --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable-v21/ic_menu_slideshow.xml b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_slideshow.xml new file mode 100644 index 0000000..209aa64 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable-v21/ic_menu_slideshow.xml @@ -0,0 +1,9 @@ + + + diff --git a/GSKMTOrange/src/main/res/drawable/add.png b/GSKMTOrange/src/main/res/drawable/add.png new file mode 100644 index 0000000..9636577 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/add.png differ diff --git a/GSKMTOrange/src/main/res/drawable/baseline_map_white_36dp.png b/GSKMTOrange/src/main/res/drawable/baseline_map_white_36dp.png new file mode 100644 index 0000000..c5c9097 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/baseline_map_white_36dp.png differ diff --git a/GSKMTOrange/src/main/res/drawable/baseline_store_black_18dp.png b/GSKMTOrange/src/main/res/drawable/baseline_store_black_18dp.png new file mode 100644 index 0000000..13cec60 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/baseline_store_black_18dp.png differ diff --git a/GSKMTOrange/src/main/res/drawable/bg_boarder_orange.xml b/GSKMTOrange/src/main/res/drawable/bg_boarder_orange.xml new file mode 100644 index 0000000..5944613 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/bg_boarder_orange.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/bg_boarder_orange_transparent.xml b/GSKMTOrange/src/main/res/drawable/bg_boarder_orange_transparent.xml new file mode 100644 index 0000000..6ee88bc --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/bg_boarder_orange_transparent.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/big_button_background.xml b/GSKMTOrange/src/main/res/drawable/big_button_background.xml new file mode 100644 index 0000000..2ca2531 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/big_button_background.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/big_button_effect.xml b/GSKMTOrange/src/main/res/drawable/big_button_effect.xml new file mode 100644 index 0000000..cbaad8d --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/big_button_effect.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/cam_active.png b/GSKMTOrange/src/main/res/drawable/cam_active.png new file mode 100644 index 0000000..c70be43 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/cam_active.png differ diff --git a/GSKMTOrange/src/main/res/drawable/cam_deactive.png b/GSKMTOrange/src/main/res/drawable/cam_deactive.png new file mode 100644 index 0000000..7b64187 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/cam_deactive.png differ diff --git a/GSKMTOrange/src/main/res/drawable/camera_orange_star_green.png b/GSKMTOrange/src/main/res/drawable/camera_orange_star_green.png new file mode 100644 index 0000000..0f7b20c Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/camera_orange_star_green.png differ diff --git a/GSKMTOrange/src/main/res/drawable/cardview_error_border.xml b/GSKMTOrange/src/main/res/drawable/cardview_error_border.xml new file mode 100644 index 0000000..5c7deb4 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/cardview_error_border.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/category.png b/GSKMTOrange/src/main/res/drawable/category.png new file mode 100644 index 0000000..0691927 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/category.png differ diff --git a/GSKMTOrange/src/main/res/drawable/chat_background.jpg b/GSKMTOrange/src/main/res/drawable/chat_background.jpg new file mode 100644 index 0000000..eb7f0a5 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/chat_background.jpg differ diff --git a/GSKMTOrange/src/main/res/drawable/chat_wallpaper.png b/GSKMTOrange/src/main/res/drawable/chat_wallpaper.png new file mode 100644 index 0000000..843b4c7 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/chat_wallpaper.png differ diff --git a/GSKMTOrange/src/main/res/drawable/circle.xml b/GSKMTOrange/src/main/res/drawable/circle.xml new file mode 100644 index 0000000..5d95e4d --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/circle.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/competition.png b/GSKMTOrange/src/main/res/drawable/competition.png new file mode 100644 index 0000000..13cc952 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/competition.png differ diff --git a/GSKMTOrange/src/main/res/drawable/current_location_marker_small.png b/GSKMTOrange/src/main/res/drawable/current_location_marker_small.png new file mode 100644 index 0000000..b4640f1 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/current_location_marker_small.png differ diff --git a/GSKMTOrange/src/main/res/drawable/edit_active.png b/GSKMTOrange/src/main/res/drawable/edit_active.png new file mode 100644 index 0000000..caf544d Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/edit_active.png differ diff --git a/GSKMTOrange/src/main/res/drawable/edit_deactive.png b/GSKMTOrange/src/main/res/drawable/edit_deactive.png new file mode 100644 index 0000000..36eeb40 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/edit_deactive.png differ diff --git a/GSKMTOrange/src/main/res/drawable/edit_text_border.xml b/GSKMTOrange/src/main/res/drawable/edit_text_border.xml new file mode 100644 index 0000000..fe1c3db --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/edit_text_border.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/edit_text_round_corner_bg.xml b/GSKMTOrange/src/main/res/drawable/edit_text_round_corner_bg.xml new file mode 100644 index 0000000..581760a --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/edit_text_round_corner_bg.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/gradient_background.xml b/GSKMTOrange/src/main/res/drawable/gradient_background.xml new file mode 100644 index 0000000..e3dcf2c --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/gradient_background.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/gsk_logo.png b/GSKMTOrange/src/main/res/drawable/gsk_logo.png new file mode 100644 index 0000000..e2ea301 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/gsk_logo.png differ diff --git a/GSKMTOrange/src/main/res/drawable/gsklogo.png b/GSKMTOrange/src/main/res/drawable/gsklogo.png new file mode 100644 index 0000000..b8727f3 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/gsklogo.png differ diff --git a/GSKMTOrange/src/main/res/drawable/haleon_logo.png b/GSKMTOrange/src/main/res/drawable/haleon_logo.png new file mode 100644 index 0000000..9d55cc3 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/haleon_logo.png differ diff --git a/GSKMTOrange/src/main/res/drawable/haleon_splash_bg.png b/GSKMTOrange/src/main/res/drawable/haleon_splash_bg.png new file mode 100644 index 0000000..c1bee81 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/haleon_splash_bg.png differ diff --git a/GSKMTOrange/src/main/res/drawable/hfd.png b/GSKMTOrange/src/main/res/drawable/hfd.png new file mode 100644 index 0000000..9349d41 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/hfd.png differ diff --git a/GSKMTOrange/src/main/res/drawable/hfd_done.png b/GSKMTOrange/src/main/res/drawable/hfd_done.png new file mode 100644 index 0000000..9614f8e Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/hfd_done.png differ diff --git a/GSKMTOrange/src/main/res/drawable/ic_date_range_black.png b/GSKMTOrange/src/main/res/drawable/ic_date_range_black.png new file mode 100644 index 0000000..bfa9a0a Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/ic_date_range_black.png differ diff --git a/GSKMTOrange/src/main/res/drawable/ic_date_range_white.png b/GSKMTOrange/src/main/res/drawable/ic_date_range_white.png new file mode 100644 index 0000000..1fc8ed3 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/ic_date_range_white.png differ diff --git a/GSKMTOrange/src/main/res/drawable/ic_send_white_24dp.png b/GSKMTOrange/src/main/res/drawable/ic_send_white_24dp.png new file mode 100644 index 0000000..f02b645 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/ic_send_white_24dp.png differ diff --git a/GSKMTOrange/src/main/res/drawable/icon.png b/GSKMTOrange/src/main/res/drawable/icon.png new file mode 100644 index 0000000..7b79a95 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/icon.png differ diff --git a/GSKMTOrange/src/main/res/drawable/image_ref.png b/GSKMTOrange/src/main/res/drawable/image_ref.png new file mode 100644 index 0000000..bfedd60 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/image_ref.png differ diff --git a/GSKMTOrange/src/main/res/drawable/indicator_background.xml b/GSKMTOrange/src/main/res/drawable/indicator_background.xml new file mode 100644 index 0000000..5e86ce0 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/indicator_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/indicator_effect.xml b/GSKMTOrange/src/main/res/drawable/indicator_effect.xml new file mode 100644 index 0000000..d5ccf14 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/indicator_effect.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/layout_click_background_effect.xml b/GSKMTOrange/src/main/res/drawable/layout_click_background_effect.xml new file mode 100644 index 0000000..8a37946 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/layout_click_background_effect.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/login_header.xml b/GSKMTOrange/src/main/res/drawable/login_header.xml new file mode 100644 index 0000000..f266186 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/login_header.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/ohc.png b/GSKMTOrange/src/main/res/drawable/ohc.png new file mode 100644 index 0000000..fc77bb9 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/ohc.png differ diff --git a/GSKMTOrange/src/main/res/drawable/ohc_done.png b/GSKMTOrange/src/main/res/drawable/ohc_done.png new file mode 100644 index 0000000..639e068 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/ohc_done.png differ diff --git a/GSKMTOrange/src/main/res/drawable/parinaam_logo.png b/GSKMTOrange/src/main/res/drawable/parinaam_logo.png new file mode 100644 index 0000000..2fbeda5 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/parinaam_logo.png differ diff --git a/GSKMTOrange/src/main/res/drawable/pdr.png b/GSKMTOrange/src/main/res/drawable/pdr.png new file mode 100644 index 0000000..ae25a78 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/pdr.png differ diff --git a/GSKMTOrange/src/main/res/drawable/pdr_done.png b/GSKMTOrange/src/main/res/drawable/pdr_done.png new file mode 100644 index 0000000..a52e4d3 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/pdr_done.png differ diff --git a/GSKMTOrange/src/main/res/drawable/performics_logo.png b/GSKMTOrange/src/main/res/drawable/performics_logo.png new file mode 100644 index 0000000..6d8a3e4 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/performics_logo.png differ diff --git a/GSKMTOrange/src/main/res/drawable/primary_bay.png b/GSKMTOrange/src/main/res/drawable/primary_bay.png new file mode 100644 index 0000000..e5f5989 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/primary_bay.png differ diff --git a/GSKMTOrange/src/main/res/drawable/promotions.png b/GSKMTOrange/src/main/res/drawable/promotions.png new file mode 100644 index 0000000..4357d0b Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/promotions.png differ diff --git a/GSKMTOrange/src/main/res/drawable/right_arrow.png b/GSKMTOrange/src/main/res/drawable/right_arrow.png new file mode 100644 index 0000000..50e6d37 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/right_arrow.png differ diff --git a/GSKMTOrange/src/main/res/drawable/sad_cloud.jpg b/GSKMTOrange/src/main/res/drawable/sad_cloud.jpg new file mode 100644 index 0000000..cb4faf5 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/sad_cloud.jpg differ diff --git a/GSKMTOrange/src/main/res/drawable/save_icon.png b/GSKMTOrange/src/main/res/drawable/save_icon.png new file mode 100644 index 0000000..6ce2526 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/save_icon.png differ diff --git a/GSKMTOrange/src/main/res/drawable/secondary_display.png b/GSKMTOrange/src/main/res/drawable/secondary_display.png new file mode 100644 index 0000000..56a50e3 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/secondary_display.png differ diff --git a/GSKMTOrange/src/main/res/drawable/side_nav_bar.xml b/GSKMTOrange/src/main/res/drawable/side_nav_bar.xml new file mode 100644 index 0000000..ef4ad67 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/side_nav_bar.xml @@ -0,0 +1,17 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/small_button_background.xml b/GSKMTOrange/src/main/res/drawable/small_button_background.xml new file mode 100644 index 0000000..a467b7c --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/small_button_background.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/small_button_effect.xml b/GSKMTOrange/src/main/res/drawable/small_button_effect.xml new file mode 100644 index 0000000..cbaad8d --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/small_button_effect.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/spinner_bg.xml b/GSKMTOrange/src/main/res/drawable/spinner_bg.xml new file mode 100644 index 0000000..0368ac7 --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/spinner_bg.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/store_location_mark_small.png b/GSKMTOrange/src/main/res/drawable/store_location_mark_small.png new file mode 100644 index 0000000..7ca0bc5 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/store_location_mark_small.png differ diff --git a/GSKMTOrange/src/main/res/drawable/toggle_green.png b/GSKMTOrange/src/main/res/drawable/toggle_green.png new file mode 100644 index 0000000..f431425 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/toggle_green.png differ diff --git a/GSKMTOrange/src/main/res/drawable/toggle_grey.png b/GSKMTOrange/src/main/res/drawable/toggle_grey.png new file mode 100644 index 0000000..3e650b8 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/toggle_grey.png differ diff --git a/GSKMTOrange/src/main/res/drawable/toggle_selector_background.xml b/GSKMTOrange/src/main/res/drawable/toggle_selector_background.xml new file mode 100644 index 0000000..93933bf --- /dev/null +++ b/GSKMTOrange/src/main/res/drawable/toggle_selector_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/drawable/touch_points.png b/GSKMTOrange/src/main/res/drawable/touch_points.png new file mode 100644 index 0000000..9f28ee0 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/touch_points.png differ diff --git a/GSKMTOrange/src/main/res/drawable/upload.png b/GSKMTOrange/src/main/res/drawable/upload.png new file mode 100644 index 0000000..8532418 Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/upload.png differ diff --git a/GSKMTOrange/src/main/res/layout/activity_additional_promo_skuwise.xml b/GSKMTOrange/src/main/res/layout/activity_additional_promo_skuwise.xml new file mode 100644 index 0000000..9a54f24 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_additional_promo_skuwise.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_audit.xml b/GSKMTOrange/src/main/res/layout/activity_audit.xml new file mode 100644 index 0000000..ee60403 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_audit.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_auto_update.xml b/GSKMTOrange/src/main/res/layout/activity_auto_update.xml new file mode 100644 index 0000000..0a8f923 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_auto_update.xml @@ -0,0 +1,13 @@ + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_category_list.xml b/GSKMTOrange/src/main/res/layout/activity_category_list.xml new file mode 100644 index 0000000..da3dc45 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_category_list.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_category_picture.xml b/GSKMTOrange/src/main/res/layout/activity_category_picture.xml new file mode 100644 index 0000000..6b41e18 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_category_picture.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_category_wise_performance.xml b/GSKMTOrange/src/main/res/layout/activity_category_wise_performance.xml new file mode 100644 index 0000000..14bd228 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_category_wise_performance.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_change_password.xml b/GSKMTOrange/src/main/res/layout/activity_change_password.xml new file mode 100644 index 0000000..93ea26a --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_change_password.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_checkout.xml b/GSKMTOrange/src/main/res/layout/activity_checkout.xml new file mode 100644 index 0000000..aa7c013 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_checkout.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_coaching_visit.xml b/GSKMTOrange/src/main/res/layout/activity_coaching_visit.xml new file mode 100644 index 0000000..4ee1790 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_coaching_visit.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_coaching_visit_store.xml b/GSKMTOrange/src/main/res/layout/activity_coaching_visit_store.xml new file mode 100644 index 0000000..be65623 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_coaching_visit_store.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + \ No newline at end of file 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..3a6d652 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_compition_promo.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_conversation.xml b/GSKMTOrange/src/main/res/layout/activity_conversation.xml new file mode 100644 index 0000000..63f6b11 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_conversation.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_counterfeit_indicator_web.xml b/GSKMTOrange/src/main/res/layout/activity_counterfeit_indicator_web.xml new file mode 100644 index 0000000..f060877 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_counterfeit_indicator_web.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_counterfeit_products.xml b/GSKMTOrange/src/main/res/layout/activity_counterfeit_products.xml new file mode 100644 index 0000000..2d388b4 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_counterfeit_products.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_create_self.xml b/GSKMTOrange/src/main/res/layout/activity_create_self.xml new file mode 100644 index 0000000..e153ac2 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_create_self.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_daily_data_menu.xml b/GSKMTOrange/src/main/res/layout/activity_daily_data_menu.xml new file mode 100644 index 0000000..84f6cd3 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_daily_data_menu.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_delivery_call.xml b/GSKMTOrange/src/main/res/layout/activity_delivery_call.xml new file mode 100644 index 0000000..4803c74 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_delivery_call.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_delivery_call_add_store.xml b/GSKMTOrange/src/main/res/layout/activity_delivery_call_add_store.xml new file mode 100644 index 0000000..862cb47 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_delivery_call_add_store.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_download.xml b/GSKMTOrange/src/main/res/layout/activity_download.xml new file mode 100644 index 0000000..98917b0 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_download.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_future_jcp.xml b/GSKMTOrange/src/main/res/layout/activity_future_jcp.xml new file mode 100644 index 0000000..a89e12a --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_future_jcp.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_geo_tag.xml b/GSKMTOrange/src/main/res/layout/activity_geo_tag.xml new file mode 100644 index 0000000..3c4c99d --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_geo_tag.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_login.xml b/GSKMTOrange/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000..80b3c00 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_login.xml @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_main.xml b/GSKMTOrange/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..b1b18d8 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_main.xml @@ -0,0 +1,27 @@ + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_message.xml b/GSKMTOrange/src/main/res/layout/activity_message.xml new file mode 100644 index 0000000..71cbdad --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_message.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_mpin.xml b/GSKMTOrange/src/main/res/layout/activity_mpin.xml new file mode 100644 index 0000000..fc0b88e --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_mpin.xml @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_msl__availability.xml b/GSKMTOrange/src/main/res/layout/activity_msl__availability.xml new file mode 100644 index 0000000..6a35f61 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_msl__availability.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + 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..922e1e8 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_msl_availability_stock_entry.xml b/GSKMTOrange/src/main/res/layout/activity_msl_availability_stock_entry.xml new file mode 100644 index 0000000..b15e2ef --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_msl_availability_stock_entry.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_new_stock_data.xml b/GSKMTOrange/src/main/res/layout/activity_new_stock_data.xml new file mode 100644 index 0000000..a26e41c --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_new_stock_data.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_no_camera.xml b/GSKMTOrange/src/main/res/layout/activity_no_camera.xml new file mode 100644 index 0000000..381c330 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_no_camera.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_order_confirm.xml b/GSKMTOrange/src/main/res/layout/activity_order_confirm.xml new file mode 100644 index 0000000..36c7b44 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_order_confirm.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_order_status_detail.xml b/GSKMTOrange/src/main/res/layout/activity_order_status_detail.xml new file mode 100644 index 0000000..3841b05 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_order_status_detail.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_order_taking.xml b/GSKMTOrange/src/main/res/layout/activity_order_taking.xml new file mode 100644 index 0000000..f2c227b --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_order_taking.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_paharma.xml b/GSKMTOrange/src/main/res/layout/activity_paharma.xml new file mode 100644 index 0000000..e24cdcc --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_paharma.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_pd_java_image.xml b/GSKMTOrange/src/main/res/layout/activity_pd_java_image.xml new file mode 100644 index 0000000..51353e5 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_pd_java_image.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_pdimage.xml b/GSKMTOrange/src/main/res/layout/activity_pdimage.xml new file mode 100644 index 0000000..e9df873 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_pdimage.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_planogram_pdf.xml b/GSKMTOrange/src/main/res/layout/activity_planogram_pdf.xml new file mode 100644 index 0000000..5be4747 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_planogram_pdf.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_pogquestions.xml b/GSKMTOrange/src/main/res/layout/activity_pogquestions.xml new file mode 100644 index 0000000..9196056 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_pogquestions.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_promo_compliance.xml b/GSKMTOrange/src/main/res/layout/activity_promo_compliance.xml new file mode 100644 index 0000000..1587527 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_promo_compliance.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_select_language.xml b/GSKMTOrange/src/main/res/layout/activity_select_language.xml new file mode 100644 index 0000000..8e01528 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_select_language.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_service.xml b/GSKMTOrange/src/main/res/layout/activity_service.xml new file mode 100644 index 0000000..edfdba8 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_service.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_settings.xml b/GSKMTOrange/src/main/res/layout/activity_settings.xml new file mode 100644 index 0000000..47a5df3 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_settings.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_splash_main_layout.xml b/GSKMTOrange/src/main/res/layout/activity_splash_main_layout.xml new file mode 100644 index 0000000..c5fbb73 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_splash_main_layout.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_splash_screen.xml b/GSKMTOrange/src/main/res/layout/activity_splash_screen.xml new file mode 100644 index 0000000..1908183 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_splash_screen.xml @@ -0,0 +1,45 @@ + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_stock.xml b/GSKMTOrange/src/main/res/layout/activity_stock.xml new file mode 100644 index 0000000..bf41477 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_stock.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_stock_data.xml b/GSKMTOrange/src/main/res/layout/activity_stock_data.xml new file mode 100644 index 0000000..2802b2c --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_stock_data.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_stock_entry.xml b/GSKMTOrange/src/main/res/layout/activity_stock_entry.xml new file mode 100644 index 0000000..7ade3aa --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_stock_entry.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_stock_facing.xml b/GSKMTOrange/src/main/res/layout/activity_stock_facing.xml new file mode 100644 index 0000000..03e2a43 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_stock_facing.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_stock_facing__planogram_tracker.xml b/GSKMTOrange/src/main/res/layout/activity_stock_facing__planogram_tracker.xml new file mode 100644 index 0000000..3eeb86a --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_stock_facing__planogram_tracker.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_stock_pricing.xml b/GSKMTOrange/src/main/res/layout/activity_stock_pricing.xml new file mode 100644 index 0000000..9738a83 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_stock_pricing.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_store_checkout_image.xml b/GSKMTOrange/src/main/res/layout/activity_store_checkout_image.xml new file mode 100644 index 0000000..8d03662 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_store_checkout_image.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_store_list_map.xml b/GSKMTOrange/src/main/res/layout/activity_store_list_map.xml new file mode 100644 index 0000000..713e9e2 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_store_list_map.xml @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_store_list_route.xml b/GSKMTOrange/src/main/res/layout/activity_store_list_route.xml new file mode 100644 index 0000000..51bc5d3 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_store_list_route.xml @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/activity_store_route.xml b/GSKMTOrange/src/main/res/layout/activity_store_route.xml new file mode 100644 index 0000000..f55c287 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_store_route.xml @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_store_wise_performance.xml b/GSKMTOrange/src/main/res/layout/activity_store_wise_performance.xml new file mode 100644 index 0000000..e909220 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_store_wise_performance.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_storeimage.xml b/GSKMTOrange/src/main/res/layout/activity_storeimage.xml new file mode 100644 index 0000000..36f77c1 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_storeimage.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_t2_pcompliance.xml b/GSKMTOrange/src/main/res/layout/activity_t2_pcompliance.xml new file mode 100644 index 0000000..5c95b74 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_t2_pcompliance.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_t2p_brand__avaibility.xml b/GSKMTOrange/src/main/res/layout/activity_t2p_brand__avaibility.xml new file mode 100644 index 0000000..4ca7b4e --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_t2p_brand__avaibility.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_upload.xml b/GSKMTOrange/src/main/res/layout/activity_upload.xml new file mode 100644 index 0000000..0892760 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_upload.xml @@ -0,0 +1,13 @@ + + + + diff --git a/GSKMTOrange/src/main/res/layout/activity_visit_type_status.xml b/GSKMTOrange/src/main/res/layout/activity_visit_type_status.xml new file mode 100644 index 0000000..7eea1b1 --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/activity_visit_type_status.xml @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/GSKMTOrange/src/main/res/layout/add_facing_custom_dialog.xml b/GSKMTOrange/src/main/res/layout/add_facing_custom_dialog.xml new file mode 100644 index 0000000..60258fd --- /dev/null +++ b/GSKMTOrange/src/main/res/layout/add_facing_custom_dialog.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +