mirror of
https://github.com/freeedcom/ai-codereviewer.git
synced 2025-04-21 10:06:47 +00:00
add project adins
This commit is contained in:
parent
ad06ac5505
commit
f8f85d679d
5299 changed files with 625430 additions and 0 deletions
1
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/.gitignore
vendored
Normal file
1
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/build
|
159
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/build.gradle
Normal file
159
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/build.gradle
Normal file
|
@ -0,0 +1,159 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
android {
|
||||
lintOptions {
|
||||
disable 'MissingTranslation'
|
||||
checkReleaseBuilds false
|
||||
}
|
||||
|
||||
// change with your msmkey storeFile
|
||||
signingConfigs {
|
||||
msmkey {
|
||||
keyAlias 'aitmsskey'
|
||||
keyPassword 'AdIns2020'
|
||||
storeFile file('keystore2020.jks')
|
||||
storePassword 'AdIns2020'
|
||||
}
|
||||
}
|
||||
|
||||
compileSdkVersion 30
|
||||
buildToolsVersion '29.0.2'
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.adins.mss.coll.baf"
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 30
|
||||
versionCode 7910
|
||||
versionName "3.3.0.1-$versionCode"
|
||||
multiDexEnabled true
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
archivesBaseName = "MSSCOLL-$versionName"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
|
||||
}
|
||||
dexOptions {
|
||||
javaMaxHeapSize "5g"
|
||||
}
|
||||
dataBinding {
|
||||
enabled = true
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
shrinkResources false
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
signingConfig signingConfigs.msmkey
|
||||
}
|
||||
debug {
|
||||
minifyEnabled false
|
||||
shrinkResources false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
packagingOptions{
|
||||
exclude 'META-INF/proguard/androidx-annotations.pro'
|
||||
}
|
||||
flavorDimensions "default"
|
||||
productFlavors {
|
||||
developer {
|
||||
applicationId "com.adins.mss.coll.baf.dev"
|
||||
versionCode 7910
|
||||
dimension "default"
|
||||
versionName "3.3.0.1-$versionCode-D"
|
||||
buildConfigField "boolean", "IS_DEV", "true"
|
||||
buildConfigField "boolean", "IS_DBENCRYPT", "false"
|
||||
buildConfigField "boolean", "IS_BYPASSROOT", "true"
|
||||
buildConfigField "String", "IS_FLAVORS", "\"DEVELOPER\""
|
||||
}
|
||||
product {
|
||||
applicationId "com.adins.mss.coll.baf"
|
||||
versionCode 7910
|
||||
dimension "default"
|
||||
versionName "3.3.0.1-$versionCode-P"
|
||||
buildConfigField "boolean", "IS_DEV", "false"
|
||||
buildConfigField "boolean", "IS_DBENCRYPT", "true"
|
||||
buildConfigField "boolean", "IS_BYPASSROOT", "false"
|
||||
buildConfigField "String", "IS_FLAVORS", "\"PRODUCT\""
|
||||
}
|
||||
uat {
|
||||
applicationId "com.adins.mss.coll.baf.uat"
|
||||
versionCode 7910
|
||||
dimension "default"
|
||||
versionName "3.3.0.1-$versionCode-U"
|
||||
buildConfigField "boolean", "IS_DEV", "false"
|
||||
buildConfigField "boolean", "IS_DBENCRYPT", "true"
|
||||
buildConfigField "boolean", "IS_BYPASSROOT", "false"
|
||||
buildConfigField "String", "IS_FLAVORS", "\"UAT\""
|
||||
}
|
||||
trial {
|
||||
applicationId "com.adins.mss.coll.baf.trial"
|
||||
versionCode 7910
|
||||
dimension "default"
|
||||
versionName "3.3.0.1-$versionCode-P"
|
||||
buildConfigField "boolean", "IS_DEV", "false"
|
||||
buildConfigField "boolean", "IS_DBENCRYPT", "true"
|
||||
buildConfigField "boolean", "IS_BYPASSROOT", "false"
|
||||
buildConfigField "String", "IS_FLAVORS", "\"TRIAL\""
|
||||
}
|
||||
cloud {
|
||||
applicationId "com.adins.mss.coll.baf.cloud"
|
||||
versionCode 7910
|
||||
dimension "default"
|
||||
versionName "3.3.0.1-$versionCode-P"
|
||||
buildConfigField "boolean", "IS_DEV", "false"
|
||||
buildConfigField "boolean", "IS_DBENCRYPT", "true"
|
||||
buildConfigField "boolean", "IS_BYPASSROOT", "false"
|
||||
buildConfigField "String", "IS_FLAVORS", "\"PRODUCT\""
|
||||
}
|
||||
clouddev {
|
||||
applicationId "com.adins.mss.coll.baf.cloud.dev"
|
||||
versionCode 7910
|
||||
dimension "default"
|
||||
versionName "3.3.0.1-$versionCode-D"
|
||||
buildConfigField "boolean", "IS_DEV", "true"
|
||||
buildConfigField "boolean", "IS_DBENCRYPT", "false"
|
||||
buildConfigField "boolean", "IS_BYPASSROOT", "true"
|
||||
buildConfigField "String", "IS_FLAVORS", "\"DEVELOPER\""
|
||||
}
|
||||
cloudtrial {
|
||||
applicationId "com.adins.mss.coll.baf.cloud.trial"
|
||||
versionCode 7910
|
||||
dimension "default"
|
||||
versionName "3.3.0.1-$versionCode-P"
|
||||
buildConfigField "boolean", "IS_DEV", "false"
|
||||
buildConfigField "boolean", "IS_DBENCRYPT", "true"
|
||||
buildConfigField "boolean", "IS_BYPASSROOT", "false"
|
||||
buildConfigField "String", "IS_FLAVORS", "\"TRIAL\""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':mssbase')
|
||||
implementation 'androidx.appcompat:appcompat:1.0.0'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.google.firebase:firebase-messaging:20.2.4'
|
||||
implementation 'com.google.firebase:firebase-core:17.5.0'
|
||||
implementation 'com.google.firebase:firebase-analytics:17.5.0'
|
||||
implementation 'com.google.firebase:firebase-perf:19.1.1'
|
||||
implementation 'com.google.firebase:firebase-crashlytics:17.2.1'
|
||||
implementation 'com.github.vihtarb:tooltip:0.2.0'
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
implementation 'com.google.android.material:material:1.2.1'
|
||||
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
|
||||
}
|
||||
|
||||
//dependencies {
|
||||
// debugimplementation 'com.squareup.leakcanary:leakcanary-android:1.5.1'
|
||||
// releaseimplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
|
||||
// testimplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
|
||||
//}
|
||||
|
||||
apply plugin: 'com.google.firebase.firebase-perf'
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
apply plugin: 'com.google.firebase.crashlytics'
|
||||
apply plugin: 'kotlin-android-extensions'
|
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "704968583093",
|
||||
"project_id": "bafmcs-v3",
|
||||
"storage_bucket": "bafmcs-v3.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:b6d5a55c6d0b9516b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:88edd1524719ca55b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:40ba1109f2857f8ab0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:a086889bc73ff0f3b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:abffaf68794a4afeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:342ce6d0298a653fb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:4c7ee739daa1cebeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.uat"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
Binary file not shown.
BIN
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/msmkey
Normal file
BIN
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/msmkey
Normal file
Binary file not shown.
207
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/proguard-rules.pro
vendored
Normal file
207
MSS/BaseProject/Android/branches/BAFMCS_V3/msscoll/proguard-rules.pro
vendored
Normal file
|
@ -0,0 +1,207 @@
|
|||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in C:\Users\gigin.ginanjar\AppData\Local\Android\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 *;
|
||||
#}
|
||||
|
||||
-optimizationpasses 5
|
||||
|
||||
#When not preverifing in a case-insensitive filing system, such as Windows. Because this tool unpacks your processed jars, you should then use:
|
||||
-dontusemixedcaseclassnames
|
||||
|
||||
#Specifies not to ignore non-public library classes. As of version 4.5, this is the default setting
|
||||
-dontskipnonpubliclibraryclasses
|
||||
|
||||
#Preverification is irrelevant for the dex compiler and the Dalvik VM, so we can switch it off with the -dontpreverify option.
|
||||
-dontpreverify
|
||||
|
||||
#Specifies to write out some more information during processing. If the program terminates with an exception, this option will print out the entire stack trace, instead of just the exception message.
|
||||
-verbose
|
||||
|
||||
#The -optimizations option disables some arithmetic simplifications that Dalvik 1.0 and 1.5 can't handle. Note that the Dalvik VM also can't handle aggressive overloading (of static fields).
|
||||
#To understand or change this check http://proguard.sourceforge.net/index.html#/manual/optimizations.html
|
||||
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
|
||||
|
||||
#To repackage classes on a single package
|
||||
-repackageclasses ''
|
||||
|
||||
#Uncomment if using annotations to keep them.
|
||||
-keepattributes *Annotation*, Override
|
||||
-keepattributes Signature
|
||||
-keepattributes EnclosingMethod
|
||||
-keepattributes InnerClasses
|
||||
|
||||
-dontwarn javax.script.**
|
||||
-dontwarn org.apache.commons.logging.**
|
||||
-dontwarn java.beans.**
|
||||
-dontwarn okio.**
|
||||
-dontwarn com.androidquery.auth.TwitterHandle
|
||||
-dontwarn org.bouncycastle.**
|
||||
|
||||
-keep class javax.** {*;}
|
||||
-keep class org.apache.commons.logging.** {*;}
|
||||
-keep class java.beans.** {*;}
|
||||
-keep class org.apache.commons.jexl2.** {*;}
|
||||
-keep class org.bouncycastle.** {*;}
|
||||
-keep class okio.** {*;}
|
||||
-keep class oauth.signpost.** {*;}
|
||||
-keep class org.apache.log4j.Logger {*;}
|
||||
-keep class java.nio.** {*;}
|
||||
-keep class junit..** {*;}
|
||||
-keep class oauth.signpost.commonshttp.** {*;}
|
||||
-keep class net.sqlcipher.** {
|
||||
*;
|
||||
}
|
||||
|
||||
#Keep classes that are referenced on the AndroidManifest
|
||||
-keep public class * extends androidx.appcompat.app.AppCompatActivity
|
||||
-keep public class * extends com.adins.mss.base.MssFragmentActivity
|
||||
-keep public class * extends androidx.fragment.app.Fragment
|
||||
-keep public class * extends androidx.fragment.app.FragmentActivity
|
||||
-keep public class * extends android.app.Activity
|
||||
-keep public class * extends android.app.Application
|
||||
-keep public class * extends android.app.Service
|
||||
-keep public class * extends android.content.BroadcastReceiver
|
||||
-keep public class * extends android.content.ContentProvider
|
||||
-keep public class * extends com.adins.mss.foundation.http.MssRequestType
|
||||
-keep public class * extends com.adins.mss.foundation.http.MssResponseType
|
||||
-keep public class com.android.vending.licensing.ILicensingService
|
||||
-keep class com.adins.**.*Request
|
||||
-keep class com.adins.**.*Response
|
||||
-keep class android.** { *; }
|
||||
-keep class com.google.** { *; }
|
||||
#To remove debug logs:
|
||||
-assumenosideeffects class android.util.Log {
|
||||
public static *** d(...);
|
||||
public static *** v(...);
|
||||
public static *** e(...);
|
||||
public static *** i(...);
|
||||
}
|
||||
|
||||
#To avoid changing names of methods invoked on layoutInflater's onClick.
|
||||
# Uncomment and add specific method names if using onClick on layouts
|
||||
-keepclassmembers class * {
|
||||
public void onClickButton(android.view.View);
|
||||
}
|
||||
|
||||
#Maintain java native methods
|
||||
-keepclasseswithmembernames class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
#To maintain custom components names that are used on layouts XML.
|
||||
#Uncomment if having any problem with the approach below
|
||||
#-keep public class custom.components.package.and.name.**
|
||||
|
||||
#To maintain custom components names that are used on layouts XML:
|
||||
-keep public class * extends android.view.View {
|
||||
public <init>(android.content.Context);
|
||||
public <init>(android.content.Context, android.util.AttributeSet);
|
||||
public <init>(android.content.Context, android.util.AttributeSet, int);
|
||||
public void set*(...);
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
public <init>(android.content.Context, android.util.AttributeSet);
|
||||
}
|
||||
|
||||
-keepclasseswithmembers class * {
|
||||
public <init>(android.content.Context, android.util.AttributeSet, int);
|
||||
}
|
||||
|
||||
#Maintain enums
|
||||
-keepclassmembers enum * {
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
|
||||
#To keep parcelable classes (to serialize - deserialize objects to sent through Intents)
|
||||
-keep class * implements android.os.Parcelable {
|
||||
public static final android.os.Parcelable$Creator *;
|
||||
}
|
||||
|
||||
#Keep the R
|
||||
#-keepclassmembers class **.R$* {
|
||||
# public static <fields>;
|
||||
#}
|
||||
|
||||
#Keep Interface
|
||||
-keep interface * {*;}
|
||||
-keep class sun.misc.Unsafe { *; }
|
||||
|
||||
###### ADDITIONAL OPTIONS NOT USED NORMALLY
|
||||
|
||||
#To keep callback calls. Uncomment if using any
|
||||
#http://proguard.sourceforge.net/index.html#/manual/examples.html#callback
|
||||
#-keep class mypackage.MyCallbackClass {
|
||||
# void myCallbackMethod(java.lang.String);
|
||||
#}
|
||||
|
||||
#Uncomment if using Serializable
|
||||
-keepclassmembers class * implements java.io.Serializable {
|
||||
private static final java.io.ObjectStreamField[] serialPersistentFields;
|
||||
private void writeObject(java.io.ObjectOutputStream);
|
||||
private void readObject(java.io.ObjectInputStream);
|
||||
java.lang.Object writeReplace();
|
||||
java.lang.Object readResolve();
|
||||
}
|
||||
|
||||
-keep class * implements java.io.Serializable {
|
||||
public protected <fields>;
|
||||
}
|
||||
|
||||
#Keep fields for Gson transactions
|
||||
-keep public class * extends com.adins.mss.foundation.http.MssRequestType{
|
||||
<fields>;
|
||||
}
|
||||
-keep public class * extends com.adins.mss.foundation.http.MssResponseType{
|
||||
<fields>;
|
||||
}
|
||||
-keep public class * extends com.adins.mss.foundation.http.KeyValue{
|
||||
<fields>;
|
||||
}
|
||||
|
||||
-ignorewarnings
|
||||
|
||||
|
||||
#Keep Class For MSS
|
||||
-keep class com.adins.mss.base.R$* {
|
||||
public static <fields>;
|
||||
}
|
||||
-keep class com.adins.mss.dao.** {*;}
|
||||
-keep class com.adins.mss.constant.** {*;}
|
||||
-keep class com.adins.mss.base.login.DefaultLoginModel
|
||||
-keep public class com.gadberry.** {*;}
|
||||
|
||||
-keep public class com.adins.mss.base.authentication.AuthenticationResultBean{
|
||||
<fields>;
|
||||
}
|
||||
|
||||
-keep public class com.adins.mss.foundation.formatter.DateFormatter{
|
||||
public <methods>;
|
||||
}
|
||||
|
||||
-keep public class com.adins.mss.logger.Logger{
|
||||
public <methods>;
|
||||
}
|
||||
|
||||
-keep class com.androidquery.AQuery {
|
||||
public protected <methods>;
|
||||
public protected <fields>;
|
||||
}
|
||||
|
||||
-keep class com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences {*;}
|
||||
|
||||
-keep public class com.adins.mss.foundation.UserHelp.** {*;}
|
|
@ -0,0 +1,13 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.app.Application;
|
||||
import android.test.ApplicationTestCase;
|
||||
|
||||
/**
|
||||
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
|
||||
*/
|
||||
public class ApplicationTest extends ApplicationTestCase<Application> {
|
||||
public ApplicationTest() {
|
||||
super(Application.class);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "704968583093",
|
||||
"project_id": "bafmcs-v3",
|
||||
"storage_bucket": "bafmcs-v3.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:b6d5a55c6d0b9516b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:88edd1524719ca55b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:40ba1109f2857f8ab0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:a086889bc73ff0f3b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:abffaf68794a4afeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:342ce6d0298a653fb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:4c7ee739daa1cebeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.uat"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "704968583093",
|
||||
"project_id": "bafmcs-v3",
|
||||
"storage_bucket": "bafmcs-v3.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:b6d5a55c6d0b9516b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:88edd1524719ca55b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:40ba1109f2857f8ab0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:a086889bc73ff0f3b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:abffaf68794a4afeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:342ce6d0298a653fb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:4c7ee739daa1cebeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.uat"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "704968583093",
|
||||
"project_id": "bafmcs-v3",
|
||||
"storage_bucket": "bafmcs-v3.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:b6d5a55c6d0b9516b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:88edd1524719ca55b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:40ba1109f2857f8ab0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:a086889bc73ff0f3b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:abffaf68794a4afeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:342ce6d0298a653fb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:4c7ee739daa1cebeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.uat"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "704968583093",
|
||||
"project_id": "bafmcs-v3",
|
||||
"storage_bucket": "bafmcs-v3.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:b6d5a55c6d0b9516b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:88edd1524719ca55b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:40ba1109f2857f8ab0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:a086889bc73ff0f3b0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.cloud.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:abffaf68794a4afeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.dev"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:342ce6d0298a653fb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.trial"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:704968583093:android:4c7ee739daa1cebeb0dbfc",
|
||||
"android_client_info": {
|
||||
"package_name": "com.adins.mss.coll.baf.uat"
|
||||
}
|
||||
},
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBtlePqW9xuNurZXgJheQVtBqBC3Kwyh80"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -0,0 +1,279 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.adins.mss.coll"
|
||||
android:installLocation="internalOnly">
|
||||
<!-- <uses-permission android:name="android.permission.RECORD_AUDIO" /> -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera.front"
|
||||
android:required="false" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera.flash"
|
||||
android:required="false" />
|
||||
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.FLASHLIGHT" />
|
||||
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <!-- External storage for caching. -->
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- My Location -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- <uses-permission android:name="android.permission.CALL_PHONE" /> -->
|
||||
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" tools:ignore="ProtectedPermissions" />
|
||||
<!-- Maps API needs OpenGL ES 2.0. -->
|
||||
<uses-feature
|
||||
android:glEsVersion="0x00020000"
|
||||
android:required="true" />
|
||||
|
||||
<application
|
||||
android:name="com.adins.mss.main.MSMApplication"
|
||||
android:allowBackup="false"
|
||||
android:hardwareAccelerated="true"
|
||||
android:fullBackupContent="false"
|
||||
android:icon="@drawable/icon_launcher_coll_act"
|
||||
android:label="@string/app_name"
|
||||
android:largeHeap="true"
|
||||
android:logo="@drawable/logo_mss"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/CustomTheme"
|
||||
android:usesCleartextTraffic="true">
|
||||
|
||||
<activity
|
||||
android:name=".fragments.PdfRendererFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:label="Pdf Renderer Fragment"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity android:name=".EmergencyLockActivity"></activity>
|
||||
|
||||
<receiver
|
||||
android:name=".services.RestartAutoSendLocationReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="com.adins.intent.action_RESTART_AUTOSEND_LOCATION" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
<receiver android:name="com.adins.mss.base.payment.PaxPayment$PaymentResultReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="com.broadcast.BNI_APP" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<service
|
||||
android:name=".services.MCLocationTrackingService"
|
||||
android:foregroundServiceType="location"
|
||||
android:enabled="true"
|
||||
android:exported="false" />
|
||||
|
||||
<receiver android:name=".services.MCLocationTrackingService$UserLogoutReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="com.adins.mss.action_USER_LOGOUT" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<activity
|
||||
android:name=".MCLoginActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:excludeFromRecents="true"
|
||||
android:label="@string/app_name"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/CustomTheme">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".NewMCMainActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/CustomTheme" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.ServerLinkActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:label="@string/title_server_link"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/CustomTheme" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.DeveloperOptionActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:label="@string/title_developer_option"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/CustomTheme" />
|
||||
<activity
|
||||
android:name=".MCSynchronizeActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".MCMainMenuActivity"
|
||||
android:configChanges="locale|orientation|screenSize|keyboardHidden"
|
||||
android:exported="true"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/CustomTheme.TranslucentActionBar" />
|
||||
<activity
|
||||
android:name="com.adins.mss.foundation.image.ViewImageActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTop" />
|
||||
<activity android:name="com.soundcloud.android.crop.CropImageActivity" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.timeline.comment.activity.CommentActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:launchMode="singleTop" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.dynamicform.form.DynamicQuestionActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:label=""
|
||||
android:parentActivityName=".NewMCMainActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/CustomTheme"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="com.adins.mss.coll.NewMCMainActivity" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name="com.adins.mss.base.dynamicform.SendResultActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:launchMode="singleTop" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.dynamicform.VoiceNotePage"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:excludeFromRecents="true"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.timeline.MapsViewer"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.todolist.form.ViewMapActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.InstallmentScheduleFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.InstallmentScheduleDetailFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.CollectionActivityFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.CollectionActivityDetailFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.PaymentHistoryDetailFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:theme="@style/CustomTheme" />
|
||||
<activity
|
||||
android:name=".fragments.PaymentHistoryFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:theme="@style/CustomTheme" />
|
||||
<activity
|
||||
android:name=".fragments.ReceiptHistoryFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:theme="@style/CustomTheme" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.ChangePasswordActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:launchMode="singleTop" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.PrintActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.foundation.image.CroppingImageActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.DepositReportDetailActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.DepositReportACDetailActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name=".fragments.DepositReportPCDetailActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.foundation.questiongenerator.form.LocationTagingView"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.foundation.questiongenerator.form.FingerDrawingActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.todolist.form.AllHeaderViewerActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.mainmenu.settings.SettingActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.foundation.camerainapp.CameraActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/AppTheme.NoTitle" />
|
||||
<activity
|
||||
android:name="com.adins.mss.foundation.print.rv.InputRVNumberActivity"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
|
||||
<activity
|
||||
android:name="com.adins.mss.base.pdfrenderer.ViewPdfRendererFragment"
|
||||
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
|
||||
android:launchMode="singleTop"/>
|
||||
<activity
|
||||
android:name="com.adins.mss.foundation.camera2.Camera2BasicRealActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/AppTheme.NoTitle" />
|
||||
|
||||
<meta-data
|
||||
android:name="firebase_crashlytics_collection_enabled"
|
||||
android:value="false" />
|
||||
<meta-data
|
||||
android:name="com.google.android.maps.v2.API_KEY"
|
||||
android:value="AIzaSyAoFa5oj2KlysA2hLQt4TYUGIQRsFUY5ag" />
|
||||
<!-- android:value="AIzaSyA2V50uQBKw5_w2f3BEEbcNkmwofZyt-Io" /> -->
|
||||
<!-- android:value="AIzaSyADLmmS6oAIc7g2HOjpAvUVzRs1P49o-1M" /> -->
|
||||
<!-- android:value="AIzaSyChxAugD3E4jh295OlsJFXKAa_OtYYRr5g" /> -->
|
||||
<!-- android:value="AIzaSyCMjHc1ZP-jiPjsBPHxAGqm7pWKpiIkMgk" /> -->
|
||||
<meta-data
|
||||
android:name="com.google.android.gms.version"
|
||||
android:value="@integer/google_play_services_version" />
|
||||
|
||||
<service android:name="com.tracking.LocationTrackingService" />
|
||||
<service android:name="com.services.NotificationService" />
|
||||
<service android:name="com.services.AutoSendImageService" />
|
||||
<service android:name="com.services.AutoSendTaskService" />
|
||||
<service android:name=".services.RefreshToken">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service android:name=".services.FirebaseMessagingService">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service android:name=".services.EmergencyService"></service>
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.provider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/provider_paths" />
|
||||
</provider>
|
||||
</application>
|
||||
|
||||
</manifest>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,141 @@
|
|||
# Target URL
|
||||
#url_main=http://app.ad-ins.com/adimobile/msswebservicessit/services/m/
|
||||
#url_main=http://app.ad-ins.com/adimobile/msswebservicesdemo/services/m/
|
||||
#url_main=http://mss-sit-svr.ad-ins.com:8080/msswebservicessit/services/m/
|
||||
url_main=https://app.ad-ins.com/adimobile/bafmcsv3.cr.ws/services/m/
|
||||
#url_main=https://app.ad-ins.com/adimobile/bafmcsv3.dev.ws/services/m/
|
||||
|
||||
url_serv_sync=user/sync
|
||||
url_serv_tracking=tracking
|
||||
url_serv_personalization=person
|
||||
url_serv_location_history=user/updatelocationhistory
|
||||
url_upload_avatar=user/updateavatar
|
||||
url_loyalty_detail_point=user/detailpoint
|
||||
|
||||
#-------------------------
|
||||
|
||||
url_login=user/login
|
||||
url_update_fcm=user/updatefcm
|
||||
url_changepassword=user/changepassword
|
||||
url_get_absensi=user/absensi
|
||||
url_syncparam=sync/syncParam
|
||||
url_sync_file=sync/datafiles
|
||||
url_submitlastsync=sync/submitLastSync
|
||||
url_syncparam_constraint=sync/syncParamConstraint
|
||||
url_sync_param_success=sync/submitSyncParamSuccess
|
||||
url_get_tasklist=task/retrievetasklist
|
||||
url_refreshtask=task/refreshtask
|
||||
url_submittask=task/submittask
|
||||
url_submitopenreadtask=task/updatereadopentask
|
||||
url_get_detailkompetisi=user/getdetailcompetition
|
||||
url_get_logo=user/geticoncompetition
|
||||
|
||||
url_get_questionset=form/questionset
|
||||
url_get_verification=form/retrieveVerificationForm
|
||||
url_get_image=form/getimages
|
||||
url_get_scheme=form/retrieveForm
|
||||
|
||||
url_get_svyperformance=task/surveyperformance
|
||||
url_get_lookup=task/getUserAssign
|
||||
url_get_list_reassignment=task/getHeaderTaskList
|
||||
url_get_detail_reassignment=task/getDetailTask
|
||||
url_get_list_assignment=task/getHeaderTaskList
|
||||
url_get_detail_assignment=task/getDetailTask
|
||||
url_get_detail_order=task/getDetailTask
|
||||
url_get_detail_task=task/getDetailTask
|
||||
url_submit_assign=task/submitTaskChange
|
||||
url_get_list_verification=task/getverificationtasklist
|
||||
url_get_list_approval=task/getapprovaltasklist
|
||||
|
||||
url_senddepositreport=task/depositreport
|
||||
url_senddepositreportAC=task/depositreportac
|
||||
url_get_paymenthistory=collection/paymenthistory/retrievepaymenthistory
|
||||
url_get_installmentschedule=collection/installschedule/retrieveinsschedule
|
||||
url_get_collectionhistory=collection/getCollectionHistory
|
||||
url_submitverificationtask=task/submitverificationtask
|
||||
url_submitapprovaltask=task/submitappprovaltask
|
||||
url_retriececollectiontask=collection/collectionhistory/retrievecollectionhistory
|
||||
url_get_reportsummary=task/reportsummary
|
||||
url_get_batchid_list=task/getListBatchID
|
||||
url_deposit_paymentchannel=task/depositreportpc
|
||||
url_get_receipt_history=task/getReceiptHistory
|
||||
url_get_receipt_history_pdf=task/getReceiptHistoryPDF
|
||||
|
||||
url_get_contentnews=getContentNews
|
||||
url_checkorder=task/checkorder
|
||||
url_get_task=gettask
|
||||
url_get_newsheader=task/contentnews
|
||||
url_get_newscontent=task/contentnews
|
||||
url_get_list_cancelorder=task/cancelorder
|
||||
url_get_detail_cancelorder=task/cancelorder
|
||||
url_get_cancelorder=task/cancelorder
|
||||
url_get_code_transaction=task/getNoTransaction
|
||||
|
||||
url_get_lookup_answer=task/luOnline
|
||||
|
||||
url_submit_track=user/updatelocationhistory
|
||||
url_check_update=user/checkupdate
|
||||
url_get_recapitulate=task/getRecapitulation
|
||||
url_get_closing_task=collection/task/closingtask
|
||||
url_submit_print_count=collection/task/SubmitPrintCount
|
||||
url_submit_rv_number=collection/task/submitrvnumber
|
||||
url_check_validationquestion=collection/task/phoneValidation
|
||||
url_sync_rv_numbers=sync/syncRV
|
||||
url_get_digitalreceipt=sync/getRvNumberMobile
|
||||
url_sync_paymentchannel=sync/syncPaymentChannel
|
||||
url_updatecashonhand=task/updatecashonhand
|
||||
url_get_task_log=collection/task/getTaskLog
|
||||
url_check_resubmit =collection/task/checkResubmit
|
||||
url_bank_account_branch=task/getListBankAccountBranch
|
||||
|
||||
url_get_pdf_document=task/getPdfDocument
|
||||
url_get_document_list=task/guideline
|
||||
url_get_follow_up_list=task/retrieveFollowUpTask
|
||||
url_submit_follow_up=task/submitFollowUpTask
|
||||
url_get_lu_online=task/getDMSDocument
|
||||
url_get_Data_question_button_text=task/getDataQuestionButtonText
|
||||
|
||||
url_emergency = user/emergencynotification
|
||||
url_startvisit=collection/task/startactivity
|
||||
url_changeplan=collection/task/changeactivity
|
||||
url_send_update_notification=user/sendupdatenotification
|
||||
|
||||
#-------------------------
|
||||
|
||||
#CR external db
|
||||
save_path=/aitmss/data/
|
||||
use_external_storage=false
|
||||
|
||||
#-------------------------
|
||||
|
||||
encrypt=false
|
||||
decrypt=false
|
||||
is_developer=true
|
||||
is_developer_mode=false
|
||||
is_bypass_developer=false
|
||||
can_access_developer_mode=true
|
||||
is_secure_connection=false
|
||||
is_required_access_token=true
|
||||
client_id=android
|
||||
use_own_camera=true
|
||||
is_bypassroot=true
|
||||
enable_user_help=true
|
||||
enable_loc_permission_ui=true
|
||||
disable_acra=true
|
||||
|
||||
application=MC
|
||||
max_log=10
|
||||
log_age=0
|
||||
default_max_lenght=100
|
||||
thumb_width=240
|
||||
thumb_height=360
|
||||
camera_quality=1
|
||||
|
||||
interval_tracking=6000
|
||||
interval_autosend=6000
|
||||
interval_gps_timeout=6000
|
||||
change_uuid=false
|
||||
divider_uuid=-
|
||||
|
||||
#printer device. 0 - > PrintActivity, 1 -> Main_activity1
|
||||
printer_device=Sato@1,Enibit@1,Winson@1,Epson@1,Woosim@1,Bixolon / Gowell@1, Zebra@1, Janz@1, Bella@1
|
|
@ -0,0 +1,161 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.mikepenz.aboutlibraries.entity.Library;
|
||||
import com.mikepenz.aboutlibraries.entity.License;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ChangeLog {
|
||||
public static ArrayList<Library> library = new ArrayList<Library>();
|
||||
|
||||
public ChangeLog(Context context) {
|
||||
String authorLogv2_0_0 = "AdIns";
|
||||
String appNameLogv2_0_0 = "MSSCOLL";
|
||||
int buildVersion = Global.BUILD_VERSION;
|
||||
License licenseLogv2_0_0 = new License();
|
||||
licenseLogv2_0_0.setLicenseName("Apache Version 2.0");
|
||||
|
||||
library.add(0, new Library("06/06/2015", appNameLogv2_0_0, context.getString(R.string.changelog_v200),
|
||||
"2.0.0.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("06/01/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v210),
|
||||
"2.1.0.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("01/06/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v220),
|
||||
"2.2.0.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("06/12/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v230),
|
||||
"2.3.0.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("29/12/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v2310),
|
||||
"2.3.1.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("19/01/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2320),
|
||||
"2.3.2.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("07/03/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2330),
|
||||
"2.3.3.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("04/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2340),
|
||||
"2.3.4.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("08/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2350),
|
||||
"2.3.5.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("09/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2360),
|
||||
"2.3.6.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("12/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2370),
|
||||
"2.3.7.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("15/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2380),
|
||||
"2.3.8.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("16/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2390),
|
||||
"2.3.9.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("17/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23100),
|
||||
"2.3.10.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("22/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23110),
|
||||
"2.3.11.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("23/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23120),
|
||||
"2.3.12.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("24/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23130),
|
||||
"2.3.13.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("26/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23140),
|
||||
"2.3.14.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("29/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23150),
|
||||
"2.3.15.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("30/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23160),
|
||||
"2.3.16.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("02/06/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23170),
|
||||
"2.3.17.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("06/06/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23180),
|
||||
"2.3.18.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("07/06/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23190),
|
||||
"2.3.19.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("07/07/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2400),
|
||||
"2.4.0.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("26/02/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v2500),
|
||||
"2.5.0.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("22/10/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3000),
|
||||
"3.0.0.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("19/11/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3001),
|
||||
"3.0.0.1", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("27/11/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3002),
|
||||
"3.0.0.2", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("04/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3003),
|
||||
"3.0.0.3", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("07/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3004),
|
||||
"3.0.0.4", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("11/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3005),
|
||||
"3.0.0.5", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("11/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3006),
|
||||
"3.0.0.6", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("12/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3007),
|
||||
"3.0.0.7", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("12/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3008),
|
||||
"3.0.0.8", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("18/01/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v3009),
|
||||
"3.0.0.9", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("21/06/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v30013),
|
||||
"3.0.0.13", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("01/08/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v30017),
|
||||
"3.0.0.17", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("22/11/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v30029),
|
||||
"3.0.0.29", licenseLogv2_0_0, buildVersion));
|
||||
library.add(0, new Library("04/023/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3110),
|
||||
"3.1.1.0", licenseLogv2_0_0, buildVersion));
|
||||
library.add(0, new Library("04/27/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3120),
|
||||
"3.1.2.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("05/27/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3130),
|
||||
"3.1.3.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("01/10/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3140),
|
||||
"3.1.4.0", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("18/03/2021", appNameLogv2_0_0, context.getString(R.string.changelog_v3201),
|
||||
"3.2.0.1", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("12/04/2021", appNameLogv2_0_0, context.getString(R.string.changelog_v3202),
|
||||
"3.2.0.2", licenseLogv2_0_0, buildVersion));
|
||||
|
||||
library.add(0, new Library("27/02/2024", appNameLogv2_0_0, context.getString(R.string.changelog_v3202),
|
||||
"3.3.0.1", licenseLogv2_0_0, buildVersion));
|
||||
}
|
||||
|
||||
public static ArrayList<Library> getChangeLog(Context context) {
|
||||
library = new ArrayList<Library>();
|
||||
new ChangeLog(context);
|
||||
|
||||
return library;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,201 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.AnimatedVectorDrawable;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.NewMainActivity;
|
||||
import com.adins.mss.coll.services.EmergencyService;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.Emergency;
|
||||
import com.adins.mss.dao.GeneralParameter;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.db.dataaccess.EmergencyDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.UserDataAccess;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import de.hdodenhof.circleimageview.CircleImageView;
|
||||
|
||||
public class EmergencyLockActivity extends AppCompatActivity {
|
||||
|
||||
CircleImageView emAnimateSuccess;
|
||||
CircleImageView emPending, emAnimatePending;
|
||||
ImageView emSuccess;
|
||||
TextView textSuccess, textPending, textSuccessDescription;
|
||||
Button btnCancel;
|
||||
|
||||
public static EmergencyHandler emergencyHandler;
|
||||
public static ReleaseEmergencyHandler releaseEmergencyHandler;
|
||||
private Handler waitCancelHandler;
|
||||
private Runnable waitCancelRunnable;
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
setContentView(R.layout.activity_emergency_lock);
|
||||
|
||||
emAnimatePending = findViewById(R.id.animate_pending);
|
||||
emPending = findViewById(R.id.image_pending);
|
||||
emAnimateSuccess = findViewById(R.id.animate_success);
|
||||
emSuccess = findViewById(R.id.image_success);
|
||||
textSuccess = findViewById(R.id.text_success);
|
||||
textSuccessDescription = findViewById(R.id.text_success_description);
|
||||
textPending = findViewById(R.id.text_pending);
|
||||
btnCancel = findViewById(R.id.btn_cancel);
|
||||
|
||||
emAnimatePending.setVisibility(View.VISIBLE);
|
||||
emPending.setVisibility(View.VISIBLE);
|
||||
emAnimatePending.setAnimation(loadAnimation(R.anim.wave));
|
||||
|
||||
try {
|
||||
textPending.setText(GeneralParameterDataAccess.getOne(getApplicationContext(), GlobalData.getSharedGlobalData().getUser().getUuid_user(),
|
||||
Global.GS_TEXT_EMERGENCY_MC).getGs_value());
|
||||
} catch (Exception e){
|
||||
textPending.setText(Global.DEFAULT_EMERGENCY_PENDING_TEXT);
|
||||
}
|
||||
|
||||
emergencyHandler = new EmergencyHandler();
|
||||
releaseEmergencyHandler = new ReleaseEmergencyHandler();
|
||||
long waitTime = Global.DEFAULT_EMERGENCY_CANCEL_SEND;
|
||||
try {
|
||||
waitTime = Long.parseLong(GeneralParameterDataAccess.getOne(getApplicationContext(),GlobalData.getSharedGlobalData().getUser().getUuid_user(),
|
||||
Global.GS_CANCEL_EMERGENCY_MC).getGs_value()) * Global.SECOND;
|
||||
} catch (Exception e){
|
||||
|
||||
}
|
||||
String emergencyState = GlobalData.getSharedGlobalData().getUser().getIs_emergency();
|
||||
if(emergencyState.equalsIgnoreCase(Global.NO_EMERGENCY)||
|
||||
emergencyState.equalsIgnoreCase(Global.EMERGENCY_SEND_PENDING)){
|
||||
GlobalData.getSharedGlobalData().getUser().setIs_emergency(Global.EMERGENCY_SEND_PENDING);
|
||||
waitCancelHandler = new Handler();
|
||||
waitCancelRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
btnCancel.setVisibility(View.VISIBLE);
|
||||
}
|
||||
};
|
||||
waitCancelHandler.postDelayed(waitCancelRunnable,waitTime);
|
||||
Intent service = new Intent(this, EmergencyService.class);
|
||||
startService(service);
|
||||
} else if(emergencyState.equalsIgnoreCase(Global.EMERGENCY_SEND_SUCCESS)){
|
||||
emergencySentLayout();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_emergency_lock), null);
|
||||
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
protected void emergencySentLayout(){
|
||||
emSuccess.setImageResource(R.drawable.em_check_with_animation);
|
||||
emSuccess.setVisibility(View.VISIBLE);
|
||||
emAnimateSuccess.setVisibility(View.VISIBLE);
|
||||
textSuccess.setVisibility(View.VISIBLE);
|
||||
textSuccessDescription.setVisibility(View.VISIBLE);
|
||||
btnCancel.setVisibility(View.GONE);
|
||||
textSuccess.setAnimation(loadAnimation(R.anim.fade_in));
|
||||
textSuccessDescription.setAnimation(loadAnimation(R.anim.fade_in));
|
||||
if(emSuccess.getDrawable() instanceof AnimatedVectorDrawableCompat){
|
||||
((AnimatedVectorDrawableCompat) emSuccess.getDrawable()).start();
|
||||
} else if( emSuccess.getDrawable() instanceof AnimatedVectorDrawable){
|
||||
((AnimatedVectorDrawable) emSuccess.getDrawable()).start();
|
||||
}
|
||||
emAnimatePending.setVisibility(View.GONE);
|
||||
textPending.setVisibility(View.GONE);
|
||||
emPending.setVisibility(View.GONE);
|
||||
emAnimatePending.setAnimation(null);
|
||||
}
|
||||
|
||||
private Animation loadAnimation(int id){
|
||||
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), id);
|
||||
|
||||
return animation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
return;
|
||||
}
|
||||
|
||||
public void doCancel(View view) {
|
||||
GlobalData.getSharedGlobalData().getUser().setIs_emergency(Global.NO_EMERGENCY);
|
||||
UserDataAccess.addOrReplace(getApplicationContext(),GlobalData.getSharedGlobalData().getUser());
|
||||
|
||||
List<Emergency> emergencies= EmergencyDataAccess.getByUser(getApplicationContext(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
if(emergencies.size() > 0){
|
||||
EmergencyDataAccess.clean(getApplicationContext());
|
||||
}
|
||||
Intent service = new Intent(this, EmergencyService.class);
|
||||
stopService(service);
|
||||
finish();
|
||||
}
|
||||
|
||||
public class EmergencyHandler extends Handler{
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
@Override
|
||||
public void handleMessage(@NonNull Message msg) {
|
||||
emergencySentLayout();
|
||||
waitCancelHandler.removeCallbacks(waitCancelRunnable);
|
||||
super.handleMessage(msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class ReleaseEmergencyHandler extends Handler{
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
@Override
|
||||
public void handleMessage(@NonNull Message msg) {
|
||||
if (NewMainActivity.AutoSendLocationHistoryService != null)
|
||||
getApplicationContext().stopService(NewMainActivity.AutoSendLocationHistoryService);
|
||||
User user = GlobalData.getSharedGlobalData().getUser();
|
||||
String uuid_user = user.getUuid_user();
|
||||
GeneralParameter gp = GeneralParameterDataAccess.getOne(getApplicationContext(),
|
||||
GlobalData.getSharedGlobalData().getUser().getUuid_user(),
|
||||
Global.GS_ENABLE_EMERGENCY_MC);
|
||||
if(null != gp) {
|
||||
gp.setGs_value(msg.obj + "");
|
||||
GeneralParameterDataAccess.addOrReplace(getApplicationContext(), gp);
|
||||
}
|
||||
EmergencyDataAccess.delete(getApplicationContext(), uuid_user);
|
||||
user.setIs_emergency(Global.NO_EMERGENCY);
|
||||
UserDataAccess.addOrReplace(getApplicationContext(),user);
|
||||
Intent intent = new Intent(getApplicationContext(), NewMCMainActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
Intent service = new Intent(this, EmergencyService.class);
|
||||
stopService(service);
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import com.adins.mss.foundation.http.MssResponseType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class GetLogoKompetisiResponse extends MssResponseType {
|
||||
|
||||
@SerializedName("LOGO")
|
||||
protected String LOGO;
|
||||
|
||||
public String getLOGO() {
|
||||
return LOGO;
|
||||
}
|
||||
|
||||
public void setLOGO(String LOGO) {
|
||||
this.LOGO = LOGO;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.LoginActivity;
|
||||
import com.adins.mss.base.NewMainActivity;
|
||||
import com.adins.mss.base.dynamictheme.DynamicTheme;
|
||||
import com.adins.mss.base.dynamictheme.ThemeLoader;
|
||||
import com.adins.mss.base.login.DefaultLoginModel;
|
||||
import com.adins.mss.coll.login.MCDefaultLoginModel;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.GeneralParameter;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.UserDataAccess;
|
||||
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public class MCLoginActivity extends LoginActivity implements ThemeLoader.ColorSetLoaderCallback {
|
||||
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
//instantiate theme loader
|
||||
themeLoader = new ThemeLoader(this);
|
||||
|
||||
defaultConfig = new HashMap<>();
|
||||
defaultConfig.put("cipher_unsupported_device", Global.SQLITE_CIPHER_UNSUPPORTED);
|
||||
this.fetchConfig();
|
||||
|
||||
PackageInfo pInfo = null;
|
||||
String sqliteCipherException;
|
||||
String deviceModel = Build.MODEL;
|
||||
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
|
||||
try {
|
||||
sqliteCipherException = GlobalData.getSharedGlobalData().getRemoteConfig().getString("cipher_unsupported_device");
|
||||
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
|
||||
Global.APP_VERSION = pInfo.versionName;
|
||||
Global.BUILD_VERSION = pInfo.versionCode;
|
||||
Global.IS_DEV = BuildConfig.IS_DEV;
|
||||
Global.FLAVORS = BuildConfig.IS_FLAVORS;
|
||||
Global.IS_BYPASSROOT = BuildConfig.IS_BYPASSROOT;
|
||||
Global.IS_DBENCRYPT = (!sqliteCipherException.contains(deviceModel)) && BuildConfig.IS_DBENCRYPT;
|
||||
} catch (NameNotFoundException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
if(Global.AUTOLOGIN_ENABLE){
|
||||
NewMainActivity.setMainMenuClass(NewMCMainActivity.class);
|
||||
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getApplicationContext(),
|
||||
"GlobalData", Context.MODE_PRIVATE);
|
||||
hasLogged = sharedPref.getBoolean("HAS_LOGGED", false);
|
||||
if (hasLogged /*&& GlobalData.getSharedGlobalData().getUser() != null*/) {
|
||||
super.onCreate(savedInstanceState);
|
||||
NewMainActivity.InitializeGlobalDataIfError(getApplicationContext());
|
||||
|
||||
String uuidUser = GlobalData.getSharedGlobalData().getUser() == null ? sharedPref.getString("UUID_USER", "") : GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
//check theme config.
|
||||
GeneralParameter generalParameter = GeneralParameterDataAccess.getOne(this, uuidUser,
|
||||
Global.GS_THEME_CONFIG_COLLECTION);
|
||||
|
||||
if(generalParameter != null){
|
||||
String urlConfig = generalParameter.getGs_value();
|
||||
themeLoader.loadThemeFromUrl(urlConfig,this);
|
||||
}
|
||||
else {//go to main activity
|
||||
Intent intent = new Intent(getApplicationContext(), NewMCMainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
else {//load directly login page and load saved theme
|
||||
super.onCreate(savedInstanceState);
|
||||
logo.setImageResource(com.adins.mss.base.R.drawable.icon_coll_act);
|
||||
try {
|
||||
loadSavedTheme();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {//load directly login page and load saved theme
|
||||
super.onCreate(savedInstanceState);
|
||||
logo.setImageResource(com.adins.mss.base.R.drawable.icon_coll_act);
|
||||
loadSavedTheme();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadSavedTheme(){
|
||||
if(themeLoader != null){
|
||||
themeLoader.loadSavedColorSet(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DefaultLoginModel getNewDefaultLoginModel(Context context) {
|
||||
// TODO Auto-generated method stub
|
||||
return new MCDefaultLoginModel(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHasLoaded(DynamicTheme dynamicTheme) {//callback load from local db
|
||||
if(dynamicTheme != null && dynamicTheme.getThemeItemList().size() > 0){
|
||||
applyColorTheme(dynamicTheme);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHasLoaded(DynamicTheme dynamicTheme, boolean needUpdate) {//callback load from server
|
||||
Intent intent = new Intent(getApplicationContext(), NewMCMainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this,getString(R.string.screen_name_coll_login),null);
|
||||
|
||||
defaultConfig = new HashMap<>();
|
||||
defaultConfig.put("cipher_unsupported_device", Global.SQLITE_CIPHER_UNSUPPORTED);
|
||||
this.fetchConfig();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,436 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.adins.mss.base.ChangePasswordFragment;
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.about.activity.AboutActivity;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.mainmenu.MainMenuActivity;
|
||||
import com.adins.mss.base.mainmenu.MainMenuHelper;
|
||||
import com.adins.mss.base.tasklog.TaskLogImpl;
|
||||
import com.adins.mss.base.timeline.MenuAdapter;
|
||||
import com.adins.mss.base.timeline.MenuModel;
|
||||
import com.adins.mss.base.todolist.ToDoList;
|
||||
import com.adins.mss.base.todolist.form.TaskListFragment_new;
|
||||
import com.adins.mss.base.todolist.form.TaskListTask;
|
||||
import com.adins.mss.base.todolist.form.TaskList_Fragment;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskListResponse;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskRequest;
|
||||
import com.adins.mss.coll.closingtask.senders.ClosingTaskSender;
|
||||
import com.adins.mss.coll.fragments.CollectionActivityFragment;
|
||||
import com.adins.mss.coll.fragments.DepositReportFragment;
|
||||
import com.adins.mss.coll.fragments.InstallmentScheduleFragment;
|
||||
import com.adins.mss.coll.fragments.PaymentHistoryFragment;
|
||||
import com.adins.mss.coll.fragments.ReportSummaryFragment;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.services.MainServices;
|
||||
import com.services.NotificationThread;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MCMainMenuActivity extends com.adins.mss.base.mainmenu.MainMenuActivity{
|
||||
|
||||
public static MenuModel mnTimeline;
|
||||
// public static MenuModel mnTaskList;
|
||||
// public static MenuModel mnLog;
|
||||
public static MenuModel mnSVYApproval;
|
||||
public static MenuModel mnSVYVerify;
|
||||
public static MenuModel mnReportSummary;
|
||||
public static MenuModel mnDepositReport;
|
||||
public static MenuModel mnPaymentHistory;
|
||||
public static MenuModel mnInstallmentSchedule;
|
||||
public static MenuModel mnAbsentI;
|
||||
public static MenuModel mnExit;
|
||||
public static MenuModel mnAbout;
|
||||
public static MenuModel mnSynchronize;
|
||||
public static MenuModel mnChangePassword;
|
||||
public static int flag_edit=0;
|
||||
public static boolean inAbsent=false;
|
||||
Fragment fragment;
|
||||
ChangePasswordFragment fragmentChgPwd;
|
||||
private DrawerLayout mDrawerLayout;
|
||||
private ListView mDrawerListLeft;
|
||||
|
||||
|
||||
@Override
|
||||
protected ArrayList<MenuModel> getModels() {
|
||||
// TODO Auto-generated method stub
|
||||
ArrayList<MenuModel> models = new ArrayList<MenuModel>();
|
||||
MenuModel titleGroup1 = new MenuModel(getString(R.string.title_mn_main_menu));
|
||||
titleGroup1.isGroupHeader();
|
||||
MenuModel titleGroup2 = new MenuModel(getString(R.string.title_mn_other));
|
||||
titleGroup2.isGroupHeader();
|
||||
|
||||
mnTimeline = new MenuModel(R.drawable.ic_home, getString(R.string.title_mn_home),null);
|
||||
models.add(titleGroup1);
|
||||
models.add(mnTimeline);
|
||||
List<String> mainMenuTitle = getMainMenuTitle();
|
||||
List<Integer> mainMenuIcon = getMainMenuIcon();
|
||||
for(int i=0; i<mainMenuTitle.size();i++){
|
||||
if(mainMenuTitle.get(i).equalsIgnoreCase(getString(R.string.title_mn_tasklist))){
|
||||
mnTaskList = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
|
||||
models.add(mnTaskList);
|
||||
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_log))){
|
||||
mnLog = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
|
||||
models.add(mnLog);
|
||||
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_surveyverification))){
|
||||
mnSVYVerify = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
|
||||
models.add(mnSVYVerify);
|
||||
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_surveyapproval))){
|
||||
mnSVYApproval = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
|
||||
models.add(mnSVYApproval);
|
||||
}else{
|
||||
models.add(new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),null));
|
||||
}
|
||||
}
|
||||
|
||||
models.add(titleGroup2);
|
||||
List<String> otherMenuTitle = getOtherMenuTitle();
|
||||
List<Integer> otherMenuIcon = getOtherMenuIcon();
|
||||
// mnChangePassword = new MenuModel(R.drawable.ic_changepassword,getString(R.string.title_mn_changepassword), null);
|
||||
// models.add(mnChangePassword);
|
||||
for(int i=0; i<otherMenuTitle.size();i++){
|
||||
models.add(new MenuModel(otherMenuIcon.get(i),otherMenuTitle.get(i),null));
|
||||
}
|
||||
|
||||
|
||||
for(int i=0 ; i<models.size(); i++){
|
||||
this.allMenu.add(models.get(i).getTitle());
|
||||
}
|
||||
|
||||
this.models=models;
|
||||
return models;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTitleGroup() {
|
||||
// TODO Auto-generated method stub
|
||||
return "Collection";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
// TODO Auto-generated method stub
|
||||
MainMenuActivity.setMss(this.getClass());
|
||||
super.onCreate(savedInstanceState);
|
||||
AboutActivity.setChangeLog(ChangeLog.getChangeLog(getApplicationContext()), 0);
|
||||
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
mDrawerListLeft = (ListView) findViewById(R.id.left_drawer);
|
||||
|
||||
// TimelineModel model = new TimelineModel()
|
||||
// .setContentFrame(R.id.content_frame)
|
||||
// .setCustomerFragment(new com.adins.mss.base.dynamicform.CustomerFragment())
|
||||
// .setLogFragment(new LogResultActivity())
|
||||
// .setMainFragment(this)
|
||||
// .setTaskListFragment(new TaskList_Fragment())
|
||||
// .withColor(getResources().getColor(R.color.tv_normal));
|
||||
//
|
||||
menuAdapter = new MenuAdapter(this, getModels(), R.drawable.activated_background_indicator);
|
||||
mDrawerListLeft.setAdapter(menuAdapter);
|
||||
|
||||
mDrawerListLeft.setOnItemClickListener(this);
|
||||
|
||||
try {
|
||||
MCMainMenuActivity.mnLog.setCounter(String.valueOf(TaskLogImpl.getCounterLog(this)));
|
||||
MCMainMenuActivity.mnTaskList.setCounter(String.valueOf(ToDoList.getCounterTaskList(this)));
|
||||
} catch (Exception e) { FireCrash.log(e);
|
||||
// TODO: handle exception
|
||||
}
|
||||
if (savedInstanceState == null) {
|
||||
goTimeline(1);
|
||||
Global.positionStack.push(1);
|
||||
}
|
||||
Global.installmentSchIntent = new Intent(getApplicationContext(), InstallmentScheduleFragment.class);
|
||||
Global.paymentHisIntent = new Intent(getApplicationContext(), PaymentHistoryFragment.class);
|
||||
Global.collectionActIntent = new Intent(getApplicationContext(), CollectionActivityFragment.class);
|
||||
try {
|
||||
actionFromNotif(getIntent());
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
protected void actionFromNotif(Intent intent){
|
||||
try {
|
||||
String action = intent.getAction();
|
||||
if(action!=null){
|
||||
if(action.equals(NotificationThread.TASKLIST_NOTIFICATION_KEY)){
|
||||
Bundle argument = new Bundle();
|
||||
argument.putBoolean(TaskList_Fragment.BUND_KEY_ISERROR, false);
|
||||
Fragment fragment1 = new TaskListFragment_new();//TaskList_Fragment();
|
||||
fragment1.setArguments(argument);
|
||||
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(com.adins.mss.base.R.anim.activity_open_translate, com.adins.mss.base.R.anim.activity_close_scale, com.adins.mss.base.R.anim.activity_open_scale, com.adins.mss.base.R.anim.activity_close_translate);
|
||||
transaction.replace(com.adins.mss.base.R.id.content_frame, fragment1);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
actionFromNotif(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(){
|
||||
super.onResume();
|
||||
Global.syncIntent = new Intent(getApplicationContext(), MCSynchronizeActivity.class);
|
||||
if(MainMenuActivity.getMss()==null) {
|
||||
MainMenuActivity.setMss(this.getClass());
|
||||
// NotificationService.mss = mss;
|
||||
MainServices.mainClass = mss;
|
||||
}
|
||||
MainMenuActivity.setMainMenuClass(MCMainMenuActivity.class);
|
||||
try {
|
||||
long logCounter = TaskLogImpl.getCounterLog(this);
|
||||
long taskListCounter = ToDoList.getCounterTaskList(this);
|
||||
mnLog.setCounter(String.valueOf(logCounter));
|
||||
mnTaskList.setCounter(String.valueOf(taskListCounter));
|
||||
|
||||
} catch (Exception e) { FireCrash.log(e);
|
||||
// TODO: handle exception
|
||||
}
|
||||
// TimelineModel.taskList_Fragment=new TaskList_Fragment();
|
||||
getActionBar().removeAllTabs();
|
||||
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy(){
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, final int position,
|
||||
long id) {
|
||||
super.onItemClick(parent, view, position, id);
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(getString(R.string.title_mn_changepassword).equalsIgnoreCase(allMenu.get(position))){
|
||||
gotoChangePassword();
|
||||
}
|
||||
}
|
||||
}, 250);
|
||||
}
|
||||
|
||||
//bong 10 apr 15 - menjaga saat change password tidak dapat lihat menu
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_MENU) {
|
||||
if(fragmentChgPwd!=null){
|
||||
if(fragmentChgPwd.isVisible()){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
// 7 apr 15 disabled onBackpressed on fragment
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
// TODO Auto-generated method stub
|
||||
// if(fragmentChgPwd!=null){
|
||||
// if(fragmentChgPwd.isVisible()){
|
||||
// if(GlobalData.getSharedGlobalData().getUser().getChg_pwd().equals("1")){
|
||||
// ChangePasswordFragment.onBackPressed();
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Intent getIntentSynchronize() {
|
||||
// TODO Auto-generated method stub
|
||||
return new Intent(this, MCSynchronizeActivity.class);
|
||||
}
|
||||
|
||||
private void gotoChangePassword() {
|
||||
fragment = new ChangePasswordFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putBoolean(ChangePasswordFragment.AS_ACTIVITY, false);
|
||||
fragment.setArguments(args);
|
||||
if(GlobalData.getSharedGlobalData().getUser().getChg_pwd().equals("1")){
|
||||
fragmentChgPwd = (ChangePasswordFragment) fragment;
|
||||
fragmentChgPwd.setArguments(args);
|
||||
}
|
||||
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
//bong 13 apr 15 - to set chgPassFragment untuk menjaga supaya menu tidak muncul
|
||||
@Override
|
||||
protected Fragment getChgPassFragment() {
|
||||
// TODO Auto-generated method stub
|
||||
return fragmentChgPwd;
|
||||
}
|
||||
@Override
|
||||
protected void goTimeline(int position) {
|
||||
// TimelineModel.taskList_Fragment=new TaskList_Fragment();
|
||||
super.goTimeline(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoNewTask(int position) {
|
||||
fragment = new MCNewTaskActivity();
|
||||
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoCheckOrder(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoCreditSimulation(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoCancelOrder(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoTaskList(int position) {
|
||||
TaskListTask task = new TaskListTask(this, getString(R.string.progressWait),
|
||||
getString(R.string.msgNoTaskList), R.id.content_frame);
|
||||
task.execute();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoPromo(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoNews(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoOrderAssignment(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoOrderReassignment(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoSurveyPerformance(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoSurveyVerification(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoSurveyApproval(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoSurveyAssignment(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoSurveyReassignment(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoReportSummary(int position) {
|
||||
fragment = new ReportSummaryFragment();
|
||||
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoDepositReport(int position) {
|
||||
fragment = new DepositReportFragment();
|
||||
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoAbout() {
|
||||
AboutActivity.setChangeLog(ChangeLog.getChangeLog(getApplicationContext()), 0);
|
||||
super.gotoAbout();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoPaymentHistory(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoInstallmentSchedule(int position) {
|
||||
showNotAvailableMenu(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoClosingTask(int position) {
|
||||
ClosingTaskRequest request = new ClosingTaskRequest();
|
||||
request.setFlag(ClosingTaskRequest.CLOSING_TASK_LIST);
|
||||
ClosingTaskSender<ClosingTaskListResponse> sender = new ClosingTaskSender<>(
|
||||
this, request, ClosingTaskListResponse.class);
|
||||
sender.execute();
|
||||
}
|
||||
|
||||
public void showNotAvailableMenu(int position){
|
||||
MainMenuHelper.showNotAvailableMenuDialog(MCMainMenuActivity.this, allMenu.get(position));
|
||||
Global.positionStack.pop();
|
||||
mDrawerListLeft.setItemChecked(Global.positionStack.lastElement(), true);
|
||||
setTitle(models.get(Global.positionStack.lastElement()).getTitle());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoSurveyVerificationByBranch(int position) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoSurveyApprovalByBranch(int position) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.todo.form.NewTaskActivity;
|
||||
import com.adins.mss.base.todo.form.NewTaskAdapter;
|
||||
import com.adins.mss.base.todolist.DoList;
|
||||
import com.adins.mss.dao.Scheme;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class MCNewTaskActivity extends NewTaskActivity {
|
||||
|
||||
private DoList list;
|
||||
private List<Scheme> objects;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context activity) {
|
||||
super.onAttach(activity);
|
||||
getActivity().getActionBar().setTitle(getString(R.string.title_mn_newtask));
|
||||
getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected NewTaskAdapter getNewTaskAdapter() {
|
||||
// TODO Auto-generated method stub
|
||||
list = new DoList(getActivity());
|
||||
objects = list.getCollListScheme();
|
||||
|
||||
return new NewTaskAdapter(getActivity(), objects);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.adins.mss.base.SynchronizeActivity;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.Trace;
|
||||
|
||||
public class MCSynchronizeActivity extends SynchronizeActivity{
|
||||
|
||||
private Trace synchronizeCollTrace;
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
protected Intent getIntentMainMenu() {
|
||||
// TODO Auto-generated method stub
|
||||
return new Intent(this, NewMCMainActivity.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
//Firebase custome trace
|
||||
synchronizeCollTrace = FirebasePerformance.getInstance().newTrace(getString(R.string.synchronize_trace_coll));
|
||||
activity = this;
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
synchronizeCollTrace.start();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_coll_synchronize), null);
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
synchronizeCollTrace.stop();
|
||||
super.onPause();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.adins.mss.coll.fragments.DepositReportRecapitulateFragment;
|
||||
import com.adins.mss.coll.fragments.DepositReportSummaryFragment;
|
||||
import com.adins.mss.coll.fragments.DepositReportTransferFragment;
|
||||
import com.adins.mss.coll.interfaces.NavigatorInterface;
|
||||
|
||||
/**
|
||||
* Created by kusnendi.muhamad on 28/07/2017.
|
||||
*/
|
||||
|
||||
public class Navigator implements NavigatorInterface {
|
||||
public static final String DEPOSIT_REPORT_RECAPITULATE = "DEPOSIT_REPORT_RECAPITULATE";
|
||||
public static final String DEPOSIT_REPORT_SUMMARIZE = "DEPOSIT_REPORT_SUMMARIZE";
|
||||
public static final String DEPOSIT_REPORT_TRANSFER = "DEPOSIT_REPORT_TRANSFER";
|
||||
|
||||
private Context context;
|
||||
private Bundle bundle;
|
||||
|
||||
public Navigator(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public Navigator(Context context, Bundle bundle) {
|
||||
this.context = context;
|
||||
this.bundle = bundle;
|
||||
}
|
||||
|
||||
public void route(String navigate) {
|
||||
switch (navigate) {
|
||||
case DEPOSIT_REPORT_SUMMARIZE: summarize();
|
||||
break;
|
||||
case DEPOSIT_REPORT_RECAPITULATE: recapitulate();
|
||||
break;
|
||||
case DEPOSIT_REPORT_TRANSFER: transfer();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void summarize() {
|
||||
DepositReportSummaryFragment fragment = new DepositReportSummaryFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private void recapitulate() {
|
||||
DepositReportRecapitulateFragment fragment = new DepositReportRecapitulateFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private void transfer() {
|
||||
DepositReportTransferFragment fragment = new DepositReportTransferFragment();
|
||||
fragment.setArguments(bundle);
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,497 @@
|
|||
package com.adins.mss.coll;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.NewMainActivity;
|
||||
import com.adins.mss.base.about.activity.AboutActivity;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.mainmenu.NewMenuItem;
|
||||
import com.adins.mss.base.timeline.NewTimelineFragment;
|
||||
import com.adins.mss.base.todolist.ToDoList;
|
||||
import com.adins.mss.base.todolist.form.PriorityTabFragment;
|
||||
import com.adins.mss.base.todolist.form.TaskListFragment_new;
|
||||
import com.adins.mss.base.todolist.form.TaskList_Fragment;
|
||||
import com.adins.mss.base.todolist.todayplanrepository.TodayPlanRepository;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskListResponse;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskRequest;
|
||||
import com.adins.mss.coll.closingtask.senders.ClosingTaskSender;
|
||||
import com.adins.mss.coll.dashboardcollection.view.DashboardCollectionView;
|
||||
import com.adins.mss.coll.fragments.CollectionActivityFragment;
|
||||
import com.adins.mss.coll.fragments.DashBoardFragment;
|
||||
import com.adins.mss.coll.fragments.DepositReportACFragment;
|
||||
import com.adins.mss.coll.fragments.DepositReportFragmentNew;
|
||||
import com.adins.mss.coll.fragments.DepositReportPCFragment;
|
||||
import com.adins.mss.coll.fragments.GuidelineFaqFragment;
|
||||
import com.adins.mss.coll.fragments.InstallmentScheduleFragment;
|
||||
import com.adins.mss.coll.fragments.PaymentHistoryFragment;
|
||||
import com.adins.mss.coll.fragments.ReceiptHistoryFragment;
|
||||
import com.adins.mss.coll.fragments.ReportSummaryFragment;
|
||||
import com.adins.mss.coll.models.DocumentListResponse;
|
||||
import com.adins.mss.coll.services.MCLocationTrackingService;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.Emergency;
|
||||
import com.adins.mss.dao.GeneralParameter;
|
||||
import com.adins.mss.foundation.db.dataaccess.EmergencyDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.MenuDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
import com.services.ForegroundServiceNotification;
|
||||
import com.services.MainServices;
|
||||
import com.services.NotificationThread;
|
||||
import com.services.plantask.ChangePlanService;
|
||||
import com.services.plantask.ConnectivityChangeReceiver;
|
||||
import com.services.plantask.StartVisitJob;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class NewMCMainActivity extends NewMainActivity {
|
||||
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
NewMainActivity.setMss(this.getClass());
|
||||
/**
|
||||
* Nendi | 2019.06.17
|
||||
* Update Foreground Service
|
||||
* @support Android >= 8.0
|
||||
*/
|
||||
startLocationHistoryService();
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
|
||||
try {
|
||||
NewMCMainActivity.mnTaskList.setCounter(String.valueOf(ToDoList.getCounterTaskList(this)));
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
|
||||
Tool.installProvider(getApplicationContext());
|
||||
|
||||
if(savedInstanceState ==null) {
|
||||
Fragment fragment1 = new NewTimelineFragment();
|
||||
FragmentTransaction transaction = fragmentManager.beginTransaction();
|
||||
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
|
||||
transaction.add(com.adins.mss.base.R.id.content_frame, fragment1);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
//new
|
||||
try {
|
||||
Global.FEATURE_REVISIT_COLLECTION = MenuDataAccess.isHaveReVisitMenu(getApplicationContext());
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
Global.installmentSchIntent = new Intent(getApplicationContext(), InstallmentScheduleFragment.class);
|
||||
Global.paymentHisIntent = new Intent(getApplicationContext(), PaymentHistoryFragment.class);
|
||||
Global.collectionActIntent = new Intent(getApplicationContext(), CollectionActivityFragment.class);
|
||||
Global.receiptHistoryIntent = new Intent(getApplicationContext(), ReceiptHistoryFragment.class);
|
||||
}
|
||||
|
||||
private void checkPlanTaskMode() {
|
||||
String uuid_user = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
GeneralParameter planTaskGP = GeneralParameterDataAccess.getOne(this,uuid_user,Global.GS_PLAN_TASK);
|
||||
if(planTaskGP != null && planTaskGP.getGs_value().equals("1")){
|
||||
Global.PLAN_TASK_ENABLED = true;
|
||||
}else {
|
||||
Global.PLAN_TASK_ENABLED = false;
|
||||
}
|
||||
|
||||
TodayPlanRepository todayPlanRepository = GlobalData.getSharedGlobalData().getTodayPlanRepo();
|
||||
if(todayPlanRepository == null && Global.PLAN_TASK_ENABLED){
|
||||
todayPlanRepository = new TodayPlanRepository(getApplicationContext());
|
||||
GlobalData.getSharedGlobalData().setTodayPlanRepo(todayPlanRepository);
|
||||
}else if(!Global.PLAN_TASK_ENABLED && todayPlanRepository != null){
|
||||
todayPlanRepository = null;//clear
|
||||
}
|
||||
|
||||
if(todayPlanRepository != null && Global.PLAN_TASK_ENABLED){
|
||||
todayPlanRepository.checkPlanAfterSync();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerNetworkCallbacks() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
nCallback = new ConnectivityChangeReceiver(new ConnectivityChangeReceiver.ConnectivityListener() {
|
||||
@Override
|
||||
public void onOnline() {
|
||||
//do task when online
|
||||
String uuid_user = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
GeneralParameter planTaskGP = GeneralParameterDataAccess
|
||||
.getOne(getApplicationContext(),uuid_user,Global.GS_PLAN_TASK);
|
||||
if(planTaskGP != null && planTaskGP.getGs_value().equals("1")){
|
||||
Global.PLAN_TASK_ENABLED = true;
|
||||
}else {
|
||||
Global.PLAN_TASK_ENABLED = false;
|
||||
}
|
||||
|
||||
if(Global.PLAN_TASK_ENABLED){
|
||||
//sync start visit
|
||||
TodayPlanRepository todayPlanRepo = GlobalData.getSharedGlobalData().getTodayPlanRepo();
|
||||
if(todayPlanRepo == null){
|
||||
todayPlanRepo = new TodayPlanRepository(getApplicationContext());
|
||||
}
|
||||
if(todayPlanRepo.isNeedSync()){
|
||||
Intent startVisitServ = new Intent(getApplicationContext(), StartVisitJob.class);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
startForegroundService(startVisitServ);
|
||||
}
|
||||
else
|
||||
startService(startVisitServ);
|
||||
}
|
||||
|
||||
//sync change plan
|
||||
String[] lastOffChangePlan = todayPlanRepo.getLastOffChangePlanInfo();
|
||||
if(lastOffChangePlan != null && lastOffChangePlan.length > 0){
|
||||
Intent changePlanServ = new Intent(getApplicationContext(), ChangePlanService.class);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
startForegroundService(changePlanServ);
|
||||
}
|
||||
else
|
||||
startService(changePlanServ);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOffline() {
|
||||
//do task when offline
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
super.registerNetworkCallbacks();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Intent getLocationServiceIntent() {
|
||||
return new Intent(this, MCLocationTrackingService.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
actionFromNotif(intent);
|
||||
}
|
||||
|
||||
protected void actionFromNotif(Intent intent){
|
||||
try {
|
||||
String action = intent.getAction();
|
||||
if(action!=null && action.equals(NotificationThread.TASKLIST_NOTIFICATION_KEY)){
|
||||
if(Global.PLAN_TASK_ENABLED){
|
||||
logEventCountMenuAccessed(getString(com.adins.mss.base.R.string.mn_plantask));
|
||||
TaskListFragment_new tasklistFragment = new TaskListFragment_new();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(TaskList_Fragment.BUND_KEY_PAGE,1);
|
||||
tasklistFragment.setArguments(bundle);
|
||||
FragmentTransaction fragmentTransaction = NewMainActivity.fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(com.adins.mss.base.R.id.content_frame,tasklistFragment);
|
||||
fragmentTransaction.addToBackStack(null);
|
||||
fragmentTransaction.commit();
|
||||
return;
|
||||
}
|
||||
logEventCountMenuAccessed(getString(com.adins.mss.base.R.string.title_mn_tasklist));
|
||||
Fragment fragment1 = new PriorityTabFragment();
|
||||
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(com.adins.mss.base.R.anim.activity_open_translate, com.adins.mss.base.R.anim.activity_close_scale, com.adins.mss.base.R.anim.activity_open_scale, com.adins.mss.base.R.anim.activity_close_translate);
|
||||
transaction.replace(com.adins.mss.base.R.id.content_frame, fragment1);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commitAllowingStateLoss();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this,getString(R.string.screen_name_coll_main_menu),null);
|
||||
|
||||
checkPlanTaskMode();
|
||||
if (Global.REDIRECT_TIMELINE.equals(Global.getREDIRECT())){
|
||||
super.openTimeline();
|
||||
Global.setREDIRECT(null);
|
||||
return;
|
||||
}
|
||||
|
||||
Global.syncIntent = new Intent(getApplicationContext(), MCSynchronizeActivity.class);
|
||||
if(NewMainActivity.getMss()==null) {
|
||||
NewMainActivity.setMss(this.getClass());
|
||||
MainServices.mainClass = mss;
|
||||
}
|
||||
NewMainActivity.setMainMenuClass(NewMCMainActivity.class);
|
||||
try {
|
||||
NewMCMainActivity.mnTaskList.setCounter(String.valueOf(ToDoList.getCounterTaskList(this)));
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O && !ForegroundServiceNotification.isServiceAvailable(this, MCLocationTrackingService.class)) {
|
||||
startLocationHistoryService();
|
||||
}
|
||||
if(null != GlobalData.getSharedGlobalData().getUser().getIs_emergency() &&
|
||||
(GlobalData.getSharedGlobalData().getUser().getIs_emergency().equalsIgnoreCase(Global.EMERGENCY_SEND_SUCCESS)
|
||||
||GlobalData.getSharedGlobalData().getUser().getIs_emergency().equalsIgnoreCase(Global.EMERGENCY_SEND_PENDING))){
|
||||
Emergency emergency = new Emergency();
|
||||
emergency.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
EmergencyDataAccess.addOrReplace(getApplicationContext(),emergency);
|
||||
Intent intent = new Intent(this,EmergencyLockActivity.class);
|
||||
startActivity(intent);
|
||||
}else{
|
||||
List<Emergency> emergencies = EmergencyDataAccess.getByUser(getApplicationContext(),GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
if(!emergencies.isEmpty()){
|
||||
Intent intent = new Intent(this,EmergencyLockActivity.class);
|
||||
startActivity(intent);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void startLocationHistoryService() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
startForegroundService(getLocationServiceIntent());
|
||||
} else {
|
||||
startService(getLocationServiceIntent());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Intent getIntentSynchronize() {
|
||||
return new Intent(this, MCSynchronizeActivity.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void ApplicationMenu(NewMenuItem menuItem) {
|
||||
super.ApplicationMenu(menuItem);
|
||||
|
||||
if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_reportsummary))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_reportsummary));
|
||||
gotoReportSummary();
|
||||
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_depositreport))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_depositreport));
|
||||
gotoDepositReport();
|
||||
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_depositreportAC))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_depositreportAC));
|
||||
gotoDepositReportAC();
|
||||
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_depositreportPC))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_depositreportPC));
|
||||
gotoDepositReportPC();
|
||||
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_closing_task))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_closing_task));
|
||||
gotoClosingTask();
|
||||
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_dashboard))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_dashboard));
|
||||
goToDashBoard();
|
||||
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_dashboard_collection))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_dashboard_collection));
|
||||
goToDashboardCollection();
|
||||
} else if(menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_guideline_faq))) {
|
||||
logEventCountMenuAccessed(getString(R.string.title_mn_guideline_faq));
|
||||
goToGuidelineFaq();
|
||||
}
|
||||
}
|
||||
|
||||
protected void goToGuidelineFaq(){
|
||||
new GetDocumentList(getApplicationContext()).execute();
|
||||
}
|
||||
|
||||
public class GetDocumentList extends AsyncTask<Void, Void, String>{
|
||||
private ProgressDialog progressDialog;
|
||||
private Context context;
|
||||
|
||||
public GetDocumentList(Context context){
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
progressDialog = ProgressDialog.show(NewMCMainActivity.this, "", getString(R.string.progressWait), true);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(Void... voids) {
|
||||
try {
|
||||
if(Tool.isInternetconnected(NewMCMainActivity.this)){
|
||||
String result = null;
|
||||
MssRequestType requestType = new MssRequestType();
|
||||
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String json = GsonHelper.toJson(requestType);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_DOCUMENT_LIST();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(NewMCMainActivity.this, encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
|
||||
if(serverResult != null){
|
||||
if(serverResult.isOK()){
|
||||
try{
|
||||
result = serverResult.getResult();
|
||||
}catch (Exception e){
|
||||
FireCrash.log(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}catch (Exception e){
|
||||
FireCrash.log(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String result) {
|
||||
super.onPostExecute(result);
|
||||
|
||||
if(progressDialog != null && progressDialog.isShowing()){
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
|
||||
DocumentListResponse documentListResponse = new DocumentListResponse();
|
||||
if(result != null){
|
||||
documentListResponse = GsonHelper.fromJson(result, DocumentListResponse.class);
|
||||
|
||||
GuidelineFaqFragment guidelineFaqFragment = GuidelineFaqFragment.newInstance(documentListResponse.getDocumentList());
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, guidelineFaqFragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gotoTimeline() {
|
||||
super.gotoTimeline();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void gotoAbout() {
|
||||
AboutActivity.setChangeLog(ChangeLog.getChangeLog(this), 0);
|
||||
super.gotoAbout();
|
||||
}
|
||||
|
||||
protected void gotoReportSummary() {
|
||||
fragment = new ReportSummaryFragment();
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
protected void gotoDepositReport() {
|
||||
fragment = new DepositReportFragmentNew();
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
|
||||
protected void gotoDepositReportAC() {
|
||||
fragment = new DepositReportACFragment();
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
|
||||
protected void gotoDepositReportPC() {
|
||||
fragment = new DepositReportPCFragment();
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
protected void goToDashBoard() {
|
||||
fragment = new DashBoardFragment();
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
protected void goToDashboardCollection(){
|
||||
DashboardCollectionView fragment = new DashboardCollectionView();
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
transaction.replace(R.id.content_frame,fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
protected void gotoClosingTask() {
|
||||
ClosingTaskRequest request = new ClosingTaskRequest();
|
||||
request.setFlag(ClosingTaskRequest.CLOSING_TASK_LIST);
|
||||
ClosingTaskSender<ClosingTaskListResponse> sender = new ClosingTaskSender<>(
|
||||
this, request, ClosingTaskListResponse.class);
|
||||
sender.execute();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
package com.adins.mss.coll.adapters;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
|
||||
import com.adins.mss.coll.items.ClosingTaskItem;
|
||||
import com.adins.mss.coll.networks.entities.ClosingTaskEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public class ClosingTaskAdapter extends BaseAdapter {
|
||||
private static ClosingTaskAdapter instance;
|
||||
private List<ClosingTaskEntity> entities;
|
||||
|
||||
public ClosingTaskAdapter() {
|
||||
|
||||
}
|
||||
|
||||
public static ClosingTaskAdapter getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new ClosingTaskAdapter();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if (entities == null) return 0;
|
||||
|
||||
return entities.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClosingTaskEntity getItem(int position) {
|
||||
if (entities == null) return null;
|
||||
|
||||
return entities.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
ClosingTaskItem item;
|
||||
|
||||
if (convertView == null) {
|
||||
item = new ClosingTaskItem(parent.getContext());
|
||||
} else {
|
||||
item = (ClosingTaskItem) convertView;
|
||||
}
|
||||
|
||||
item.bind(getItem(position));
|
||||
return item;
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
if (entities != null) {
|
||||
entities.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public void processData(List<ClosingTaskEntity> ts) {
|
||||
if (ts == null || ts.size() <= 0) return;
|
||||
|
||||
if (entities == null) {
|
||||
entities = ts;
|
||||
} else {
|
||||
entities.addAll(ts);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void releaseResources() {
|
||||
clear();
|
||||
notifyDataSetChanged();
|
||||
|
||||
entities = null;
|
||||
instance = null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
package com.adins.mss.coll.adapters;
|
||||
|
||||
/**
|
||||
* Created by winy.firdasari on 04/02/2015.
|
||||
*/
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseExpandableListAdapter;
|
||||
import android.widget.CheckedTextView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import com.adins.mss.coll.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
public class ExpandableAdapter extends BaseExpandableListAdapter {
|
||||
|
||||
private Activity activity;
|
||||
private ArrayList<Object> childtems;
|
||||
private LayoutInflater inflater;
|
||||
private ArrayList<String> parentItems, child;
|
||||
|
||||
public ExpandableAdapter(ArrayList<String> parents, ArrayList<Object> childern) {
|
||||
this.parentItems = parents;
|
||||
this.childtems = childern;
|
||||
}
|
||||
|
||||
public void setInflater(LayoutInflater inflater, Activity activity) {
|
||||
this.inflater = inflater;
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
|
||||
|
||||
child = (ArrayList<String>) childtems.get(groupPosition);
|
||||
|
||||
TextView textView = null;
|
||||
|
||||
if (convertView == null) {
|
||||
convertView = inflater.inflate(R.layout.child_view, null);
|
||||
}
|
||||
|
||||
textView = (TextView) convertView.findViewById(R.id.textView1);
|
||||
textView.setText(child.get(childPosition));
|
||||
|
||||
convertView.setOnClickListener(new OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Toast.makeText(activity, child.get(childPosition),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
|
||||
|
||||
if (convertView == null) {
|
||||
convertView = inflater.inflate(R.layout.parent_view, null);
|
||||
}
|
||||
|
||||
((CheckedTextView) convertView).setText(parentItems.get(groupPosition));
|
||||
((CheckedTextView) convertView).setChecked(isExpanded);
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getChild(int groupPosition, int childPosition) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChildId(int groupPosition, int childPosition) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getChildrenCount(int groupPosition) {
|
||||
return ((ArrayList<String>) childtems.get(groupPosition)).size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getGroup(int groupPosition) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGroupCount() {
|
||||
return parentItems.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGroupCollapsed(int groupPosition) {
|
||||
super.onGroupCollapsed(groupPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGroupExpanded(int groupPosition) {
|
||||
super.onGroupExpanded(groupPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getGroupId(int groupPosition) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasStableIds() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChildSelectable(int groupPosition, int childPosition) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.models.CollectionActivityRequest;
|
||||
import com.adins.mss.coll.models.CollectionActivityResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Created by dian.ina on 08/05/2015.
|
||||
*/
|
||||
public class CollectionActivityApi {
|
||||
private final Context context;
|
||||
|
||||
public CollectionActivityApi(Context context)
|
||||
{
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public CollectionActivityResponse request(String taskId) throws IOException {
|
||||
CollectionActivityRequest request = new CollectionActivityRequest();
|
||||
request.setTaskId(taskId);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String requestJson = GsonHelper.toJson(request);
|
||||
|
||||
/*HttpClient client = new HttpClient(context);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_RETRIECECOLLECTIONTASK();
|
||||
Request httpRequest = client.request(url)
|
||||
.post(RequestBody.create(MediaType.parse("application/json"), requestJson))
|
||||
.build();
|
||||
|
||||
Response response = client.execute(httpRequest);*/
|
||||
String url = GlobalData.getSharedGlobalData().getURL_RETRIECECOLLECTIONTASK();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
|
||||
//Firebase Performance Trace HTTP Request
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, requestJson);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, requestJson, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
String responseJson ="" ;
|
||||
if(serverResult!=null && serverResult.isOK()){
|
||||
try {
|
||||
responseJson = serverResult.getResult();
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e); }
|
||||
}
|
||||
// bong 21 mei 15 - add or replace to local database
|
||||
CollectionActivityResponse collActResp = GsonHelper.fromJson(responseJson, CollectionActivityResponse.class);
|
||||
// List<CollectionActivity> collectionActivityList = collActResp.getCollectionHistoryList();
|
||||
// if(collectionActivityList!=null&&collectionActivityList.size()>0){
|
||||
// TaskH taskH = TaskHDataAccess.getOneTaskHeader(context, taskId);
|
||||
//// List<CollectionActivity> collectionActivityLocalList = null;
|
||||
////
|
||||
// for(CollectionActivity collectionActivity : collectionActivityList){
|
||||
// String agreementNo = collectionActivity.getAgreement_no();
|
||||
// if(agreementNo!=null &&agreementNo.length()>0){
|
||||
//// collectionActivityLocalList = CollectionActivityDataAccess.getAll(context, agreementNo);
|
||||
// CollectionActivityDataAccess.delete(context, collectionActivity.getUuid_task_h());
|
||||
// taskH.setAppl_no(agreementNo);
|
||||
// TaskHDataAccess.addOrReplace(context, taskH);
|
||||
// }
|
||||
// if(collectionActivity.getUuid_collection_activity()==null){
|
||||
// collectionActivity.setUuid_collection_activity(Tool.getUUID());
|
||||
// }
|
||||
// CollectionActivityDataAccess.add(context, collectionActivity);
|
||||
// }
|
||||
// }
|
||||
|
||||
//return gson.fromJson(responseJson, CollectionActivityResponse.class);
|
||||
return collActResp;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.models.DepositReportReconcileRequest;
|
||||
import com.adins.mss.coll.models.DepositReportReconcileResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by dian.ina on 02/09/2015.
|
||||
*/
|
||||
public class DepositReportReconcileApi {
|
||||
private final Context context;
|
||||
|
||||
public DepositReportReconcileApi(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public DepositReportReconcileResponse request(List<String> taskId, List<String> flag) throws IOException {
|
||||
DepositReportReconcileRequest request = new DepositReportReconcileRequest();
|
||||
request.setTaskId(taskId);
|
||||
request.setFlag(flag);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String requestJson = GsonHelper.toJson(request);
|
||||
|
||||
// HttpClient client = new HttpClient(context);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_RECAPITULATE();
|
||||
// Request httpRequest = client.request(url)
|
||||
// .post(RequestBody.create(MediaType.parse("application/json"), requestJson))
|
||||
// .build();
|
||||
//
|
||||
// Response response = client.execute(httpRequest);
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
|
||||
//Firebase Performance Trace HTTP Request
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, requestJson);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, requestJson, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
String responseJson ="" ;
|
||||
if(serverResult!=null && serverResult.isOK()){
|
||||
try {
|
||||
responseJson = serverResult.getResult();
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e); }
|
||||
}
|
||||
//String responseJson = "{\"taskId\":[\"COL150000243\"],\"status\":{\"code\":0}}";
|
||||
DepositReportReconcileResponse reconcileResponse = GsonHelper.fromJson(responseJson, DepositReportReconcileResponse.class);
|
||||
|
||||
return reconcileResponse;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 16/03/15.
|
||||
*/
|
||||
public interface FakeSynchronizationCallback<T> {
|
||||
public void onSuccess(List<T> entities);
|
||||
|
||||
public void onFailed();
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.models.InstallmentScheduleRequest;
|
||||
import com.adins.mss.coll.models.InstallmentScheduleResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 06/05/15.
|
||||
*/
|
||||
public class InstallmentScheduleApi {
|
||||
private final Context context;
|
||||
|
||||
public InstallmentScheduleApi(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public InstallmentScheduleResponse request(String taskId) throws IOException {
|
||||
InstallmentScheduleRequest request = new InstallmentScheduleRequest();
|
||||
request.setTaskId(taskId);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String requestJson = GsonHelper.toJson(request);
|
||||
|
||||
//HttpClient client = new HttpClient(context);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_INSTALLMENTSCHEDULE();
|
||||
// Request httpRequest = client.request(url)
|
||||
// .post(RequestBody.create(MediaType.parse("application/json"), requestJson))
|
||||
// .build();
|
||||
//
|
||||
// Response response = client.execute(httpRequest);
|
||||
// String responseJson = response.body().string();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, requestJson);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, requestJson, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
String responseJson ="" ;
|
||||
if(serverResult!=null && serverResult.isOK()){
|
||||
try {
|
||||
responseJson = serverResult.getResult();
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e); }
|
||||
}
|
||||
|
||||
// bong 21 mei 15 - add or replace to local database
|
||||
InstallmentScheduleResponse installmentSchedResp = GsonHelper.fromJson(responseJson, InstallmentScheduleResponse.class);
|
||||
// if(installmentSchedResp!=null){
|
||||
// List<InstallmentSchedule> installmentScheduleList = installmentSchedResp.getInstallmentScheduleList();
|
||||
// if(installmentScheduleList!=null && installmentScheduleList.size()>0){
|
||||
// List<InstallmentSchedule> installmentScheduleLocalList = null;
|
||||
// TaskH taskH = TaskHDataAccess.getOneTaskHeader(context, taskId);
|
||||
// for(InstallmentSchedule installmentSchedule : installmentScheduleList){
|
||||
// String agreementNo = installmentSchedule.getAgreement_no();
|
||||
// if(agreementNo!=null && agreementNo.length()>0){
|
||||
// installmentScheduleLocalList = InstallmentScheduleDataAccess.getAll(context, agreementNo);
|
||||
// InstallmentScheduleDataAccess.delete(context, installmentSchedule.getUuid_task_h());
|
||||
// taskH.setAppl_no(agreementNo);
|
||||
// TaskHDataAccess.addOrReplace(context, taskH);
|
||||
// }
|
||||
// if(installmentSchedule.getUuid_installment_schedule()==null){
|
||||
// installmentSchedule.setUuid_installment_schedule(Tool.getUUID());
|
||||
// }
|
||||
// InstallmentScheduleDataAccess.add(context, installmentSchedule);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//return gson.fromJson(responseJson, InstallmentScheduleResponse.class);
|
||||
return installmentSchedResp;
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.models.PaymentHistoryRequest;
|
||||
import com.adins.mss.coll.models.PaymentHistoryResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 20/03/15.
|
||||
*/
|
||||
public class PaymentHistoryApi {
|
||||
private final Context context;
|
||||
|
||||
public PaymentHistoryApi(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public PaymentHistoryResponse request(String taskId) throws Exception {
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
PaymentHistoryRequest request = new PaymentHistoryRequest();
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
request.setTask_id(taskId);
|
||||
String data = GsonHelper.toJson(request);
|
||||
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric(GlobalData.getSharedGlobalData().getURL_GET_PAYMENTHISTORY(), FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, data);
|
||||
|
||||
HttpConnectionResult result = httpConn.requestToServer(
|
||||
GlobalData.getSharedGlobalData().getURL_GET_PAYMENTHISTORY(),
|
||||
data, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
try {
|
||||
Utility.metricStop(networkMetric, result);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String jsonResult = result.getResult();
|
||||
|
||||
// bong 21 mei 15 - add or replace to local database
|
||||
/* PaymentHistoryResponse paymentHistoryResp = gson.fromJson(jsonResult, PaymentHistoryResponse.class);
|
||||
List<PaymentHistoryHBean> paymentHistoryHList = paymentHistoryResp.getPaymentHistoryHList();
|
||||
//List<PaymentHistoryH> paymentHistoryHList = paymentHistoryResp.getPaymentHistoryHList();
|
||||
//List<PaymentHistoryD> paymentHistoryDList = paymentHistoryResp.getPaymentHistoryDList();
|
||||
List<PaymentHistoryH> paymentHistoryHLocalList = null;
|
||||
//List<PaymentHistoryD> paymentHistoryDLocalList = null;
|
||||
if(paymentHistoryHList!=null){
|
||||
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(context, taskId);
|
||||
for(PaymentHistoryHBean paymentHistoryHBean : paymentHistoryHList){
|
||||
String agreementNo = paymentHistoryHBean.getPaymentHistoryH().getAgreement_no();;
|
||||
if(agreementNo!=null && agreementNo.length()>0){
|
||||
paymentHistoryHLocalList = PaymentHistoryHDataAccess.getAll(context, agreementNo);
|
||||
//paymentHistoryDLocalList = PaymentHistoryDDataAccess.getAll(context, uuidTaskH);
|
||||
//if(paymentHistoryDLocalList.size()>0){
|
||||
// PaymentHistoryDDataAccess.delete(context, uuidTaskH);
|
||||
//}
|
||||
taskH.setAppl_no(agreementNo);
|
||||
TaskHDataAccess.addOrReplace(context, taskH);
|
||||
if(paymentHistoryHBean.getPaymentHistoryDList()!=null){
|
||||
if(paymentHistoryHBean.getPaymentHistoryDList().size()>0){
|
||||
for(PaymentHistoryD paymentHistoryD : paymentHistoryHBean.getPaymentHistoryDList()){
|
||||
PaymentHistoryDDataAccess.delete(context, paymentHistoryD);
|
||||
}
|
||||
PaymentHistoryDDataAccess.delete(context, paymentHistoryHBean.getPaymentHistoryH().getUuid_task_h());
|
||||
|
||||
}
|
||||
}
|
||||
if(paymentHistoryHLocalList!=null){
|
||||
if(paymentHistoryHLocalList.size()>0){
|
||||
PaymentHistoryHDataAccess.delete(context, paymentHistoryHBean.getPaymentHistoryH().getUuid_task_h());
|
||||
}
|
||||
}
|
||||
|
||||
if(paymentHistoryHBean.getPaymentHistoryH().getUuid_payment_history_h()==null){
|
||||
paymentHistoryHBean.getPaymentHistoryH().setUuid_payment_history_h(Tool.getUUID());
|
||||
}
|
||||
PaymentHistoryHDataAccess.add(context, paymentHistoryHBean.getPaymentHistoryH());
|
||||
|
||||
if(paymentHistoryHBean.getPaymentHistoryDList()!=null){
|
||||
if(paymentHistoryHBean.getPaymentHistoryDList().size()>0){
|
||||
PaymentHistoryDDataAccess.add(context, paymentHistoryHBean.getPaymentHistoryDList());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
// if(paymentHistoryHBean.getPaymentHistoryDList().size()>0){
|
||||
// //String uuidTaskH = "";
|
||||
// //List<PaymentHistoryD> paymentHistoryDLocalList = null;
|
||||
// PaymentHistoryDDataAccess.add(context, paymentHistoryDList);
|
||||
// }
|
||||
|
||||
return GsonHelper.fromJson(jsonResult, PaymentHistoryResponse.class);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.models.ReceiptHistoryRequest;
|
||||
import com.adins.mss.coll.models.ReceiptHistoryResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.ReceiptHistory;
|
||||
import com.adins.mss.foundation.db.dataaccess.ReceiptHistoryDataAccess;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
public class ReceiptHistoryApi {
|
||||
|
||||
private final Context context;
|
||||
|
||||
public ReceiptHistoryApi(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public ReceiptHistoryResponse request(String agreementNo, String taskId) throws IOException {
|
||||
ReceiptHistoryRequest request = new ReceiptHistoryRequest();
|
||||
request.setAgreementNo(agreementNo);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String requestJson = GsonHelper.toJson(request);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_RECEIPT_HISTORY();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, requestJson);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, requestJson, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
String responseJson = "";
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
responseJson = serverResult.getResult();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
ReceiptHistoryResponse receiptHistoryResponse = GsonHelper.fromJson(responseJson, ReceiptHistoryResponse.class);
|
||||
if (null == receiptHistoryResponse) {
|
||||
List<ReceiptHistory> receiptHistoryList = ReceiptHistoryDataAccess.getAllByTask(context, taskId);
|
||||
if (null != receiptHistoryList) {
|
||||
return null;
|
||||
} else {
|
||||
return receiptHistoryResponse;
|
||||
}
|
||||
} else {
|
||||
return receiptHistoryResponse;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.models.ReportSummaryResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 22/04/15.
|
||||
*/
|
||||
public class ReportSummaryApi {
|
||||
private final Context context;
|
||||
|
||||
public ReportSummaryApi(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public ReportSummaryResponse request() {
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
Gson gson = new Gson();
|
||||
MssRequestType request = new MssRequestType();
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String data = gson.toJson(request);
|
||||
ReportSummaryResponse response = null;
|
||||
|
||||
//Firebase Performance Trace HTTP Request
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric( GlobalData.getSharedGlobalData().getURL_GET_REPORTSUMMARY(), FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, data);
|
||||
|
||||
try {
|
||||
HttpConnectionResult result = httpConn.requestToServer(
|
||||
GlobalData.getSharedGlobalData().getURL_GET_REPORTSUMMARY(),
|
||||
data, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
String jsonResult = result.getResult();
|
||||
Utility.metricStop(networkMetric, result);
|
||||
response = gson.fromJson(jsonResult, ReportSummaryResponse.class);
|
||||
}
|
||||
catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 11/03/15.
|
||||
*/
|
||||
public interface SynchronizationCallback {
|
||||
void onSuccess();
|
||||
|
||||
void onFailed();
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package com.adins.mss.coll.api;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 12/03/15.
|
||||
*/
|
||||
public interface SynchronizationMapper<T> {
|
||||
public void map(String property, String value, T target);
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.adins.mss.coll.assignment;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.androidquery.AQuery;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OrderAssignmentActivity extends Fragment {
|
||||
protected View view;
|
||||
protected AQuery query;
|
||||
protected List<TaskH> objects;
|
||||
private User user = GlobalData.getSharedGlobalData().getUser();
|
||||
OrderAssignmentAdapter adapter;
|
||||
@Override
|
||||
public void onAttach(Context activity) {
|
||||
super.onAttach(activity);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
getActivity().getActionBar().setTitle(getString(R.string.title_mn_orderassign));
|
||||
// objects = TaskHDataAccess.getall
|
||||
adapter = new OrderAssignmentAdapter(getActivity(), objects);
|
||||
}
|
||||
@Override
|
||||
public void onResume(){
|
||||
super.onResume();
|
||||
getActivity().getActionBar().setTitle(getString(R.string.title_mn_orderassign));
|
||||
}
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
if (view != null) {
|
||||
ViewGroup parent = (ViewGroup) view.getParent();
|
||||
if (parent != null)
|
||||
parent.removeView(view);
|
||||
}
|
||||
try {
|
||||
view = inflater.inflate(R.layout.newtask_layout, container, false);
|
||||
query = new AQuery(view);
|
||||
query.id(android.R.id.list).adapter(adapter);
|
||||
query.id(android.R.id.list).itemClicked(this, "itemClick");
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
public void itemClick(AdapterView<?> parent, View v, int position, long id){
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package com.adins.mss.coll.assignment;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.adins.mss.dao.Scheme;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.androidquery.AQuery;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
public class OrderAssignmentAdapter extends ArrayAdapter<TaskH>{
|
||||
private Context context;
|
||||
private List<TaskH> objects;
|
||||
AQuery query;
|
||||
|
||||
public OrderAssignmentAdapter(Context context, List<TaskH> objects) {
|
||||
super(context, R.layout.orderassignment_item_layout, objects);
|
||||
this.context = context;
|
||||
this.objects = objects;
|
||||
}
|
||||
@Override
|
||||
public int getCount() {
|
||||
return objects.size();
|
||||
}
|
||||
@Override
|
||||
public View getView(final int position, View convertView, ViewGroup parent) {
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(getContext()).inflate(R.layout.orderassignment_item_layout, parent, false);
|
||||
}
|
||||
query = new AQuery(convertView);
|
||||
TaskH header = objects.get(position);
|
||||
|
||||
// query.id(R.id.txtNoOrder).text(header.get);
|
||||
query.id(R.id.txtCustomerName).text(header.getCustomer_name());
|
||||
return convertView;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
package com.adins.mss.coll.closingtask;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public class ClosingTaskAdapter extends BaseAdapter {
|
||||
private static ClosingTaskAdapter instance;
|
||||
private List<ClosingTaskEntity> entities;
|
||||
|
||||
public ClosingTaskAdapter() {
|
||||
|
||||
}
|
||||
|
||||
public static ClosingTaskAdapter getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new ClosingTaskAdapter();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if (entities == null) return 0;
|
||||
|
||||
return entities.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClosingTaskEntity getItem(int position) {
|
||||
if (entities == null) return null;
|
||||
|
||||
return entities.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
ClosingTaskItem item;
|
||||
|
||||
if (convertView == null) {
|
||||
item = new ClosingTaskItem(parent.getContext());
|
||||
} else {
|
||||
item = (ClosingTaskItem) convertView;
|
||||
}
|
||||
|
||||
item.bind(getItem(position));
|
||||
return item;
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
if (entities != null) {
|
||||
entities.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public void processData(List<ClosingTaskEntity> ts) {
|
||||
if (ts == null || ts.size() <= 0) return;
|
||||
|
||||
if (entities == null) {
|
||||
entities = ts;
|
||||
} else {
|
||||
entities.addAll(ts);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void releaseResources() {
|
||||
clear();
|
||||
notifyDataSetChanged();
|
||||
|
||||
entities = null;
|
||||
instance = null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,161 @@
|
|||
package com.adins.mss.coll.closingtask;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskRequest;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskResponse;
|
||||
import com.adins.mss.coll.closingtask.senders.ClosingTaskListener;
|
||||
import com.adins.mss.coll.closingtask.senders.ClosingTaskSender;
|
||||
import com.adins.mss.coll.dummy.ClosingTaskDummyAdapter;
|
||||
import com.adins.mss.coll.dummy.UserHelpCOLDummy;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.androidquery.AQuery;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public class ClosingTaskFragment extends Fragment implements ClosingTaskListener {
|
||||
private AQuery query;
|
||||
private static boolean showDummy = true;
|
||||
public static ClosingTaskFragment newInstance() {
|
||||
return new ClosingTaskFragment();
|
||||
}
|
||||
private ListView listView;
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.new_fragment_closing_task, container, false);
|
||||
query = new AQuery(getActivity(), view);
|
||||
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(R.string.title_mn_closing_task);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
setHasOptionsMenu(true);
|
||||
super.onAttach(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
listView = (ListView) query.id(R.id.listClosingTask).getView();
|
||||
if(Global.ENABLE_USER_HELP &&
|
||||
showDummy &&
|
||||
Global.userHelpDummyGuide.get(ClosingTaskFragment.this.getClass().getSimpleName()) != null &&
|
||||
Global.userHelpDummyGuide.get(ClosingTaskFragment.this.getClass().getSimpleName()).size()>0){
|
||||
listView.setAdapter(ClosingTaskDummyAdapter.getInstance());
|
||||
showDummy=false;
|
||||
UserHelpCOLDummy userHelpCOLDummy = new UserHelpCOLDummy();
|
||||
userHelpCOLDummy.showDummyClosing(ClosingTaskFragment.this.getActivity(),ClosingTaskFragment.this.getClass().getSimpleName(),listView,ClosingTaskAdapter.getInstance());
|
||||
} else {
|
||||
listView.setAdapter(ClosingTaskAdapter.getInstance());
|
||||
}
|
||||
updateCount();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(R.string.title_mn_closing_task);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
query = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if(item.getItemId() == R.id.mnGuide){
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
listView.setAdapter(ClosingTaskDummyAdapter.getInstance());
|
||||
showDummy = false;
|
||||
UserHelpCOLDummy userHelpCOLDummy = new UserHelpCOLDummy();
|
||||
userHelpCOLDummy.showDummyClosing(ClosingTaskFragment.this.getActivity(), ClosingTaskFragment.this.getClass().getSimpleName(), listView, ClosingTaskAdapter.getInstance());
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClosingTaskSuccess() {
|
||||
ClosingTaskAdapter.getInstance().clear();
|
||||
ClosingTaskAdapter.getInstance().notifyDataSetChanged();
|
||||
updateCount();
|
||||
}
|
||||
|
||||
private void updateCount() {
|
||||
query.id(R.id.btnClosingTask).clicked(this, "closingTask").text(
|
||||
getString(R.string.title_mn_closing_task) + " (" +
|
||||
ClosingTaskAdapter.getInstance().getCount() + ")");
|
||||
}
|
||||
|
||||
@Keep // subcribe
|
||||
public void closingTask() {
|
||||
if (GlobalData.getSharedGlobalData().getUser() != null) {
|
||||
String uuidUser = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
boolean isDraft = TaskHDataAccess.getAllTaskByStatus(getActivity(), uuidUser, TaskHDataAccess.STATUS_SEND_SAVEDRAFT).size() != 0;
|
||||
boolean isPending = TaskHDataAccess.getAllTaskByStatus(getActivity(), uuidUser, TaskHDataAccess.STATUS_SEND_PENDING).size() != 0;
|
||||
|
||||
/*boolean isRvPending = TaskHDataAccess.getOneTaskByStatusRV(getActivity(), uuidUser, TaskHDataAccess.STATUS_RV_PENDING) != null;
|
||||
*/
|
||||
if (Global.isIsUploading() || isDraft || isPending) { /*|| isRvPending) {*/
|
||||
final NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(getActivity());
|
||||
dialogBuilder.withTitle(getString(R.string.title_mn_closing_task))
|
||||
.withMessage(getString(R.string.msg_still_uploading_closing_task))
|
||||
.withButton1Text(getString(R.string.btnCancel))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
dialogBuilder.dismiss();
|
||||
}
|
||||
})
|
||||
.isCancelable(false)
|
||||
.isCancelableOnTouchOutside(true)
|
||||
.show();
|
||||
} else {
|
||||
ClosingTaskRequest request = new ClosingTaskRequest();
|
||||
request.setFlag(ClosingTaskRequest.CLOSING_TASK);
|
||||
|
||||
ClosingTaskSender<ClosingTaskResponse> sender = new ClosingTaskSender<>(
|
||||
getActivity(), request, ClosingTaskResponse.class);
|
||||
sender.setListener(this);
|
||||
sender.execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package com.adins.mss.coll.closingtask;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskEntity;
|
||||
import com.androidquery.AQuery;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public class ClosingTaskItem extends LinearLayout {
|
||||
|
||||
protected AQuery query;
|
||||
|
||||
public ClosingTaskItem(Context context) {
|
||||
super(context);
|
||||
inflate(context);
|
||||
|
||||
setId((int) (System.currentTimeMillis() / 1000));
|
||||
}
|
||||
|
||||
private void inflate(Context context) {
|
||||
View view = inflate(context, R.layout.new_closing_task_item, this);
|
||||
|
||||
if(query == null) {
|
||||
query = new AQuery(view);
|
||||
} else {
|
||||
query = query.recycle(view);
|
||||
}
|
||||
}
|
||||
|
||||
public void bind(ClosingTaskEntity entity) {
|
||||
if (entity == null) return;
|
||||
|
||||
query.id(R.id.contractNo).text(entity.getNoKontrak());
|
||||
query.id(R.id.customerName).text(entity.getCustomerName());
|
||||
// query.id(R.id.tv_no_lkp).visibility(GONE);
|
||||
// query.id(R.id.tv_no_lkp).text(entity.getNoLkp());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package com.adins.mss.coll.closingtask.models;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public class ClosingTaskEntity {
|
||||
|
||||
@SerializedName("noKontrak")
|
||||
private String noKontrak;
|
||||
|
||||
@SerializedName("customerName")
|
||||
private String customerName;
|
||||
|
||||
@SerializedName("noLkp")
|
||||
private String noLkp;
|
||||
|
||||
public ClosingTaskEntity() {
|
||||
|
||||
}
|
||||
|
||||
public String getNoKontrak() {
|
||||
return noKontrak;
|
||||
}
|
||||
|
||||
public void setNoKontrak(String noKontrak) {
|
||||
this.noKontrak = noKontrak;
|
||||
}
|
||||
|
||||
public String getCustomerName() {
|
||||
return customerName;
|
||||
}
|
||||
|
||||
public void setCustomerName(String customerName) {
|
||||
this.customerName = customerName;
|
||||
}
|
||||
|
||||
public String getNoLkp() {
|
||||
return noLkp;
|
||||
}
|
||||
|
||||
public void setNoLkp(String noLkp) {
|
||||
this.noLkp = noLkp;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.adins.mss.coll.closingtask.models;
|
||||
|
||||
import com.adins.mss.foundation.http.MssResponseType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public class ClosingTaskListResponse extends MssResponseType {
|
||||
@SerializedName("taskList")
|
||||
private List<ClosingTaskEntity> taskList;
|
||||
|
||||
public List<ClosingTaskEntity> getTaskList() {
|
||||
return taskList;
|
||||
}
|
||||
|
||||
public void setTaskList(List<ClosingTaskEntity> taskList) {
|
||||
this.taskList = taskList;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.adins.mss.coll.closingtask.models;
|
||||
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 3/3/2016.
|
||||
*/
|
||||
public class ClosingTaskRequest extends MssRequestType {
|
||||
public transient static final String CLOSING_TASK_LIST = "0";
|
||||
public transient static final String CLOSING_TASK = "1";
|
||||
|
||||
@SerializedName("flag")
|
||||
private String flag;
|
||||
|
||||
public String getFlag() {
|
||||
return flag;
|
||||
}
|
||||
|
||||
public void setFlag(String flag) {
|
||||
this.flag = flag;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package com.adins.mss.coll.closingtask.models;
|
||||
|
||||
import com.adins.mss.foundation.http.MssResponseType;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 3/3/2016.
|
||||
*/
|
||||
public class ClosingTaskResponse extends MssResponseType {
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package com.adins.mss.coll.closingtask.senders;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public interface ClosingTaskListener {
|
||||
|
||||
void onClosingTaskSuccess();
|
||||
|
||||
}
|
|
@ -0,0 +1,206 @@
|
|||
package com.adins.mss.coll.closingtask.senders;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import android.view.View;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.NewMainActivity;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.EventBusHelper;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.closingtask.ClosingTaskAdapter;
|
||||
import com.adins.mss.coll.closingtask.ClosingTaskFragment;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskListResponse;
|
||||
import com.adins.mss.coll.closingtask.models.ClosingTaskRequest;
|
||||
import com.adins.mss.dao.Lookup;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.db.dataaccess.LookupDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.ReceiptVoucherDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.MssResponseType;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.services.MainServices;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 3/3/2016.
|
||||
*/
|
||||
public class ClosingTaskSender<Response extends MssResponseType> extends DataTask<Void, Void, Response> {
|
||||
private Activity context;
|
||||
private ProgressDialog progressDialog;
|
||||
private Class<Response> responseClazz;
|
||||
private String flag;
|
||||
private ClosingTaskListener listener;
|
||||
private boolean isClosingTaskSuccess = false;
|
||||
|
||||
public ClosingTaskSender(Activity context, ClosingTaskRequest request, Class<Response> responseClazz) {
|
||||
super(context, request);
|
||||
this.context = context;
|
||||
this.flag = request.getFlag();
|
||||
this.responseClazz = responseClazz;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
progressDialog = ProgressDialog.show(context, "", context.getString(R.string.please_wait), true, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Response onBackgroundResult(HttpConnectionResult serverResult) {
|
||||
Response resultBean = null;
|
||||
|
||||
if (serverResult != null) {
|
||||
log(serverResult.getResult());
|
||||
if (serverResult.isOK()) {
|
||||
try {
|
||||
resultBean = GsonHelper.fromJson(serverResult.getResult(), responseClazz);
|
||||
} catch (JsonParseException e) {
|
||||
errorMessage = context.getString(R.string.jsonParseFailed);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
errorMessage = context.getString(R.string.jsonParseFailed);
|
||||
}
|
||||
} else {
|
||||
errorMessage = context.getString(R.string.jsonParseFailed);
|
||||
}
|
||||
}
|
||||
|
||||
return resultBean;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Response response) {
|
||||
super.onPostExecute(response);
|
||||
boolean isShowDialog = false;
|
||||
|
||||
if (progressDialog != null) {
|
||||
if (progressDialog.isShowing()) {
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
progressDialog = null;
|
||||
}
|
||||
|
||||
final NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(context);
|
||||
|
||||
if (!GlobalData.isRequireRelogin()) {
|
||||
if (errorMessage != null) {
|
||||
dialogBuilder.withTitle(context.getString(R.string.error_capital))
|
||||
.withMessage(errorMessage);
|
||||
isShowDialog = true;
|
||||
} else if (response == null) {
|
||||
dialogBuilder.withTitle(context.getString(R.string.error_capital))
|
||||
.withMessage(context.getString(R.string.empty_data));
|
||||
isShowDialog = true;
|
||||
} else {
|
||||
if (response.getStatus().getCode() == 0) {
|
||||
if (flag.equals(ClosingTaskRequest.CLOSING_TASK)) {
|
||||
dialogBuilder.withTitle(context.getString(R.string.info_capital))
|
||||
.withMessage(response.getStatus().getMessage());
|
||||
|
||||
// delete all rv number
|
||||
ReceiptVoucherDataAccess.clean(context);
|
||||
LookupDataAccess.deleteByLovGroup(context, "RV NUMBER");
|
||||
|
||||
// List<TaskH> processedTask = new ArrayList<>();
|
||||
String uuidUser = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
TaskHDataAccess.updateStatusClosingTask(context , TaskHDataAccess.STATUS_SEND_DELETED, uuidUser);
|
||||
|
||||
// processedTask = TaskHDataAccess.getAllTaskByStatusNewAndDownload(context, uuidUser);
|
||||
// for (int x = 0; x < processedTask.size(); x++){
|
||||
// TaskHDataAccess.updateStatus(context, processedTask.get(x), TaskHDataAccess.STATUS_SEND_DELETED);
|
||||
// }
|
||||
|
||||
if (listener != null) {
|
||||
listener.onClosingTaskSuccess();
|
||||
}
|
||||
//EventBusHelper.post(response);
|
||||
|
||||
isShowDialog = true;
|
||||
isClosingTaskSuccess = true;
|
||||
EventBusHelper.post(MainServices.ACTION_GET_NOTIFICATION_THREAD);
|
||||
} else if (flag.equals(ClosingTaskRequest.CLOSING_TASK_LIST)) {
|
||||
ClosingTaskListResponse response1 = (ClosingTaskListResponse) response;
|
||||
|
||||
if (response1.getTaskList() == null || response1.getTaskList().size() == 0) {
|
||||
String message = response1.getStatus().getMessage();
|
||||
if (message == null || message.isEmpty()) {
|
||||
message = context.getString(R.string.msgNoSurvey);
|
||||
}
|
||||
|
||||
dialogBuilder.withTitle(context.getString(R.string.info_capital)).withMessage(message);
|
||||
isShowDialog = true;
|
||||
} else {
|
||||
ClosingTaskAdapter.getInstance().clear();
|
||||
ClosingTaskAdapter.getInstance().notifyDataSetChanged();
|
||||
ClosingTaskAdapter.getInstance().processData(response1.getTaskList());
|
||||
|
||||
if (!context.isFinishing()) {
|
||||
Fragment fragment = ClosingTaskFragment.newInstance();
|
||||
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
isShowDialog = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dialogBuilder.withTitle(context.getString(R.string.error_capital))
|
||||
.withMessage(response.getStatus().getMessage());
|
||||
isShowDialog = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag.equals(ClosingTaskRequest.CLOSING_TASK) || isShowDialog) {
|
||||
dialogBuilder.isCancelable(false);
|
||||
dialogBuilder.isCancelableOnTouchOutside(false);
|
||||
dialogBuilder.withButton1Text(context.getString(R.string.btnClose)).
|
||||
setButton1Click(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
dialogBuilder.dismiss();
|
||||
|
||||
if (isClosingTaskSuccess) {
|
||||
context.onBackPressed();
|
||||
}
|
||||
}
|
||||
});
|
||||
dialogBuilder.show();
|
||||
}
|
||||
//Fix Me
|
||||
// if (flag.equals(ClosingTaskRequest.CLOSING_TASK_LIST)) {
|
||||
// if (context instanceof MainMenuActivity) {
|
||||
// try {
|
||||
// Global.positionStack.remove(Global.positionStack.lastElement());
|
||||
// ((MainMenuActivity) context).mDrawerListLeft.
|
||||
// setItemChecked(Global.positionStack.lastElement(), true);
|
||||
// MainMenuActivity.tempPosition = Global.positionStack.lastElement();
|
||||
// } catch (Exception ex) {
|
||||
// // empty
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
public void setListener(ClosingTaskListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getUrl() {
|
||||
return GlobalData.getSharedGlobalData().getURL_CLOSING_TASK();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
package com.adins.mss.coll.closingtask.senders;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.util.Log;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.camerainapp.helper.Logger;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 3/3/2016.
|
||||
*/
|
||||
public abstract class DataTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result>
|
||||
{
|
||||
protected String errorMessage;
|
||||
private MssRequestType entity;
|
||||
private WeakReference<Context> context;
|
||||
|
||||
public DataTask(Context context, MssRequestType entity)
|
||||
{
|
||||
this.context = new WeakReference<Context>(context);
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
@SafeVarargs
|
||||
@Override
|
||||
protected final Result doInBackground(Params... params)
|
||||
{
|
||||
entity.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context.get(),
|
||||
GlobalData.getSharedGlobalData().isEncrypt(), GlobalData.getSharedGlobalData().isDecrypt());
|
||||
HttpConnectionResult serverResult;
|
||||
String url = getUrl();
|
||||
String json = GsonHelper.toJson(entity);
|
||||
|
||||
try
|
||||
{
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
e.printStackTrace();
|
||||
errorMessage = e.getMessage();
|
||||
return null;
|
||||
}
|
||||
|
||||
return onBackgroundResult(serverResult);
|
||||
}
|
||||
|
||||
protected void onDestroy()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void log(String message)
|
||||
{
|
||||
Logger.d(getClass().getSimpleName(), message);
|
||||
}
|
||||
|
||||
protected abstract Result onBackgroundResult(HttpConnectionResult serverResult);
|
||||
|
||||
protected abstract String getUrl();
|
||||
}
|
||||
|
|
@ -0,0 +1,441 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.ImageFormat;
|
||||
import android.location.LocationManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.Surface;
|
||||
import android.view.SurfaceHolder;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListAdapter;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.camera.Camera;
|
||||
import com.adins.mss.foundation.camera.ImageCallBack;
|
||||
import com.adins.mss.foundation.image.Utils;
|
||||
import com.adins.mss.foundation.location.LocationTrackingManager;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by winy.firdasari on 14/01/2015.
|
||||
*/
|
||||
public class CameraPreviewActivity extends Activity {
|
||||
|
||||
public static final String REQUESTED_FILE = "CameraPreviewActivity.REQUESTED_FILE";
|
||||
// ---
|
||||
private static final int BACK_MENU_ID = Menu.FIRST;
|
||||
private static final int OPTIONS_MENU_ID = Menu.FIRST + 1;
|
||||
private static final int CAPTURE_MENU_ID = Menu.FIRST + 2;
|
||||
private static final int AUTOFLASH_MENU_ID = Menu.FIRST + 3;
|
||||
private static final int FLASHON_MENU_ID = Menu.FIRST + 4;
|
||||
private static final int FLASHOFF_MENU_ID = Menu.FIRST + 5;
|
||||
Context context;
|
||||
boolean hasCamera;
|
||||
private Preview mPreview;
|
||||
private ListAdapter listPicSize;
|
||||
private int rotate = 0;
|
||||
private Activity activity;
|
||||
private String requestedFileName;
|
||||
private int actualWidht = 240;
|
||||
private int actualHeight = 320;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
// this is set manual for testing
|
||||
GlobalData.getSharedGlobalData().setUser(new User("Bong"));
|
||||
GlobalData.getSharedGlobalData().getUser().setLogin_id("Bong");
|
||||
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
|
||||
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
|
||||
LocationTrackingManager manager = new LocationTrackingManager(tm, lm, getApplicationContext());
|
||||
manager.setMinimalDistanceChangeLocation(100);
|
||||
manager.setMinimalTimeChangeLocation(5000);
|
||||
manager.applyLocationListener(getApplicationContext());
|
||||
Global.LTM = manager;
|
||||
|
||||
requestedFileName = getIntent().getStringExtra(REQUESTED_FILE);
|
||||
|
||||
// Hide the window title.
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
context = this;
|
||||
mPreview = new Preview(this);
|
||||
setContentView(mPreview);
|
||||
|
||||
hasCamera = Camera.checkCameraHardware(this);
|
||||
this.activity = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean getLCDSceenTipeLandscape() {
|
||||
boolean result = false;
|
||||
DisplayMetrics dm = new DisplayMetrics();
|
||||
getWindowManager().getDefaultDisplay().getMetrics(dm);
|
||||
String str_ScreenSize = "The Android Screen is: W="
|
||||
+ dm.widthPixels
|
||||
+ " x H="
|
||||
+ dm.heightPixels;
|
||||
|
||||
System.out.println(str_ScreenSize);
|
||||
if (dm.widthPixels > dm.heightPixels) {
|
||||
result = true;
|
||||
} else {
|
||||
result = false;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
super.onCreateOptionsMenu(menu);
|
||||
menu.add(0, BACK_MENU_ID, 0, "Back");
|
||||
menu.add(0, CAPTURE_MENU_ID, 0, "Capture");
|
||||
menu.add(0, AUTOFLASH_MENU_ID, 0, "Auto Flash");
|
||||
menu.add(0, FLASHON_MENU_ID, 0, "Flash On");
|
||||
menu.add(0, FLASHOFF_MENU_ID, 0, "Flash Off");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case BACK_MENU_ID:
|
||||
this.finish();
|
||||
return true;
|
||||
case OPTIONS_MENU_ID:
|
||||
this.showOptions();
|
||||
return true;
|
||||
case CAPTURE_MENU_ID:
|
||||
mPreview.mCamera.getPicture(new ImageCallBack() {
|
||||
@Override
|
||||
public void onPictureTaken(byte[] bytes, Object o) {
|
||||
File file = new File(requestedFileName);
|
||||
Utils.saveBitmapHeadertoPath(getApplicationContext(), Utils.byteToBitmap(bytes));
|
||||
Intent data = new Intent();
|
||||
data.putExtra(REQUESTED_FILE, file.getAbsolutePath());
|
||||
setResult(RESULT_OK);
|
||||
}
|
||||
|
||||
});
|
||||
return true;
|
||||
case AUTOFLASH_MENU_ID:
|
||||
mPreview.mCamera.setFlashAuto();
|
||||
return true;
|
||||
case FLASHON_MENU_ID:
|
||||
mPreview.mCamera.setFlashOn();
|
||||
return true;
|
||||
case FLASHOFF_MENU_ID:
|
||||
mPreview.mCamera.setFlashOff();
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void showOptions() {
|
||||
this.loadSupportedPicSize();
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle("Picture Size");
|
||||
builder.setSingleChoiceItems(listPicSize, -1, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int item) {
|
||||
String resolution = (String) listPicSize.getItem(item);
|
||||
String[] sz = resolution.split("x");
|
||||
int w = Integer.parseInt(sz[0]);
|
||||
int h = Integer.parseInt(sz[1]);
|
||||
|
||||
mPreview.setPictureSize(w, h);
|
||||
mPreview.mCamera.getCamera().stopPreview();
|
||||
android.hardware.Camera.Size previewSize = mPreview.getOptimalPreviewSize(w, h);
|
||||
mPreview.setPreviewSize(previewSize.width, previewSize.height);
|
||||
mPreview.mCamera.getCamera().startPreview();
|
||||
try {
|
||||
dialog.dismiss();
|
||||
dialog = null;
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
Toast.makeText(getApplicationContext(), getString(R.string.picture_resolution, resolution), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
builder.create().show();
|
||||
}
|
||||
|
||||
private void loadSupportedPicSize() {
|
||||
if (listPicSize == null) {
|
||||
List<String> listSize = mPreview.getSupportedPictureSize();
|
||||
listPicSize = new ArrayAdapter<String>(this, R.layout.picture_size_list, listSize);
|
||||
}
|
||||
}
|
||||
|
||||
public class Preview extends SurfaceView implements SurfaceHolder.Callback {
|
||||
private SurfaceHolder mHolder;
|
||||
private Camera mCamera;
|
||||
|
||||
public Preview(Context context) {
|
||||
super(context);
|
||||
mHolder = getHolder();
|
||||
mHolder.addCallback(this);
|
||||
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
|
||||
}
|
||||
|
||||
public List<String> getSupportedPictureSize() {
|
||||
List<android.hardware.Camera.Size> listSize = mCamera.getCamera().getParameters().getSupportedPictureSizes();
|
||||
List<String> listSizeStr = new ArrayList<>();
|
||||
|
||||
for (android.hardware.Camera.Size size : listSize) {
|
||||
listSizeStr.add(size.width + "x" + size.height);
|
||||
}
|
||||
|
||||
return listSizeStr;
|
||||
}
|
||||
|
||||
public void surfaceCreated(SurfaceHolder holder) {
|
||||
try {
|
||||
android.hardware.Camera cam = android.hardware.Camera.open();
|
||||
mCamera = new Camera(context, activity, cam, cam.getParameters());
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
|
||||
|
||||
// default to set picture size to lowest resolution
|
||||
List<android.hardware.Camera.Size> listSupportedSize = mCamera.getCamera().getParameters().getSupportedPictureSizes();
|
||||
if (listSupportedSize != null && !listSupportedSize.isEmpty()) {
|
||||
android.hardware.Camera.Size minimumSize = listSupportedSize.get(searchMostSuportedSizeFromParam(listSupportedSize));
|
||||
android.hardware.Camera.Parameters parameters = mCamera.getCamera().getParameters();
|
||||
parameters.setPictureSize(minimumSize.width, minimumSize.height);
|
||||
mCamera.getCamera().setParameters(parameters);
|
||||
}
|
||||
|
||||
try {
|
||||
mCamera.getCamera().setPreviewDisplay(holder);
|
||||
} catch (IOException exception) {
|
||||
mCamera.getCamera().release();
|
||||
mCamera = null;
|
||||
}
|
||||
}
|
||||
|
||||
public int searchMostSuportedSizeFromParam(List<android.hardware.Camera.Size> listSupportedSize) {
|
||||
android.hardware.Camera.Size suportedSize;
|
||||
int idx = 0;
|
||||
//search for match w x h
|
||||
for (int i = 0; i < listSupportedSize.size(); i++) {
|
||||
if (listSupportedSize.get(i).width == actualWidht && listSupportedSize.get(i).height == actualHeight) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//search for match h
|
||||
for (int i = 0; i < listSupportedSize.size(); i++) {
|
||||
if (listSupportedSize.get(i).height == actualHeight) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//search for match w
|
||||
for (int i = 0; i < listSupportedSize.size(); i++) {
|
||||
if (listSupportedSize.get(i).width == actualWidht) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return listSupportedSize.size() - 1;
|
||||
}
|
||||
|
||||
public void surfaceDestroyed(SurfaceHolder holder) {
|
||||
mCamera.getCamera().stopPreview();
|
||||
mCamera.getCamera().release();
|
||||
mCamera = null;
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
@TargetApi(Build.VERSION_CODES.FROYO)
|
||||
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
|
||||
android.hardware.Camera.Parameters parameters = mCamera.getCamera().getParameters();
|
||||
android.hardware.Camera.Size resultSize = null;
|
||||
|
||||
try {
|
||||
resultSize = getOptimalPreviewSize(w, h);
|
||||
if (resultSize != null) {
|
||||
w = resultSize.width;
|
||||
h = resultSize.height;
|
||||
}
|
||||
if (resultSize != null)
|
||||
parameters.setPreviewSize(w, h);
|
||||
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
resultSize = null;
|
||||
}
|
||||
|
||||
parameters.setPictureFormat(ImageFormat.JPEG);
|
||||
parameters.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_AUTO);
|
||||
parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_OFF);
|
||||
|
||||
if (resultSize != null) {
|
||||
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
|
||||
android.hardware.Camera.CameraInfo info =
|
||||
new android.hardware.Camera.CameraInfo();
|
||||
android.hardware.Camera.getCameraInfo(android.hardware.Camera.CameraInfo.CAMERA_FACING_BACK, info);
|
||||
int degrees = 0;
|
||||
switch (rotation) {
|
||||
case Surface.ROTATION_0:
|
||||
degrees = 0;
|
||||
break;
|
||||
case Surface.ROTATION_90:
|
||||
degrees = 90;
|
||||
break;
|
||||
case Surface.ROTATION_180:
|
||||
degrees = 180;
|
||||
break;
|
||||
case Surface.ROTATION_270:
|
||||
degrees = 270;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
int result;
|
||||
if (info.facing == android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT) {
|
||||
result = (info.orientation + degrees) % 360;
|
||||
result = (360 - result) % 360; // compensate the mirror
|
||||
} else { // back-facing
|
||||
result = (info.orientation - degrees + 360) % 360;
|
||||
}
|
||||
|
||||
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||
rotate = 90;
|
||||
}
|
||||
|
||||
//khusus untuk device dengan lcd landscape, ex: htc chacha
|
||||
if (result == 90 && getLCDSceenTipeLandscape()) {
|
||||
result = 0;
|
||||
} else if (result == 0 && !getLCDSceenTipeLandscape()) {
|
||||
result = 270;
|
||||
} else if (result == 180 && !getLCDSceenTipeLandscape()) {
|
||||
result = 90;
|
||||
} else if (result == 270 && getLCDSceenTipeLandscape()) {
|
||||
result = 180;
|
||||
}
|
||||
|
||||
mCamera.getCamera().setDisplayOrientation(result);
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
mCamera.getCamera().setParameters(parameters);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
parameters = mCamera.getCamera().getParameters();
|
||||
parameters.setPictureFormat(ImageFormat.JPEG);
|
||||
parameters.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_AUTO);
|
||||
parameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_AUTO);
|
||||
|
||||
try {
|
||||
mCamera.getCamera().setParameters(parameters);
|
||||
} catch (Exception e2) {
|
||||
parameters = mCamera.getCamera().getParameters();
|
||||
mCamera.getCamera().setParameters(parameters);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
mCamera.getCamera().startPreview();
|
||||
}
|
||||
|
||||
public void setPictureSize(int width, int height) {
|
||||
android.hardware.Camera.Parameters cp = mCamera.getCamera().getParameters();
|
||||
cp.setPictureSize(width, height);
|
||||
mCamera.getCamera().setParameters(cp);
|
||||
}
|
||||
|
||||
public android.hardware.Camera.Size getOptimalPreviewSize(int picWidth, int picHeight) {
|
||||
List<android.hardware.Camera.Size> sizes = mCamera.getCamera().getParameters().getSupportedPreviewSizes();
|
||||
final double ASPECT_TOLERANCE = 0.1;
|
||||
double targetRatio = (double) picWidth / picHeight;
|
||||
if (sizes == null)
|
||||
return null;
|
||||
|
||||
android.hardware.Camera.Size optimalSize = null;
|
||||
double minDiff = Double.MAX_VALUE;
|
||||
|
||||
int targetHeight = picHeight;
|
||||
|
||||
// Try to find an size match aspect ratio and size
|
||||
for (android.hardware.Camera.Size size : sizes) {
|
||||
double ratio = (double) size.width / size.height;
|
||||
if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE)
|
||||
continue;
|
||||
if (Math.abs(size.height - targetHeight) < minDiff) {
|
||||
optimalSize = size;
|
||||
minDiff = Math.abs(size.height - targetHeight);
|
||||
}
|
||||
}
|
||||
|
||||
// Cannot find the one match the aspect ratio, ignore the
|
||||
// requirement
|
||||
if (optimalSize == null) {
|
||||
minDiff = Double.MAX_VALUE;
|
||||
for (android.hardware.Camera.Size size : sizes) {
|
||||
if (Math.abs(size.height - targetHeight) < minDiff) {
|
||||
optimalSize = size;
|
||||
minDiff = Math.abs(size.height - targetHeight);
|
||||
}
|
||||
}
|
||||
}
|
||||
return optimalSize;
|
||||
}
|
||||
|
||||
public void setPreviewSize(int width, int height) {
|
||||
android.hardware.Camera.Parameters cp = mCamera.getCamera().getParameters();
|
||||
cp.setPreviewSize(width, height);
|
||||
mCamera.getCamera().setParameters(cp);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 3/4/2015.
|
||||
*/
|
||||
public class Dialogger {
|
||||
public static void error(Context context, Exception ex, String extraReason) {
|
||||
new AlertDialog.Builder(context)
|
||||
.setTitle("Error")
|
||||
.setMessage(ex.getMessage() + "\r\n" + extraReason)
|
||||
.setIcon(android.R.drawable.ic_dialog_alert)
|
||||
.create()
|
||||
.show();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.formatter.Formatter;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 3/5/2015.
|
||||
*/
|
||||
public class Generator {
|
||||
public static String generateBatchId(Context context) {
|
||||
|
||||
java.util.Date now = Tool.getSystemDateTime();
|
||||
String loginId= GlobalData.getSharedGlobalData().getUser().getLogin_id();
|
||||
int idxOfOpenBrace = loginId.indexOf('@');
|
||||
if(idxOfOpenBrace!=-1){
|
||||
loginId = loginId.substring(0,idxOfOpenBrace);
|
||||
}
|
||||
return
|
||||
loginId +
|
||||
Formatter.formatDate(now, Global.DATE_STR_FORMAT4)+
|
||||
PersistentCounter.getAndIncrement(context, "batchId");
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,121 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 12/03/15.
|
||||
* Used to convert a hash map to object, because Java is cursed with type erasure.
|
||||
*/
|
||||
public class LinkedHashMapToObject {
|
||||
/**
|
||||
* Convert a hash map into object.
|
||||
*
|
||||
* @param hashMap The hashmap to convert.
|
||||
* @param metadata Object metadata.
|
||||
* @param <T> Object type.
|
||||
* @return Object representing the hash map.
|
||||
* @throws InvocationTargetException
|
||||
* @throws IllegalAccessException
|
||||
* @throws NoSuchMethodException
|
||||
* @throws InstantiationException
|
||||
*/
|
||||
public static <T> T convert(LinkedHashMap hashMap, Class<T> metadata, boolean generateUuid) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException, InstantiationException {
|
||||
Constructor constructor = metadata.getConstructor();
|
||||
T instance = (T) constructor.newInstance();
|
||||
Iterator iterator = hashMap.entrySet().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator.next();
|
||||
String property = String.valueOf(entry.getKey());
|
||||
String value = String.valueOf(entry.getValue());
|
||||
Method[] methods = instance.getClass().getMethods();
|
||||
for (Method m : methods) {
|
||||
if (m.getName().toLowerCase().equals("set" + property.toLowerCase())) {
|
||||
Class<?> paramType = m.getParameterTypes()[0];
|
||||
|
||||
Object castedValue = resolveValue(value, paramType);
|
||||
|
||||
m.invoke(instance, castedValue);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (generateUuid) {
|
||||
Method uuidSetter = null;
|
||||
for (Method m : metadata.getMethods()) {
|
||||
if (m.getName().toLowerCase().equals("setuuid_" + metadata.getSimpleName().toLowerCase())) {
|
||||
uuidSetter = m;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (uuidSetter != null) {
|
||||
uuidSetter.invoke(instance, UUID.randomUUID().toString());
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve a value based on the type.
|
||||
*
|
||||
* @param value Value to resolve.
|
||||
* @param paramType Type of the value.
|
||||
* @return Casted value, or original value if the value type is not recognized.
|
||||
*/
|
||||
private static Object resolveValue(String value, Class<?> paramType) {
|
||||
|
||||
Object castedValue = value;
|
||||
try {
|
||||
if (paramType.getSimpleName().equals("Date")) {
|
||||
castedValue = GsonHelper.fromJson(value, Date.class);
|
||||
}
|
||||
if (paramType.getSimpleName().equals("Integer")) {
|
||||
castedValue = GsonHelper.fromJson(value, Integer.class);
|
||||
}
|
||||
if (paramType.getSimpleName().equals("Long")) {
|
||||
castedValue = GsonHelper.fromJson(value, Long.class);
|
||||
}
|
||||
if (paramType.getSimpleName().equals("String")) {
|
||||
castedValue = GsonHelper.fromJson(value, String.class);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return castedValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert hash map list into list of object that represents it.
|
||||
*
|
||||
* @param <T> Object type.
|
||||
* @param hashMapList List of hash map.
|
||||
* @param metadata Object metadata.
|
||||
* @param generateUuid
|
||||
* @return List of object that represent the list of hash map.
|
||||
* @throws InvocationTargetException
|
||||
* @throws IllegalAccessException
|
||||
* @throws NoSuchMethodException
|
||||
* @throws InstantiationException
|
||||
*/
|
||||
public static <T> List<T> convert(List<LinkedHashMap> hashMapList, Class<T> metadata, boolean generateUuid) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException, InstantiationException {
|
||||
|
||||
List<T> converted = new ArrayList<T>();
|
||||
for (LinkedHashMap hashMap : hashMapList) {
|
||||
T dummyItem = convert(hashMap, metadata, generateUuid);
|
||||
converted.add(dummyItem);
|
||||
}
|
||||
return converted;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 3/5/2015.
|
||||
*/
|
||||
public class PersistentCounter {
|
||||
public static int getAndIncrement(Context context, String name) {
|
||||
File dir = context.getDir("persistentcounter", Context.MODE_PRIVATE);
|
||||
File file = new File(dir, name);
|
||||
|
||||
int base = 0;
|
||||
if (file.exists()) {
|
||||
try( BufferedReader reader = new BufferedReader(new FileReader(file))) {
|
||||
String line = reader.readLine();
|
||||
base = Integer.parseInt(line);
|
||||
} catch (Exception ex) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))){
|
||||
|
||||
writer.write(String.valueOf(base + 1));
|
||||
writer.flush();
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return base;
|
||||
}
|
||||
|
||||
public static int get(Context context, String name) {
|
||||
File dir = context.getDir("persistentcounter", Context.MODE_PRIVATE);
|
||||
File file = new File(dir, name);
|
||||
|
||||
int base = 0;
|
||||
if (file.exists()) {
|
||||
|
||||
try(BufferedReader reader = new BufferedReader(new FileReader(file))){
|
||||
String line = reader.readLine();
|
||||
base = Integer.parseInt(line);
|
||||
} catch (Exception ex) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return base;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import android.os.AsyncTask;
|
||||
|
||||
public class SecondWorker extends AsyncTask<Object,Void,Object> {
|
||||
|
||||
private SecondWorkListener listener;
|
||||
|
||||
public SecondWorker(SecondWorkListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Object o) {
|
||||
super.onPostExecute(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object doInBackground(Object... objects) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public interface SecondWorkListener {
|
||||
void onPreExecute();
|
||||
Object doWork();
|
||||
void onPostExecute(Object object);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 3/4/2015.
|
||||
*/
|
||||
public class Toaster {
|
||||
|
||||
public static void error(Context context, Exception ex, String extraReason) {
|
||||
Toast.makeText(context, context.getString(R.string.error_occure2, ex.getMessage(), extraReason), Toast.LENGTH_LONG)
|
||||
.show();
|
||||
}
|
||||
|
||||
public static void warning(Context context, String reason) {
|
||||
Toast.makeText(context, context.getString(R.string.error_occure1,reason), Toast.LENGTH_LONG)
|
||||
.show();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.adins.mss.coll.commons;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
import com.adins.mss.base.commons.ViewImpl;
|
||||
import com.adins.mss.coll.interfaces.callback.DepositReportCallback;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by kusnendi.muhamad on 31/07/2017.
|
||||
*/
|
||||
|
||||
public class ViewManager extends ViewImpl implements DepositReportCallback {
|
||||
public Activity activity;
|
||||
|
||||
public ViewManager(Activity activity) {
|
||||
super(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void OnFillHeader(int totalTask, int paidTask, int failTask, int visitTask) {}
|
||||
|
||||
@Override
|
||||
public void OnFillDetail(HashMap<DepositReportH, List<DepositReportD>> packedListOfBatch) {}
|
||||
|
||||
@Override
|
||||
public void OnLoadReconcileData(List<TaskD> reconcileReport, int totalNeedPrint) {}
|
||||
|
||||
@Override
|
||||
public void OnError(boolean value) {}
|
||||
|
||||
@Override
|
||||
public void OnFinish(boolean value) {}
|
||||
}
|
|
@ -0,0 +1,538 @@
|
|||
package com.adins.mss.coll.dashboardcollection;
|
||||
|
||||
import android.app.Application;
|
||||
import android.database.Cursor;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
import com.adins.mss.coll.models.ReportSummaryResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.db.DaoOpenHelper;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonParseException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.greenrobot.dao.database.Database;
|
||||
|
||||
public class DashboardCollDataSource implements IDashboardCollDataSource {
|
||||
|
||||
private Application context;
|
||||
|
||||
private String uuidUser;
|
||||
private Database database;
|
||||
private Handler handler;
|
||||
|
||||
public DashboardCollDataSource(Application application) {
|
||||
context = application;
|
||||
handler = new Handler(Looper.getMainLooper());
|
||||
database = DaoOpenHelper.getDb(context);
|
||||
uuidUser = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
}
|
||||
|
||||
private void postToUIThread(Runnable runnable){
|
||||
handler.post(runnable);
|
||||
}
|
||||
|
||||
public int getTotalOutstandingTask() {
|
||||
int total = 0;
|
||||
String rawQuery;
|
||||
if(!Global.PLAN_TASK_ENABLED){
|
||||
rawQuery = "SELECT COUNT(STATUS) FROM TR_TASK_H " +
|
||||
"WHERE UUID_USER = ? "+
|
||||
"AND ( STATUS = 'New' OR STATUS = 'Download')";
|
||||
}
|
||||
else {
|
||||
rawQuery = "SELECT count(taskh.STATUS) FROM TR_TASK_H taskh " +
|
||||
" inner join tr_plan_task planTask on planTask.UUID_TASK_H = taskh.UUID_TASK_H " +
|
||||
" WHERE taskh.UUID_USER = ? " +
|
||||
" AND taskh.STATUS in ('New','Download') " +
|
||||
" AND planTask.PLAN_STATUS in ('Started','Planned')";
|
||||
|
||||
}
|
||||
|
||||
Cursor cursor = database.rawQuery(rawQuery,new String[]{uuidUser});
|
||||
if(cursor == null)
|
||||
return total;
|
||||
|
||||
if(cursor.moveToFirst()){
|
||||
total = cursor.getInt(0);
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
public double getOutstandingAmount() {
|
||||
double total = 0;
|
||||
String rawQuery;
|
||||
if(!Global.PLAN_TASK_ENABLED){
|
||||
rawQuery = "SELECT sum(tr_task_d.TEXT_ANSWER) FROM (" +
|
||||
" select *,max(assignment_date) from tr_task_h" +
|
||||
" group by appl_no" +
|
||||
") TR_TASK_H " +
|
||||
" INNER JOIN TR_TASK_D ON TR_TASK_H.UUID_TASK_H = TR_TASK_D.UUID_TASK_H " +
|
||||
" INNER JOIN MS_QUESTIONSET ON MS_QUESTIONSET.QUESTION_ID = TR_TASK_D.QUESTION_ID " +
|
||||
" WHERE " +
|
||||
" TR_TASK_H.UUID_USER = ? "+
|
||||
" AND tr_task_h.FORM_VERSION = ms_questionset.FORM_VERSION" +
|
||||
" AND tr_task_h.STATUS in ('New','Download')" +
|
||||
" AND MS_QUESTIONSET.TAG = 'TOTAL TAGIHAN' ";
|
||||
}
|
||||
else {
|
||||
rawQuery = "SELECT sum(tr_task_d.TEXT_ANSWER) FROM (" +
|
||||
" select *,max(assignment_date) from tr_task_h" +
|
||||
" group by appl_no" +
|
||||
") TR_TASK_H " +
|
||||
" INNER JOIN TR_TASK_D ON TR_TASK_H.UUID_TASK_H = TR_TASK_D.UUID_TASK_H " +
|
||||
" INNER JOIN TR_PLAN_TASK ON TR_TASK_H.UUID_TASK_H = TR_PLAN_TASK.UUID_TASK_H " +
|
||||
" INNER JOIN MS_QUESTIONSET ON MS_QUESTIONSET.QUESTION_ID = TR_TASK_D.QUESTION_ID " +
|
||||
" WHERE " +
|
||||
" TR_TASK_H.UUID_USER = ? "+
|
||||
" AND tr_task_h.FORM_VERSION = ms_questionset.FORM_VERSION" +
|
||||
" AND tr_task_h.STATUS in ('New','Download')" +
|
||||
" AND MS_QUESTIONSET.TAG = 'TOTAL TAGIHAN' " +
|
||||
" AND TR_PLAN_TASK.PLAN_STATUS in ('Started','Planned')";
|
||||
}
|
||||
Cursor cursor = database.rawQuery(rawQuery,new String[]{uuidUser});
|
||||
if(cursor == null)
|
||||
return total;
|
||||
|
||||
if(cursor.moveToFirst()){
|
||||
total = cursor.getDouble(0);
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
public double getTotalAmountCollected() {
|
||||
double totalCollected = 0;
|
||||
String rawQuery = "SELECT sum(tr_task_d.TEXT_ANSWER) FROM (" +
|
||||
" select *,max(assignment_date) from tr_task_h " +
|
||||
" group by appl_no" +
|
||||
" ) TR_TASK_H " +
|
||||
" INNER JOIN TR_TASK_D ON TR_TASK_H.UUID_TASK_H = TR_TASK_D.UUID_TASK_H " +
|
||||
" INNER JOIN MS_QUESTIONSET ON MS_QUESTIONSET.QUESTION_ID = TR_TASK_D.QUESTION_ID " +
|
||||
" WHERE " +
|
||||
" TR_TASK_H.UUID_USER = ? "+
|
||||
" and TR_TASK_H.STATUS = 'Sent' " +
|
||||
" and tr_task_h.FORM_VERSION = ms_questionset.FORM_VERSION " +
|
||||
" AND MS_QUESTIONSET.TAG = 'TOTAL BAYAR' ";
|
||||
Cursor cursor = database.rawQuery(rawQuery,new String[]{uuidUser});
|
||||
if(cursor == null)
|
||||
return totalCollected;
|
||||
|
||||
if(cursor.moveToFirst()){
|
||||
totalCollected = cursor.getDouble(0);
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return totalCollected;
|
||||
}
|
||||
|
||||
public double getTotalAmountToCollect() {
|
||||
double collectedAmount = getTotalAmountCollected();
|
||||
double toCollectAmount = 0;
|
||||
|
||||
double total = 0;
|
||||
String rawQuery = "SELECT sum(tr_task_d.TEXT_ANSWER) FROM (" +
|
||||
" select *,max(assignment_date) from tr_task_h" +
|
||||
" group by appl_no" +
|
||||
") TR_TASK_H " +
|
||||
" INNER JOIN TR_TASK_D ON TR_TASK_H.UUID_TASK_H = TR_TASK_D.UUID_TASK_H " +
|
||||
" INNER JOIN MS_QUESTIONSET ON MS_QUESTIONSET.QUESTION_ID = TR_TASK_D.QUESTION_ID " +
|
||||
" WHERE " +
|
||||
" TR_TASK_H.UUID_USER = ? "+
|
||||
" AND tr_task_h.FORM_VERSION = ms_questionset.FORM_VERSION" +
|
||||
" AND MS_QUESTIONSET.TAG = 'TOTAL TAGIHAN' ";
|
||||
Cursor cursor = database.rawQuery(rawQuery,new String[]{uuidUser});
|
||||
if(cursor == null)
|
||||
return toCollectAmount;
|
||||
|
||||
if(cursor.moveToFirst()){
|
||||
total = cursor.getDouble(0);
|
||||
toCollectAmount = total - collectedAmount;
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return toCollectAmount;
|
||||
}
|
||||
|
||||
public List<CollResultDetail> getTaskCollectedDetails(){
|
||||
List<CollResultDetail> results = new ArrayList<>();
|
||||
|
||||
String rawQuery = "select tr_task_h.APPL_NO agrNo,tr_task_h.CUSTOMER_NAME custName,tr_task_d.TEXT_ANSWER " +
|
||||
"from (" +
|
||||
" select *,max(assignment_date) from tr_task_h" +
|
||||
" group by appl_no" +
|
||||
") tr_task_h " +
|
||||
"inner join tr_task_d on tr_task_h.UUID_TASK_H = tr_task_d.UUID_TASK_H " +
|
||||
"inner join ms_questionset on ms_questionset.QUESTION_ID = tr_task_d.QUESTION_ID " +
|
||||
"where tr_task_h.STATUS = 'Sent' " +
|
||||
" and TR_TASK_H.UUID_USER = ? "+
|
||||
" and tr_task_h.FORM_VERSION = ms_questionset.FORM_VERSION " +
|
||||
" and ms_questionset.TAG = 'TOTAL BAYAR' ";
|
||||
Cursor cursor = database.rawQuery(rawQuery,new String[]{uuidUser});
|
||||
if(cursor == null)
|
||||
return results;
|
||||
|
||||
while (cursor.moveToNext() && cursor.getCount() > 0){
|
||||
String agrNo = cursor.getString(0);
|
||||
String custName = cursor.getString(1);
|
||||
String result = cursor.getString(2);
|
||||
results.add(new CollResultDetail(CollResultDetail.COLLECTED_TYPE,agrNo,custName,result));
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
public List<CollResultDetail> getTaskPTPDetails(){
|
||||
List<CollResultDetail> results = new ArrayList<>();
|
||||
|
||||
String rawQuery = "select tr_task_h.APPL_NO,tr_task_h.CUSTOMER_NAME,tr_task_d.TEXT_ANSWER " +
|
||||
"from (" +
|
||||
" select *,max(assignment_date) from tr_task_h" +
|
||||
" group by appl_no" +
|
||||
") tr_task_h " +
|
||||
"inner join tr_task_d on tr_task_h.UUID_TASK_H = tr_task_d.UUID_TASK_H " +
|
||||
"inner join ms_questionset on ms_questionset.QUESTION_ID = tr_task_d.QUESTION_ID " +
|
||||
"where tr_task_h.STATUS = 'Sent' " +
|
||||
" and TR_TASK_H.UUID_USER = ? "+
|
||||
" and tr_task_h.FORM_VERSION = ms_questionset.FORM_VERSION " +
|
||||
" and ms_questionset.TAG = 'PTP DATE' ";
|
||||
Cursor cursor = database.rawQuery(rawQuery,new String[]{uuidUser});
|
||||
if(cursor == null)
|
||||
return results;
|
||||
|
||||
while (cursor.moveToNext() && cursor.getCount() > 0){
|
||||
String agrNo = cursor.getString(0);
|
||||
String custName = cursor.getString(1);
|
||||
String result = cursor.getString(2);
|
||||
results.add(new CollResultDetail(CollResultDetail.PTP_TYPE,agrNo,custName,result));
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
public List<CollResultDetail> getTaskFailedDetails(){
|
||||
List<CollResultDetail> results = new ArrayList<>();
|
||||
|
||||
String rawQuery = "select th.appl_no,th.customer_name,lov.value " +
|
||||
"from (" +
|
||||
" select *,max(assignment_date) from tr_task_h" +
|
||||
" group by appl_no" +
|
||||
") th " +
|
||||
"inner join tr_task_d td on th.UUID_TASK_H = td.UUID_TASK_H " +
|
||||
"inner join ms_questionset qs on qs.QUESTION_ID = td.QUESTION_ID " +
|
||||
"inner join ms_lookup lov on lov.code = td.lov " +
|
||||
"where th.STATUS = 'Sent'" +
|
||||
" and th.UUID_USER = ? "+
|
||||
" and th.FORM_VERSION = qs.FORM_VERSION " +
|
||||
" and qs.TAG = 'COLLECTION RESULT' " +
|
||||
" and td.lov not in ('PAID','PTP','CRSIT01','CRSIT001','CRSIT002') ";
|
||||
Cursor cursor = database.rawQuery(rawQuery,new String[]{uuidUser});
|
||||
if(cursor == null)
|
||||
return results;
|
||||
|
||||
while (cursor.moveToNext() && cursor.getCount() > 0){
|
||||
String agrNo = cursor.getString(0);
|
||||
String custName = cursor.getString(1);
|
||||
String result = cursor.getString(2);
|
||||
results.add(new CollResultDetail(CollResultDetail.FAILED_TYPE,agrNo,custName,result));
|
||||
}
|
||||
cursor.close();
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTotalOutstandingTaskAsync(final DashboardResultListener<Integer> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(listener == null)
|
||||
return;
|
||||
|
||||
final int result = getTotalOutstandingTask();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getOutstandingAmountAsync(final DashboardResultListener<Double> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(listener == null)
|
||||
return;
|
||||
|
||||
final double result = getOutstandingAmount();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTotalAmountCollectedAsync(final DashboardResultListener<Double> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(listener == null)
|
||||
return;
|
||||
|
||||
final double result = getTotalAmountCollected();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTotalAmountToCollectAsync(final DashboardResultListener<Double> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(listener == null)
|
||||
return;
|
||||
|
||||
final double result = getTotalAmountToCollect();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTaskCollectedDetailsAsync(final DashboardResultListener<List<CollResultDetail>> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(listener == null)
|
||||
return;
|
||||
|
||||
final List<CollResultDetail> result = getTaskCollectedDetails();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTaskPTPDetailsAsync(final DashboardResultListener<List<CollResultDetail>> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(listener == null)
|
||||
return;
|
||||
|
||||
final List<CollResultDetail> result = getTaskPTPDetails();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getTaskFailedDetailsAsync(final DashboardResultListener<List<CollResultDetail>> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if(listener == null)
|
||||
return;
|
||||
|
||||
final List<CollResultDetail> result = getTaskFailedDetails();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestDashboardData(final DashboardResultListener<ReportSummaryResponse> listener) {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
Gson gson = new Gson();
|
||||
MssRequestType request = new MssRequestType();
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String data = gson.toJson(request);
|
||||
|
||||
//Firebase Performance Trace HTTP Request
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric(GlobalData.getSharedGlobalData().getURL_GET_REPORTSUMMARY(), FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, data);
|
||||
|
||||
try {
|
||||
final HttpConnectionResult result = httpConn.requestToServer(
|
||||
GlobalData.getSharedGlobalData().getURL_GET_REPORTSUMMARY(),
|
||||
data, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, result);
|
||||
|
||||
if(result.getStatusCode() != 200){
|
||||
handler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(new Exception(result.getResult()));
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
final ReportSummaryResponse response = GsonHelper.fromJson(result.getResult(),ReportSummaryResponse.class);
|
||||
if(response.getStatus().getCode() != 0){
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(new Exception(response.getStatus().getMessage()));
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
//success
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onResult(response);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (final Exception e){
|
||||
e.printStackTrace();
|
||||
postToUIThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.adins.mss.coll.dashboardcollection;
|
||||
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
import com.adins.mss.coll.dashboardcollection.model.DashboardData;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface DashboardCollectionContract {
|
||||
interface View{
|
||||
void onDashboardDataReceived(DashboardData dashboardData);
|
||||
void showErrorInfo(String errorMessage);
|
||||
}
|
||||
|
||||
interface Presenter{
|
||||
void requestDashboardData();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package com.adins.mss.coll.dashboardcollection;
|
||||
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
import com.adins.mss.coll.models.ReportSummaryResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IDashboardCollDataSource {
|
||||
//sync mode
|
||||
int getTotalOutstandingTask();
|
||||
double getOutstandingAmount();
|
||||
double getTotalAmountCollected();
|
||||
double getTotalAmountToCollect();
|
||||
List<CollResultDetail> getTaskCollectedDetails();
|
||||
List<CollResultDetail> getTaskPTPDetails();
|
||||
List<CollResultDetail> getTaskFailedDetails();
|
||||
|
||||
//async mode
|
||||
void getTotalOutstandingTaskAsync(DashboardResultListener<Integer> listener);
|
||||
void getOutstandingAmountAsync(DashboardResultListener<Double> listener);
|
||||
void getTotalAmountCollectedAsync(DashboardResultListener<Double> listener);
|
||||
void getTotalAmountToCollectAsync(DashboardResultListener<Double> listener);
|
||||
void getTaskCollectedDetailsAsync(DashboardResultListener<List<CollResultDetail>> listener);
|
||||
void getTaskPTPDetailsAsync(DashboardResultListener<List<CollResultDetail>> listener);
|
||||
void getTaskFailedDetailsAsync(DashboardResultListener<List<CollResultDetail>> listener);
|
||||
|
||||
//remote data
|
||||
void requestDashboardData(DashboardResultListener<ReportSummaryResponse> listener);
|
||||
|
||||
interface DashboardResultListener<T>{
|
||||
void onResult(T result);
|
||||
void onError(Exception e);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
package com.adins.mss.coll.dashboardcollection.model;
|
||||
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class CollResultDetail {
|
||||
|
||||
public static final int PTP_TYPE = 1;
|
||||
public static final int COLLECTED_TYPE = 0;
|
||||
public static final int FAILED_TYPE = 2;
|
||||
|
||||
private int type;
|
||||
private String agrNo;
|
||||
private String custName;
|
||||
private String result;
|
||||
|
||||
private SimpleDateFormat dateFormatter;
|
||||
private SimpleDateFormat dateParser;
|
||||
|
||||
public CollResultDetail(int type,String agrNo, String custName, String result) {
|
||||
dateParser = new SimpleDateFormat(Global.DATE_STR_FORMAT1);
|
||||
dateFormatter = new SimpleDateFormat(Global.DATE_STR_FORMAT3);
|
||||
|
||||
this.type = type;
|
||||
this.agrNo = agrNo;
|
||||
this.custName = custName;
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
public CollResultDetail() {
|
||||
dateParser = new SimpleDateFormat(Global.DATE_STR_FORMAT1);
|
||||
dateFormatter = new SimpleDateFormat(Global.DATE_STR_FORMAT3);
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getAgrNo() {
|
||||
return agrNo;
|
||||
}
|
||||
|
||||
public void setAgrNo(String agrNo) {
|
||||
this.agrNo = agrNo;
|
||||
}
|
||||
|
||||
public String getCustName() {
|
||||
return custName;
|
||||
}
|
||||
|
||||
public void setCustName(String custName) {
|
||||
this.custName = custName;
|
||||
}
|
||||
|
||||
public String getResult() {
|
||||
if(type == COLLECTED_TYPE){
|
||||
try{
|
||||
double doubleVal = Double.valueOf(result);
|
||||
return Tool.formatToCurrency(doubleVal);
|
||||
} catch (NumberFormatException e){
|
||||
e.printStackTrace();
|
||||
FireCrash.log(e);
|
||||
return "0";
|
||||
}
|
||||
}
|
||||
else if(type == PTP_TYPE){
|
||||
Date date = null;
|
||||
try {
|
||||
date = dateParser.parse(result);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
FireCrash.log(e);
|
||||
return "Invalid Date";
|
||||
}
|
||||
|
||||
return dateFormatter.format(date);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setResult(String result) {
|
||||
this.result = result;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package com.adins.mss.coll.dashboardcollection.model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DashboardData {
|
||||
private double targetAmount,collectedAmount;
|
||||
private double outstandingAmount;
|
||||
private int outstandingNum;
|
||||
private List<CollResultDetail> collectDetails;
|
||||
private List<CollResultDetail> ptpDetails;
|
||||
private List<CollResultDetail> failedDetails;
|
||||
|
||||
public double getTargetAmount() {
|
||||
return targetAmount;
|
||||
}
|
||||
|
||||
public void setTargetAmount(double targetAmount) {
|
||||
this.targetAmount = targetAmount;
|
||||
}
|
||||
|
||||
public double getCollectedAmount() {
|
||||
return collectedAmount;
|
||||
}
|
||||
|
||||
public void setCollectedAmount(double collectedAmount) {
|
||||
this.collectedAmount = collectedAmount;
|
||||
}
|
||||
|
||||
public double getOutstandingAmount() {
|
||||
return outstandingAmount;
|
||||
}
|
||||
|
||||
public void setOutstandingAmount(double outstandingAmount) {
|
||||
this.outstandingAmount = outstandingAmount;
|
||||
}
|
||||
|
||||
public int getOutstandingNum() {
|
||||
return outstandingNum;
|
||||
}
|
||||
|
||||
public void setOutstandingNum(int outstandingNum) {
|
||||
this.outstandingNum = outstandingNum;
|
||||
}
|
||||
|
||||
public List<CollResultDetail> getCollectDetails() {
|
||||
return collectDetails;
|
||||
}
|
||||
|
||||
public void setCollectDetails(List<CollResultDetail> collectDetails) {
|
||||
this.collectDetails = collectDetails;
|
||||
}
|
||||
|
||||
public List<CollResultDetail> getPtpDetails() {
|
||||
return ptpDetails;
|
||||
}
|
||||
|
||||
public void setPtpDetails(List<CollResultDetail> ptpDetails) {
|
||||
this.ptpDetails = ptpDetails;
|
||||
}
|
||||
|
||||
public List<CollResultDetail> getFailedDetails() {
|
||||
return failedDetails;
|
||||
}
|
||||
|
||||
public void setFailedDetails(List<CollResultDetail> failedDetails) {
|
||||
this.failedDetails = failedDetails;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
package com.adins.mss.coll.dashboardcollection.presenter;
|
||||
|
||||
import com.adins.mss.coll.dashboardcollection.DashboardCollectionContract;
|
||||
import com.adins.mss.coll.dashboardcollection.IDashboardCollDataSource;
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
import com.adins.mss.coll.dashboardcollection.model.DashboardData;
|
||||
import com.adins.mss.coll.models.ReportSummaryResponse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DashboardCollPresenter implements DashboardCollectionContract.Presenter {
|
||||
|
||||
private DashboardCollectionContract.View view;
|
||||
private IDashboardCollDataSource dataSource;
|
||||
private DashboardData dashboardData;
|
||||
|
||||
public DashboardCollPresenter(DashboardCollectionContract.View view, IDashboardCollDataSource dataSource) {
|
||||
this.view = view;
|
||||
this.dataSource = dataSource;
|
||||
}
|
||||
|
||||
private void getOutstandingTask() {
|
||||
dataSource.getTotalOutstandingTaskAsync(new IDashboardCollDataSource.DashboardResultListener<Integer>() {
|
||||
@Override
|
||||
public void onResult(Integer result) {
|
||||
if(dashboardData == null)
|
||||
dashboardData = new DashboardData();
|
||||
dashboardData.setOutstandingNum(result);
|
||||
getOutstandingAmount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Exception e) {
|
||||
//view error
|
||||
view.showErrorInfo(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void getOutstandingAmount() {
|
||||
dataSource.getOutstandingAmountAsync(new IDashboardCollDataSource.DashboardResultListener<Double>() {
|
||||
@Override
|
||||
public void onResult(Double result) {
|
||||
dashboardData.setOutstandingAmount(result);
|
||||
view.onDashboardDataReceived(dashboardData);//call back to view
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Exception e) {
|
||||
view.showErrorInfo(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestDashboardData() {
|
||||
dataSource.requestDashboardData(new IDashboardCollDataSource.DashboardResultListener<ReportSummaryResponse>() {
|
||||
@Override
|
||||
public void onResult(ReportSummaryResponse result) {
|
||||
|
||||
if(result == null){
|
||||
getOutstandingTask();
|
||||
return;
|
||||
}
|
||||
|
||||
List<ReportSummaryResponse> collResults = result.getList_task();
|
||||
dashboardData = new DashboardData();
|
||||
dashboardData.setCollectedAmount(result.getTotal_received());
|
||||
dashboardData.setTargetAmount(result.getTotal_to_be_paid());
|
||||
List<CollResultDetail> collectedDetails = new ArrayList<>();
|
||||
List<CollResultDetail> failedDetails = new ArrayList<>();
|
||||
List<CollResultDetail> ptpDetails = new ArrayList<>();
|
||||
|
||||
if(collResults == null || collResults.size() == 0){
|
||||
dashboardData.setCollectDetails(collectedDetails);
|
||||
dashboardData.setPtpDetails(ptpDetails);
|
||||
dashboardData.setFailedDetails(failedDetails);
|
||||
getOutstandingTask();
|
||||
return;
|
||||
}
|
||||
|
||||
for (ReportSummaryResponse collResult: collResults){
|
||||
if(collResult == null)
|
||||
continue;
|
||||
|
||||
switch (collResult.getStatusTask()){
|
||||
case "Success":
|
||||
CollResultDetail collectedDetail = new CollResultDetail(CollResultDetail.COLLECTED_TYPE
|
||||
,collResult.getAgreementNo()
|
||||
,collResult.getCustomerName(),collResult.getAmountPaid());
|
||||
collectedDetails.add(collectedDetail);
|
||||
break;
|
||||
case "Promise to Pay":
|
||||
CollResultDetail ptpDetail = new CollResultDetail(CollResultDetail.PTP_TYPE
|
||||
,collResult.getAgreementNo()
|
||||
,collResult.getCustomerName(),collResult.getPtp());
|
||||
ptpDetails.add(ptpDetail);
|
||||
break;
|
||||
case "Failed":
|
||||
CollResultDetail failedDetail = new CollResultDetail(CollResultDetail.FAILED_TYPE
|
||||
,collResult.getAgreementNo()
|
||||
,collResult.getCustomerName(),collResult.getNote());
|
||||
failedDetails.add(failedDetail);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
dashboardData.setCollectDetails(collectedDetails);
|
||||
dashboardData.setPtpDetails(ptpDetails);
|
||||
dashboardData.setFailedDetails(failedDetails);
|
||||
|
||||
getOutstandingTask();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Exception e) {
|
||||
//view->show dialog error
|
||||
view.showErrorInfo(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package com.adins.mss.coll.dashboardcollection.view;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CollResultPagerAdapter extends FragmentStatePagerAdapter {
|
||||
|
||||
private int tabCount;
|
||||
List<PagerDataChangeListener> pagerDataListener = new ArrayList<>();
|
||||
|
||||
public interface PagerDataChangeListener{
|
||||
void onPagerDataChange(int idx,List<CollResultDetail> data);
|
||||
}
|
||||
|
||||
public CollResultPagerAdapter(FragmentManager fm, int tabCount) {
|
||||
super(fm);
|
||||
this.tabCount = tabCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int i) {
|
||||
DashboardCollResultDetail fragment = null;
|
||||
if(pagerDataListener.size() + 1 > tabCount){
|
||||
fragment = (DashboardCollResultDetail) pagerDataListener.get(i);
|
||||
}
|
||||
else {
|
||||
fragment = new DashboardCollResultDetail();
|
||||
pagerDataListener.add(fragment);
|
||||
}
|
||||
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return tabCount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemPosition(@NonNull Object object) {
|
||||
return POSITION_NONE;
|
||||
}
|
||||
|
||||
public void setDataToPage(int index, List<CollResultDetail> data){
|
||||
if(index >= pagerDataListener.size()){
|
||||
return;
|
||||
}
|
||||
|
||||
pagerDataListener.get(index).onPagerDataChange(index,data);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
package com.adins.mss.coll.dashboardcollection.view;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DashCollResultItemAdapter extends RecyclerView.Adapter<DashCollResultItemAdapter.DashboardCollResultVH> {
|
||||
|
||||
private Context context;
|
||||
private List<CollResultDetail> dataset;
|
||||
|
||||
public DashCollResultItemAdapter(Context context,List<CollResultDetail> dataset) {
|
||||
this.dataset = dataset;
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public DashboardCollResultVH onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
|
||||
View view = LayoutInflater.from(context).inflate(R.layout.dash_coll_result_item,viewGroup,false);
|
||||
DashboardCollResultVH viewHolder = new DashboardCollResultVH(view);
|
||||
return viewHolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull DashboardCollResultVH dashboardCollResultVH, int i) {
|
||||
dashboardCollResultVH.bind(dataset.get(i));
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return dataset.size();
|
||||
}
|
||||
|
||||
public void notifyDataChange(List<CollResultDetail> dataset){
|
||||
this.dataset = dataset;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public class DashboardCollResultVH extends RecyclerView.ViewHolder {
|
||||
|
||||
private TextView agrNoTv;
|
||||
private TextView custNoTv;
|
||||
private TextView resultTv;
|
||||
|
||||
public DashboardCollResultVH(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
agrNoTv = itemView.findViewById(R.id.dashResultAgrNo);
|
||||
custNoTv = itemView.findViewById(R.id.dashResultCustNo);
|
||||
resultTv = itemView.findViewById(R.id.dashResult);
|
||||
}
|
||||
|
||||
public void bind(CollResultDetail item){
|
||||
if(item == null)
|
||||
return;
|
||||
agrNoTv.setText(item.getAgrNo());
|
||||
custNoTv.setText(item.getCustName());
|
||||
resultTv.setText(item.getResult());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
package com.adins.mss.coll.dashboardcollection.view;
|
||||
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
public class DashboardCollResultDetail extends Fragment implements CollResultPagerAdapter.PagerDataChangeListener {
|
||||
|
||||
RecyclerView collResultList;
|
||||
private DashCollResultItemAdapter adapter;
|
||||
private TextView resultHeaderTitle;
|
||||
private ConstraintLayout titleHeader;
|
||||
|
||||
public DashboardCollResultDetail() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_dashboard_coll_result_detail, container, false);
|
||||
collResultList = view.findViewById(R.id.dashCollResultList);
|
||||
titleHeader = view.findViewById(R.id.dashCollResultListHeader);
|
||||
titleHeader.setVisibility(View.GONE);
|
||||
resultHeaderTitle = view.findViewById(R.id.dashResultHeader);
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
|
||||
collResultList.setLayoutManager(linearLayoutManager);
|
||||
collResultList.setHasFixedSize(true);
|
||||
|
||||
DividerItemDecoration divDecorator = new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL);
|
||||
collResultList.addItemDecoration(divDecorator);
|
||||
adapter = new DashCollResultItemAdapter(getActivity(),new ArrayList<CollResultDetail>());
|
||||
collResultList.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPagerDataChange(int idx, List<CollResultDetail> data) {
|
||||
if(data.size() == 0){
|
||||
titleHeader.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
|
||||
titleHeader.setVisibility(View.VISIBLE);
|
||||
switch (idx){
|
||||
case 0:
|
||||
resultHeaderTitle.setText(getString(R.string.amount_paid));
|
||||
break;
|
||||
case 1:
|
||||
resultHeaderTitle.setText(getString(R.string.ptp_date));
|
||||
break;
|
||||
case 2:
|
||||
resultHeaderTitle.setText(getString(R.string.notes));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
adapter.notifyDataChange(data);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,386 @@
|
|||
package com.adins.mss.coll.dashboardcollection.view;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.base.todolist.form.PriorityTabFragment;
|
||||
import com.adins.mss.base.todolist.form.TaskListFragment_new;
|
||||
import com.adins.mss.base.todolist.form.TaskList_Fragment;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dashboardcollection.DashboardCollDataSource;
|
||||
import com.adins.mss.coll.dashboardcollection.DashboardCollectionContract;
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
import com.adins.mss.coll.dashboardcollection.model.DashboardData;
|
||||
import com.adins.mss.coll.dashboardcollection.presenter.DashboardCollPresenter;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.UserHelp.Bean.Dummy.UserHelpViewDummy;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.github.mikephil.charting.charts.PieChart;
|
||||
import com.github.mikephil.charting.data.PieData;
|
||||
import com.github.mikephil.charting.data.PieDataSet;
|
||||
import com.github.mikephil.charting.data.PieEntry;
|
||||
import com.github.mikephil.charting.formatter.ValueFormatter;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
public class DashboardCollectionView extends Fragment implements TabLayout.BaseOnTabSelectedListener, DashboardCollectionContract.View {
|
||||
|
||||
//android widget
|
||||
private ConstraintLayout contentLayout;
|
||||
private ProgressBar targetProgress;
|
||||
private TextView outstandingTv, collectAmountProgress, percentageTv, outstandingAmountTv;
|
||||
private PieChart collResultPie;
|
||||
private TabLayout tabLayout;
|
||||
private ViewPager viewPager;
|
||||
private ValueFormatter valueFormatter;
|
||||
|
||||
private DashboardCollectionContract.Presenter presenter;
|
||||
private android.app.ProgressDialog progressDialog;
|
||||
//data holder
|
||||
private int collNum, ptpNum, failNum;
|
||||
private List<CollResultDetail> collectDetails;
|
||||
private List<CollResultDetail> ptpDetails;
|
||||
private List<CollResultDetail> failedDetails;
|
||||
private CollResultPagerAdapter tabAdapter;
|
||||
|
||||
//dialog builder
|
||||
private NiftyDialogBuilder dialogBuilder;
|
||||
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
public DashboardCollectionView() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_dashboard_collection_view, container, false);
|
||||
contentLayout = view.findViewById(R.id.dashContentLayout);
|
||||
targetProgress = view.findViewById(R.id.dashTargetProgress);
|
||||
collResultPie = view.findViewById(R.id.dashCollResultPie);
|
||||
tabLayout = view.findViewById(R.id.dashDetailTab);
|
||||
viewPager = view.findViewById(R.id.dashViewPager);
|
||||
collectAmountProgress = view.findViewById(R.id.dashProgressValue);
|
||||
percentageTv = view.findViewById(R.id.dashProgressPercent);
|
||||
outstandingTv = view.findViewById(R.id.dashOutstandingValue);
|
||||
outstandingAmountTv = view.findViewById(R.id.dashOutstandingAmount);
|
||||
|
||||
screenName = FirebaseAnalytics.getInstance(getActivity());
|
||||
|
||||
outstandingTv.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
for (int i = 0; i < getActivity().getSupportFragmentManager().getBackStackEntryCount(); i++)
|
||||
getActivity().getSupportFragmentManager().popBackStack();
|
||||
|
||||
Fragment fragment;
|
||||
if (Global.PLAN_TASK_ENABLED) {
|
||||
fragment = new TaskListFragment_new();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(TaskList_Fragment.BUND_KEY_PAGE, 1);
|
||||
fragment.setArguments(bundle);
|
||||
} else {
|
||||
fragment = new PriorityTabFragment();
|
||||
}
|
||||
FragmentTransaction transaction = getFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.commit();
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
getActivity().setTitle(getString(R.string.collector_dashboard));
|
||||
Global.positionStack.push(1);
|
||||
|
||||
//init presenter and datasource
|
||||
presenter = new DashboardCollPresenter(this, new DashboardCollDataSource(getActivity().getApplication()));
|
||||
|
||||
//set data for tabs
|
||||
tabLayout.addTab(tabLayout.newTab().setText("Collected"));
|
||||
tabLayout.addTab(tabLayout.newTab().setText("PTP"));
|
||||
tabLayout.addTab(tabLayout.newTab().setText("Failed"));
|
||||
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
|
||||
|
||||
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
|
||||
tabAdapter = new CollResultPagerAdapter(fragmentManager, tabLayout.getTabCount());
|
||||
viewPager.setAdapter(tabAdapter);
|
||||
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
|
||||
tabLayout.addOnTabSelectedListener(this);
|
||||
|
||||
//load data
|
||||
if(needShowUserHelp()){
|
||||
showUserhelp();
|
||||
}
|
||||
else {
|
||||
initData();
|
||||
}
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
|
||||
progressDialog = android.app.ProgressDialog.show(getActivity(), "", getActivity().getString(R.string.please_wait_dialog), true);
|
||||
presenter.requestDashboardData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_dashboard_coll), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(final Menu menu) {
|
||||
if (Global.ENABLE_USER_HELP &&
|
||||
(Global.userHelpGuide.get(DummyDashboardCollView.class.getSimpleName()) != null) ||
|
||||
Global.userHelpDummyGuide.get(DummyDashboardCollView.class.getSimpleName()) != null) {
|
||||
menu.findItem(R.id.mnGuide).setVisible(true);
|
||||
}
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == com.adins.mss.base.R.id.mnGuide) {
|
||||
if (!Global.BACKPRESS_RESTRICTION) {
|
||||
UserHelp.reloadUserHelp(getActivity(), DummyDashboardCollView.class.getSimpleName());
|
||||
if (needShowUserHelp()) {
|
||||
showUserhelp();
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void drawCollResultChart() {
|
||||
//init value formatter
|
||||
valueFormatter = new ValueFormatter() {
|
||||
@Override
|
||||
public String getFormattedValue(float value) {
|
||||
return value == 0 ? "" : (int) value + "";
|
||||
}
|
||||
};
|
||||
|
||||
List<PieEntry> pieEntries = new ArrayList<>();
|
||||
|
||||
PieData pieData;
|
||||
if (ptpNum == 0 && failNum == 0 && collNum == 0) {
|
||||
pieEntries.add(new PieEntry(1, ""));
|
||||
PieDataSet dataSet = new PieDataSet(pieEntries, "");
|
||||
dataSet.setColors(Color.parseColor("#A9A9AA"));
|
||||
dataSet.setDrawValues(false);
|
||||
pieData = new PieData(dataSet);
|
||||
} else {
|
||||
PieEntry pieEntry1 = new PieEntry(ptpNum, "PTP");
|
||||
pieEntries.add(pieEntry1);
|
||||
|
||||
PieEntry pieEntry2 = new PieEntry(collNum, "Collected");
|
||||
pieEntries.add(pieEntry2);
|
||||
|
||||
PieEntry pieEntry3 = new PieEntry(failNum, "Failed");
|
||||
pieEntries.add(pieEntry3);
|
||||
|
||||
PieDataSet dataSet = new PieDataSet(pieEntries, "");
|
||||
int[] colors = {Color.parseColor("#221E66"), Color.parseColor("#1D6304"), Color.parseColor("#C61E00")};
|
||||
dataSet.setColors(colors);
|
||||
dataSet.setValueTextColor(Color.WHITE);
|
||||
dataSet.setValueTextSize(12f);
|
||||
dataSet.setValueFormatter(valueFormatter);
|
||||
pieData = new PieData(dataSet);
|
||||
}
|
||||
|
||||
collResultPie.getLegend().setEnabled(false);
|
||||
collResultPie.setDrawEntryLabels(false);
|
||||
collResultPie.setDrawHoleEnabled(true);
|
||||
collResultPie.setHoleColor(Color.parseColor("#00000000"));
|
||||
collResultPie.setTransparentCircleAlpha(0);
|
||||
collResultPie.setDescription(null);
|
||||
collResultPie.setHoleRadius(40f);
|
||||
collResultPie.setData(pieData);
|
||||
collResultPie.invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabSelected(TabLayout.Tab tab) {
|
||||
viewPager.setCurrentItem(tab.getPosition());
|
||||
//send data coll result details
|
||||
int idx = tab.getPosition();
|
||||
switch (idx) {
|
||||
case 0:
|
||||
tabAdapter.setDataToPage(tab.getPosition(), collectDetails);
|
||||
break;
|
||||
case 1:
|
||||
tabAdapter.setDataToPage(tab.getPosition(), ptpDetails);
|
||||
break;
|
||||
case 2:
|
||||
tabAdapter.setDataToPage(tab.getPosition(), failedDetails);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabUnselected(TabLayout.Tab tab) {
|
||||
//no need to be implemented for now
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabReselected(TabLayout.Tab tab) {
|
||||
//no need to be implemented for now
|
||||
}
|
||||
|
||||
//dashboard related UI callback
|
||||
private void setTotalOutstandingTask(int outstandingTask) {
|
||||
outstandingTv.setText(outstandingTask + "");
|
||||
}
|
||||
|
||||
private void setOutstandingAmount(double outstandingAmount) {
|
||||
String finToCollectAmount = Tool.formatToCurrency(outstandingAmount);
|
||||
outstandingAmountTv.setText(finToCollectAmount + " IDR");
|
||||
}
|
||||
|
||||
private void setProgressBarValue(double collectedAmount, double targetAmount) {
|
||||
//set percentage from target
|
||||
double percentage = collectedAmount / targetAmount;
|
||||
int finPercentage = (int) (percentage * 100);
|
||||
targetProgress.setProgress(finPercentage);
|
||||
targetProgress.setMax(100);
|
||||
|
||||
if (percentage >= 100f) {
|
||||
Drawable drawable = targetProgress.getIndeterminateDrawable().mutate();
|
||||
drawable.setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
|
||||
targetProgress.setIndeterminateDrawable(drawable);
|
||||
percentageTv.setTextColor(Color.GREEN);
|
||||
}
|
||||
|
||||
percentageTv.setText(finPercentage + " %");
|
||||
|
||||
String finCollectAmount, finTargetAmount;
|
||||
finCollectAmount = Tool.formatToCurrency(collectedAmount);
|
||||
finTargetAmount = Tool.formatToCurrency(targetAmount);
|
||||
collectAmountProgress.setText(finCollectAmount + " / " + finTargetAmount + " IDR");
|
||||
}
|
||||
|
||||
private void setTaskCollectedNum(int collectedNum) {
|
||||
this.collNum = collectedNum;
|
||||
}
|
||||
|
||||
private void setTaskPTPNum(int ptpNum) {
|
||||
this.ptpNum = ptpNum;
|
||||
}
|
||||
|
||||
private void setTaskFailedNum(int failedNum) {
|
||||
this.failNum = failedNum;
|
||||
}
|
||||
|
||||
private void setTaskCollectedDetails(List<CollResultDetail> resultList) {
|
||||
this.collectDetails = resultList;
|
||||
}
|
||||
|
||||
private void setTaskPTPDetails(List<CollResultDetail> resultList) {
|
||||
this.ptpDetails = resultList;
|
||||
}
|
||||
|
||||
public void setTaskFailedDetails(List<CollResultDetail> resultList) {
|
||||
this.failedDetails = resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDashboardDataReceived(DashboardData dashboardData) {
|
||||
if (progressDialog.isShowing()){
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
if (dashboardData == null) {
|
||||
//hide all layout and show dialog
|
||||
showErrorInfo("No Data Available");
|
||||
return;
|
||||
}
|
||||
|
||||
//setup data to view widget
|
||||
setProgressBarValue(dashboardData.getCollectedAmount(), dashboardData.getTargetAmount());
|
||||
setTotalOutstandingTask(dashboardData.getOutstandingNum());
|
||||
setOutstandingAmount(dashboardData.getOutstandingAmount());
|
||||
setTaskCollectedNum(dashboardData.getCollectDetails().size());
|
||||
setTaskPTPNum(dashboardData.getPtpDetails().size());
|
||||
setTaskFailedNum(dashboardData.getFailedDetails().size());
|
||||
setTaskCollectedDetails(dashboardData.getCollectDetails());
|
||||
setTaskPTPDetails(dashboardData.getPtpDetails());
|
||||
setTaskFailedDetails(dashboardData.getFailedDetails());
|
||||
|
||||
//finish setup data, draw chart
|
||||
drawCollResultChart();
|
||||
//trigger listener for first tab
|
||||
onTabSelected(tabLayout.getTabAt(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showErrorInfo(String errorMessage) {
|
||||
if (progressDialog.isShowing()){
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
if (dialogBuilder == null) {
|
||||
dialogBuilder = NiftyDialogBuilder.getInstance(getActivity());
|
||||
}
|
||||
contentLayout.setVisibility(View.GONE);
|
||||
dialogBuilder.withTitle(getString(R.string.error))
|
||||
.withMessage(errorMessage);
|
||||
dialogBuilder.show();
|
||||
}
|
||||
|
||||
private boolean needShowUserHelp() {
|
||||
List<UserHelpViewDummy> userHelpViews = Global.userHelpDummyGuide.get(DummyDashboardCollView.class.getSimpleName());
|
||||
return Global.ENABLE_USER_HELP && userHelpViews != null && userHelpViews.size() > 0;
|
||||
}
|
||||
|
||||
private void showUserhelp() {
|
||||
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
|
||||
Fragment dummyDashboard = new DummyDashboardCollView();
|
||||
transaction.replace(R.id.content_frame, dummyDashboard);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,274 @@
|
|||
package com.adins.mss.coll.dashboardcollection.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dashboardcollection.model.CollResultDetail;
|
||||
import com.adins.mss.coll.dummy.UserHelpCOLDummy;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.github.mikephil.charting.charts.PieChart;
|
||||
import com.github.mikephil.charting.data.PieData;
|
||||
import com.github.mikephil.charting.data.PieDataSet;
|
||||
import com.github.mikephil.charting.data.PieEntry;
|
||||
import com.github.mikephil.charting.formatter.ValueFormatter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DummyDashboardCollView extends Fragment implements TabLayout.BaseOnTabSelectedListener {
|
||||
|
||||
private ConstraintLayout contentLayout;
|
||||
private ProgressBar targetProgress;
|
||||
private TextView outstandingTv, collectAmountProgress, percentageTv, outstandingAmountTv;
|
||||
private PieChart collResultPie;
|
||||
private TabLayout tabLayout;
|
||||
private ViewPager viewPager;
|
||||
private ValueFormatter valueFormatter;
|
||||
|
||||
//data holder
|
||||
private int collNum, ptpNum, failNum;
|
||||
private List<CollResultDetail> collectDetails;
|
||||
private List<CollResultDetail> ptpDetails;
|
||||
private List<CollResultDetail> failedDetails;
|
||||
private CollResultPagerAdapter tabAdapter;
|
||||
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
|
||||
View view = inflater.inflate(R.layout.fragment_dummy_dashboard_coll_view, container, false);
|
||||
contentLayout = view.findViewById(R.id.dummyDashContentLayout);
|
||||
targetProgress = view.findViewById(R.id.dummyDashTargetProgress);
|
||||
collResultPie = view.findViewById(R.id.dummyDashCollResultPie);
|
||||
tabLayout = view.findViewById(R.id.dummyDashDetailTab);
|
||||
viewPager = view.findViewById(R.id.dummyDashViewPager);
|
||||
collectAmountProgress = view.findViewById(R.id.dummyDashProgressValue);
|
||||
percentageTv = view.findViewById(R.id.dummyDashProgressPercent);
|
||||
outstandingTv = view.findViewById(R.id.dummyDashOutstandingValue);
|
||||
outstandingAmountTv = view.findViewById(R.id.dummyDashOutstandingAmount);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
getActivity().setTitle("Sample " + getString(R.string.collector_dashboard));
|
||||
Global.positionStack.push(1);
|
||||
|
||||
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
|
||||
|
||||
tabAdapter = new CollResultPagerAdapter(this.getChildFragmentManager(), tabLayout.getTabCount());
|
||||
viewPager.setAdapter(tabAdapter);
|
||||
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
|
||||
tabLayout.addOnTabSelectedListener(this);
|
||||
|
||||
initDummyData();
|
||||
|
||||
UserHelpCOLDummy userHelpCOLDummy = new UserHelpCOLDummy();
|
||||
userHelpCOLDummy.showDashboardColl(getActivity(), DummyDashboardCollView.class.getSimpleName(), finishCallback, onDashboardTabSelected);
|
||||
}
|
||||
|
||||
private void initDummyData() {
|
||||
|
||||
setProgressBarValue(5000000, 20000000);
|
||||
setTotalOutstandingTask(7);
|
||||
setOutstandingAmount(10000000);
|
||||
setTaskCollectedNum(1);
|
||||
setTaskPTPNum(1);
|
||||
setTaskFailedNum(1);
|
||||
setTaskCollectedDetails();
|
||||
setTaskPTPDetails();
|
||||
setTaskFailedDetails();
|
||||
|
||||
//finish setup data, draw dummy pie chart
|
||||
drawCollResultChart();
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
onTabSelected(tabLayout.getTabAt(0));
|
||||
}
|
||||
},1000);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
}
|
||||
|
||||
private void setProgressBarValue(double collectedAmount, double targetAmount) {
|
||||
//set percentage from target
|
||||
double percentage = collectedAmount / targetAmount;
|
||||
int finPercentage = (int) (percentage * 100);
|
||||
targetProgress.setProgress(finPercentage);
|
||||
targetProgress.setMax(100);
|
||||
|
||||
if (percentage >= 100f) {
|
||||
Drawable drawable = targetProgress.getIndeterminateDrawable().mutate();
|
||||
drawable.setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
|
||||
targetProgress.setIndeterminateDrawable(drawable);
|
||||
percentageTv.setTextColor(Color.GREEN);
|
||||
}
|
||||
|
||||
percentageTv.setText(finPercentage + " %");
|
||||
|
||||
String finCollectAmount, finTargetAmount;
|
||||
finCollectAmount = Tool.formatToCurrency(collectedAmount);
|
||||
finTargetAmount = Tool.formatToCurrency(targetAmount);
|
||||
collectAmountProgress.setText(finCollectAmount + " / " + finTargetAmount + " IDR");
|
||||
}
|
||||
|
||||
private void setTotalOutstandingTask(int outstandingTask) {
|
||||
outstandingTv.setText(outstandingTask + "");
|
||||
}
|
||||
|
||||
private void setOutstandingAmount(double outstandingAmount) {
|
||||
String finToCollectAmount = Tool.formatToCurrency(outstandingAmount);
|
||||
outstandingAmountTv.setText(finToCollectAmount + " IDR");
|
||||
}
|
||||
|
||||
private void setTaskCollectedNum(int collectedNum) {
|
||||
this.collNum = collectedNum;
|
||||
}
|
||||
|
||||
private void setTaskPTPNum(int ptpNum) {
|
||||
this.ptpNum = ptpNum;
|
||||
}
|
||||
|
||||
private void setTaskFailedNum(int failedNum) {
|
||||
this.failNum = failedNum;
|
||||
}
|
||||
|
||||
private void setTaskCollectedDetails() {
|
||||
List<CollResultDetail> temp = new ArrayList<>();
|
||||
temp.add(new CollResultDetail(0, "OJK0001", "Customer 1", "5000000"));
|
||||
this.collectDetails = temp;
|
||||
}
|
||||
|
||||
private void setTaskPTPDetails() {
|
||||
List<CollResultDetail> temp = new ArrayList<>();
|
||||
temp.add(new CollResultDetail(1, "OJK0002", "Customer 2", "01-01-20"));
|
||||
this.ptpDetails = temp;
|
||||
}
|
||||
|
||||
private void setTaskFailedDetails() {
|
||||
List<CollResultDetail> temp = new ArrayList<>();
|
||||
temp.add(new CollResultDetail(2, "OJK0003", "Customer 3", "Tidak Bertemu Konsumen"));
|
||||
this.failedDetails = temp;
|
||||
}
|
||||
|
||||
private void drawCollResultChart() {
|
||||
//init value formatter
|
||||
valueFormatter = new ValueFormatter() {
|
||||
@Override
|
||||
public String getFormattedValue(float value) {
|
||||
return value == 0 ? "" : (int) value + "";
|
||||
}
|
||||
};
|
||||
|
||||
List<PieEntry> pieEntries = new ArrayList<>();
|
||||
|
||||
PieData pieData;
|
||||
if (ptpNum == 0 && failNum == 0 && collNum == 0) {
|
||||
pieEntries.add(new PieEntry(1, ""));
|
||||
PieDataSet dataSet = new PieDataSet(pieEntries, "");
|
||||
dataSet.setColors(Color.parseColor("#A9A9AA"));
|
||||
dataSet.setDrawValues(false);
|
||||
pieData = new PieData(dataSet);
|
||||
} else {
|
||||
PieEntry pieEntry1 = new PieEntry(ptpNum, "PTP");
|
||||
pieEntries.add(pieEntry1);
|
||||
|
||||
PieEntry pieEntry2 = new PieEntry(collNum, "Collected");
|
||||
pieEntries.add(pieEntry2);
|
||||
|
||||
PieEntry pieEntry3 = new PieEntry(failNum, "Failed");
|
||||
pieEntries.add(pieEntry3);
|
||||
|
||||
PieDataSet dataSet = new PieDataSet(pieEntries, "");
|
||||
int[] colors = {Color.parseColor("#EA9431"), Color.parseColor("#008000"), Color.RED};
|
||||
dataSet.setColors(colors);
|
||||
dataSet.setValueTextColor(Color.WHITE);
|
||||
dataSet.setValueTextSize(12f);
|
||||
dataSet.setValueFormatter(valueFormatter);
|
||||
pieData = new PieData(dataSet);
|
||||
}
|
||||
|
||||
collResultPie.getLegend().setEnabled(false);
|
||||
collResultPie.setDrawEntryLabels(false);
|
||||
collResultPie.setDrawHoleEnabled(true);
|
||||
collResultPie.setHoleColor(Color.parseColor("#00000000"));
|
||||
collResultPie.setTransparentCircleAlpha(0);
|
||||
collResultPie.setDescription(null);
|
||||
collResultPie.setHoleRadius(40f);
|
||||
collResultPie.setData(pieData);
|
||||
collResultPie.invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabSelected(TabLayout.Tab tab) {
|
||||
viewPager.setCurrentItem(tab.getPosition());
|
||||
//send data coll result details
|
||||
int idx = tab.getPosition();
|
||||
switch (idx) {
|
||||
case 0:
|
||||
tabAdapter.setDataToPage(tab.getPosition(), collectDetails);
|
||||
break;
|
||||
case 1:
|
||||
tabAdapter.setDataToPage(tab.getPosition(), ptpDetails);
|
||||
break;
|
||||
case 2:
|
||||
tabAdapter.setDataToPage(tab.getPosition(), failedDetails);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabUnselected(TabLayout.Tab tab) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabReselected(TabLayout.Tab tab) {
|
||||
|
||||
}
|
||||
|
||||
protected UserHelp.OnShowSequenceFinish finishCallback = new UserHelp.OnShowSequenceFinish() {
|
||||
@Override
|
||||
public void onSequenceFinish() {
|
||||
Global.positionStack.pop();
|
||||
getActivity().getSupportFragmentManager().popBackStack();
|
||||
}
|
||||
};
|
||||
|
||||
protected UserHelpCOLDummy.OnDashboardTabSelected onDashboardTabSelected = new UserHelpCOLDummy.OnDashboardTabSelected() {
|
||||
@Override
|
||||
public void onNextTab(int counter) {
|
||||
onTabSelected(tabLayout.getTabAt(counter));
|
||||
}
|
||||
};
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package com.adins.mss.coll.dummy;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
|
||||
import com.adins.mss.coll.closingtask.ClosingTaskItem;
|
||||
|
||||
public class ClosingTaskDummyAdapter extends BaseAdapter {
|
||||
private static ClosingTaskDummyAdapter instance;
|
||||
|
||||
public ClosingTaskDummyAdapter() {
|
||||
}
|
||||
|
||||
public static ClosingTaskDummyAdapter getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new ClosingTaskDummyAdapter();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getItem(int i) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int i) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
ClosingTaskItem item;
|
||||
|
||||
if (convertView == null) {
|
||||
item = new ClosingTaskItem(parent.getContext());
|
||||
} else {
|
||||
item = (ClosingTaskItem) convertView;
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
package com.adins.mss.coll.dummy;
|
||||
|
||||
import android.app.Activity;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.GridView;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.fragments.DashBoardFragment;
|
||||
import com.adins.mss.coll.fragments.DashBoardFragment.OnListFragmentInteractionListener;
|
||||
import com.adins.mss.coll.fragments.MyDashBoardItemRecyclerViewAdapter;
|
||||
import com.adins.mss.coll.fragments.TeamMember;
|
||||
import com.adins.mss.coll.fragments.dummy.DummyContent.DummyItem;
|
||||
import com.adins.mss.coll.fragments.view.GridDashBoardAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
/**
|
||||
* {@link RecyclerView.Adapter} that can display a {@link DummyItem} and makes a call to the
|
||||
* specified {@link OnListFragmentInteractionListener}.
|
||||
* TODO: Replace the implementation with code for your data type.
|
||||
*/
|
||||
public class MyDashboardItemDummyAdapter extends RecyclerView.Adapter<MyDashboardItemDummyAdapter.ViewHolder> {
|
||||
|
||||
private final Activity mContext;
|
||||
RecyclerView recyclerViewDashBoard;
|
||||
MyDashBoardItemRecyclerViewAdapter adapter;
|
||||
public MyDashboardItemDummyAdapter(Activity context, RecyclerView recyclerView, MyDashBoardItemRecyclerViewAdapter adapter) {
|
||||
this.recyclerViewDashBoard = recyclerView;
|
||||
mContext = context;
|
||||
this.adapter = adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.fragment_dashboard, parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
||||
ArrayList<TeamMember.DataGroupRank> dataGroupRank = new ArrayList<>();
|
||||
TeamMember.DataGroupRank dummyGroupRank1 = new TeamMember().new DataGroupRank();
|
||||
dummyGroupRank1.setLEVEL("JOB");
|
||||
dummyGroupRank1.setRANK("1");
|
||||
dummyGroupRank1.setRANK_BEFORE("0");
|
||||
|
||||
TeamMember.DataGroupRank dummyGroupRank2 = new TeamMember().new DataGroupRank();
|
||||
dummyGroupRank2.setLEVEL("JOB");
|
||||
dummyGroupRank2.setRANK("1");
|
||||
dummyGroupRank2.setRANK_BEFORE("0");
|
||||
|
||||
dataGroupRank.add(dummyGroupRank1);
|
||||
dataGroupRank.add(dummyGroupRank2);
|
||||
|
||||
GridDashBoardAdapter adapter = new GridDashBoardAdapter(mContext , dataGroupRank);
|
||||
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1, numbers);
|
||||
holder.gridView.setAdapter(adapter);
|
||||
|
||||
UserHelpCOLDummy userHelpColDummy = new UserHelpCOLDummy();
|
||||
userHelpColDummy.showDashboardLoyalty(mContext, DashBoardFragment.class.getSimpleName(), this.recyclerViewDashBoard, this.adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
public final View mView;
|
||||
public final GridView gridView;
|
||||
|
||||
public ViewHolder(View view) {
|
||||
super(view);
|
||||
mView = view;
|
||||
gridView = (GridView) view.findViewById(R.id.gridview);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,340 @@
|
|||
package com.adins.mss.coll.dummy;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.closingtask.ClosingTaskAdapter;
|
||||
import com.adins.mss.coll.fragments.MyDashBoardItemRecyclerViewAdapter;
|
||||
import com.adins.mss.coll.fragments.view.DepositReportRecapitulateView;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.UserHelp.Bean.Dummy.UserHelpIconDummy;
|
||||
import com.adins.mss.foundation.UserHelp.Bean.Dummy.UserHelpViewDummy;
|
||||
import com.adins.mss.foundation.UserHelp.Bean.UserHelpView;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import uk.co.deanwild.materialshowcaseview.MaterialShowcaseSequence;
|
||||
import uk.co.deanwild.materialshowcaseview.MaterialShowcaseView;
|
||||
import uk.co.deanwild.materialshowcaseview.ShowcaseConfig;
|
||||
|
||||
import static com.adins.mss.constant.Global.userHelpGuide;
|
||||
import static com.adins.mss.constant.Global.userHelpDummyGuide;
|
||||
|
||||
public class UserHelpCOLDummy {
|
||||
private int counter = 0;
|
||||
private int iconCounter = 0;
|
||||
public void showDummyClosing(final Activity activity, final String idSequence, final ListView listView, final ClosingTaskAdapter closingTaskAdapter){
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ArrayList<UserHelpViewDummy> tempTooltip = new ArrayList<>();
|
||||
ShowcaseConfig config = new ShowcaseConfig();
|
||||
config.setDelay(0);
|
||||
config.setFadeDuration(100);
|
||||
final MaterialShowcaseSequence sequence = new MaterialShowcaseSequence(activity);
|
||||
sequence.setConfig(config);
|
||||
try {
|
||||
for(UserHelpViewDummy userHelpViewDummy : Global.userHelpDummyGuide.get(idSequence)){
|
||||
View idView = listView.getChildAt(0).findViewById(
|
||||
Utility.getViewById(activity, userHelpViewDummy.getViewid())
|
||||
);
|
||||
for(UserHelpIconDummy userHelpIconDummy: userHelpViewDummy.getIconid()){
|
||||
UserHelp.addSequenceUserHelpDummy(activity, sequence, userHelpIconDummy,userHelpViewDummy, idView, tempTooltip);
|
||||
}
|
||||
}
|
||||
|
||||
sequence.setOnItemSkippedListener(new MaterialShowcaseSequence.OnSequenceItemSkippedListener() {
|
||||
@Override
|
||||
public void onSkip() {
|
||||
counter+=1;
|
||||
|
||||
listView.setAdapter(closingTaskAdapter);
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
try {
|
||||
counter+=1;
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
|
||||
userHelpGuide.put(idSequence, new ArrayList<UserHelpView>());
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP", gson.toJson(userHelpGuide)).apply();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
});
|
||||
|
||||
sequence.setOnItemDismissedListener(new MaterialShowcaseSequence.OnSequenceItemDismissedListener() {
|
||||
@Override
|
||||
public void onDismiss(MaterialShowcaseView materialShowcaseView, int i) {
|
||||
listView.setAdapter(closingTaskAdapter);
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
try {
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
counter+=1;
|
||||
Handler handler1 = new Handler();
|
||||
handler1.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(counter < userHelpDummyGuide.size())
|
||||
UserHelp.showAllUserHelp(activity,idSequence);
|
||||
}
|
||||
},100);
|
||||
|
||||
} catch (Exception e){}
|
||||
}
|
||||
});
|
||||
sequence.start();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
},0);
|
||||
}
|
||||
public static void showDummyDepositReport(final Activity activity, final String idSequence, final DepositReportRecapitulateView view){
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ArrayList<UserHelpViewDummy> tempTooltip = new ArrayList<>();
|
||||
ShowcaseConfig config = new ShowcaseConfig();
|
||||
config.setDelay(0);
|
||||
config.setFadeDuration(100);
|
||||
|
||||
final MaterialShowcaseSequence sequence = new MaterialShowcaseSequence(activity);
|
||||
sequence.setConfig(config);
|
||||
try {
|
||||
for(UserHelpViewDummy userHelpViewDummy : Global.userHelpDummyGuide.get(idSequence)){
|
||||
for(UserHelpIconDummy userHelpIconDummy: userHelpViewDummy.getIconid()){
|
||||
view.containerDummy();
|
||||
View idView = activity.findViewById(
|
||||
Utility.getViewById(activity, userHelpViewDummy.getViewid())
|
||||
);
|
||||
UserHelp.addSequenceUserHelpDummy(activity, sequence, userHelpIconDummy,userHelpViewDummy, idView, tempTooltip);
|
||||
}
|
||||
}
|
||||
sequence.setOnItemSkippedListener(new MaterialShowcaseSequence.OnSequenceItemSkippedListener() {
|
||||
@Override
|
||||
public void onSkip() {
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
userHelpGuide.put(idSequence,new ArrayList<UserHelpView>());
|
||||
view.containerInit();
|
||||
try {
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
|
||||
userHelpGuide.put(idSequence, new ArrayList<UserHelpView>());
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP", gson.toJson(userHelpGuide)).apply();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
});
|
||||
|
||||
sequence.setOnItemDismissedListener(new MaterialShowcaseSequence.OnSequenceItemDismissedListener() {
|
||||
@Override
|
||||
public void onDismiss(MaterialShowcaseView materialShowcaseView, int i) {
|
||||
UserHelp.showAllUserHelp(activity,idSequence);
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
view.containerInit();
|
||||
try {
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
});
|
||||
sequence.start();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
},0);
|
||||
}
|
||||
|
||||
public void showDashboardLoyalty(final Activity activity, final String idSequence, final RecyclerView recyclerView, final MyDashBoardItemRecyclerViewAdapter adapter){
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ArrayList<UserHelpViewDummy> tempTooltip = new ArrayList<>();
|
||||
ShowcaseConfig config = new ShowcaseConfig();
|
||||
config.setDelay(0);
|
||||
config.setFadeDuration(100);
|
||||
|
||||
final MaterialShowcaseSequence sequence = new MaterialShowcaseSequence(activity);
|
||||
sequence.setConfig(config);
|
||||
try {
|
||||
for(UserHelpViewDummy userHelpViewDummy : Global.userHelpDummyGuide.get(idSequence)){
|
||||
for(UserHelpIconDummy userHelpIconDummy: userHelpViewDummy.getIconid()){
|
||||
View idView = activity.findViewById(
|
||||
Utility.getViewById(activity, userHelpViewDummy.getViewid())
|
||||
);
|
||||
UserHelp.addSequenceUserHelpDummy(activity, sequence, userHelpIconDummy,userHelpViewDummy, idView, tempTooltip);
|
||||
}
|
||||
}
|
||||
sequence.setOnItemSkippedListener(new MaterialShowcaseSequence.OnSequenceItemSkippedListener() {
|
||||
@Override
|
||||
public void onSkip() {
|
||||
Global.BACKPRESS_RESTRICTION = false;
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
userHelpGuide.put(idSequence,new ArrayList<UserHelpView>());
|
||||
recyclerView.setAdapter(adapter);
|
||||
try {
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
|
||||
userHelpGuide.put(idSequence, new ArrayList<UserHelpView>());
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP", gson.toJson(userHelpGuide)).apply();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
});
|
||||
|
||||
sequence.setOnItemDismissedListener(new MaterialShowcaseSequence.OnSequenceItemDismissedListener() {
|
||||
@Override
|
||||
public void onDismiss(MaterialShowcaseView materialShowcaseView, int i) {
|
||||
counter++;
|
||||
if(counter >= userHelpDummyGuide.get(idSequence).size()){
|
||||
Global.BACKPRESS_RESTRICTION = false;
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
recyclerView.setAdapter(adapter);
|
||||
try {
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
} catch (Exception e){}
|
||||
} else{
|
||||
try {
|
||||
UserHelpViewDummy userHelpViewDummy = userHelpDummyGuide.get(idSequence).get(counter);
|
||||
ImageView imageView = recyclerView.findViewHolderForLayoutPosition(0).
|
||||
itemView.findViewById(Utility.getViewById(activity, userHelpViewDummy.getViewid()));
|
||||
imageView.setImageDrawable(activity.getResources().getDrawable(
|
||||
Utility.getDrawableById(activity, userHelpViewDummy.getIconid().get(iconCounter).getIcon()))
|
||||
);
|
||||
iconCounter++;
|
||||
// if there is more than 1 icon, hold adding counter
|
||||
if(iconCounter < userHelpViewDummy.getIconid().size()) {
|
||||
counter -= 1;
|
||||
} else{
|
||||
iconCounter = 0;
|
||||
}
|
||||
}catch (Exception e){}
|
||||
}
|
||||
}
|
||||
});
|
||||
sequence.start();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
},0);
|
||||
}
|
||||
|
||||
public interface OnDashboardTabSelected{
|
||||
void onNextTab(int counter);
|
||||
}
|
||||
|
||||
public void showDashboardColl(final Activity activity, final String idSequence, final UserHelp.OnShowSequenceFinish finishCallback,
|
||||
final UserHelpCOLDummy.OnDashboardTabSelected onDashboardTabSelected){
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ArrayList<UserHelpViewDummy> tempTooltip = new ArrayList<>();
|
||||
ShowcaseConfig config = new ShowcaseConfig();
|
||||
config.setDelay(0);
|
||||
config.setFadeDuration(100);
|
||||
|
||||
final MaterialShowcaseSequence sequence = new MaterialShowcaseSequence(activity);
|
||||
sequence.setConfig(config);
|
||||
try {
|
||||
for(UserHelpViewDummy userHelpViewDummy : Global.userHelpDummyGuide.get(idSequence)){
|
||||
for(UserHelpIconDummy userHelpIconDummy: userHelpViewDummy.getIconid()){
|
||||
View idView = activity.findViewById(
|
||||
Utility.getViewById(activity, userHelpViewDummy.getViewid())
|
||||
);
|
||||
UserHelp.addSequenceUserHelpDummy(activity, sequence, userHelpIconDummy,userHelpViewDummy, idView, tempTooltip);
|
||||
}
|
||||
}
|
||||
sequence.setOnItemSkippedListener(new MaterialShowcaseSequence.OnSequenceItemSkippedListener() {
|
||||
@Override
|
||||
public void onSkip() {
|
||||
Global.BACKPRESS_RESTRICTION = false;
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
userHelpGuide.put(idSequence,new ArrayList<UserHelpView>());
|
||||
if(finishCallback != null){
|
||||
finishCallback.onSequenceFinish();
|
||||
}
|
||||
try {
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
|
||||
userHelpGuide.put(idSequence, new ArrayList<UserHelpView>());
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP", gson.toJson(userHelpGuide)).apply();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
});
|
||||
|
||||
sequence.setOnItemDismissedListener(new MaterialShowcaseSequence.OnSequenceItemDismissedListener() {
|
||||
@Override
|
||||
public void onDismiss(MaterialShowcaseView materialShowcaseView, int i) {
|
||||
counter++;
|
||||
if(counter >= userHelpDummyGuide.get(idSequence).size()){
|
||||
Global.BACKPRESS_RESTRICTION = false;
|
||||
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
|
||||
if(finishCallback != null){
|
||||
finishCallback.onSequenceFinish();
|
||||
}
|
||||
try {
|
||||
ObscuredSharedPreferences sharedPref =
|
||||
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
Gson gson = new Gson();
|
||||
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
else{
|
||||
try {
|
||||
UserHelpViewDummy userHelpViewDummy = userHelpDummyGuide.get(idSequence).get(counter);
|
||||
//Tab automatically load next, when user help showing collection result detail
|
||||
if(userHelpViewDummy.getIconid().size()>1 && userHelpViewDummy.getViewid().equalsIgnoreCase("dummyCollResDetail"))
|
||||
onDashboardTabSelected.onNextTab(iconCounter);
|
||||
|
||||
iconCounter++;
|
||||
// if there is more than 1 icon, hold adding counter
|
||||
if(iconCounter < userHelpViewDummy.getIconid().size()) {
|
||||
counter -= 1;
|
||||
} else{
|
||||
iconCounter = 0;
|
||||
}
|
||||
}catch (Exception e){}
|
||||
}
|
||||
}
|
||||
});
|
||||
sequence.start();
|
||||
} catch (Exception e){}
|
||||
}
|
||||
},0);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import com.adins.mss.dao.Kompetisi;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BeanResps {
|
||||
@SerializedName("beanResp")
|
||||
private List<Kompetisi> beanResp;
|
||||
|
||||
public List<Kompetisi> getBeanResp() {
|
||||
return beanResp;
|
||||
}
|
||||
|
||||
public void setBeanResp(List<Kompetisi> beanResp) {
|
||||
this.beanResp = beanResp;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.adapters.ClosingTaskAdapter;
|
||||
import com.adins.mss.coll.interfaces.ClosingTaskImpl;
|
||||
import com.adins.mss.coll.interfaces.ClosingTaskInterface;
|
||||
import com.adins.mss.coll.networks.ClosingTaskListener;
|
||||
import com.androidquery.AQuery;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
/**
|
||||
* Created by angga.permadi on 6/6/2016.
|
||||
*/
|
||||
public class ClosingTaskFragment extends Fragment implements ClosingTaskListener {
|
||||
public static final String CLOSING_TASK_LIST = "closing_task_list";
|
||||
|
||||
private AQuery query;
|
||||
private ClosingTaskInterface iClosingTask;
|
||||
private FirebaseAnalytics screenName;
|
||||
//private ClosingTaskAdapter adapter;
|
||||
|
||||
public static ClosingTaskFragment newInstance() {
|
||||
return new ClosingTaskFragment();
|
||||
}
|
||||
|
||||
public static ClosingTaskFragment newInstance(Bundle args) {
|
||||
ClosingTaskFragment myFragment = new ClosingTaskFragment();
|
||||
myFragment.setArguments(args);
|
||||
return myFragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
screenName = FirebaseAnalytics.getInstance(getActivity());
|
||||
iClosingTask = new ClosingTaskImpl(getActivity(), this);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_closing_task, container, false);
|
||||
query = new AQuery(getActivity(), view);
|
||||
getActivity().setTitle(R.string.title_mn_closing_task);
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
ListView listView = (ListView) query.id(R.id.listClosingTask).getView();
|
||||
listView.setAdapter(ClosingTaskAdapter.getInstance());
|
||||
updateCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_closing_task), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
query = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClosingTaskSuccess() {
|
||||
ClosingTaskAdapter.getInstance().clear();
|
||||
ClosingTaskAdapter.getInstance().notifyDataSetChanged();
|
||||
updateCount();
|
||||
}
|
||||
|
||||
private void updateCount() {
|
||||
query.id(R.id.btnClosingTask).clicked(this, "closingTask").text(
|
||||
getString(R.string.title_mn_closing_task) + " (" +
|
||||
ClosingTaskAdapter.getInstance().getCount() + ")");
|
||||
}
|
||||
|
||||
@Keep // subcribe
|
||||
public void closingTask() {
|
||||
iClosingTask.closingTask();
|
||||
// if (GlobalData.getSharedGlobalData().getUser() != null) {
|
||||
// String uuidUser = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
//
|
||||
// boolean isDraft = TaskHDataAccess.getAllTaskByStatus(getActivity(), uuidUser, TaskHDataAccess.STATUS_SEND_SAVEDRAFT).size() != 0;
|
||||
// boolean isRvPending = TaskHDataAccess.getOneTaskByStatusRV(getActivity(), uuidUser, TaskHDataAccess.STATUS_RV_PENDING) != null;
|
||||
// boolean isPending = TaskHDataAccess.getAllTaskByStatus(getActivity(), uuidUser, TaskHDataAccess.STATUS_SEND_PENDING).size() != 0;
|
||||
//
|
||||
// if (Global.isUploading || isDraft || isRvPending || isPending) {
|
||||
// final NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(getActivity());
|
||||
// dialogBuilder.withTitle(getString(R.string.title_mn_closing_task))
|
||||
// .withMessage(getString(R.string.msg_still_uploading_closing_task))
|
||||
// .withButton1Text(getString(R.string.btnCancel))
|
||||
// .setButton1Click(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View arg0) {
|
||||
// dialogBuilder.dismiss();
|
||||
// }
|
||||
// })
|
||||
// .isCancelable(false)
|
||||
// .isCancelableOnTouchOutside(true)
|
||||
// .show();
|
||||
// } else {
|
||||
// ClosingTaskRequest request = new ClosingTaskRequest();
|
||||
// request.setFlag(ClosingTaskRequest.CLOSING_TASK);
|
||||
//
|
||||
// ClosingTaskSender<ClosingTaskResponse> sender = new ClosingTaskSender<>(
|
||||
// getActivity(), request, ClosingTaskResponse.class);
|
||||
// sender.setListener(this);
|
||||
// sender.execute();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,123 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.CollectionActivity;
|
||||
import com.adins.mss.foundation.formatter.Formatter;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by dian.ina on 08/05/2015.
|
||||
*/
|
||||
public class CollectionActivityDetailFragment extends AppCompatActivity {
|
||||
public static final String COLLECTION_ACTIVITY_DETAIL = "CollectionActivityDetailFragment.COLLECTION_ACTIVITY_DETAIL";
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.new_fragment_collection_activity_detail);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
CollectionActivity item = CollectionActivityFragment.itemCollectionActivity;
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(com.adins.mss.base.R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.title_mn_collectionactivitydet));
|
||||
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
TableLayout table = (TableLayout) findViewById(R.id.tableCollectionDetail);
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
|
||||
int index = 1;
|
||||
Class<CollectionActivity> type = CollectionActivity.class;
|
||||
|
||||
for (Method method : type.getMethods()) {
|
||||
if (!method.getName().startsWith("get") || method.getName().equals("getClass")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
View row = LayoutInflater.from(this).inflate(R.layout.view_no_label_value, table, false);
|
||||
TextView no = (TextView) row.findViewById(R.id.no);
|
||||
TextView label = (TextView) row.findViewById(R.id.fieldName);
|
||||
TextView value = (TextView) row.findViewById(R.id.fieldValue);
|
||||
|
||||
String labelField =method.getName().replaceFirst("get", "");
|
||||
|
||||
if(labelField.equalsIgnoreCase("Dtm_crt")||
|
||||
labelField.equalsIgnoreCase("Usr_crt")||
|
||||
labelField.equalsIgnoreCase("Usr_upd")||
|
||||
labelField.equalsIgnoreCase("dtm_upd")||
|
||||
labelField.equalsIgnoreCase("uuid_collection_activity")||
|
||||
labelField.equalsIgnoreCase("Uuid_task_h") ||
|
||||
labelField.equalsIgnoreCase("agreement_no") ||
|
||||
labelField.equalsIgnoreCase("branch_code")){
|
||||
|
||||
}else{
|
||||
no.setText(String.valueOf(index++));
|
||||
label.setText(labelField.replace("_", " "));
|
||||
try {
|
||||
String stringValue = "";
|
||||
Object itemValue = null;
|
||||
try {
|
||||
itemValue = method.invoke(item);
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (itemValue == null) {
|
||||
stringValue = "-";
|
||||
} else if (method.getReturnType() == Date.class) {
|
||||
stringValue = Formatter.formatDate((Date)itemValue, Global.DATE_STR_FORMAT);
|
||||
} else {
|
||||
stringValue = String.valueOf(itemValue);
|
||||
}
|
||||
|
||||
value.setText(stringValue);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
table.addView(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_collection_detail_act), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,379 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.checkin.CheckInManager;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.api.CollectionActivityApi;
|
||||
import com.adins.mss.coll.commons.Toaster;
|
||||
import com.adins.mss.coll.models.CollectionActivityResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.CollectionActivity;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.db.dataaccess.CollectionActivityDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Formatter;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.location.UpdateMenuIcon;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
|
||||
|
||||
/**
|
||||
* Created by dian.ina on 07/05/2015.
|
||||
*/
|
||||
public class CollectionActivityFragment extends AppCompatActivity {
|
||||
public CollectionActivityResponse collActivityResponse;
|
||||
ImageButton button;
|
||||
private String taskId;
|
||||
|
||||
private ConnectivityManager connectivityManager;
|
||||
private NetworkInfo activeNetworkInfo;
|
||||
private List<CollectionActivity> collectionActivityLocalList = null;
|
||||
|
||||
public static CollectionActivity itemCollectionActivity;
|
||||
|
||||
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
|
||||
setContentView(R.layout.new_fragment_collection_activity);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
Bundle bundle = getIntent().getExtras();
|
||||
taskId = bundle.getString(Global.BUND_KEY_TASK_ID);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.title_mn_collectionactivity));
|
||||
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(this, taskId);
|
||||
collectionActivityLocalList = CollectionActivityDataAccess.getAllbyTask(this, taskH.getUuid_task_h());
|
||||
|
||||
connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
|
||||
|
||||
loadData();
|
||||
|
||||
button = (ImageButton) findViewById(R.id.imageBtnDownload);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
button.setEnabled(false);
|
||||
button.setClickable(false);
|
||||
try {
|
||||
saveData(getApplicationContext(), collActivityResponse);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
ACRA.getErrorReporter().handleSilentException(new Exception("Error: download collection activity Error. "+ e.getMessage()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_collection_act), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater menuInflater = getMenuInflater();
|
||||
menuInflater.inflate(com.adins.mss.base.R.menu.main_menu, menu);
|
||||
mainMenu = menu;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
updateMenuIcon(Global.isGPS);
|
||||
|
||||
if(Global.ENABLE_USER_HELP &&
|
||||
(Global.userHelpGuide.get(CollectionActivityFragment.this.getClass().getSimpleName())!=null) ||
|
||||
Global.userHelpDummyGuide.get(CollectionActivityFragment.this.getClass().getSimpleName()) != null){
|
||||
menu.findItem(com.adins.mss.base.R.id.mnGuide).setVisible(true);
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
private static Menu mainMenu;
|
||||
|
||||
public static void updateMenuIcon(boolean isGPS) {
|
||||
UpdateMenuIcon uItem = new UpdateMenuIcon();
|
||||
uItem.updateGPSIcon(mainMenu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == com.adins.mss.base.R.id.mnGPS && Global.LTM != null) {
|
||||
if (Global.LTM.getIsConnected()) {
|
||||
Global.LTM.removeLocationListener();
|
||||
Global.LTM.connectLocationClient();
|
||||
} else {
|
||||
CheckInManager.startGPSTracking(getApplicationContext());
|
||||
}
|
||||
Animation a = AnimationUtils.loadAnimation(this, com.adins.mss.base.R.anim.gps_rotate);
|
||||
findViewById(com.adins.mss.base.R.id.mnGPS).startAnimation(a);
|
||||
}
|
||||
if(item.getItemId() == R.id.mnGuide && !Global.BACKPRESS_RESTRICTION){
|
||||
UserHelp.reloadUserHelp(getApplicationContext(), CollectionActivityFragment.this);
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(CollectionActivityFragment.this, CollectionActivityFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
protected void saveData(Context context, CollectionActivityResponse collActResp) {
|
||||
if(collActResp!=null && collActResp.getStatus().getCode()==0){
|
||||
List<CollectionActivity> collectionActivityList = collActResp.getCollectionHistoryList();
|
||||
if(collectionActivityList!=null&&!collectionActivityList.isEmpty()){
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(context, taskId);
|
||||
CollectionActivityDataAccess.delete(context, taskH.getUuid_task_h());
|
||||
for(CollectionActivity collectionActivity : collectionActivityList){
|
||||
if (collectionActivity.getUuid_collection_activity() == null){
|
||||
collectionActivity.setUuid_collection_activity(Tool.getUUID());
|
||||
}
|
||||
collectionActivity.setUuid_task_h(taskH.getUuid_task_h());
|
||||
}
|
||||
CollectionActivityDataAccess.add(getApplicationContext(), collectionActivityList);
|
||||
}
|
||||
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.data_saved), Toast.LENGTH_SHORT).show();
|
||||
}else{
|
||||
Toaster.warning(context, context.getString(R.string.failed_save_data));
|
||||
}
|
||||
button.setEnabled(true);
|
||||
button.setClickable(true);
|
||||
}
|
||||
|
||||
public void loadData() {
|
||||
new AsyncTask<Void, Void, CollectionActivityResponse>() {
|
||||
private ProgressDialog progressDialog;
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
progressDialog = ProgressDialog.show(CollectionActivityFragment.this,
|
||||
"", getString(R.string.progressWait), true);
|
||||
|
||||
}
|
||||
@Override
|
||||
protected CollectionActivityResponse doInBackground(Void... params) {
|
||||
CollectionActivityApi api = new CollectionActivityApi(CollectionActivityFragment.this);
|
||||
try {
|
||||
|
||||
//bong 21 mei 15 - check internet connection
|
||||
if(Tool.isInternetconnected(getApplicationContext())){
|
||||
return api.request(taskId);
|
||||
}
|
||||
return null;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(CollectionActivityResponse collectionActivityResponse) {
|
||||
super.onPostExecute(collectionActivityResponse);
|
||||
if (progressDialog!=null&&progressDialog.isShowing()){
|
||||
try {
|
||||
progressDialog.dismiss();
|
||||
} catch (Exception e) { FireCrash.log(e);
|
||||
}
|
||||
}
|
||||
if(!GlobalData.isRequireRelogin()) {
|
||||
if (collectionActivityResponse == null) {
|
||||
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getApplicationContext(), taskId);
|
||||
if (taskH != null) {
|
||||
List<CollectionActivity> collectionActivityList = CollectionActivityDataAccess.getAllbyTask(getApplicationContext(), taskH.getUuid_task_h());
|
||||
if (collectionActivityList != null && !collectionActivityList.isEmpty()) {
|
||||
TextView agreementNumber = (TextView) findViewById(R.id.agreementNumber);
|
||||
agreementNumber.setText(collectionActivityList.get(0).getAgreement_no());
|
||||
|
||||
TableLayout table = (TableLayout) findViewById(R.id.tableHeaders);
|
||||
int index = 1;
|
||||
|
||||
for (CollectionActivity item : collectionActivityList) {
|
||||
View row = LayoutInflater.from(CollectionActivityFragment.this).inflate(R.layout.view_row_collection_activity, table, false);
|
||||
TextView no = (TextView) row.findViewById(R.id.no);
|
||||
TextView activityDate = (TextView) row.findViewById(R.id.activityDate);
|
||||
TextView action = (TextView) row.findViewById(R.id.action);
|
||||
TextView collectorName = (TextView) row.findViewById(R.id.collectorName);
|
||||
|
||||
row.setTag(item);
|
||||
|
||||
no.setText(String.valueOf(index++));
|
||||
activityDate.setText(Formatter.formatDate(item.getActivity_date(), Global.DATE_STR_FORMAT));
|
||||
action.setText(item.getActivity());
|
||||
collectorName.setText(item.getCollector_name());
|
||||
|
||||
row.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
itemCollectionActivity = (CollectionActivity) v.getTag();
|
||||
Intent intent = new Intent(CollectionActivityFragment.this, CollectionActivityDetailFragment.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
table.addView(row);
|
||||
}
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(CollectionActivityFragment.this, CollectionActivityFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
} else {
|
||||
NiftyDialogBuilder.getInstance(CollectionActivityFragment.this)
|
||||
.withMessage(getString(R.string.no_data_found_offline))
|
||||
.withTitle(getString(R.string.no_data_found_offline))
|
||||
.isCancelableOnTouchOutside(false)
|
||||
.withButton1Text(getString(R.string.btnClose))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
NiftyDialogBuilder.getInstance(CollectionActivityFragment.this).dismiss();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (collectionActivityResponse.getStatus().getCode() != 0) {
|
||||
NiftyDialogBuilder.getInstance(CollectionActivityFragment.this)
|
||||
.withMessage(collectionActivityResponse.getStatus().getMessage())
|
||||
.withTitle(getString(R.string.server_error))
|
||||
.isCancelableOnTouchOutside(false)
|
||||
.withButton1Text(getString(R.string.btnClose))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
collActivityResponse = collectionActivityResponse;
|
||||
TextView agreementNumber = (TextView) findViewById(R.id.agreementNumber);
|
||||
agreementNumber.setText(collectionActivityResponse.getAgreementNo());
|
||||
|
||||
TableLayout table = (TableLayout) findViewById(R.id.tableHeaders);
|
||||
int index = 1;
|
||||
|
||||
for (CollectionActivity item : collectionActivityResponse.getCollectionHistoryList()) {
|
||||
View row = LayoutInflater.from(CollectionActivityFragment.this).inflate(R.layout.view_row_collection_activity, table, false);
|
||||
TextView no = (TextView) row.findViewById(R.id.no);
|
||||
TextView activityDate = (TextView) row.findViewById(R.id.activityDate);
|
||||
TextView action = (TextView) row.findViewById(R.id.action);
|
||||
TextView collectorName = (TextView) row.findViewById(R.id.collectorName);
|
||||
row.setTag(item);
|
||||
|
||||
no.setText(String.valueOf(index++));
|
||||
activityDate.setText(Formatter.formatDate(item.getActivity_date(), Global.DATE_STR_FORMAT));
|
||||
action.setText(item.getActivity());
|
||||
collectorName.setText(item.getCollector_name());
|
||||
|
||||
row.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
itemCollectionActivity = (CollectionActivity) v.getTag();
|
||||
Intent intent = new Intent(CollectionActivityFragment.this, CollectionActivityDetailFragment.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
table.addView(row);
|
||||
}
|
||||
if (collectionActivityResponse.getCollectionHistoryList().isEmpty()) {
|
||||
NiftyDialogBuilder.getInstance(CollectionActivityFragment.this)
|
||||
.withMessage(R.string.no_data_from_server)
|
||||
.withTitle(getString(R.string.info_capital))
|
||||
.isCancelableOnTouchOutside(false)
|
||||
.withButton1Text(getString(R.string.btnClose))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
} else {
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(CollectionActivityFragment.this, CollectionActivityFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,274 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.loyalti.mypointdashboard.DashboardMyPoint;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dummy.MyDashboardItemDummyAdapter;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.UserHelp.Bean.Dummy.UserHelpViewDummy;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import com.adins.mss.coll.loyalti.pointacquisitionmonthly.MonthlyPointsChartView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A fragment representing a list of Items.
|
||||
* <p/>
|
||||
* Activities containing this fragment MUST implement the {@link OnListFragmentInteractionListener}
|
||||
* interface.
|
||||
*/
|
||||
public class DashBoardFragment extends Fragment {
|
||||
|
||||
// TODO: Customize parameter argument names
|
||||
private static final String ARG_COLUMN_COUNT = "column-count";
|
||||
// TODO: Customize parameters
|
||||
private int mColumnCount = 1;
|
||||
private OnListFragmentInteractionListener mListener;
|
||||
RecyclerView recyclerView;
|
||||
MyDashBoardItemRecyclerViewAdapter adapter;
|
||||
private FirebaseAnalytics screenName;
|
||||
/**
|
||||
* Mandatory empty constructor for the fragment manager to instantiate the
|
||||
* fragment (e.g. upon screen orientation changes).
|
||||
*/
|
||||
public DashBoardFragment() {
|
||||
}
|
||||
|
||||
// TODO: Customize parameter initialization
|
||||
@SuppressWarnings("unused")
|
||||
public static DashBoardFragment newInstance(int columnCount) {
|
||||
DashBoardFragment fragment = new DashBoardFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putInt(ARG_COLUMN_COUNT, columnCount);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
screenName = FirebaseAnalytics.getInstance(getActivity());
|
||||
if (getArguments() != null) {
|
||||
mColumnCount = getArguments().getInt(ARG_COLUMN_COUNT);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_dashboard_item_list, container, false);
|
||||
recyclerView = (RecyclerView) view.findViewById(R.id.list);
|
||||
getActivity().setTitle(getString(R.string.dashboard_competition_page_title));
|
||||
Global.positionStack.push(1);
|
||||
String listKompetisi = GlobalData.getSharedGlobalData().getUser().getListKompetisi();
|
||||
String url_header = GlobalData.getSharedGlobalData().getURL_GET_DETAILKOMPETISI();
|
||||
|
||||
setupDashboardListener();
|
||||
|
||||
adapter = new MyDashBoardItemRecyclerViewAdapter(mListener, getActivity());
|
||||
|
||||
GetDetailListKompetisi getDetailListKompetisi = new GetDetailListKompetisi(recyclerView, adapter, this.getActivity());
|
||||
getDetailListKompetisi.setClassName(this.getClass().getSimpleName());
|
||||
getDetailListKompetisi.execute();
|
||||
// }
|
||||
// else {
|
||||
// try {
|
||||
// final NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(getActivity());
|
||||
// dialogBuilder.withTitle(getString(com.adins.mss.base.R.string.info_capital)).withMessage(getString(com.adins.mss.base.R.string.info_failgetdata))
|
||||
// .withButton1Text(getString(com.adins.mss.base.R.string.btnOk))
|
||||
// .setButton1Click(new View.OnClickListener() {
|
||||
//
|
||||
// @Override
|
||||
// public void onClick(View arg0) {
|
||||
// dialogBuilder.dismiss();
|
||||
// }
|
||||
// }).show();
|
||||
// } catch (Exception e) {
|
||||
// FireCrash.log(e);
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//// Toast.makeText(getActivity(), "No competition found. Please re-sync to open your details achievement" , Toast.LENGTH_SHORT).show();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// Set the adapter
|
||||
// if (view instanceof RecyclerView) {
|
||||
// Context context = view.getContext();
|
||||
// if (mColumnCount <= 1) {
|
||||
// recyclerView.setLayoutManager(new LinearLayoutManager(context));
|
||||
// } else {
|
||||
// recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount));
|
||||
// }
|
||||
// }
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_my_points), null);
|
||||
}
|
||||
|
||||
private void setupDashboardListener(){
|
||||
mListener = new OnListFragmentInteractionListener() {
|
||||
@Override
|
||||
public void onListFragmentInteraction(Bundle item) {
|
||||
//dummy redirect without data: soon to be changed
|
||||
goToMonthlyPointView(item);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void goToMonthlyPointView(Bundle bundle){
|
||||
MonthlyPointsChartView monthlyPointsChart = new MonthlyPointsChartView();
|
||||
monthlyPointsChart.setArguments(bundle);
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, monthlyPointsChart);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
mListener = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(final Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
if(checkUserHelpAvailability()){
|
||||
menu.findItem(R.id.mnGuide).setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if(item.getItemId() == R.id.mnGuide){
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
recyclerView.setAdapter(new MyDashboardItemDummyAdapter(this.getActivity(),recyclerView, adapter));
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
* <p/>
|
||||
* See the Android Training lesson <a href=
|
||||
* "http://developer.android.com/training/basics/fragments/communicating.html"
|
||||
* >Communicating with Other Fragments</a> for more information.
|
||||
*/
|
||||
public interface OnListFragmentInteractionListener {
|
||||
// TODO: Update argument type and name
|
||||
void onListFragmentInteraction(Bundle item);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private boolean checkUserHelpAvailability() {
|
||||
List<UserHelpViewDummy> userHelpViews = Global.userHelpDummyGuide.get(DashBoardFragment.class.getSimpleName());
|
||||
return Global.ENABLE_USER_HELP && userHelpViews != null;
|
||||
}
|
||||
// private void getDetailKompetisi(final Context activity ) {
|
||||
// new AsyncTask<Void, Void, String>() {
|
||||
// String errMsg = "";
|
||||
//
|
||||
// @Override
|
||||
// protected void onPreExecute() {
|
||||
// super.onPreExecute();
|
||||
// progressDialog = ProgressDialog.show(activity, "", "Please Wait", true);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected String doInBackground(Void... voids) {
|
||||
// if (Tool.isInternetconnected(activity)) {
|
||||
//
|
||||
// Gson gson = new GsonBuilder().setDateFormat("ddMMyyyyHHmmss").registerTypeHierarchyAdapter(byte[].class,
|
||||
// new GsonHelper.ByteArrayToBase64TypeAdapter()).create();
|
||||
// String result;
|
||||
// DetailKompetisiRequest requestType = new DetailKompetisiRequest();
|
||||
// ArrayList<String> data = null;
|
||||
// data = new ArrayList<>();
|
||||
// for(int i = 0 ; i < beanResps.getBeanResp().size() ; i++){
|
||||
// data.add(beanResps.getBeanResp().get(i).getMembershipProgramCode());
|
||||
// }
|
||||
// requestType.setMEMBERSHIP_PROGRAM_CODE(data);
|
||||
// requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
//// requestType.addItemToUnstructured(new KeyValue("imei", GlobalData.getSharedGlobalData().getImei()), false);
|
||||
//
|
||||
// String json = GsonHelper.toJson(requestType);
|
||||
// String url = GlobalData.getSharedGlobalData().getURL_GET_DETAILKOMPETISI();
|
||||
// boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
// boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
// HttpCryptedConnection httpConn = new HttpCryptedConnection(activity, encrypt, decrypt);
|
||||
// HttpConnectionResult serverResult = null;
|
||||
// try {
|
||||
// serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// errMsg = e.getMessage();
|
||||
// return errMsg;
|
||||
// }
|
||||
//
|
||||
// if(serverResult.getStatusCode() == 200){
|
||||
// try {
|
||||
// DetailKompetisiResponse response = gson.fromJson(serverResult.getResult(), DetailKompetisiResponse.class);
|
||||
// if (serverResult != null) {
|
||||
//
|
||||
// dataDetail = new DetailKompetisiResponse();
|
||||
// dataDetail = response;
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// return e.getMessage();
|
||||
// }
|
||||
// }else {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// return errMsg;
|
||||
// } else {
|
||||
// return errMsg;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void onPostExecute(String s) {
|
||||
// super.onPostExecute(s);
|
||||
// progressDialog.dismiss();
|
||||
// setupDashboardListener();
|
||||
// recyclerView.setAdapter(new MyDashBoardItemRecyclerViewAdapter(beanResps.getBeanResp(), dataDetail, mListener,getActivity()));
|
||||
// if (errMsg.length() != 0) {
|
||||
// Toast.makeText(activity, errMsg, Toast.LENGTH_SHORT).show();
|
||||
// }
|
||||
// }
|
||||
// }.execute();
|
||||
// }
|
||||
}
|
|
@ -0,0 +1,236 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.LinearLayout.LayoutParams;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
|
||||
import com.adins.mss.base.PrintActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.Lookup;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.db.dataaccess.LookupDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.image.Utils;
|
||||
import com.adins.mss.foundation.image.ViewImageActivity;
|
||||
import com.androidquery.AQuery;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DepositReportACDetailActivity extends Activity {
|
||||
protected static DepositReportH report;
|
||||
protected int total = 0;
|
||||
List<DepositReportD> reportDs;
|
||||
String cashierName;
|
||||
String bankAccount;
|
||||
String typeDep;
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState){
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.deposit_report_detail_layout_ac);
|
||||
AQuery query = new AQuery(this);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
cashierName = report.getCashier_name();
|
||||
if (report.getBank_account() != null) {
|
||||
bankAccount = report.getBank_account() +"-"+ report.getBank_name();
|
||||
typeDep = "Transfer";
|
||||
} else {
|
||||
bankAccount = "-";
|
||||
typeDep = "Cash";
|
||||
}
|
||||
|
||||
reportDs = report.getDepositReportDList();
|
||||
|
||||
Lookup lookup = LookupDataAccess.getOneByCodeAndlovGroup(getApplicationContext(), "BRANCH", report.getBranch_payment());
|
||||
|
||||
|
||||
query.id(R.id.txtBatchId).text(report.getBatch_id());
|
||||
query.id(R.id.txtBankName).text(lookup.getValue());
|
||||
query.id(R.id.txtDepTipe).text(typeDep);
|
||||
query.id(R.id.txtBank).text(bankAccount);
|
||||
query.id(R.id.imgEvidenceTransfer).image(Utils.byteToBitmap(report.getImage())).clicked(this, "ViewImage");
|
||||
|
||||
// query.id(R.id.txtAccountNumber).text(report.getBank_account());
|
||||
|
||||
ImageButton btnPrintDepReport = (ImageButton)findViewById(R.id.btnPrintDepReport);
|
||||
btnPrintDepReport.setVisibility(View.GONE);
|
||||
btnPrintDepReport.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(getApplicationContext(), PrintActivity.class);
|
||||
intent.putExtra("taskId", report.getBatch_id());
|
||||
intent.putExtra("isPrintDeposit", true);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
int no =1;
|
||||
TableLayout detailTable = (TableLayout)findViewById(R.id.tableLayout1);
|
||||
LayoutParams lp =new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f);
|
||||
|
||||
LinearLayout detail = new LinearLayout(this);
|
||||
detail.setOrientation(LinearLayout.HORIZONTAL);
|
||||
detail.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1.0f));
|
||||
detail.setBackgroundResource(R.color.tv_gray_light);
|
||||
|
||||
TextView lblDetail = new TextView(this);
|
||||
lblDetail.setText("Detail");
|
||||
lblDetail.setTextColor(Color.BLACK);
|
||||
lblDetail.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f));
|
||||
detail.addView(lblDetail);
|
||||
detailTable.addView(detail);
|
||||
|
||||
|
||||
for (int i = 0; i < reportDs.size(); i++) {
|
||||
try {
|
||||
DepositReportD reportD = reportDs.get(i);
|
||||
LinearLayout row = new LinearLayout(this);
|
||||
row.setOrientation(LinearLayout.HORIZONTAL);
|
||||
row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1.0f));
|
||||
if (no%2 == 0){ //if even number, set to blue background
|
||||
row.setBackgroundResource(R.color.tv_gray_light);
|
||||
}
|
||||
else {
|
||||
row.setBackgroundResource(R.color.tv_gray);
|
||||
}
|
||||
|
||||
TextView lblNo = new TextView(this);
|
||||
lblNo.setText(no+ ". ");
|
||||
lblNo.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
lblNo.setTextColor(Color.BLACK);
|
||||
lblNo.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.4f));
|
||||
row.addView(lblNo);
|
||||
|
||||
TaskH taskHs= TaskHDataAccess.getOneHeader(getApplicationContext(), reportD.getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if(taskHs!=null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
|
||||
TextView lblLabel = new TextView(this);
|
||||
lblLabel.setText(agreement_no);
|
||||
lblLabel.setTextColor(Color.BLACK);
|
||||
lblLabel.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f));
|
||||
row.addView(lblLabel);
|
||||
|
||||
TextView lblSpace = new TextView(this);
|
||||
lblSpace.setText(" : ");
|
||||
lblSpace.setTextColor(Color.BLACK);
|
||||
lblSpace.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
|
||||
row.addView(lblSpace);
|
||||
|
||||
try {
|
||||
TextView lblAnswer = new TextView(this);
|
||||
lblAnswer.setText(Tool.separateThousand(reportD.getDeposit_amt()));
|
||||
lblAnswer.setTextColor(Color.BLACK);
|
||||
lblAnswer.setGravity(Gravity.RIGHT);
|
||||
lblAnswer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f));
|
||||
row.addView(lblAnswer, lp);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
detailTable.addView(row);
|
||||
no++;
|
||||
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Keep
|
||||
public void ViewImage(View view){
|
||||
Global.isViewer =true;
|
||||
Bundle extras = new Bundle();
|
||||
extras.putByteArray(Global.BUND_KEY_IMAGE_BYTE, report.getImage());
|
||||
Intent intent = new Intent(this, ViewImageActivity.class);
|
||||
intent.putExtras(extras);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Keep
|
||||
private class RecapitulationListAdapter extends ArrayAdapter<DepositReportD> {
|
||||
|
||||
private final DepositReportD[] originalItems;
|
||||
|
||||
public RecapitulationListAdapter(Context context, DepositReportD[] objects) {
|
||||
super(context, R.layout.deposit_report_list_recap, objects);
|
||||
originalItems = objects;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return super.getCount() + 1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = null;
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.deposit_report_list_recap, parent, false);
|
||||
|
||||
|
||||
TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
TextView agreement= (TextView) view.findViewById(R.id.itemValueAgreement);
|
||||
RelativeLayout layout = (RelativeLayout)view.findViewById(R.id.agreementNumber_layout);
|
||||
LinearLayout backLayout = (LinearLayout)view.findViewById(R.id.itemBase);
|
||||
if(position%2==1)
|
||||
backLayout.setBackgroundResource(R.color.tv_gray);
|
||||
if (position == getCount() - 1) {
|
||||
label.setText("Total");
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems())));
|
||||
layout.setVisibility(View.GONE);
|
||||
} else {
|
||||
DepositReportD item = getItem(position);
|
||||
TaskH taskHs= TaskHDataAccess.getOneHeader(getApplicationContext(), item.getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if(taskHs!=null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
agreement.setText(agreement_no);
|
||||
value.setText(Tool.separateThousand(item.getDeposit_amt()));
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private int sumOfItems() {
|
||||
int sum = 0;
|
||||
try {
|
||||
for (DepositReportD item : originalItems) {
|
||||
String value = item.getDeposit_amt();
|
||||
if(value==null || value.equals("")) value = "0";
|
||||
int finalValue = Integer.parseInt(value);
|
||||
sum += finalValue;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
total = sum;
|
||||
// generatePrintResultDepReport(DepositReportDetailActivity.this, report);
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,687 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
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.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdBean;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdRequest;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdResponse;
|
||||
import com.adins.mss.base.depositreport.DetailTaskHRequest;
|
||||
import com.adins.mss.base.depositreport.DetailTaskHResponse;
|
||||
import com.adins.mss.base.depositreport.TaskLogHelper;
|
||||
import com.adins.mss.base.tasklog.TaskLog;
|
||||
import com.adins.mss.base.todolist.ToDoList;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.api.DepositReportReconcileApi;
|
||||
import com.adins.mss.coll.models.DepositReportAdapter;
|
||||
import com.adins.mss.coll.models.DepositReportReconcileResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.PrintItem;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintItemDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import static com.adins.mss.base.todolist.form.PriorityTabFragment.toDoList;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/3/2015.
|
||||
*/
|
||||
public class DepositReportACFragment extends Fragment {
|
||||
private static Menu mainMenu;
|
||||
DepositReportAdapter adapter;
|
||||
public List<TaskH> listTaskRecap;
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
mainMenu = menu;
|
||||
// inflater.inflate(R.menu.menu_deposit_report_fragment, menu);
|
||||
try {
|
||||
menu.findItem(R.id.menuMore).setVisible(true);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context activity) {
|
||||
setHasOptionsMenu(true);
|
||||
super.onAttach(activity);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
insertPrintItemForDeposit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_deposit_report_ac, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreportAC));
|
||||
|
||||
Button recapitulateButton = (Button) view.findViewById(R.id.recapitulateButton);
|
||||
recapitulateButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
recapitulate();
|
||||
}
|
||||
});
|
||||
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUserAC(getActivity());
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// TODO Auto-generated method stub
|
||||
DepositReportACDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportACDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
if(id== R.id.menuMore){
|
||||
mainMenu.findItem(R.id.recapitulation).setVisible(true);
|
||||
mainMenu.findItem(R.id.summary).setVisible(true);
|
||||
mainMenu.findItem(R.id.mnViewMap).setVisible(false);
|
||||
}
|
||||
if (item.getItemId() == R.id.recapitulation) {
|
||||
recapitulate();
|
||||
}
|
||||
if (item.getItemId() == R.id.summary) {
|
||||
summarize();
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void summarize() {
|
||||
DepositReportSummaryFragment fragment = new DepositReportSummaryFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private void recapitulate() {
|
||||
if(Tool.isInternetconnected(getActivity())) {
|
||||
initialize();
|
||||
// DepositReportRecapitulateFragment fragment = new DepositReportRecapitulateFragment();
|
||||
// FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
// transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
// transaction.replace(R.id.content_frame, fragment);
|
||||
// transaction.addToBackStack(null);
|
||||
// transaction.commit();
|
||||
} else {
|
||||
Toast.makeText(getActivity(), getActivity().getString(R.string.jsonParseFailed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
new AsyncTask<Void, Void, DepositReportReconcileResponse>() {
|
||||
private ProgressDialog progressDialog;
|
||||
boolean isError = false;
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
progressDialog = ProgressDialog.show(getActivity(),
|
||||
"", getString(R.string.progressWait), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DepositReportReconcileResponse doInBackground(Void... params) {
|
||||
if(Tool.isInternetconnected(getActivity())) {
|
||||
TaskLog log = new TaskLog(getActivity());
|
||||
List<TaskH> result = log.getListTaskLog();
|
||||
|
||||
List<TaskH> onlineLog = TaskLogHelper.getTaskLog(getActivity());
|
||||
if (onlineLog != null) {
|
||||
if (result == null) result = new ArrayList<>();
|
||||
List<String> uuidListTaskH = new ArrayList<>();
|
||||
|
||||
for (TaskH taskH : result) {
|
||||
uuidListTaskH.add(taskH.getUuid_task_h());
|
||||
}
|
||||
|
||||
Iterator<TaskH> iterator = onlineLog.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
TaskH taskH = iterator.next();
|
||||
|
||||
if (uuidListTaskH.contains(taskH.getUuid_task_h())) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
if (onlineLog.size() > 0) {
|
||||
for (TaskH taskH : onlineLog) {
|
||||
taskH.setUuid_user(GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
taskH.setStatus(TaskHDataAccess.STATUS_SEND_SENT);
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
result.add(taskH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (result != null && result.size() > 0) {
|
||||
for (TaskH taskH : result) {
|
||||
List<TaskD> taskDs = TaskDDataAccess.getAll(getActivity(), taskH.getUuid_task_h(),
|
||||
TaskDDataAccess.ALL_TASK);
|
||||
if (taskDs == null || taskDs.size() == 0) {
|
||||
DetailTaskHResponse response = null;
|
||||
|
||||
DetailTaskHRequest request = new DetailTaskHRequest();
|
||||
request.setUuidTaskH(taskH.getUuid_task_h());
|
||||
request.setFlag(taskH.getFlag());
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(),
|
||||
GlobalData.getSharedGlobalData().isEncrypt(), GlobalData.getSharedGlobalData().isDecrypt());
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_TASK_LOG();
|
||||
HttpConnectionResult serverResult;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, GsonHelper.toJson(request));
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, GsonHelper.toJson(request),
|
||||
Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
response = GsonHelper.fromJson(serverResult.getResult(),
|
||||
DetailTaskHResponse.class);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
isError = true;
|
||||
}
|
||||
} else {
|
||||
isError = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
isError = true;
|
||||
}
|
||||
|
||||
if (isError) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (response != null && response.getTaskDs() != null) {
|
||||
TaskDDataAccess.addOrReplace(getActivity(), response.getTaskDs());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final List<TaskD> reports = TaskDDataAccess.getTaskDTagTotal(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
|
||||
List<String> taskId = new ArrayList<String>();
|
||||
List<String> flag = new ArrayList<String>();
|
||||
TaskH taskH;
|
||||
for (TaskD taskD : reports) {
|
||||
taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
//if(taskH.getIs_reconciled() == null) {
|
||||
taskH.setIs_reconciled("0");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
//}
|
||||
taskId.add(taskH.getTask_id());
|
||||
flag.add(taskH.getFlag());
|
||||
}
|
||||
DepositReportReconcileApi api = new DepositReportReconcileApi(getActivity());
|
||||
|
||||
try {
|
||||
return api.request(taskId, flag);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}else{
|
||||
isError = true;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(DepositReportReconcileResponse depositReportReconcileResponse) {
|
||||
super.onPostExecute(depositReportReconcileResponse);
|
||||
if (progressDialog != null && progressDialog.isShowing()) {
|
||||
try {
|
||||
progressDialog.dismiss();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
if (isError) {
|
||||
Toast.makeText(getActivity(), getActivity().getString(R.string.jsonParseFailed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
if (depositReportReconcileResponse == null) {
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUserAC(getActivity());
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// TODO Auto-generated method stub
|
||||
DepositReportACDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportACDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
} else if (depositReportReconcileResponse.getStatus().getCode() != 0) {
|
||||
NiftyDialogBuilder.getInstance(getActivity())
|
||||
.withMessage(depositReportReconcileResponse.getStatus().getMessage())
|
||||
.withTitle(getString(R.string.server_error))
|
||||
.withButton1Text(getString(R.string.btnClose))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
getActivity().finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
return;
|
||||
} else {
|
||||
List<String> taskId = depositReportReconcileResponse.getTaskId();
|
||||
|
||||
if(taskId!=null){
|
||||
for (String task : taskId) {
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(), task);
|
||||
taskH.setIs_reconciled("1");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}
|
||||
}
|
||||
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUserAC(getActivity());
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// TODO Auto-generated method stub
|
||||
DepositReportDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
toDoList = new ToDoList(getActivity());
|
||||
listTaskRecap = toDoList.getListTaskInStatusForMultiUser(ToDoList.SEARCH_BY_ALL_SENT, "BATCHID");
|
||||
|
||||
if (listTaskRecap != null && listTaskRecap.size() >0 ) {
|
||||
BatchIdTask task = new BatchIdTask();
|
||||
task.execute();
|
||||
} else {
|
||||
DepositReportACRecapitulateFragment fragment = new DepositReportACRecapitulateFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
|
||||
private class BatchIdTask extends AsyncTask<Void, Void, List<DepositReportBatchIdBean>> {
|
||||
private ProgressDialog progressDialog;
|
||||
private String errMessage, message;
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
progressDialog = ProgressDialog.show(getContext(), "", getString(com.adins.mss.base.R.string.progressWait));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<DepositReportBatchIdBean> doInBackground(Void... Void) {
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
List<String> listUuidRequest = new ArrayList<>();
|
||||
for(TaskH taskHRequest : listTaskRecap){
|
||||
listUuidRequest.add(taskHRequest.getTask_id());
|
||||
}
|
||||
|
||||
DepositReportBatchIdRequest request = new DepositReportBatchIdRequest();
|
||||
request.setListTaskID(listUuidRequest);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String json = GsonHelper.toJson(request);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_BATCHID_LIST();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
String responseBody = serverResult.getResult();
|
||||
DepositReportBatchIdResponse response = GsonHelper.fromJson(responseBody, DepositReportBatchIdResponse.class);
|
||||
|
||||
if (response.getStatus().getCode() != 0) {
|
||||
message = response.getStatus().getMessage();
|
||||
return new ArrayList<>();
|
||||
} else {
|
||||
return response.getListBatchID();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (Global.IS_DEV) {
|
||||
e.printStackTrace();
|
||||
errMessage = e.getMessage();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.server_down);
|
||||
}
|
||||
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.no_internet_connection);
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<DepositReportBatchIdBean> batchTask) {
|
||||
super.onPostExecute(batchTask);
|
||||
progressDialog.dismiss();
|
||||
|
||||
if (batchTask != null && batchTask.size() > 0) {
|
||||
for(DepositReportBatchIdBean taskBean : batchTask){
|
||||
if("1".equalsIgnoreCase(taskBean.getFlagDeposit()) &&
|
||||
(taskBean.getBatchId() !=null && !taskBean.getBatchId().isEmpty())){
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(),taskBean.getTaskId());
|
||||
taskH.setBatch_id(taskBean.getBatchId());
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}else if("0".equalsIgnoreCase(taskBean.getFlagDeposit())&&
|
||||
(taskBean.getBatchId() == null || taskBean.getBatchId().isEmpty())){
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(),taskBean.getTaskId());
|
||||
if("0".equalsIgnoreCase(taskH.getIs_reconciled())){
|
||||
taskH.setIs_reconciled("1");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(message != null) {
|
||||
Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show();
|
||||
} else if (errMessage != null) {
|
||||
Toast.makeText(getContext(), errMessage, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
DepositReportACRecapitulateFragment fragment = new DepositReportACRecapitulateFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(){
|
||||
super.onResume();
|
||||
try {
|
||||
if (adapter != null) {
|
||||
// loadData();
|
||||
}
|
||||
}catch (Exception e){
|
||||
if(Global.IS_DEV)
|
||||
e.printStackTrace();
|
||||
}
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreportAC));
|
||||
}
|
||||
|
||||
|
||||
public void insertPrintItemForDeposit(){
|
||||
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getActivity(),
|
||||
"wasInsertedDepositPrint", Context.MODE_PRIVATE);
|
||||
String isInsert = sharedPref.getString("isInsertDepositPrint", Global.FALSE_STRING);
|
||||
if(isInsert.equals(Global.FALSE_STRING)){
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
sharedPrefEditor.putString("isInsertDepositPrint", Global.TRUE_STRING);
|
||||
sharedPrefEditor.commit();
|
||||
|
||||
// PrintItemDataAccess.delete(getActivity(), "DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
|
||||
String usr_crt = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
Date date = Tool.getSystemDateTime();
|
||||
|
||||
PrintItem itemLogo = new PrintItem(Tool.getUUID());
|
||||
itemLogo.setPrint_type_id(Global.PRINT_LOGO);
|
||||
itemLogo.setPrint_item_label("LOGO");
|
||||
itemLogo.setPrint_item_order(1);
|
||||
itemLogo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemLogo);
|
||||
|
||||
PrintItem itemBranchName = new PrintItem(Tool.getUUID());
|
||||
itemBranchName.setPrint_type_id(Global.PRINT_BRANCH_NAME);
|
||||
itemBranchName.setPrint_item_label("Branch Name");
|
||||
itemBranchName.setPrint_item_order(2);
|
||||
itemBranchName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBranchName);
|
||||
|
||||
PrintItem itemBranchAddr = new PrintItem(Tool.getUUID());
|
||||
itemBranchAddr.setPrint_type_id(Global.PRINT_BRANCH_ADDRESS);
|
||||
itemBranchAddr.setPrint_item_label("Branch Address");
|
||||
itemBranchAddr.setPrint_item_order(2);
|
||||
itemBranchAddr.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBranchAddr);
|
||||
|
||||
PrintItem itemNewLineE= new PrintItem(Tool.getUUID());
|
||||
itemNewLineE.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLineE.setPrint_item_label("999New Line");
|
||||
itemNewLineE.setPrint_item_order(3);
|
||||
itemNewLineE.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineE);
|
||||
|
||||
/*PrintItem itemNewLine1= new PrintItem(Tool.getUUID());
|
||||
itemNewLine1.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine1.setPrint_item_label("998New Line");
|
||||
itemNewLine1.setPrint_item_order(4);
|
||||
itemNewLine1.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine1);*/
|
||||
|
||||
PrintItem itemTitle = new PrintItem(Tool.getUUID());
|
||||
itemTitle.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
itemTitle.setPrint_item_label("Bukti Deposit Report");
|
||||
itemTitle.setPrint_item_order(10);
|
||||
itemTitle.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTitle);
|
||||
|
||||
/*PrintItem itemNewLine2= new PrintItem(Tool.getUUID());
|
||||
itemNewLine2.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine2.setPrint_item_label("998New Line");
|
||||
itemNewLine2.setPrint_item_order(4);
|
||||
itemNewLine2.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine2);*/
|
||||
|
||||
PrintItem itemBatchId = new PrintItem(Tool.getUUID());
|
||||
itemBatchId.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemBatchId.setPrint_item_label("Batch ID");
|
||||
itemBatchId.setPrint_item_order(11);
|
||||
itemBatchId.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBatchId);
|
||||
|
||||
PrintItem itemCollName = new PrintItem(Tool.getUUID());
|
||||
itemCollName.setPrint_type_id(Global.PRINT_USER_NAME);
|
||||
itemCollName.setPrint_item_label("Coll Name");
|
||||
itemCollName.setPrint_item_order(12);
|
||||
itemCollName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemCollName);
|
||||
|
||||
PrintItem itemTransferBy = new PrintItem(Tool.getUUID());
|
||||
itemTransferBy.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemTransferBy.setPrint_item_label("Transfer By");
|
||||
itemTransferBy.setPrint_item_order(20);
|
||||
itemTransferBy.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTransferBy);
|
||||
|
||||
PrintItem itemCashierName = new PrintItem(Tool.getUUID());
|
||||
itemCashierName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemCashierName.setPrint_item_label("Cashier Name");
|
||||
itemCashierName.setPrint_item_order(30);
|
||||
itemCashierName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemCashierName);
|
||||
|
||||
PrintItem itemAccountNo = new PrintItem(Tool.getUUID());
|
||||
itemAccountNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemAccountNo.setPrint_item_label("Account No");
|
||||
itemAccountNo.setPrint_item_order(30);
|
||||
itemAccountNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemAccountNo);
|
||||
|
||||
PrintItem itemBankName = new PrintItem(Tool.getUUID());
|
||||
itemBankName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemBankName.setPrint_item_label("Bank Name");
|
||||
itemBankName.setPrint_item_order(40);
|
||||
itemBankName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBankName);
|
||||
|
||||
PrintItem itemTransDate = new PrintItem(Tool.getUUID());
|
||||
itemTransDate.setPrint_type_id(Global.PRINT_TIMESTAMP);
|
||||
itemTransDate.setPrint_item_label("Print Date");
|
||||
itemTransDate.setPrint_item_order(42);
|
||||
itemTransDate.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTransDate);
|
||||
|
||||
PrintItem itemNewLine3= new PrintItem(Tool.getUUID());
|
||||
itemNewLine3.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine3.setPrint_item_label("999New Line");
|
||||
itemNewLine3.setPrint_item_order(45);
|
||||
itemNewLine3.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine3);
|
||||
|
||||
PrintItem itemTitleDetail = new PrintItem(Tool.getUUID());
|
||||
itemTitleDetail.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
itemTitleDetail.setPrint_item_label("Deposit Detail");
|
||||
itemTitleDetail.setPrint_item_order(50);
|
||||
itemTitleDetail.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTitleDetail);
|
||||
|
||||
int ANO_order = 60;
|
||||
int DAM_order = 61;
|
||||
int DIV_order = 62;
|
||||
for(int i = 0 ; i<30 ; i++){
|
||||
PrintItem itemAgreementNo = new PrintItem(Tool.getUUID());
|
||||
itemAgreementNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemAgreementNo.setPrint_item_label(i+"Agreement No");
|
||||
itemAgreementNo.setPrint_item_order(ANO_order);
|
||||
itemAgreementNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemAgreementNo);
|
||||
|
||||
PrintItem itemDepositAmt= new PrintItem(Tool.getUUID());
|
||||
itemDepositAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemDepositAmt.setPrint_item_label(i+"Deposit Amount");
|
||||
itemDepositAmt.setPrint_item_order(DAM_order);
|
||||
itemDepositAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemDepositAmt);
|
||||
|
||||
PrintItem itemNewLine= new PrintItem(Tool.getUUID());
|
||||
itemNewLine.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine.setPrint_item_label(i+"New Line");
|
||||
itemNewLine.setPrint_item_order(DIV_order);
|
||||
itemNewLine.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine);
|
||||
|
||||
ANO_order=ANO_order+3;
|
||||
DAM_order=DAM_order+3;
|
||||
DIV_order=DIV_order+3;
|
||||
}
|
||||
|
||||
PrintItem itemTotalAmt= new PrintItem(Tool.getUUID());
|
||||
itemTotalAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemTotalAmt.setPrint_item_label("Total");
|
||||
itemTotalAmt.setPrint_item_order(200);
|
||||
itemTotalAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTotalAmt);
|
||||
|
||||
PrintItem itemNewLineT= new PrintItem(Tool.getUUID());
|
||||
itemNewLineT.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLineT.setPrint_item_label("999New Line");
|
||||
itemNewLineT.setPrint_item_order(210);
|
||||
itemNewLineT.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,362 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.Gravity;
|
||||
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.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.LinearLayout.LayoutParams;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.checkin.CheckInManager;
|
||||
import com.adins.mss.base.commons.SecondHelper;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.PrintResult;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintResultDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.image.Utils;
|
||||
import com.adins.mss.foundation.image.ViewImageActivity;
|
||||
import com.adins.mss.foundation.location.UpdateMenuIcon;
|
||||
import com.androidquery.AQuery;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
|
||||
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
|
||||
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
|
||||
|
||||
public class DepositReportDetailActivity extends AppCompatActivity{
|
||||
public static DepositReportH report;
|
||||
protected int total = 0;
|
||||
List<DepositReportD> reportDs;
|
||||
String cashierName;
|
||||
String bankAccount;
|
||||
// Local Bluetooth adapter
|
||||
private BluetoothAdapter mBluetoothAdapter = null;
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
super.onBackPressed();
|
||||
try {
|
||||
this.getFragmentManager().popBackStack();
|
||||
} catch (Exception e) {
|
||||
for (int i = 1; i < this.getFragmentManager().getBackStackEntryCount(); i++)
|
||||
this.getFragmentManager().popBackStack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater menuInflater = getMenuInflater();
|
||||
menuInflater.inflate(com.adins.mss.base.R.menu.main_menu, menu);
|
||||
mainMenu = menu;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
updateMenuIcon(Global.isGPS);
|
||||
|
||||
if(Global.ENABLE_USER_HELP &&
|
||||
(Global.userHelpGuide.get(DepositReportDetailActivity.this.getClass().getSimpleName())!=null) ||
|
||||
Global.userHelpDummyGuide.get(DepositReportDetailActivity.this.getClass().getSimpleName()) != null){
|
||||
menu.findItem(com.adins.mss.base.R.id.mnGuide).setVisible(true);
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
private static Menu mainMenu;
|
||||
|
||||
public static void updateMenuIcon(boolean isGPS) {
|
||||
UpdateMenuIcon uItem = new UpdateMenuIcon();
|
||||
uItem.updateGPSIcon(mainMenu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
if (id == com.adins.mss.base.R.id.mnGPS) {
|
||||
if (Global.LTM != null) {
|
||||
if (Global.LTM.getIsConnected()) {
|
||||
Global.LTM.removeLocationListener();
|
||||
Global.LTM.connectLocationClient();
|
||||
} else {
|
||||
CheckInManager.startGPSTracking(getApplicationContext());
|
||||
}
|
||||
Animation a = AnimationUtils.loadAnimation(this, com.adins.mss.base.R.anim.gps_rotate);
|
||||
findViewById(com.adins.mss.base.R.id.mnGPS).startAnimation(a);
|
||||
}
|
||||
}
|
||||
|
||||
if(id == com.adins.mss.base.R.id.mnGuide && !Global.BACKPRESS_RESTRICTION){
|
||||
UserHelp.reloadUserHelp(getApplicationContext(), DepositReportDetailActivity.this);
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(DepositReportDetailActivity.this, DepositReportDetailActivity.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState){
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.new_activity_deposit_report_detail);
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(com.adins.mss.base.R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.title_mn_depositreport));
|
||||
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
AQuery query = new AQuery(this);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
cashierName = report.getCashier_name();
|
||||
bankAccount = report.getBank_account();
|
||||
|
||||
reportDs = report.getDepositReportDList();
|
||||
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
|
||||
|
||||
query.id(R.id.txtBatchId).text(report.getBatch_id());
|
||||
if(cashierName!=null&&cashierName.length()>0){
|
||||
query.id(R.id.txttransferBy).text("Cashier");
|
||||
query.id(R.id.txtCashierName).text(cashierName);
|
||||
query.id(R.id.rowBankName).visibility(View.GONE);
|
||||
query.id(R.id.rowAccountNumber).visibility(View.GONE);
|
||||
query.id(R.id.rowEvidenceTransfer).visibility(View.GONE);
|
||||
}else{
|
||||
query.id(R.id.txttransferBy).text("Bank");
|
||||
query.id(R.id.rowCashierName).visibility(View.GONE);
|
||||
query.id(R.id.txtBankName).text(report.getBank_name());
|
||||
query.id(R.id.txtAccountNumber).text(report.getBank_account());
|
||||
query.id(R.id.imgEvidenceTransfer).image(Utils.byteToBitmap(report.getImage())).clicked(this, "ViewImage");
|
||||
}
|
||||
|
||||
ImageButton btnPrintDepReport = (ImageButton)findViewById(R.id.btnPrintDepReport);
|
||||
btnPrintDepReport.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (!mBluetoothAdapter.isEnabled()){
|
||||
mBluetoothAdapter.enable();
|
||||
Toast.makeText(DepositReportDetailActivity.this, getString(R.string.bluetooth_message), Toast.LENGTH_SHORT).show();
|
||||
}else{
|
||||
SecondHelper.PrintParams printParams = new SecondHelper.PrintParams(report.getBatch_id(), null, true, null);
|
||||
SecondHelper.Companion.doPrint(v.getContext(), printParams);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
TableLayout detailTable = (TableLayout)findViewById(R.id.tableLayout1);
|
||||
LayoutParams lp =new LayoutParams(MATCH_PARENT, MATCH_PARENT,0.25f);
|
||||
|
||||
LinearLayout detail = new LinearLayout(this);
|
||||
detail.setOrientation(LinearLayout.HORIZONTAL);
|
||||
detail.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1.0f));
|
||||
|
||||
TextView lblDetail = new TextView(this);
|
||||
lblDetail.setText("Detail");
|
||||
lblDetail.setTextColor(Color.BLACK);
|
||||
lblDetail.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT,0.25f));
|
||||
detail.addView(lblDetail);
|
||||
detailTable.addView(detail);
|
||||
|
||||
int total = 0;
|
||||
|
||||
for (int i = 0; i < reportDs.size(); i++) {
|
||||
try {
|
||||
DepositReportD reportD = reportDs.get(i);
|
||||
LinearLayout row = new LinearLayout(this);
|
||||
row.setOrientation(LinearLayout.HORIZONTAL);
|
||||
row.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1.0f));
|
||||
String agreement_no = reportD.getAgreement_no();
|
||||
if(agreement_no == null){
|
||||
List <PrintResult> pr = PrintResultDataAccess.getAll(getApplicationContext(), report.getBatch_id());
|
||||
for(PrintResult res:pr){
|
||||
if("Agreement No".equalsIgnoreCase(res.getLabel()) && null!=res.getValue()){
|
||||
agreement_no = res.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TextView lblLabel = new TextView(this);
|
||||
lblLabel.setText(agreement_no);
|
||||
lblLabel.setTextColor(Color.BLACK);
|
||||
lblLabel.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT,0.25f));
|
||||
row.addView(lblLabel);
|
||||
|
||||
TextView lblSpace = new TextView(this);
|
||||
lblSpace.setText(" : ");
|
||||
lblSpace.setTextColor(Color.BLACK);
|
||||
lblSpace.setLayoutParams(new LayoutParams(WRAP_CONTENT, MATCH_PARENT));
|
||||
row.addView(lblSpace);
|
||||
|
||||
try {
|
||||
TextView lblAnswer = new TextView(this);
|
||||
lblAnswer.setText(Tool.separateThousand(reportD.getDeposit_amt()));
|
||||
lblAnswer.setTextColor(Color.BLACK);
|
||||
lblAnswer.setGravity(Gravity.RIGHT);
|
||||
lblAnswer.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT,0.25f));
|
||||
row.addView(lblAnswer, lp);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
|
||||
detailTable.addView(row);
|
||||
|
||||
String value = reportD.getDeposit_amt();
|
||||
if(value==null || value.equals("")) value = "0";
|
||||
total += Integer.parseInt(value);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
TextView txtTotal = (TextView) findViewById(R.id.txtTotal);
|
||||
txtTotal.setText(Tool.separateThousand(total));
|
||||
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(DepositReportDetailActivity.this,DepositReportDetailActivity.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_deposit_report_detail), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
@Keep
|
||||
public void ViewImage(View view){
|
||||
Global.getSharedGlobal().setIsViewer(true);
|
||||
Bundle extras = new Bundle();
|
||||
extras.putByteArray(Global.BUND_KEY_IMAGE_BYTE, report.getImage());
|
||||
Intent intent = new Intent(this, ViewImageActivity.class);
|
||||
intent.putExtras(extras);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Keep
|
||||
private class RecapitulationListAdapter extends ArrayAdapter<DepositReportD> {
|
||||
|
||||
private final DepositReportD[] originalItems;
|
||||
|
||||
public RecapitulationListAdapter(Context context, DepositReportD[] objects) {
|
||||
super(context, R.layout.deposit_report_list_recap, objects);
|
||||
originalItems = objects;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return super.getCount() + 1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = null;
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.deposit_report_list_recap, parent, false);
|
||||
|
||||
|
||||
TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
TextView agreement= (TextView) view.findViewById(R.id.itemValueAgreement);
|
||||
|
||||
if (position == getCount() - 1) {
|
||||
label.setText("Total");
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems())));
|
||||
} else {
|
||||
DepositReportD item = getItem(position);
|
||||
TaskH taskHs= TaskHDataAccess.getOneHeader(getApplicationContext(), item.getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if(taskHs!=null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
agreement.setText(agreement_no);
|
||||
value.setText(Tool.separateThousand(item.getDeposit_amt()));
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private int sumOfItems() {
|
||||
int sum = 0;
|
||||
try {
|
||||
for (DepositReportD item : originalItems) {
|
||||
String value = item.getDeposit_amt();
|
||||
if(value==null || value.equals("")) value = "0";
|
||||
int finalValue = Integer.parseInt(value);
|
||||
sum += finalValue;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
}
|
||||
total = sum;
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,545 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.fragment.app.Fragment;
|
||||
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.ListView;
|
||||
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.fragments.view.DepositReportView;
|
||||
import com.adins.mss.coll.models.DepositReportAdapter;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/3/2015.
|
||||
*/
|
||||
public class DepositReportFragment extends Fragment {
|
||||
private static Menu mainMenu;
|
||||
DepositReportAdapter adapter;
|
||||
private ListView listRecapitulation;
|
||||
private DepositReportView view;
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
view.onCreateOptionsMenu(menu);
|
||||
// mainMenu = menu;
|
||||
// inflater.inflate(R.menu.menu_deposit_report_fragment, menu);
|
||||
try {
|
||||
menu.findItem(R.id.menuMore).setVisible(true);
|
||||
} catch (Exception e) { FireCrash.log(e);
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context activity) {
|
||||
setHasOptionsMenu(true);
|
||||
super.onAttach(activity);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
view = new DepositReportView(this.getActivity());
|
||||
view.publish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
screenName = FirebaseAnalytics.getInstance(getActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(){
|
||||
super.onResume();
|
||||
try {
|
||||
if (adapter != null) {
|
||||
// loadData();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
if(Global.IS_DEV)
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreport));
|
||||
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_deposit_report), null);
|
||||
|
||||
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_depositreport));
|
||||
// getActivity().getActionBar().removeAllTabs();
|
||||
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return view.layoutInflater(inflater, container);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View mView, Bundle savedInstanceState) {
|
||||
super.onViewCreated(mView, savedInstanceState);
|
||||
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreport));
|
||||
|
||||
view.onCreate();
|
||||
// Button recapitulateButton = (Button) view.findViewById(R.id.recapitulateButton);
|
||||
// recapitulateButton.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// recapitulate();
|
||||
// }
|
||||
// });
|
||||
|
||||
// initialize();
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(DepositReportFragment.this.getActivity(),DepositReportFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
view.onOptionsItemSelected(id);
|
||||
if(id==R.id.mnGuide){
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(DepositReportFragment.this.getActivity(), DepositReportFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
}
|
||||
// if(id==R.id.menuMore){
|
||||
// mainMenu.findItem(R.id.recapitulation).setVisible(true);
|
||||
// mainMenu.findItem(R.id.summary).setVisible(true);
|
||||
// mainMenu.findItem(R.id.mnViewMap).setVisible(false);
|
||||
// }
|
||||
// if (item.getItemId() == R.id.recapitulation) {
|
||||
// recapitulate();
|
||||
// }
|
||||
// if (item.getItemId() == R.id.summary) {
|
||||
// summarize();
|
||||
// }
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
// private void summarize() {
|
||||
// DepositReportSummaryFragment fragment = new DepositReportSummaryFragment();
|
||||
// FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
// transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
// transaction.replace(R.id.content_frame, fragment);
|
||||
// transaction.addToBackStack(null);
|
||||
// transaction.commit();
|
||||
// }
|
||||
//
|
||||
// private void recapitulate() {
|
||||
// DepositReportRecapitulateFragment fragment = new DepositReportRecapitulateFragment();
|
||||
// FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
// transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
// transaction.replace(R.id.content_frame, fragment);
|
||||
// transaction.addToBackStack(null);
|
||||
// transaction.commit();
|
||||
// }
|
||||
|
||||
// private void initialize() {
|
||||
// loadData();
|
||||
// }
|
||||
//
|
||||
// private void loadData() {
|
||||
// new AsyncTask<Void, Void, DepositReportReconcileResponse>() {
|
||||
// private ProgressDialog progressDialog;
|
||||
// boolean isError = false;
|
||||
// @Override
|
||||
// protected void onPreExecute() {
|
||||
// progressDialog = ProgressDialog.show(getActivity(),
|
||||
// "", getString(R.string.progressWait), true);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected DepositReportReconcileResponse doInBackground(Void... params) {
|
||||
// if(Tool.isInternetconnected(getActivity())) {
|
||||
// TaskLogImpl log = new TaskLogImpl(getActivity());
|
||||
// List<TaskH> result = log.getListTaskLog();
|
||||
//
|
||||
// List<TaskH> onlineLog = TaskLogHelper.getTaskLog(getActivity());
|
||||
// if (onlineLog != null) {
|
||||
// if (result == null) result = new ArrayList<>();
|
||||
// List<String> uuidListTaskH = new ArrayList<>();
|
||||
//
|
||||
// for (TaskH taskH : result) {
|
||||
// uuidListTaskH.add(taskH.getUuid_task_h());
|
||||
// }
|
||||
//
|
||||
// Iterator<TaskH> iterator = onlineLog.iterator();
|
||||
// while (iterator.hasNext()) {
|
||||
// TaskH taskH = iterator.next();
|
||||
//
|
||||
// if (uuidListTaskH.contains(taskH.getUuid_task_h())) {
|
||||
// iterator.remove();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (onlineLog.size() > 0) {
|
||||
// for (TaskH taskH : onlineLog) {
|
||||
// taskH.setUuid_user(GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
// taskH.setStatus(TaskHDataAccess.STATUS_SEND_SENT);
|
||||
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
// result.add(taskH);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (result != null && result.size() > 0) {
|
||||
// for (TaskH taskH : result) {
|
||||
// List<TaskD> taskDs = TaskDDataAccess.getAll(getActivity(), taskH.getUuid_task_h(),
|
||||
// TaskDDataAccess.ALL_TASK);
|
||||
// if (taskDs == null || taskDs.size() == 0) {
|
||||
// DetailTaskHResponse response = null;
|
||||
//
|
||||
//
|
||||
// DetailTaskHRequest request = new DetailTaskHRequest();
|
||||
// request.setUuidTaskH(taskH.getUuid_task_h());
|
||||
// request.setFlag(taskH.getFlag());
|
||||
// request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
//
|
||||
// HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(),
|
||||
// GlobalData.getSharedGlobalData().isEncrypt(), GlobalData.getSharedGlobalData().isDecrypt());
|
||||
// String url = GlobalData.getSharedGlobalData().getURL_GET_TASK_LOG();
|
||||
// HttpConnectionResult serverResult;
|
||||
//
|
||||
// try {
|
||||
// serverResult = httpConn.requestToServer(url, GsonHelper.toJson(request),
|
||||
// Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
//
|
||||
// if (serverResult != null && serverResult.isOK()) {
|
||||
// try {
|
||||
// response = GsonHelper.fromJson(serverResult.getResult(),
|
||||
// DetailTaskHResponse.class);
|
||||
// } catch (Exception e) { FireCrash.log(e);
|
||||
// e.printStackTrace();
|
||||
// isError = true;
|
||||
// }
|
||||
// } else {
|
||||
// isError = true;
|
||||
// }
|
||||
// } catch (Exception e) { FireCrash.log(e);
|
||||
// e.printStackTrace();
|
||||
// isError = true;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if (isError) {
|
||||
// break;
|
||||
// }
|
||||
//
|
||||
// if (response != null && response.getTaskDs() != null) {
|
||||
// TaskDDataAccess.addOrReplace(getActivity(), response.getTaskDs());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// final List<TaskD> reports = TaskDDataAccess.getTaskDTagTotal(getActivity());
|
||||
//
|
||||
// List<String> taskId = new ArrayList<String>();
|
||||
// TaskH taskH;
|
||||
// for (TaskD taskD : reports) {
|
||||
// taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
// //if(taskH.getIs_reconciled() == null) {
|
||||
// taskH.setIs_reconciled("0");
|
||||
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
// //}
|
||||
// taskId.add(taskH.getTask_id());
|
||||
// }
|
||||
// DepositReportReconcileApi api = new DepositReportReconcileApi(getActivity());
|
||||
//
|
||||
// try {
|
||||
// return api.request(taskId);
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// return null;
|
||||
// }
|
||||
// }else{
|
||||
// isError = true;
|
||||
// return null;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void onPostExecute(DepositReportReconcileResponse depositReportReconcileResponse) {
|
||||
// super.onPostExecute(depositReportReconcileResponse);
|
||||
// if (progressDialog != null && progressDialog.isShowing()) {
|
||||
// try {
|
||||
// progressDialog.dismiss();
|
||||
// } catch (Exception e) { FireCrash.log(e);
|
||||
// }
|
||||
// }
|
||||
// if (isError) {
|
||||
// Toast.makeText(getActivity(), getActivity().getString(R.string.jsonParseFailed), Toast.LENGTH_SHORT).show();
|
||||
// }
|
||||
// if (depositReportReconcileResponse == null) {
|
||||
// final List<DepositReportH> reports =
|
||||
// DepositReportHDataAccess.getAll(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
// ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
// adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
// list.setAdapter(adapter);
|
||||
//
|
||||
// list.setOnItemClickListener(new OnItemClickListener() {
|
||||
// @Override
|
||||
// public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// // TODO Auto-generated method stub
|
||||
// DepositReportDetailActivity.report = reports.get(position);
|
||||
// Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
// startActivity(intent);
|
||||
// }
|
||||
// });
|
||||
// } else if (depositReportReconcileResponse.getStatus().getCode() != 0) {
|
||||
// NiftyDialogBuilder.getInstance(getActivity())
|
||||
// .withMessage(depositReportReconcileResponse.getStatus().getMessage())
|
||||
// .withTitle(getString(R.string.server_error))
|
||||
// .withButton1Text(getString(R.string.btnClose))
|
||||
// .setButton1Click(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// NiftyDialogBuilder.getInstance(getActivity()).dismiss();
|
||||
// }
|
||||
// })
|
||||
// .show();
|
||||
// return;
|
||||
// } else {
|
||||
// List<String> taskId = depositReportReconcileResponse.getTaskId();
|
||||
//
|
||||
// for (String task : taskId) {
|
||||
// TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(), task);
|
||||
// taskH.setIs_reconciled("1");
|
||||
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
// }
|
||||
//
|
||||
// final List<DepositReportH> reports =
|
||||
// DepositReportHDataAccess.getAll(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
// ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
// adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
// list.setAdapter(adapter);
|
||||
//
|
||||
// list.setOnItemClickListener(new OnItemClickListener() {
|
||||
// @Override
|
||||
// public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// // TODO Auto-generated method stub
|
||||
// DepositReportDetailActivity.report = reports.get(position);
|
||||
// Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
// startActivity(intent);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// }.execute();
|
||||
// }
|
||||
|
||||
// public void insertPrintItemForDeposit(){
|
||||
// ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getActivity(),
|
||||
// "wasInsertedDepositPrint", Context.MODE_PRIVATE);
|
||||
// String isInsert = sharedPref.getString("isInsertDepositPrint", Global.FALSE_STRING);
|
||||
// if(isInsert.equals(Global.FALSE_STRING)){
|
||||
// ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
// sharedPrefEditor.putString("isInsertDepositPrint", Global.TRUE_STRING);
|
||||
// sharedPrefEditor.commit();
|
||||
//
|
||||
//// PrintItemDataAccess.delete(getActivity(), "DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
//
|
||||
// String usr_crt = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
// Date date = Tool.getSystemDateTime();
|
||||
//
|
||||
// PrintItem itemLogo = new PrintItem(Tool.getUUID());
|
||||
// itemLogo.setPrint_type_id(Global.PRINT_LOGO);
|
||||
// itemLogo.setPrint_item_label("LOGO");
|
||||
// itemLogo.setPrint_item_order(1);
|
||||
// itemLogo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemLogo);
|
||||
//
|
||||
// PrintItem itemBranchName = new PrintItem(Tool.getUUID());
|
||||
// itemBranchName.setPrint_type_id(Global.PRINT_BRANCH_NAME);
|
||||
// itemBranchName.setPrint_item_label("Branch Name");
|
||||
// itemBranchName.setPrint_item_order(2);
|
||||
// itemBranchName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemBranchName);
|
||||
//
|
||||
// PrintItem itemBranchAddr = new PrintItem(Tool.getUUID());
|
||||
// itemBranchAddr.setPrint_type_id(Global.PRINT_BRANCH_ADDRESS);
|
||||
// itemBranchAddr.setPrint_item_label("Branch Address");
|
||||
// itemBranchAddr.setPrint_item_order(2);
|
||||
// itemBranchAddr.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemBranchAddr);
|
||||
//
|
||||
// PrintItem itemNewLineE= new PrintItem(Tool.getUUID());
|
||||
// itemNewLineE.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
// itemNewLineE.setPrint_item_label("999New Line");
|
||||
// itemNewLineE.setPrint_item_order(3);
|
||||
// itemNewLineE.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineE);
|
||||
//
|
||||
// /*PrintItem itemNewLine1= new PrintItem(Tool.getUUID());
|
||||
// itemNewLine1.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
// itemNewLine1.setPrint_item_label("998New Line");
|
||||
// itemNewLine1.setPrint_item_order(4);
|
||||
// itemNewLine1.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine1);*/
|
||||
//
|
||||
// PrintItem itemTitle = new PrintItem(Tool.getUUID());
|
||||
// itemTitle.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
// itemTitle.setPrint_item_label("Bukti Deposit Report");
|
||||
// itemTitle.setPrint_item_order(10);
|
||||
// itemTitle.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemTitle);
|
||||
//
|
||||
// /*PrintItem itemNewLine2= new PrintItem(Tool.getUUID());
|
||||
// itemNewLine2.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
// itemNewLine2.setPrint_item_label("998New Line");
|
||||
// itemNewLine2.setPrint_item_order(4);
|
||||
// itemNewLine2.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine2);*/
|
||||
//
|
||||
// PrintItem itemBatchId = new PrintItem(Tool.getUUID());
|
||||
// itemBatchId.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemBatchId.setPrint_item_label("Batch ID");
|
||||
// itemBatchId.setPrint_item_order(11);
|
||||
// itemBatchId.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemBatchId);
|
||||
//
|
||||
// PrintItem itemCollName = new PrintItem(Tool.getUUID());
|
||||
// itemCollName.setPrint_type_id(Global.PRINT_USER_NAME);
|
||||
// itemCollName.setPrint_item_label("Coll Name");
|
||||
// itemCollName.setPrint_item_order(12);
|
||||
// itemCollName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemCollName);
|
||||
//
|
||||
// PrintItem itemTransferBy = new PrintItem(Tool.getUUID());
|
||||
// itemTransferBy.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemTransferBy.setPrint_item_label("Transfer By");
|
||||
// itemTransferBy.setPrint_item_order(20);
|
||||
// itemTransferBy.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemTransferBy);
|
||||
//
|
||||
// PrintItem itemCashierName = new PrintItem(Tool.getUUID());
|
||||
// itemCashierName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemCashierName.setPrint_item_label("Cashier Name");
|
||||
// itemCashierName.setPrint_item_order(30);
|
||||
// itemCashierName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemCashierName);
|
||||
//
|
||||
// PrintItem itemAccountNo = new PrintItem(Tool.getUUID());
|
||||
// itemAccountNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemAccountNo.setPrint_item_label("Account No");
|
||||
// itemAccountNo.setPrint_item_order(30);
|
||||
// itemAccountNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemAccountNo);
|
||||
//
|
||||
// PrintItem itemBankName = new PrintItem(Tool.getUUID());
|
||||
// itemBankName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemBankName.setPrint_item_label("Bank Name");
|
||||
// itemBankName.setPrint_item_order(40);
|
||||
// itemBankName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemBankName);
|
||||
//
|
||||
// PrintItem itemTransDate = new PrintItem(Tool.getUUID());
|
||||
// itemTransDate.setPrint_type_id(Global.PRINT_TIMESTAMP);
|
||||
// itemTransDate.setPrint_item_label("Print Date");
|
||||
// itemTransDate.setPrint_item_order(42);
|
||||
// itemTransDate.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemTransDate);
|
||||
//
|
||||
// PrintItem itemNewLine3= new PrintItem(Tool.getUUID());
|
||||
// itemNewLine3.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
// itemNewLine3.setPrint_item_label("999New Line");
|
||||
// itemNewLine3.setPrint_item_order(45);
|
||||
// itemNewLine3.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine3);
|
||||
//
|
||||
// PrintItem itemTitleDetail = new PrintItem(Tool.getUUID());
|
||||
// itemTitleDetail.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
// itemTitleDetail.setPrint_item_label("Deposit Detail");
|
||||
// itemTitleDetail.setPrint_item_order(50);
|
||||
// itemTitleDetail.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemTitleDetail);
|
||||
//
|
||||
// int ANO_order = 60;
|
||||
// int DAM_order = 61;
|
||||
// int DIV_order = 62;
|
||||
// for(int i = 0 ; i<30 ; i++){
|
||||
// PrintItem itemAgreementNo = new PrintItem(Tool.getUUID());
|
||||
// itemAgreementNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemAgreementNo.setPrint_item_label(i+"Agreement No");
|
||||
// itemAgreementNo.setPrint_item_order(ANO_order);
|
||||
// itemAgreementNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemAgreementNo);
|
||||
//
|
||||
// PrintItem itemDepositAmt= new PrintItem(Tool.getUUID());
|
||||
// itemDepositAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemDepositAmt.setPrint_item_label(i+"Deposit Amount");
|
||||
// itemDepositAmt.setPrint_item_order(DAM_order);
|
||||
// itemDepositAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemDepositAmt);
|
||||
//
|
||||
// PrintItem itemNewLine= new PrintItem(Tool.getUUID());
|
||||
// itemNewLine.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
// itemNewLine.setPrint_item_label(i+"New Line");
|
||||
// itemNewLine.setPrint_item_order(DIV_order);
|
||||
// itemNewLine.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine);
|
||||
//
|
||||
// ANO_order=ANO_order+3;
|
||||
// DAM_order=DAM_order+3;
|
||||
// DIV_order=DIV_order+3;
|
||||
// }
|
||||
//
|
||||
// PrintItem itemTotalAmt= new PrintItem(Tool.getUUID());
|
||||
// itemTotalAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
// itemTotalAmt.setPrint_item_label("Total");
|
||||
// itemTotalAmt.setPrint_item_order(200);
|
||||
// itemTotalAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemTotalAmt);
|
||||
//
|
||||
// PrintItem itemNewLineT= new PrintItem(Tool.getUUID());
|
||||
// itemNewLineT.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
// itemNewLineT.setPrint_item_label("999New Line");
|
||||
// itemNewLineT.setPrint_item_order(210);
|
||||
// itemNewLineT.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
// PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineT);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
|
@ -0,0 +1,656 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
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.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdBean;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdRequest;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdResponse;
|
||||
import com.adins.mss.base.depositreport.DetailTaskHRequest;
|
||||
import com.adins.mss.base.depositreport.DetailTaskHResponse;
|
||||
import com.adins.mss.base.depositreport.TaskLogHelper;
|
||||
import com.adins.mss.base.tasklog.TaskLog;
|
||||
import com.adins.mss.base.todolist.ToDoList;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.api.DepositReportReconcileApi;
|
||||
import com.adins.mss.coll.models.DepositReportAdapter;
|
||||
import com.adins.mss.coll.models.DepositReportReconcileResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.PrintItem;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintItemDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import static com.adins.mss.base.todolist.form.PriorityTabFragment.toDoList;
|
||||
|
||||
public class DepositReportFragmentNew extends Fragment {
|
||||
private static Menu mainMenu;
|
||||
public List<TaskH> listTaskRecap;
|
||||
DepositReportAdapter adapter;
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
mainMenu = menu;
|
||||
try {
|
||||
menu.findItem(R.id.menuMore).setVisible(true);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context activity) {
|
||||
setHasOptionsMenu(true);
|
||||
super.onAttach(activity);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
insertPrintItemForDeposit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_deposit_report, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreport));
|
||||
|
||||
Button recapitulateButton = view.findViewById(R.id.recapitulateButton);
|
||||
recapitulateButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
recapitulate();
|
||||
}
|
||||
});
|
||||
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUser(getActivity());
|
||||
ListView list = getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
DepositReportDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
if (id == R.id.menuMore) {
|
||||
mainMenu.findItem(R.id.recapitulation).setVisible(true);
|
||||
mainMenu.findItem(R.id.summary).setVisible(true);
|
||||
mainMenu.findItem(R.id.mnViewMap).setVisible(false);
|
||||
}
|
||||
if (item.getItemId() == R.id.recapitulation) {
|
||||
recapitulate();
|
||||
}
|
||||
if (item.getItemId() == R.id.summary) {
|
||||
summarize();
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void summarize() {
|
||||
DepositReportSummaryFragment fragment = new DepositReportSummaryFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private void recapitulate() {
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
initialize();
|
||||
} else {
|
||||
Toast.makeText(getActivity(), getActivity().getString(R.string.jsonParseFailed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
new AsyncTask<Void, Void, DepositReportReconcileResponse>() {
|
||||
boolean isError = false;
|
||||
private ProgressDialog progressDialog;
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
progressDialog = ProgressDialog.show(getActivity(),
|
||||
"", getString(R.string.progressWait), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DepositReportReconcileResponse doInBackground(Void... params) {
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
TaskLog log = new TaskLog(getActivity());
|
||||
List<TaskH> result = log.getListTaskLog();
|
||||
|
||||
List<TaskH> onlineLog = TaskLogHelper.getTaskLog(getActivity());
|
||||
if (onlineLog != null) {
|
||||
if (result == null) result = new ArrayList<>();
|
||||
List<String> uuidListTaskH = new ArrayList<>();
|
||||
|
||||
for (TaskH taskH : result) {
|
||||
uuidListTaskH.add(taskH.getUuid_task_h());
|
||||
}
|
||||
|
||||
Iterator<TaskH> iterator = onlineLog.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
TaskH taskH = iterator.next();
|
||||
|
||||
if (uuidListTaskH.contains(taskH.getUuid_task_h())) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
if (onlineLog.size() > 0) {
|
||||
for (TaskH taskH : onlineLog) {
|
||||
taskH.setUuid_user(GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
taskH.setStatus(TaskHDataAccess.STATUS_SEND_SENT);
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
result.add(taskH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (result != null && result.size() > 0) {
|
||||
for (TaskH taskH : result) {
|
||||
List<TaskD> taskDs = TaskDDataAccess.getAll(getActivity(), taskH.getUuid_task_h(),
|
||||
TaskDDataAccess.ALL_TASK);
|
||||
if (taskDs == null || taskDs.size() == 0) {
|
||||
DetailTaskHResponse response = null;
|
||||
|
||||
DetailTaskHRequest request = new DetailTaskHRequest();
|
||||
request.setUuidTaskH(taskH.getUuid_task_h());
|
||||
request.setFlag(taskH.getFlag());
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(),
|
||||
GlobalData.getSharedGlobalData().isEncrypt(), GlobalData.getSharedGlobalData().isDecrypt());
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_TASK_LOG();
|
||||
HttpConnectionResult serverResult;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, GsonHelper.toJson(request));
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, GsonHelper.toJson(request),
|
||||
Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
response = GsonHelper.fromJson(serverResult.getResult(),
|
||||
DetailTaskHResponse.class);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
isError = true;
|
||||
}
|
||||
} else {
|
||||
isError = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
isError = true;
|
||||
}
|
||||
|
||||
if (isError) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (response != null && response.getTaskDs() != null) {
|
||||
TaskDDataAccess.addOrReplace(getActivity(), response.getTaskDs());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final List<TaskD> reports = TaskDDataAccess.getTaskDTagTotal(getActivity());
|
||||
|
||||
List<String> taskId = new ArrayList<String>();
|
||||
List<String> flag = new ArrayList<String>();
|
||||
TaskH taskH;
|
||||
for (TaskD taskD : reports) {
|
||||
taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
taskH.setIs_reconciled("0");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
taskId.add(taskH.getTask_id());
|
||||
flag.add(taskH.getFlag());
|
||||
}
|
||||
DepositReportReconcileApi api = new DepositReportReconcileApi(getActivity());
|
||||
|
||||
try {
|
||||
return api.request(taskId, flag);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
isError = true;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(DepositReportReconcileResponse depositReportReconcileResponse) {
|
||||
super.onPostExecute(depositReportReconcileResponse);
|
||||
if (progressDialog != null && progressDialog.isShowing()) {
|
||||
try {
|
||||
progressDialog.dismiss();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
if (isError) {
|
||||
Toast.makeText(getActivity(), getActivity().getString(R.string.jsonParseFailed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
if (depositReportReconcileResponse == null) {
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUser(getActivity());
|
||||
ListView list = getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
DepositReportDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
} else if (depositReportReconcileResponse.getStatus().getCode() != 0) {
|
||||
NiftyDialogBuilder.getInstance(getActivity())
|
||||
.withMessage(depositReportReconcileResponse.getStatus().getMessage())
|
||||
.withTitle(getString(R.string.server_error))
|
||||
.withButton1Text(getString(R.string.btnClose))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
getActivity().finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
return;
|
||||
} else {
|
||||
List<String> taskId = depositReportReconcileResponse.getTaskId();
|
||||
if (taskId != null) {
|
||||
for (String task : taskId) {
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(), task);
|
||||
taskH.setIs_reconciled("1");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}
|
||||
}
|
||||
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUser(getActivity());
|
||||
ListView list = getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
DepositReportDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
toDoList = new ToDoList(getActivity());
|
||||
listTaskRecap = toDoList.getListTaskInStatusForMultiUser(ToDoList.SEARCH_BY_ALL_SENT, "BATCHID");
|
||||
|
||||
if (listTaskRecap != null && listTaskRecap.size() > 0) {
|
||||
BatchIdTask task = new BatchIdTask();
|
||||
task.execute();
|
||||
} else {
|
||||
DepositReportRecapitulateFragmentNew fragment = new DepositReportRecapitulateFragmentNew();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreport));
|
||||
}
|
||||
|
||||
public void insertPrintItemForDeposit() {
|
||||
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getActivity(),
|
||||
"wasInsertedDepositPrint", Context.MODE_PRIVATE);
|
||||
String isInsert = sharedPref.getString("isInsertDepositPrint", Global.FALSE_STRING);
|
||||
if (isInsert.equals(Global.FALSE_STRING)) {
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
sharedPrefEditor.putString("isInsertDepositPrint", Global.TRUE_STRING);
|
||||
sharedPrefEditor.commit();
|
||||
|
||||
PrintItem itemLogo = new PrintItem(Tool.getUUID());
|
||||
itemLogo.setPrint_type_id(Global.PRINT_LOGO);
|
||||
itemLogo.setPrint_item_label("LOGO");
|
||||
itemLogo.setPrint_item_order(1);
|
||||
itemLogo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemLogo);
|
||||
|
||||
PrintItem itemBranchName = new PrintItem(Tool.getUUID());
|
||||
itemBranchName.setPrint_type_id(Global.PRINT_BRANCH_NAME);
|
||||
itemBranchName.setPrint_item_label("Branch Name");
|
||||
itemBranchName.setPrint_item_order(2);
|
||||
itemBranchName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBranchName);
|
||||
|
||||
PrintItem itemBranchAddr = new PrintItem(Tool.getUUID());
|
||||
itemBranchAddr.setPrint_type_id(Global.PRINT_BRANCH_ADDRESS);
|
||||
itemBranchAddr.setPrint_item_label("Branch Address");
|
||||
itemBranchAddr.setPrint_item_order(2);
|
||||
itemBranchAddr.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBranchAddr);
|
||||
|
||||
PrintItem itemNewLineE = new PrintItem(Tool.getUUID());
|
||||
itemNewLineE.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLineE.setPrint_item_label("999New Line");
|
||||
itemNewLineE.setPrint_item_order(3);
|
||||
itemNewLineE.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineE);
|
||||
|
||||
/*PrintItem itemNewLine1= new PrintItem(Tool.getUUID());
|
||||
itemNewLine1.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine1.setPrint_item_label("998New Line");
|
||||
itemNewLine1.setPrint_item_order(4);
|
||||
itemNewLine1.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine1);*/
|
||||
|
||||
PrintItem itemTitle = new PrintItem(Tool.getUUID());
|
||||
itemTitle.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
itemTitle.setPrint_item_label("Bukti Deposit Report");
|
||||
itemTitle.setPrint_item_order(10);
|
||||
itemTitle.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTitle);
|
||||
|
||||
/*PrintItem itemNewLine2= new PrintItem(Tool.getUUID());
|
||||
itemNewLine2.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine2.setPrint_item_label("998New Line");
|
||||
itemNewLine2.setPrint_item_order(4);
|
||||
itemNewLine2.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine2);*/
|
||||
|
||||
PrintItem itemBatchId = new PrintItem(Tool.getUUID());
|
||||
itemBatchId.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemBatchId.setPrint_item_label("Batch ID");
|
||||
itemBatchId.setPrint_item_order(11);
|
||||
itemBatchId.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBatchId);
|
||||
|
||||
PrintItem itemCollName = new PrintItem(Tool.getUUID());
|
||||
itemCollName.setPrint_type_id(Global.PRINT_USER_NAME);
|
||||
itemCollName.setPrint_item_label("Coll Name");
|
||||
itemCollName.setPrint_item_order(12);
|
||||
itemCollName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemCollName);
|
||||
|
||||
PrintItem itemTransferBy = new PrintItem(Tool.getUUID());
|
||||
itemTransferBy.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemTransferBy.setPrint_item_label("Transfer By");
|
||||
itemTransferBy.setPrint_item_order(20);
|
||||
itemTransferBy.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTransferBy);
|
||||
|
||||
PrintItem itemCashierName = new PrintItem(Tool.getUUID());
|
||||
itemCashierName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemCashierName.setPrint_item_label("Cashier Name");
|
||||
itemCashierName.setPrint_item_order(30);
|
||||
itemCashierName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemCashierName);
|
||||
|
||||
PrintItem itemAccountNo = new PrintItem(Tool.getUUID());
|
||||
itemAccountNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemAccountNo.setPrint_item_label("Account No");
|
||||
itemAccountNo.setPrint_item_order(30);
|
||||
itemAccountNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemAccountNo);
|
||||
|
||||
PrintItem itemBankName = new PrintItem(Tool.getUUID());
|
||||
itemBankName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemBankName.setPrint_item_label("Bank Name");
|
||||
itemBankName.setPrint_item_order(40);
|
||||
itemBankName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBankName);
|
||||
|
||||
PrintItem itemTransDate = new PrintItem(Tool.getUUID());
|
||||
itemTransDate.setPrint_type_id(Global.PRINT_TIMESTAMP);
|
||||
itemTransDate.setPrint_item_label("Print Date");
|
||||
itemTransDate.setPrint_item_order(42);
|
||||
itemTransDate.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTransDate);
|
||||
|
||||
PrintItem itemNewLine3 = new PrintItem(Tool.getUUID());
|
||||
itemNewLine3.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine3.setPrint_item_label("999New Line");
|
||||
itemNewLine3.setPrint_item_order(45);
|
||||
itemNewLine3.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine3);
|
||||
|
||||
PrintItem itemTitleDetail = new PrintItem(Tool.getUUID());
|
||||
itemTitleDetail.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
itemTitleDetail.setPrint_item_label("Deposit Detail");
|
||||
itemTitleDetail.setPrint_item_order(50);
|
||||
itemTitleDetail.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTitleDetail);
|
||||
|
||||
int ANO_order = 60;
|
||||
int DAM_order = 61;
|
||||
int DIV_order = 62;
|
||||
for (int i = 0; i < 30; i++) {
|
||||
PrintItem itemAgreementNo = new PrintItem(Tool.getUUID());
|
||||
itemAgreementNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemAgreementNo.setPrint_item_label(i + "Agreement No");
|
||||
itemAgreementNo.setPrint_item_order(ANO_order);
|
||||
itemAgreementNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemAgreementNo);
|
||||
|
||||
PrintItem itemDepositAmt = new PrintItem(Tool.getUUID());
|
||||
itemDepositAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemDepositAmt.setPrint_item_label(i + "Deposit Amount");
|
||||
itemDepositAmt.setPrint_item_order(DAM_order);
|
||||
itemDepositAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemDepositAmt);
|
||||
|
||||
PrintItem itemNewLine = new PrintItem(Tool.getUUID());
|
||||
itemNewLine.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine.setPrint_item_label(i + "New Line");
|
||||
itemNewLine.setPrint_item_order(DIV_order);
|
||||
itemNewLine.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine);
|
||||
|
||||
ANO_order = ANO_order + 3;
|
||||
DAM_order = DAM_order + 3;
|
||||
DIV_order = DIV_order + 3;
|
||||
}
|
||||
|
||||
PrintItem itemTotalAmt = new PrintItem(Tool.getUUID());
|
||||
itemTotalAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemTotalAmt.setPrint_item_label("Total");
|
||||
itemTotalAmt.setPrint_item_order(200);
|
||||
itemTotalAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTotalAmt);
|
||||
|
||||
PrintItem itemNewLineT = new PrintItem(Tool.getUUID());
|
||||
itemNewLineT.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLineT.setPrint_item_label("999New Line");
|
||||
itemNewLineT.setPrint_item_order(210);
|
||||
itemNewLineT.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineT);
|
||||
}
|
||||
}
|
||||
|
||||
private class BatchIdTask extends AsyncTask<Void, Void, List<DepositReportBatchIdBean>> {
|
||||
private ProgressDialog progressDialog;
|
||||
private String errMessage, message;
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
progressDialog = ProgressDialog.show(getContext(), "", getString(com.adins.mss.base.R.string.progressWait));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<DepositReportBatchIdBean> doInBackground(Void... Void) {
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
List<String> listUuidRequest = new ArrayList<>();
|
||||
for (TaskH taskHRequest : listTaskRecap) {
|
||||
listUuidRequest.add(taskHRequest.getTask_id());
|
||||
}
|
||||
|
||||
DepositReportBatchIdRequest request = new DepositReportBatchIdRequest();
|
||||
request.setListTaskID(listUuidRequest);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String json = GsonHelper.toJson(request);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_BATCHID_LIST();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
String responseBody = serverResult.getResult();
|
||||
DepositReportBatchIdResponse response = GsonHelper.fromJson(responseBody, DepositReportBatchIdResponse.class);
|
||||
|
||||
if (response.getStatus().getCode() != 0) {
|
||||
message = response.getStatus().getMessage();
|
||||
return new ArrayList<>();
|
||||
} else {
|
||||
return response.getListBatchID();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (Global.IS_DEV) {
|
||||
e.printStackTrace();
|
||||
errMessage = e.getMessage();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.server_down);
|
||||
}
|
||||
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.no_internet_connection);
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<DepositReportBatchIdBean> batchTask) {
|
||||
super.onPostExecute(batchTask);
|
||||
progressDialog.dismiss();
|
||||
|
||||
if (batchTask != null && batchTask.size() > 0) {
|
||||
for (DepositReportBatchIdBean taskBean : batchTask) {
|
||||
if ("1".equalsIgnoreCase(taskBean.getFlagDeposit()) &&
|
||||
(taskBean.getBatchId() != null && !taskBean.getBatchId().isEmpty())) {
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(), taskBean.getTaskId());
|
||||
taskH.setBatch_id(taskBean.getBatchId());
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
} else if ("0".equalsIgnoreCase(taskBean.getFlagDeposit()) &&
|
||||
(taskBean.getBatchId() != null && !taskBean.getBatchId().isEmpty())) {
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(), taskBean.getTaskId());
|
||||
if ("0".equalsIgnoreCase(taskH.getIs_reconciled())) {
|
||||
taskH.setIs_reconciled("1");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (message != null) {
|
||||
Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show();
|
||||
} else if (errMessage != null) {
|
||||
Toast.makeText(getContext(), errMessage, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
DepositReportRecapitulateFragmentNew fragment = new DepositReportRecapitulateFragmentNew();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,226 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.LinearLayout.LayoutParams;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
|
||||
import com.adins.mss.base.PrintActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.PaymentChannel;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.db.dataaccess.PaymentChannelDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.image.Utils;
|
||||
import com.adins.mss.foundation.image.ViewImageActivity;
|
||||
import com.androidquery.AQuery;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DepositReportPCDetailActivity extends Activity {
|
||||
protected static DepositReportH report;
|
||||
protected int total = 0;
|
||||
List<DepositReportD> reportDs;
|
||||
String cashierName;
|
||||
String bankAccount;
|
||||
String channel;
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState){
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.deposit_report_detail_layout_pc);
|
||||
AQuery query = new AQuery(this);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
cashierName = report.getCashier_name();
|
||||
bankAccount = report.getBank_account();
|
||||
PaymentChannel channelDetail = PaymentChannelDataAccess.getOnePaymentChannel(getApplicationContext(), report.getCode_channel());
|
||||
channel = channelDetail.getDescription()+" | "+channelDetail.getCode();
|
||||
|
||||
|
||||
reportDs = report.getDepositReportDList();
|
||||
|
||||
query.id(R.id.txtBatchId).text(report.getBatch_id());
|
||||
query.id(R.id.txtBankName).text(channel);
|
||||
query.id(R.id.txtNoTransaction).text(report.getNo_transaction());
|
||||
query.id(R.id.imgEvidenceTransfer).image(Utils.byteToBitmap(report.getImage())).clicked(this, "ViewImage");
|
||||
|
||||
ImageButton btnPrintDepReport = (ImageButton)findViewById(R.id.btnPrintDepReport);
|
||||
btnPrintDepReport.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(getApplicationContext(), PrintActivity.class);
|
||||
intent.putExtra("taskId", report.getBatch_id());
|
||||
intent.putExtra("isPrintDeposit", true);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
int no =1;
|
||||
TableLayout detailTable = (TableLayout)findViewById(R.id.tableLayout1);
|
||||
LayoutParams lp =new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f);
|
||||
|
||||
LinearLayout detail = new LinearLayout(this);
|
||||
detail.setOrientation(LinearLayout.HORIZONTAL);
|
||||
detail.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1.0f));
|
||||
detail.setBackgroundResource(R.color.tv_gray_light);
|
||||
|
||||
TextView lblDetail = new TextView(this);
|
||||
lblDetail.setText("Detail");
|
||||
lblDetail.setTextColor(Color.BLACK);
|
||||
lblDetail.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f));
|
||||
detail.addView(lblDetail);
|
||||
detailTable.addView(detail);
|
||||
|
||||
|
||||
for (int i = 0; i < reportDs.size(); i++) {
|
||||
try {
|
||||
DepositReportD reportD = reportDs.get(i);
|
||||
LinearLayout row = new LinearLayout(this);
|
||||
row.setOrientation(LinearLayout.HORIZONTAL);
|
||||
row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1.0f));
|
||||
if (no%2 == 0){ //if even number, set to blue background
|
||||
row.setBackgroundResource(R.color.tv_gray_light);
|
||||
}
|
||||
else {
|
||||
row.setBackgroundResource(R.color.tv_gray);
|
||||
}
|
||||
|
||||
TextView lblNo = new TextView(this);
|
||||
lblNo.setText(no+ ". ");
|
||||
lblNo.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
lblNo.setTextColor(Color.BLACK);
|
||||
lblNo.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.4f));
|
||||
row.addView(lblNo);
|
||||
|
||||
TaskH taskHs= TaskHDataAccess.getOneHeader(getApplicationContext(), reportD.getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if(taskHs!=null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
|
||||
TextView lblLabel = new TextView(this);
|
||||
lblLabel.setText(agreement_no);
|
||||
lblLabel.setTextColor(Color.BLACK);
|
||||
lblLabel.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f));
|
||||
row.addView(lblLabel);
|
||||
|
||||
TextView lblSpace = new TextView(this);
|
||||
lblSpace.setText(" : ");
|
||||
lblSpace.setTextColor(Color.BLACK);
|
||||
lblSpace.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
|
||||
row.addView(lblSpace);
|
||||
|
||||
try {
|
||||
TextView lblAnswer = new TextView(this);
|
||||
lblAnswer.setText(Tool.separateThousand(reportD.getDeposit_amt()));
|
||||
lblAnswer.setTextColor(Color.BLACK);
|
||||
lblAnswer.setGravity(Gravity.RIGHT);
|
||||
lblAnswer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0.25f));
|
||||
row.addView(lblAnswer, lp);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
detailTable.addView(row);
|
||||
no++;
|
||||
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Keep
|
||||
public void ViewImage(View view){
|
||||
Global.isViewer =true;
|
||||
Bundle extras = new Bundle();
|
||||
extras.putByteArray(Global.BUND_KEY_IMAGE_BYTE, report.getImage());
|
||||
Intent intent = new Intent(this, ViewImageActivity.class);
|
||||
intent.putExtras(extras);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Keep
|
||||
private class RecapitulationListAdapter extends ArrayAdapter<DepositReportD> {
|
||||
|
||||
private final DepositReportD[] originalItems;
|
||||
|
||||
public RecapitulationListAdapter(Context context, DepositReportD[] objects) {
|
||||
super(context, R.layout.deposit_report_list_recap, objects);
|
||||
originalItems = objects;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return super.getCount() + 1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = null;
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.deposit_report_list_recap, parent, false);
|
||||
|
||||
|
||||
TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
TextView agreement= (TextView) view.findViewById(R.id.itemValueAgreement);
|
||||
RelativeLayout layout = (RelativeLayout)view.findViewById(R.id.agreementNumber_layout);
|
||||
LinearLayout backLayout = (LinearLayout)view.findViewById(R.id.itemBase);
|
||||
if(position%2==1)
|
||||
backLayout.setBackgroundResource(R.color.tv_gray);
|
||||
if (position == getCount() - 1) {
|
||||
label.setText("Total");
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems())));
|
||||
layout.setVisibility(View.GONE);
|
||||
} else {
|
||||
DepositReportD item = getItem(position);
|
||||
TaskH taskHs= TaskHDataAccess.getOneHeader(getApplicationContext(), item.getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if(taskHs!=null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
agreement.setText(agreement_no);
|
||||
value.setText(Tool.separateThousand(item.getDeposit_amt()));
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private int sumOfItems() {
|
||||
int sum = 0;
|
||||
try {
|
||||
for (DepositReportD item : originalItems) {
|
||||
String value = item.getDeposit_amt();
|
||||
if(value==null || value.equals("")) value = "0";
|
||||
int finalValue = Integer.parseInt(value);
|
||||
sum += finalValue;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
total = sum;
|
||||
// generatePrintResultDepReport(DepositReportDetailActivity.this, report);
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,687 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
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.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdBean;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdRequest;
|
||||
import com.adins.mss.base.depositreport.DepositReportBatchIdResponse;
|
||||
import com.adins.mss.base.depositreport.DetailTaskHRequest;
|
||||
import com.adins.mss.base.depositreport.DetailTaskHResponse;
|
||||
import com.adins.mss.base.depositreport.TaskLogHelper;
|
||||
import com.adins.mss.base.tasklog.TaskLog;
|
||||
import com.adins.mss.base.todolist.ToDoList;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.api.DepositReportReconcileApi;
|
||||
import com.adins.mss.coll.models.DepositReportAdapter;
|
||||
import com.adins.mss.coll.models.DepositReportReconcileResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.PrintItem;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintItemDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import static com.adins.mss.base.todolist.form.PriorityTabFragment.toDoList;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/3/2015.
|
||||
*/
|
||||
public class DepositReportPCFragment extends Fragment {
|
||||
private static Menu mainMenu;
|
||||
DepositReportAdapter adapter;
|
||||
public List<TaskH> listTaskRecap;
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
mainMenu = menu;
|
||||
// inflater.inflate(R.menu.menu_deposit_report_fragment, menu);
|
||||
try {
|
||||
menu.findItem(R.id.menuMore).setVisible(true);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context activity) {
|
||||
setHasOptionsMenu(true);
|
||||
super.onAttach(activity);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
insertPrintItemForDeposit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_deposit_report, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreportPC));
|
||||
|
||||
Button recapitulateButton = (Button) view.findViewById(R.id.recapitulateButton);
|
||||
recapitulateButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
recapitulate();
|
||||
}
|
||||
});
|
||||
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUserPC(getActivity());
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// TODO Auto-generated method stub
|
||||
DepositReportPCDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportPCDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
if(id== R.id.menuMore){
|
||||
mainMenu.findItem(R.id.recapitulation).setVisible(true);
|
||||
mainMenu.findItem(R.id.summary).setVisible(true);
|
||||
mainMenu.findItem(R.id.mnViewMap).setVisible(false);
|
||||
}
|
||||
if (item.getItemId() == R.id.recapitulation) {
|
||||
recapitulate();
|
||||
}
|
||||
if (item.getItemId() == R.id.summary) {
|
||||
summarize();
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void summarize() {
|
||||
DepositReportSummaryFragment fragment = new DepositReportSummaryFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private void recapitulate() {
|
||||
if(Tool.isInternetconnected(getActivity())) {
|
||||
initialize();
|
||||
// DepositReportRecapitulateFragment fragment = new DepositReportRecapitulateFragment();
|
||||
// FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
// transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
// transaction.replace(R.id.content_frame, fragment);
|
||||
// transaction.addToBackStack(null);
|
||||
// transaction.commit();
|
||||
} else {
|
||||
Toast.makeText(getActivity(), getActivity().getString(R.string.jsonParseFailed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
new AsyncTask<Void, Void, DepositReportReconcileResponse>() {
|
||||
private ProgressDialog progressDialog;
|
||||
boolean isError = false;
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
progressDialog = ProgressDialog.show(getActivity(),
|
||||
"", getString(R.string.progressWait), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DepositReportReconcileResponse doInBackground(Void... params) {
|
||||
if(Tool.isInternetconnected(getActivity())) {
|
||||
TaskLog log = new TaskLog(getActivity());
|
||||
List<TaskH> result = log.getListTaskLog();
|
||||
|
||||
List<TaskH> onlineLog = TaskLogHelper.getTaskLog(getActivity());
|
||||
if (onlineLog != null) {
|
||||
if (result == null) result = new ArrayList<>();
|
||||
List<String> uuidListTaskH = new ArrayList<>();
|
||||
|
||||
for (TaskH taskH : result) {
|
||||
uuidListTaskH.add(taskH.getUuid_task_h());
|
||||
}
|
||||
|
||||
Iterator<TaskH> iterator = onlineLog.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
TaskH taskH = iterator.next();
|
||||
|
||||
if (uuidListTaskH.contains(taskH.getUuid_task_h())) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
if (onlineLog.size() > 0) {
|
||||
for (TaskH taskH : onlineLog) {
|
||||
taskH.setUuid_user(GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
taskH.setStatus(TaskHDataAccess.STATUS_SEND_SENT);
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
result.add(taskH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (result != null && result.size() > 0) {
|
||||
for (TaskH taskH : result) {
|
||||
List<TaskD> taskDs = TaskDDataAccess.getAll(getActivity(), taskH.getUuid_task_h(),
|
||||
TaskDDataAccess.ALL_TASK);
|
||||
if (taskDs == null || taskDs.size() == 0) {
|
||||
DetailTaskHResponse response = null;
|
||||
|
||||
DetailTaskHRequest request = new DetailTaskHRequest();
|
||||
request.setUuidTaskH(taskH.getUuid_task_h());
|
||||
request.setFlag(taskH.getFlag());
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(),
|
||||
GlobalData.getSharedGlobalData().isEncrypt(), GlobalData.getSharedGlobalData().isDecrypt());
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_TASK_LOG();
|
||||
HttpConnectionResult serverResult;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, GsonHelper.toJson(request));
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, GsonHelper.toJson(request),
|
||||
Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
response = GsonHelper.fromJson(serverResult.getResult(),
|
||||
DetailTaskHResponse.class);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
isError = true;
|
||||
}
|
||||
} else {
|
||||
isError = true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
isError = true;
|
||||
}
|
||||
|
||||
if (isError) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (response != null && response.getTaskDs() != null) {
|
||||
TaskDDataAccess.addOrReplace(getActivity(), response.getTaskDs());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final List<TaskD> reports = TaskDDataAccess.getTaskDTagTotal(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
|
||||
List<String> taskId = new ArrayList<String>();
|
||||
List<String> flag = new ArrayList<String>();
|
||||
TaskH taskH;
|
||||
for (TaskD taskD : reports) {
|
||||
taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
//if(taskH.getIs_reconciled() == null) {
|
||||
taskH.setIs_reconciled("0");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
//}
|
||||
taskId.add(taskH.getTask_id());
|
||||
flag.add(taskH.getFlag());
|
||||
}
|
||||
DepositReportReconcileApi api = new DepositReportReconcileApi(getActivity());
|
||||
|
||||
try {
|
||||
return api.request(taskId, flag);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}else{
|
||||
isError = true;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(DepositReportReconcileResponse depositReportReconcileResponse) {
|
||||
super.onPostExecute(depositReportReconcileResponse);
|
||||
if (progressDialog != null && progressDialog.isShowing()) {
|
||||
try {
|
||||
progressDialog.dismiss();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
if (isError) {
|
||||
Toast.makeText(getActivity(), getActivity().getString(R.string.jsonParseFailed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
if (depositReportReconcileResponse == null) {
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUserPC(getActivity());
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// TODO Auto-generated method stub
|
||||
DepositReportPCDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportPCDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
} else if (depositReportReconcileResponse.getStatus().getCode() != 0) {
|
||||
NiftyDialogBuilder.getInstance(getActivity())
|
||||
.withMessage(depositReportReconcileResponse.getStatus().getMessage())
|
||||
.withTitle(getString(R.string.server_error))
|
||||
.withButton1Text(getString(R.string.btnClose))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
getActivity().finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
return;
|
||||
} else {
|
||||
List<String> taskId = depositReportReconcileResponse.getTaskId();
|
||||
if(taskId!=null){
|
||||
for (String task : taskId) {
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(), task);
|
||||
taskH.setIs_reconciled("1");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}
|
||||
}
|
||||
|
||||
final List<DepositReportH> reports = DepositReportHDataAccess.getAllForAllUserPC(getActivity());
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
adapter = new DepositReportAdapter(getActivity(), reports);
|
||||
list.setAdapter(adapter);
|
||||
|
||||
list.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
|
||||
// TODO Auto-generated method stub
|
||||
DepositReportDetailActivity.report = reports.get(position);
|
||||
Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
toDoList = new ToDoList(getActivity());
|
||||
listTaskRecap = toDoList.getListTaskInStatusForMultiUser(ToDoList.SEARCH_BY_ALL_SENT, "BATCHID");
|
||||
|
||||
if(listTaskRecap != null && listTaskRecap.size() >0 ){
|
||||
BatchIdTask task = new BatchIdTask();
|
||||
task.execute();
|
||||
} else {
|
||||
DepositReportPCRecapitulateFragment fragment = new DepositReportPCRecapitulateFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}.execute();
|
||||
|
||||
}
|
||||
|
||||
private class BatchIdTask extends AsyncTask<Void, Void, List<DepositReportBatchIdBean>> {
|
||||
private ProgressDialog progressDialog;
|
||||
private String errMessage, message;
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
progressDialog = ProgressDialog.show(getContext(), "", getString(com.adins.mss.base.R.string.progressWait));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<DepositReportBatchIdBean> doInBackground(Void... Void) {
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
List<String> listUuidRequest = new ArrayList<>();
|
||||
for(TaskH taskHRequest : listTaskRecap){
|
||||
listUuidRequest.add(taskHRequest.getTask_id());
|
||||
}
|
||||
|
||||
DepositReportBatchIdRequest request = new DepositReportBatchIdRequest();
|
||||
request.setListTaskID(listUuidRequest);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String json = GsonHelper.toJson(request);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_BATCHID_LIST();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
String responseBody = serverResult.getResult();
|
||||
DepositReportBatchIdResponse response = GsonHelper.fromJson(responseBody, DepositReportBatchIdResponse.class);
|
||||
|
||||
if (response.getStatus().getCode() != 0) {
|
||||
message = response.getStatus().getMessage();
|
||||
return new ArrayList<>();
|
||||
} else {
|
||||
return response.getListBatchID();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (Global.IS_DEV) {
|
||||
e.printStackTrace();
|
||||
errMessage = e.getMessage();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.server_down);
|
||||
}
|
||||
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.no_internet_connection);
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<DepositReportBatchIdBean> batchTask) {
|
||||
super.onPostExecute(batchTask);
|
||||
progressDialog.dismiss();
|
||||
|
||||
if (batchTask != null && batchTask.size() > 0) {
|
||||
for(DepositReportBatchIdBean taskBean : batchTask){
|
||||
if("1".equalsIgnoreCase(taskBean.getFlagDeposit()) &&
|
||||
(taskBean.getBatchId() !=null && !taskBean.getBatchId().isEmpty())){
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(),taskBean.getTaskId());
|
||||
taskH.setBatch_id(taskBean.getBatchId());
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}else if("0".equalsIgnoreCase(taskBean.getFlagDeposit())&&
|
||||
(taskBean.getBatchId() !=null && !taskBean.getBatchId().isEmpty())){
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getActivity(),taskBean.getTaskId());
|
||||
if("0".equalsIgnoreCase(taskH.getIs_reconciled())){
|
||||
taskH.setIs_reconciled("1");
|
||||
TaskHDataAccess.addOrReplace(getActivity(), taskH);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(message != null) {
|
||||
Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show();
|
||||
} else if (errMessage != null) {
|
||||
Toast.makeText(getContext(), errMessage, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
DepositReportPCRecapitulateFragment fragment = new DepositReportPCRecapitulateFragment();
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(){
|
||||
super.onResume();
|
||||
try {
|
||||
if (adapter != null) {
|
||||
// loadData();
|
||||
}
|
||||
}catch (Exception e){
|
||||
if(Global.IS_DEV)
|
||||
e.printStackTrace();
|
||||
}
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
|
||||
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
|
||||
getActivity().setTitle(getString(R.string.title_mn_depositreportPC));
|
||||
}
|
||||
|
||||
|
||||
public void insertPrintItemForDeposit(){
|
||||
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getActivity(),
|
||||
"wasInsertedDepositPrint", Context.MODE_PRIVATE);
|
||||
String isInsert = sharedPref.getString("isInsertDepositPrint", Global.FALSE_STRING);
|
||||
if(isInsert.equals(Global.FALSE_STRING)){
|
||||
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
|
||||
sharedPrefEditor.putString("isInsertDepositPrint", Global.TRUE_STRING);
|
||||
sharedPrefEditor.commit();
|
||||
|
||||
// PrintItemDataAccess.delete(getActivity(), "DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
|
||||
String usr_crt = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
Date date = Tool.getSystemDateTime();
|
||||
|
||||
PrintItem itemLogo = new PrintItem(Tool.getUUID());
|
||||
itemLogo.setPrint_type_id(Global.PRINT_LOGO);
|
||||
itemLogo.setPrint_item_label("LOGO");
|
||||
itemLogo.setPrint_item_order(1);
|
||||
itemLogo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemLogo);
|
||||
|
||||
PrintItem itemBranchName = new PrintItem(Tool.getUUID());
|
||||
itemBranchName.setPrint_type_id(Global.PRINT_BRANCH_NAME);
|
||||
itemBranchName.setPrint_item_label("Branch Name");
|
||||
itemBranchName.setPrint_item_order(2);
|
||||
itemBranchName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBranchName);
|
||||
|
||||
PrintItem itemBranchAddr = new PrintItem(Tool.getUUID());
|
||||
itemBranchAddr.setPrint_type_id(Global.PRINT_BRANCH_ADDRESS);
|
||||
itemBranchAddr.setPrint_item_label("Branch Address");
|
||||
itemBranchAddr.setPrint_item_order(2);
|
||||
itemBranchAddr.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBranchAddr);
|
||||
|
||||
PrintItem itemNewLineE= new PrintItem(Tool.getUUID());
|
||||
itemNewLineE.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLineE.setPrint_item_label("999New Line");
|
||||
itemNewLineE.setPrint_item_order(3);
|
||||
itemNewLineE.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineE);
|
||||
|
||||
/*PrintItem itemNewLine1= new PrintItem(Tool.getUUID());
|
||||
itemNewLine1.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine1.setPrint_item_label("998New Line");
|
||||
itemNewLine1.setPrint_item_order(4);
|
||||
itemNewLine1.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine1);*/
|
||||
|
||||
PrintItem itemTitle = new PrintItem(Tool.getUUID());
|
||||
itemTitle.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
itemTitle.setPrint_item_label("Bukti Deposit Report");
|
||||
itemTitle.setPrint_item_order(10);
|
||||
itemTitle.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTitle);
|
||||
|
||||
/*PrintItem itemNewLine2= new PrintItem(Tool.getUUID());
|
||||
itemNewLine2.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine2.setPrint_item_label("998New Line");
|
||||
itemNewLine2.setPrint_item_order(4);
|
||||
itemNewLine2.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine2);*/
|
||||
|
||||
PrintItem itemBatchId = new PrintItem(Tool.getUUID());
|
||||
itemBatchId.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemBatchId.setPrint_item_label("Batch ID");
|
||||
itemBatchId.setPrint_item_order(11);
|
||||
itemBatchId.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBatchId);
|
||||
|
||||
PrintItem itemCollName = new PrintItem(Tool.getUUID());
|
||||
itemCollName.setPrint_type_id(Global.PRINT_USER_NAME);
|
||||
itemCollName.setPrint_item_label("Coll Name");
|
||||
itemCollName.setPrint_item_order(12);
|
||||
itemCollName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemCollName);
|
||||
|
||||
PrintItem itemTransferBy = new PrintItem(Tool.getUUID());
|
||||
itemTransferBy.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemTransferBy.setPrint_item_label("Transfer By");
|
||||
itemTransferBy.setPrint_item_order(20);
|
||||
itemTransferBy.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTransferBy);
|
||||
|
||||
PrintItem itemCashierName = new PrintItem(Tool.getUUID());
|
||||
itemCashierName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemCashierName.setPrint_item_label("Cashier Name");
|
||||
itemCashierName.setPrint_item_order(30);
|
||||
itemCashierName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemCashierName);
|
||||
|
||||
PrintItem itemAccountNo = new PrintItem(Tool.getUUID());
|
||||
itemAccountNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemAccountNo.setPrint_item_label("Account No");
|
||||
itemAccountNo.setPrint_item_order(30);
|
||||
itemAccountNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemAccountNo);
|
||||
|
||||
PrintItem itemBankName = new PrintItem(Tool.getUUID());
|
||||
itemBankName.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemBankName.setPrint_item_label("Bank Name");
|
||||
itemBankName.setPrint_item_order(40);
|
||||
itemBankName.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemBankName);
|
||||
|
||||
PrintItem itemTransDate = new PrintItem(Tool.getUUID());
|
||||
itemTransDate.setPrint_type_id(Global.PRINT_TIMESTAMP);
|
||||
itemTransDate.setPrint_item_label("Print Date");
|
||||
itemTransDate.setPrint_item_order(42);
|
||||
itemTransDate.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTransDate);
|
||||
|
||||
PrintItem itemNewLine3= new PrintItem(Tool.getUUID());
|
||||
itemNewLine3.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine3.setPrint_item_label("999New Line");
|
||||
itemNewLine3.setPrint_item_order(45);
|
||||
itemNewLine3.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine3);
|
||||
|
||||
PrintItem itemTitleDetail = new PrintItem(Tool.getUUID());
|
||||
itemTitleDetail.setPrint_type_id(Global.PRINT_LABEL_CENTER_BOLD);
|
||||
itemTitleDetail.setPrint_item_label("Deposit Detail");
|
||||
itemTitleDetail.setPrint_item_order(50);
|
||||
itemTitleDetail.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTitleDetail);
|
||||
|
||||
int ANO_order = 60;
|
||||
int DAM_order = 61;
|
||||
int DIV_order = 62;
|
||||
for(int i = 0 ; i<30 ; i++){
|
||||
PrintItem itemAgreementNo = new PrintItem(Tool.getUUID());
|
||||
itemAgreementNo.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemAgreementNo.setPrint_item_label(i+"Agreement No");
|
||||
itemAgreementNo.setPrint_item_order(ANO_order);
|
||||
itemAgreementNo.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemAgreementNo);
|
||||
|
||||
PrintItem itemDepositAmt= new PrintItem(Tool.getUUID());
|
||||
itemDepositAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemDepositAmt.setPrint_item_label(i+"Deposit Amount");
|
||||
itemDepositAmt.setPrint_item_order(DAM_order);
|
||||
itemDepositAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemDepositAmt);
|
||||
|
||||
PrintItem itemNewLine= new PrintItem(Tool.getUUID());
|
||||
itemNewLine.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLine.setPrint_item_label(i+"New Line");
|
||||
itemNewLine.setPrint_item_order(DIV_order);
|
||||
itemNewLine.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLine);
|
||||
|
||||
ANO_order=ANO_order+3;
|
||||
DAM_order=DAM_order+3;
|
||||
DIV_order=DIV_order+3;
|
||||
}
|
||||
|
||||
PrintItem itemTotalAmt= new PrintItem(Tool.getUUID());
|
||||
itemTotalAmt.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
itemTotalAmt.setPrint_item_label("Total");
|
||||
itemTotalAmt.setPrint_item_order(200);
|
||||
itemTotalAmt.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemTotalAmt);
|
||||
|
||||
PrintItem itemNewLineT= new PrintItem(Tool.getUUID());
|
||||
itemNewLineT.setPrint_type_id(Global.PRINT_NEW_LINE);
|
||||
itemNewLineT.setPrint_item_label("999New Line");
|
||||
itemNewLineT.setPrint_item_order(210);
|
||||
itemNewLineT.setUuid_scheme("DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
PrintItemDataAccess.addOrReplace(getActivity(), itemNewLineT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,587 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatSpinner;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.dynamicform.SurveyHeaderBean;
|
||||
import com.adins.mss.base.todolist.ToDoList;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.commons.Toaster;
|
||||
import com.adins.mss.coll.tool.Constants;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.Scheme;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.UserDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/13/2015.
|
||||
*/
|
||||
public class DepositReportPCRecapitulateFragment extends Fragment {
|
||||
private AppCompatSpinner spinnerForm;
|
||||
private AppCompatSpinner spinnerUser;
|
||||
private AppCompatSpinner spinnerBatch;
|
||||
private ImageView imgExpandUser;
|
||||
private FormAdapter formAdapter;
|
||||
private UserAdapter userAdapter;
|
||||
private BatchAdapter batchAdapter;
|
||||
// private String newBatchID;
|
||||
public static String selectedDepositScheme;
|
||||
public static String selectedDepositSchemeName;
|
||||
public static String selectedDepositUser;
|
||||
public static String selectedBatchId;
|
||||
public static User selectedDepositUserObject = null;
|
||||
String selectedDepositUserName;
|
||||
private List<Scheme> formListName;
|
||||
private List<User> userListName;
|
||||
private List<TaskH> batchIdList;
|
||||
|
||||
private TextView formNameBatch;
|
||||
private TextView submitDateBatch;
|
||||
|
||||
protected double total = 0;
|
||||
// String batchId;
|
||||
private int totalNeedPrint;
|
||||
public List<TaskH> listTaskH;
|
||||
public List<TaskH> listTaskRecap;
|
||||
public List<String> listTaskBatch;
|
||||
public ToDoList toDoList;
|
||||
private RefreshBackgroundTask backgroundTask;
|
||||
List<TaskD> reportsReconcile = new ArrayList<TaskD>();
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
toDoList = new ToDoList(getActivity());
|
||||
listTaskH = toDoList.getListTaskInStatusForMultiUser(ToDoList.SEARCH_BY_BATCH_ID, "BATCHID");
|
||||
|
||||
selectedDepositScheme = null;
|
||||
return inflater.inflate(R.layout.fragment_deposit_report_pc_recapitulate, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
|
||||
// newBatchID = Generator.generateBatchId(getContext());
|
||||
|
||||
formListName = new ArrayList<>();
|
||||
formListName.clear();
|
||||
formListName.addAll(SchemeDataAccess.getAllActivePriorityScheme(getActivity()));
|
||||
|
||||
batchIdList = new ArrayList<>();
|
||||
batchIdList.clear();
|
||||
List<TaskH> listTask = new ArrayList<>();
|
||||
listTaskBatch = getListBatchId();
|
||||
if(listTaskBatch != null && listTaskBatch.size() > 0){
|
||||
for(String batch : listTaskBatch){
|
||||
if(batch != null){
|
||||
TaskH taskHBatch = TaskHDataAccess.getAllHeader(getActivity(), batch);
|
||||
listTask.add(taskHBatch);
|
||||
}
|
||||
}
|
||||
}
|
||||
batchIdList.addAll(listTask);
|
||||
|
||||
userListName = new ArrayList<>();
|
||||
userListName.clear();
|
||||
userListName.addAll(UserDataAccess.getAllUserActive(getActivity()));
|
||||
|
||||
|
||||
spinnerForm = (AppCompatSpinner) view.findViewById(R.id.priorityViewByForm);
|
||||
formAdapter = new FormAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, formListName);
|
||||
formAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
spinnerUser = (AppCompatSpinner) view.findViewById(R.id.priorityViewByUser);
|
||||
userAdapter = new UserAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, userListName);
|
||||
userAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
spinnerForm.setVisibility(View.GONE);
|
||||
spinnerUser.setVisibility(View.GONE);
|
||||
|
||||
ImageView imgExpandForm = (ImageView) view.findViewById(R.id.img_expand_by_form_pc);
|
||||
imgExpandUser = (ImageView) view.findViewById(R.id.img_expand_by_user_pc);
|
||||
imgExpandForm.setVisibility(View.GONE);
|
||||
imgExpandUser.setVisibility(View.GONE);
|
||||
|
||||
spinnerBatch = (AppCompatSpinner) view.findViewById(R.id.priorityViewByBatch);
|
||||
batchAdapter = new BatchAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, batchIdList);
|
||||
batchAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
spinnerForm.setAdapter(formAdapter);
|
||||
spinnerForm.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectedDepositScheme = formAdapter.getItem(position).getUuid_scheme();
|
||||
selectedDepositSchemeName = formAdapter.getItem(position).getScheme_description();
|
||||
loadData();
|
||||
// viewAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
spinnerUser.setAdapter(userAdapter);
|
||||
spinnerUser.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectedDepositUser = userAdapter.getItem(position).getUuid_user();
|
||||
selectedDepositUserName = userAdapter.getItem(position).getLogin_id();
|
||||
selectedDepositUserObject = userAdapter.getItem(position);
|
||||
loadData();
|
||||
// viewAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
spinnerBatch.setAdapter(batchAdapter);
|
||||
spinnerBatch.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectedBatchId = batchAdapter.getItem(position).getBatch_id();
|
||||
loadData();
|
||||
// viewAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
final Button transferButton = (Button) view.findViewById(R.id.transferButton);
|
||||
transferButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// if(listTaskH.size()==0) {
|
||||
total = sumOfItems(reportsReconcile);
|
||||
if (total != 0) {
|
||||
transferButton.setEnabled(false);
|
||||
transfer();
|
||||
}
|
||||
else{
|
||||
Toast.makeText(getActivity(), getString(R.string.transfer_failed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
// } else {
|
||||
// Toast.makeText(getActivity(), "There are task(s) that still pending", Toast.LENGTH_SHORT).show();
|
||||
// }
|
||||
}
|
||||
});
|
||||
|
||||
//make sure that first selected user is current logged user
|
||||
User defaultUser = GlobalData.getSharedGlobalData().getUser();
|
||||
int position = -1;
|
||||
for(User user : userListName){
|
||||
position++;
|
||||
if(user.getUuid_user().equalsIgnoreCase(defaultUser.getUuid_user())){
|
||||
if(selectedDepositUserObject == null){
|
||||
selectedDepositUserName = userListName.get(position).getLogin_id();
|
||||
selectedDepositUser = userListName.get(position).getUuid_user();
|
||||
selectedDepositUserObject = userListName.get(position);
|
||||
}
|
||||
spinnerUser.setSelection(position);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
formNameBatch = (TextView) getView().findViewById(R.id.formBatchValue);
|
||||
submitDateBatch = (TextView) getView().findViewById(R.id.dateBatchValue);
|
||||
|
||||
initialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
reportsReconcile.clear();
|
||||
// List<TaskD> reports = TaskDDataAccess.getTaskDTagTotalbyForm(getActivity(), selectedDepositScheme);
|
||||
// List<TaskD> reports = TaskDDataAccess.getTaskDTagTotalbyFormAndUser(getActivity(), selectedDepositScheme, selectedDepositUser);
|
||||
List<TaskD> reports = TaskDDataAccess.getTaskDTagTotalbyBatchId(getActivity(), selectedBatchId);
|
||||
|
||||
|
||||
for (TaskD taskD : reports) {
|
||||
TaskH taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
selectedDepositScheme = taskH.getUuid_scheme();
|
||||
selectedDepositSchemeName = SchemeDataAccess.getOneSchemeName(getActivity(), selectedDepositScheme);
|
||||
if (taskH != null && taskH.getIs_reconciled() != null) {
|
||||
if (taskH.getIs_reconciled().equals("0")) {
|
||||
reportsReconcile.add(taskD);
|
||||
}
|
||||
}
|
||||
|
||||
if (taskH != null) {
|
||||
int printCount = taskH.getPrint_count() != null ? taskH.getPrint_count():0;
|
||||
String rvNumber = taskH.getRv_number();
|
||||
boolean isRVinFront = GeneralParameterDataAccess.isRvInFrontEnable(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
if ( printCount >0 || (rvNumber != null && !rvNumber.isEmpty()) || isRVinFront) {
|
||||
// do nothing
|
||||
} else {
|
||||
try {
|
||||
String uuidScheme = taskH.getUuid_scheme();
|
||||
Scheme scheme = SchemeDataAccess.getOne(getActivity(), uuidScheme);
|
||||
if (scheme != null) {
|
||||
if(scheme.getIs_printable().equals(Global.TRUE_STRING))
|
||||
totalNeedPrint++;
|
||||
}
|
||||
}catch (Exception e){
|
||||
totalNeedPrint++;
|
||||
}
|
||||
}
|
||||
formNameBatch.setText(selectedDepositSchemeName);
|
||||
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
|
||||
submitDateBatch.setText(df.format(taskH.getSubmit_date()));
|
||||
}
|
||||
}
|
||||
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
list.setAdapter(new RecapitulationListAdapter(
|
||||
getActivity(),
|
||||
R.layout.item_recapitulation_detail,
|
||||
reportsReconcile.toArray(new TaskD[reportsReconcile.size()])
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private List<String> getListBatchId (){
|
||||
List<String> depositedBatchList = new ArrayList<>();
|
||||
List<DepositReportH> depositedBatch = DepositReportHDataAccess.listOfBacth(getActivity());
|
||||
if(depositedBatch != null){
|
||||
for(DepositReportH depositHeader : depositedBatch){
|
||||
depositedBatchList.add(depositHeader.getBatch_id());
|
||||
}
|
||||
}
|
||||
List<String> undeposited = TaskHDataAccess.getAllBatchIdList(getActivity(), depositedBatchList);
|
||||
return undeposited;
|
||||
}
|
||||
|
||||
|
||||
void transfer() {
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
if (list.getAdapter().getCount() <= 1) {
|
||||
Toaster.warning(getActivity(), getString(R.string.nothing_to_report));
|
||||
return;
|
||||
}else if (totalNeedPrint > 0) {
|
||||
Toaster.warning(getActivity(), getActivity().getString(R.string.prompt_printRV));
|
||||
return;
|
||||
}
|
||||
BigDecimal totalValue = BigDecimal.valueOf(total);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(Constants.KEY_BUND_BATCHID, selectedBatchId);
|
||||
bundle.putString("TOTAL_DEPOSIT", totalValue.toString());
|
||||
bundle.putString("FORM", selectedDepositSchemeName);
|
||||
DepositReportPCTransferFragment fragment = new DepositReportPCTransferFragment();
|
||||
fragment.setArguments(bundle);
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private class RecapitulationListAdapter extends ArrayAdapter<TaskD> {
|
||||
|
||||
private final TaskD[] originalItems;
|
||||
|
||||
public RecapitulationListAdapter(Context context, int resource, TaskD[] objects) {
|
||||
super(context, resource, objects);
|
||||
originalItems = objects;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return super.getCount() + 1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = null;
|
||||
// if (position == 0) {
|
||||
// view = LayoutInflater.from(getContext()).inflate(R.layout.item_recapitulation_detail_black, parent, false);
|
||||
//
|
||||
// TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
// TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
// label.setText(getString(R.string.label_agreement_no));
|
||||
// value.setText("Amount");
|
||||
//// batchId=value.getText().toString().trim();
|
||||
// } else {
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.item_recapitulation_detail, parent, false);
|
||||
|
||||
TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
|
||||
if (position == getCount() - 1) {
|
||||
label.setText("Total");
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems(new ArrayList<TaskD>(Arrays.asList(originalItems))))));
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems(new ArrayList<TaskD>(Arrays.asList(originalItems))))));
|
||||
} else {
|
||||
TaskD item = getItem(position);
|
||||
// label.setText(item.getTaskH().getTask_id());
|
||||
label.setText(item.getTaskH().getAppl_no());
|
||||
value.setText(Tool.separateThousand(item.getText_answer()));
|
||||
}
|
||||
// }
|
||||
|
||||
return view;
|
||||
}
|
||||
}
|
||||
|
||||
private double sumOfItems(List<TaskD> items) {
|
||||
double sum = 0;
|
||||
try {
|
||||
for (TaskD item : items) {
|
||||
String value = item.getText_answer();
|
||||
if(value==null || value.equals("")) value = "0";
|
||||
String tempAnswer = Tool.deleteAll(value, ",");
|
||||
String[] intAnswer = Tool.split(tempAnswer, ".");
|
||||
if(intAnswer.length>1){
|
||||
if(intAnswer[1].equals("00"))
|
||||
value = intAnswer[0];
|
||||
else {
|
||||
value=tempAnswer;
|
||||
}
|
||||
}else{
|
||||
value=tempAnswer;
|
||||
}
|
||||
double finalValue = Double.parseDouble(value);
|
||||
sum += finalValue;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
public class FormAdapter extends ArrayAdapter<Scheme> {
|
||||
private Context context;
|
||||
private List<Scheme> values;
|
||||
|
||||
public FormAdapter(Context context, int resource, int textViewResourceId, List<Scheme> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context=context;
|
||||
this.values=objects;
|
||||
}
|
||||
|
||||
public int getCount(){
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public Scheme getItem(int position){
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position){
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText("Form : "+values.get(position).getScheme_description());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getScheme_description());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
public class BatchAdapter extends ArrayAdapter<TaskH> {
|
||||
private Context context;
|
||||
private List<TaskH> values;
|
||||
|
||||
public BatchAdapter(Context context, int resource, int textViewResourceId, List<TaskH> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context=context;
|
||||
this.values=objects;
|
||||
}
|
||||
|
||||
public int getCount(){
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public TaskH getItem(int position){
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position){
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText("Batch : "+values.get(position).getBatch_id());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getBatch_id());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
public class UserAdapter extends ArrayAdapter<User> {
|
||||
private Context context;
|
||||
private List<User> values;
|
||||
|
||||
public UserAdapter(Context context, int resource, int textViewResourceId, List<User> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context=context;
|
||||
this.values=objects;
|
||||
}
|
||||
|
||||
public int getCount(){
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public User getItem(int position){
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position){
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText("User : "+values.get(position).getLogin_id());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getLogin_id());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (listTaskH != null) {
|
||||
initiateRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
private void initiateRefresh() {
|
||||
cancelRefreshTask();
|
||||
backgroundTask = new RefreshBackgroundTask();
|
||||
backgroundTask.execute();
|
||||
}
|
||||
private void cancelRefreshTask(){
|
||||
if(backgroundTask!=null){
|
||||
backgroundTask.cancel(true);
|
||||
backgroundTask=null;
|
||||
}
|
||||
}
|
||||
|
||||
private class RefreshBackgroundTask extends AsyncTask<Void, Void, List<TaskH>> {
|
||||
|
||||
static final int TASK_DURATION = 2 * 1000; // 2 seconds
|
||||
|
||||
@Override
|
||||
protected List<TaskH> doInBackground(Void... params) {
|
||||
// Sleep for a small amount of time to simulate a background-task
|
||||
try {
|
||||
Thread.sleep(TASK_DURATION);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
listTaskH.clear();
|
||||
listTaskH.addAll(toDoList.getListTaskInStatus(ToDoList.SEARCH_BY_BATCH_ID, "BATCHID"));
|
||||
ToDoList.listOfSurveyStatus=null;
|
||||
List<SurveyHeaderBean> list = new ArrayList<SurveyHeaderBean>();
|
||||
for(TaskH h:listTaskH){
|
||||
list.add(new SurveyHeaderBean(h));
|
||||
}
|
||||
ToDoList.listOfSurveyStatus = list;
|
||||
|
||||
// Return a new random list of cheeses
|
||||
return listTaskH;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCancelled() {
|
||||
super.onCancelled();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<TaskH> result) {
|
||||
super.onPostExecute(result);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,932 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.provider.MediaStore;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.dynamicform.CustomerFragment;
|
||||
import com.adins.mss.base.dynamicform.DynamicFormActivity;
|
||||
import com.adins.mss.base.dynamicform.form.questions.ImageViewerActivity;
|
||||
import com.adins.mss.base.dynamicform.form.questions.viewholder.ImageQuestionViewHolder;
|
||||
import com.adins.mss.base.todolist.form.CashOnHandResponse;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.commons.Toaster;
|
||||
import com.adins.mss.coll.models.DepositReportRequest;
|
||||
import com.adins.mss.coll.models.DepositReportResponse;
|
||||
import com.adins.mss.coll.models.PaymentChannelRequest;
|
||||
import com.adins.mss.coll.models.PaymentChannelResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.Lookup;
|
||||
import com.adins.mss.dao.PaymentChannel;
|
||||
import com.adins.mss.dao.PrintItem;
|
||||
import com.adins.mss.dao.PrintResult;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.camerainapp.CameraActivity;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PaymentChannelDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintItemDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintResultDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.UserDataAccess;
|
||||
import com.adins.mss.foundation.dialog.DialogManager;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.adins.mss.foundation.image.Utils;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
import com.soundcloud.android.crop.Crop;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/4/2015.
|
||||
*/
|
||||
public class DepositReportPCTransferFragment extends Fragment {
|
||||
private static final int REQUEST_FOR_CAMERA_CAPTURE = 4;
|
||||
private View asPaymentChanel;
|
||||
private TextView txtBuktiTransfer;
|
||||
private EditText editKodeTransaksi;
|
||||
private ImageView imageBukti;
|
||||
private Button buttonSelectPhoto;
|
||||
private Button buttonSend;
|
||||
|
||||
boolean isValidate = true;
|
||||
public static final String uuidLookupDummy="lookupDummy";
|
||||
protected Spinner spinnerBankAccount;
|
||||
private BankAccountAdapter bankAccountAdapter;
|
||||
private List<Lookup> bankAccountList;
|
||||
private String selectedBank, selectedbankName, selectedBankAccount,
|
||||
selectedChannel, selectedChannelName;
|
||||
private boolean isViaChannel = false;
|
||||
|
||||
private View view;
|
||||
protected static byte[] byteImage = null;
|
||||
Double total;
|
||||
String batchId ="";
|
||||
String formName="";
|
||||
String transactionCode = "";
|
||||
protected static Bitmap image = null;
|
||||
protected static Bitmap tempImage = null;
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
|
||||
// if(image!=null && !image.isRecycled()){
|
||||
// image.recycle();
|
||||
// image=null;
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
String totDeposit = getArguments().getString("TOTAL_DEPOSIT");
|
||||
total = Double.parseDouble(totDeposit);
|
||||
batchId = getArguments().getString("BATCHID");
|
||||
formName = getArguments().getString("FORM");
|
||||
bankAccountList = new ArrayList<>();
|
||||
bankAccountList.clear();
|
||||
setDummyBankAccountSpinner();
|
||||
|
||||
List<Lookup> lookupChannel = new ArrayList<>();
|
||||
List<PaymentChannel> paymentChannel = PaymentChannelDataAccess.getAllPaymentChannel(getActivity(), total);
|
||||
for(PaymentChannel channel : paymentChannel){
|
||||
Lookup luChannel = new Lookup();
|
||||
luChannel.setValue(channel.getDescription() + " | " + channel.getCode());
|
||||
lookupChannel.add(luChannel);
|
||||
}
|
||||
bankAccountList.addAll(lookupChannel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
view = inflater.inflate(R.layout.fragment_deposit_report_transfer_pc, container, false);
|
||||
spinnerBankAccount = (Spinner) view.findViewById(R.id.spinnerBankAccount);
|
||||
bankAccountAdapter = new BankAccountAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, bankAccountList);
|
||||
bankAccountAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
spinnerBankAccount.setAdapter(bankAccountAdapter);
|
||||
spinnerBankAccount.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
if(position==0) {
|
||||
selectedBank = bankAccountAdapter.getItem(position).getValue();
|
||||
selectedbankName = "";
|
||||
selectedBankAccount = "";
|
||||
selectedChannel = "";
|
||||
selectedChannelName = "";
|
||||
} else {
|
||||
selectedBank = bankAccountAdapter.getItem(position).getValue();
|
||||
selectedBank = selectedBank.replace(" ", "");
|
||||
String answers[] = Tool.split(selectedBank, "|");
|
||||
isViaChannel = true;
|
||||
selectedChannel = answers[1].trim();
|
||||
selectedChannelName = answers[0].trim();
|
||||
asPaymentChanel.setVisibility(View.VISIBLE);
|
||||
editKodeTransaksi.setVisibility(View.VISIBLE);
|
||||
editKodeTransaksi.setEnabled(false);
|
||||
TransactionCodeTask task = new TransactionCodeTask();
|
||||
task.execute();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
return view;
|
||||
}
|
||||
|
||||
private class TransactionCodeTask extends AsyncTask<Void, Void, String> {
|
||||
private ProgressDialog progressDialog;
|
||||
private String errMessage, message;
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
progressDialog = ProgressDialog.show(getContext(), "", getString(com.adins.mss.base.R.string.progressWait));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(Void... voids) {
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
PaymentChannelRequest request = new PaymentChannelRequest();
|
||||
request.setBatchID(batchId);
|
||||
request.setCodeChannel(selectedChannel);
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
|
||||
String json = GsonHelper.toJson(request);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_CODETRANSACTION();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (serverResult != null && serverResult.isOK()) {
|
||||
try {
|
||||
String responseBody = serverResult.getResult();
|
||||
PaymentChannelResponse response = GsonHelper.fromJson(responseBody, PaymentChannelResponse.class);
|
||||
if (response.getStatus().getCode() != 0) {
|
||||
message = response.getStatus().getMessage();
|
||||
return "";
|
||||
} else {
|
||||
if("1".equals(response.getFlagLimit())){
|
||||
message = getActivity().getString(com.adins.mss.base.R.string.paymentchannel_limit);
|
||||
}
|
||||
return response.getNoTransaction();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (Global.IS_DEV) {
|
||||
e.printStackTrace();
|
||||
errMessage = e.getMessage();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.server_down);
|
||||
}
|
||||
|
||||
} else {
|
||||
errMessage = getString(com.adins.mss.base.R.string.no_internet_connection);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String transactionCode) {
|
||||
super.onPostExecute(transactionCode);
|
||||
isValidate = (transactionCode != null && !transactionCode.isEmpty())? true : false ;
|
||||
setCodeTransaction(transactionCode);
|
||||
progressDialog.dismiss();
|
||||
|
||||
if (!isValidate){
|
||||
if(message != null) {
|
||||
DialogManager.showAlertNotif(getActivity(),
|
||||
message, "Transaction's Code");
|
||||
} else if (errMessage != null) {
|
||||
Toast.makeText(getContext(), errMessage, Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
DialogManager.showAlertNotif(getActivity(),
|
||||
getActivity().getString(com.adins.mss.base.R.string.msgUnavaibleCodeTransaction ), "Transaction's Code");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setCodeTransaction(String transactionCode){
|
||||
editKodeTransaksi.setText(transactionCode);
|
||||
this.transactionCode = transactionCode;
|
||||
}
|
||||
|
||||
|
||||
public void setLabel(){
|
||||
if(view!=null) {
|
||||
txtBuktiTransfer = (TextView) view.findViewById(R.id.txtBuktiTransfer);
|
||||
|
||||
txtBuktiTransfer.setText(getActivity().getString(R.string.label_transfer_evidence_pc));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
setLabel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
|
||||
asPaymentChanel = view.findViewById(R.id.txtTransactionCode);
|
||||
asPaymentChanel.setVisibility(View.GONE);
|
||||
|
||||
editKodeTransaksi = (EditText) view.findViewById(R.id.editKodeTransaksi);
|
||||
imageBukti = (ImageView) view.findViewById(R.id.imageBukti);
|
||||
buttonSelectPhoto = (Button) view.findViewById(R.id.buttonSelectPhoto);
|
||||
buttonSend = (Button) view.findViewById(R.id.buttonSend);
|
||||
editKodeTransaksi.setVisibility(View.GONE);
|
||||
|
||||
setLabel();
|
||||
imageBukti.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
// TODO Auto-generated method stub
|
||||
if(imageBukti.getDrawable()!=null && image!=null){
|
||||
if(byteImage==null)
|
||||
byteImage = Utils.bitmapToByte(tempImage);
|
||||
imageBukti.setDrawingCacheEnabled(true);
|
||||
imageBukti.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
|
||||
imageBukti.buildDrawingCache();
|
||||
image = Bitmap.createBitmap(imageBukti.getDrawingCache(true));
|
||||
Global.isViewer=true;
|
||||
|
||||
Global.isViewer=true;
|
||||
Bundle extras = new Bundle();
|
||||
extras.putByteArray(ImageViewerActivity.BUND_KEY_IMAGE, byteImage);
|
||||
extras.putInt(ImageViewerActivity.BUND_KEY_IMAGE_QUALITY, Utils.picQuality);
|
||||
extras.putBoolean(ImageViewerActivity.BUND_KEY_IMAGE_ISVIEWER, Global.isViewer);
|
||||
Intent intent = new Intent(getActivity(), ImageViewerActivity.class);
|
||||
intent.putExtras(extras);
|
||||
imageBukti.setDrawingCacheEnabled(false);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
buttonSelectPhoto.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
openCameraApp(getActivity());
|
||||
}
|
||||
});
|
||||
|
||||
buttonSend.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
buttonSend.setClickable(false);
|
||||
buttonSelectPhoto.setClickable(false);
|
||||
|
||||
if(Tool.isInternetconnected(getActivity())) {
|
||||
new SendDepositReportTask(getActivity()).
|
||||
execute(selectedBankAccount,
|
||||
selectedbankName,
|
||||
"",
|
||||
"",
|
||||
selectedChannel, selectedChannelName
|
||||
);
|
||||
}else{
|
||||
Toaster.warning(getActivity(), getActivity().getString(R.string.failed_send_data));
|
||||
buttonSend.setClickable(true);
|
||||
buttonSelectPhoto.setClickable(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
String application = GlobalData.getSharedGlobalData().getAuditData().getApplication();
|
||||
if(Global.APPLICATION_COLLECTION.equalsIgnoreCase(application))
|
||||
menu.findItem(R.id.menuMore).setVisible(false);
|
||||
}
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == Utils.REQUEST_IN_APP_CAMERA && resultCode == Activity.RESULT_OK) {
|
||||
Bundle bundle = data.getExtras();
|
||||
if (bundle != null) {
|
||||
Uri uri = Uri.parse(bundle.getString(CameraActivity.PICTURE_URI));
|
||||
File file = new File(uri.getPath());
|
||||
image = Utils.pathToBitmapWithRotation(file);
|
||||
tempImage = Utils.pathToBitmapWithRotation(file);
|
||||
byteImage = Utils.pathBitmapToByteWithRotation(file);
|
||||
imageBukti.setImageBitmap(image);
|
||||
}
|
||||
}
|
||||
else if(requestCode == Utils.REQUEST_CAMERA && resultCode == Activity.RESULT_OK) {
|
||||
Uri uri= Uri.parse(DynamicFormActivity.mCurrentPhotoPath);
|
||||
File file = new File(uri.getPath());
|
||||
image = Utils.pathToBitmapWithRotation(file);
|
||||
byteImage = Utils.pathBitmapToByteWithRotation(file);
|
||||
tempImage = Utils.pathToBitmapWithRotation(file);
|
||||
imageBukti.setImageBitmap(image);
|
||||
}
|
||||
else if (requestCode == Crop.REQUEST_PICK && resultCode == Activity.RESULT_OK) {
|
||||
Uri outputUri = data.getData();
|
||||
try {
|
||||
image = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(outputUri));
|
||||
tempImage = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(outputUri));
|
||||
} catch (FileNotFoundException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
imageBukti.setImageBitmap(image);
|
||||
}
|
||||
Utility.freeMemory();
|
||||
}
|
||||
public void onDestroy(){
|
||||
super.onDestroy();
|
||||
// if(image!=null && !image.isRecycled()){
|
||||
// image.recycle();
|
||||
// image=null;
|
||||
// }
|
||||
// if(tempImage!=null && !tempImage.isRecycled()){
|
||||
// tempImage.recycle();
|
||||
// tempImage=null;
|
||||
// }
|
||||
}
|
||||
|
||||
public class SendDepositReportTask extends AsyncTask<String, Void, List<String>> {
|
||||
private ProgressDialog progressDialog;
|
||||
private Activity activity;
|
||||
private DepositReportH header;
|
||||
private ArrayList<DepositReportD> details;
|
||||
String namaKasir;
|
||||
private String errMsg;
|
||||
private StringBuilder sb;
|
||||
public SendDepositReportTask(Activity activity){
|
||||
this.activity=activity;
|
||||
}
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
this.progressDialog = ProgressDialog.show(activity, "", activity.getString(R.string.progressSend), true);
|
||||
}
|
||||
@Override
|
||||
protected List<String> doInBackground(String... params) {
|
||||
List<String> results = new ArrayList<>();
|
||||
String result = "";
|
||||
if(Tool.isInternetconnected(getActivity())){
|
||||
sb = new StringBuilder();
|
||||
|
||||
DepositReportRequest request = new DepositReportRequest();
|
||||
request.addImeiAndroidIdToUnstructured();
|
||||
header = new DepositReportH();
|
||||
header.setCashier_name("");
|
||||
header.setUuid_deposit_report_h(Tool.getUUID());
|
||||
header.setBatch_id(batchId);
|
||||
header.setFlag(formName);
|
||||
header.setTransfered_date(Tool.getSystemDateTime());
|
||||
header.setDtm_crt(Tool.getSystemDateTime());
|
||||
header.setUuid_user(DepositReportPCRecapitulateFragment.selectedDepositUser);
|
||||
header.setUser(DepositReportPCRecapitulateFragment.selectedDepositUserObject);
|
||||
if (null != header.getUuid_user() && !"".equals(header.getUuid_user())) {
|
||||
header.setUsr_crt(header.getUuid_user());
|
||||
} else {
|
||||
header.setUsr_crt(GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
}
|
||||
|
||||
String channelCode = params[4];
|
||||
if (channelCode != null && channelCode.length() > 0) {
|
||||
header.setCode_channel(channelCode);
|
||||
header.setNo_transaction(transactionCode);
|
||||
} else {
|
||||
sb.append(getActivity().getString(R.string.channel_to_required));
|
||||
}
|
||||
if (transactionCode != null && transactionCode.isEmpty()) {
|
||||
sb.append(getActivity().getString(R.string.transfer_code_required));
|
||||
}
|
||||
if (image == null)
|
||||
sb.append(getActivity().getString(R.string.evidence_pc_required));
|
||||
else {
|
||||
try {
|
||||
byteImage = Utils.bitmapToByte(tempImage);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
if (byteImage != null)
|
||||
header.setImage(byteImage);
|
||||
else
|
||||
sb.append(getActivity().getString(R.string.evidence_pc_required));
|
||||
}
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
request.setReportHeader(header);
|
||||
|
||||
if(sb.length()>0){
|
||||
result = sb.toString();
|
||||
results.add(0, result);
|
||||
}else{
|
||||
details = new ArrayList<DepositReportD>();
|
||||
List<TaskD> tasks = TaskDDataAccess.getTaskDTagTotalbyBatchId(getActivity(),
|
||||
DepositReportPCRecapitulateFragment.selectedBatchId);
|
||||
List<TaskD> reportsReconcile = new ArrayList<TaskD>();
|
||||
|
||||
for (TaskD taskD : tasks) {
|
||||
TaskH taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
if (taskH.getIs_reconciled().equals("0")) {
|
||||
reportsReconcile.add(taskD);
|
||||
}
|
||||
}
|
||||
for (TaskD task : reportsReconcile) {
|
||||
DepositReportD detail = new DepositReportD();
|
||||
detail.setUuid_task_h(task.getTaskH().getUuid_task_h());
|
||||
detail.setDtm_crt(Tool.getSystemDateTime());
|
||||
detail.setUsr_crt(DepositReportPCRecapitulateFragment.selectedDepositUser);
|
||||
detail.setUuid_deposit_report_d(Tool.getUUID());
|
||||
String value = task.getText_answer();
|
||||
|
||||
if (value == null || value.equals(""))
|
||||
value = "0";
|
||||
String tempAnswer = Tool.deleteAll(value, ",");
|
||||
String[] intAnswer = Tool.split(tempAnswer, ".");
|
||||
if (intAnswer.length > 1) {
|
||||
if (intAnswer[1].equals("00"))
|
||||
value = intAnswer[0];
|
||||
else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
} else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
|
||||
detail.setDeposit_amt(value);
|
||||
|
||||
detail.setUuid_deposit_report_h(header.getUuid_deposit_report_h());
|
||||
details.add(detail);
|
||||
}
|
||||
|
||||
request.setListReportDetail(details);
|
||||
|
||||
String url = GlobalData.getSharedGlobalData().getURL_SUBMIT_DEPOSIT_PC();
|
||||
String json = GsonHelper.toJson(request);
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errMsg = e.getMessage();
|
||||
}
|
||||
|
||||
MssRequestType cohRequest = new MssRequestType();
|
||||
cohRequest.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
cohRequest.addImeiAndroidIdToUnstructured();
|
||||
String urlCoh = GlobalData.getSharedGlobalData().getURL_UPDATE_CASH_ON_HAND();
|
||||
String jsonCoh = GsonHelper.toJson(cohRequest);
|
||||
HttpConnectionResult serverResultCoh = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetricCoh = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetricCoh, jsonCoh);
|
||||
|
||||
try {
|
||||
serverResultCoh = httpConn.requestToServer(urlCoh, jsonCoh, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetricCoh, serverResultCoh);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errMsg = e.getMessage();
|
||||
}
|
||||
|
||||
try {
|
||||
if (serverResult != null) {
|
||||
result=serverResult.getResult();
|
||||
}
|
||||
results.add(0, result);
|
||||
String resultCoh = null;
|
||||
if (serverResultCoh != null) {
|
||||
resultCoh = serverResultCoh.getResult();
|
||||
}
|
||||
results.add(1, resultCoh);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
}else{
|
||||
result = getActivity().getString(R.string.no_internet_connection);
|
||||
results.add(0, result);
|
||||
}
|
||||
|
||||
|
||||
return results;
|
||||
}
|
||||
@Override
|
||||
protected void onPostExecute(List<String> results) {
|
||||
boolean error = false;
|
||||
if (progressDialog.isShowing()){
|
||||
try {
|
||||
progressDialog.dismiss();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
try {
|
||||
imageBukti.setDrawingCacheEnabled(false);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(Global.IS_DEV)
|
||||
System.out.println(results);
|
||||
if(errMsg!=null){
|
||||
final NiftyDialogBuilder dialog= NiftyDialogBuilder.getInstance(getActivity());
|
||||
dialog.withTitle(getActivity().getString(R.string.error_capital)).withMessage(this.errMsg).
|
||||
withButton1Text("OK").
|
||||
setButton1Click(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
dialog.dismiss();
|
||||
CustomerFragment.doBack(getActivity());
|
||||
}
|
||||
}).
|
||||
isCancelable(false).show();
|
||||
error = true;
|
||||
}else{
|
||||
if(getActivity().getString(R.string.no_internet_connection).equals(results.get(0))){
|
||||
Toaster.warning(getActivity(), results.get(0));
|
||||
error = true;
|
||||
}else{
|
||||
if(sb!=null && sb.length()>0){
|
||||
Toaster.warning(getActivity(), results.get(0));
|
||||
error = true;
|
||||
}else{
|
||||
try{
|
||||
DepositReportResponse responseType = GsonHelper.fromJson(results.get(0), DepositReportResponse.class);
|
||||
if(responseType.getStatus().getCode()==0){
|
||||
header.setBatch_id(responseType.getBatchId());
|
||||
DepositReportHDataAccess.add(getActivity(), header);
|
||||
for(DepositReportD reportD : details){
|
||||
reportD.setIs_sent(Global.TRUE_STRING);
|
||||
reportD.setDepositReportH(header);
|
||||
DepositReportDDataAccess.add(getActivity(), reportD);
|
||||
}
|
||||
generatePrintResultDepReport(getActivity(), namaKasir, header);
|
||||
|
||||
if(results.size()==2){
|
||||
try {
|
||||
CashOnHandResponse cashOnHandResponse = GsonHelper.fromJson(results.get(1), CashOnHandResponse.class);
|
||||
if (cashOnHandResponse.getStatus().getCode() == 0) {
|
||||
User user = GlobalData.getSharedGlobalData().getUser();
|
||||
user.setCash_on_hand(cashOnHandResponse.getCashOnHand());
|
||||
GlobalData.getSharedGlobalData().getUser().setCash_on_hand(
|
||||
cashOnHandResponse.getCashOnHand()
|
||||
);
|
||||
UserDataAccess.addOrReplace(getActivity(), user);
|
||||
}
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
|
||||
final NiftyDialogBuilder dialog= NiftyDialogBuilder.getInstance(getActivity());
|
||||
dialog.withTitle(getActivity().getString(R.string.success)).
|
||||
withMessage(getActivity().getString(R.string.success_deposit)).
|
||||
withButton1Text("OK").
|
||||
setButton1Click(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
dialog.dismiss();
|
||||
CustomerFragment.doBack(getActivity());
|
||||
CustomerFragment.doBack(getActivity());
|
||||
DepositReportPCDetailActivity.report = header;
|
||||
Intent intent = new Intent(getActivity(), DepositReportPCDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
}).
|
||||
isCancelable(false).show();
|
||||
}else{
|
||||
final NiftyDialogBuilder dialog= NiftyDialogBuilder.getInstance(getActivity());
|
||||
dialog.withTitle(getActivity().getString(R.string.error_capital)).withMessage(responseType.getStatus().getMessage()).
|
||||
withButton1Text("OK").
|
||||
setButton1Click(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
dialog.dismiss();
|
||||
CustomerFragment.doBack(getActivity());
|
||||
}
|
||||
}).
|
||||
isCancelable(false).show();
|
||||
}
|
||||
}
|
||||
catch (Exception e2){
|
||||
Toaster.warning(getActivity(), results.get(0));
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(error) {
|
||||
buttonSend.setClickable(true);
|
||||
buttonSelectPhoto.setClickable(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void openCameraApp(Activity mActivity) {
|
||||
if (GlobalData.getSharedGlobalData().isUseOwnCamera()) {
|
||||
int quality = Utils.picQuality;
|
||||
int thumbHeight = Utils.picHeight;
|
||||
int thumbWidht = Utils.picWidth;
|
||||
|
||||
Intent intent = new Intent(mActivity, CameraActivity.class);
|
||||
intent.putExtra(CameraActivity.PICTURE_WIDTH, thumbWidht);
|
||||
intent.putExtra(CameraActivity.PICTURE_HEIGHT, thumbHeight);
|
||||
intent.putExtra(CameraActivity.PICTURE_QUALITY, quality);
|
||||
|
||||
startActivityForResult(intent, Utils.REQUEST_IN_APP_CAMERA);
|
||||
}
|
||||
else{
|
||||
try {
|
||||
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
if(intent.resolveActivity(mActivity.getPackageManager())!=null){
|
||||
File photoFile = null;
|
||||
try {
|
||||
photoFile = ImageQuestionViewHolder.createImageFile(getActivity());
|
||||
} catch (IOException ex) {
|
||||
}
|
||||
if (photoFile != null) {
|
||||
intent.putExtra(MediaStore.EXTRA_OUTPUT,
|
||||
Uri.fromFile(photoFile));
|
||||
startActivityForResult(intent, Utils.REQUEST_CAMERA);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception for failed open camera
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void generatePrintResultDepReport(Activity activity, String cashierName, DepositReportH report){
|
||||
List<PrintItem> printItemList = PrintItemDataAccess.getAll(activity, "DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
List<PrintResult> printResultList = new ArrayList<PrintResult>();
|
||||
|
||||
//delete dulu yang ada di database, karena generate printResult dengan jawaban yang baru
|
||||
List<PrintResult> printResultByTaskH = PrintResultDataAccess.getAll(activity, report.getBatch_id());
|
||||
if(printResultByTaskH.size()>0){
|
||||
PrintResultDataAccess.delete(activity, report.getBatch_id());
|
||||
}
|
||||
PrintResult PRtransferBy = new PrintResult(Tool.getUUID());
|
||||
PRtransferBy.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
PRtransferBy.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
PRtransferBy.setUuid_task_h(report.getBatch_id());
|
||||
for (PrintItem bean : printItemList) {
|
||||
PrintResult printResult = new PrintResult(Tool.getUUID());
|
||||
printResult.setPrint_type_id(bean.getPrint_type_id());
|
||||
printResult.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
printResult.setUuid_task_h(report.getBatch_id());
|
||||
|
||||
if (bean.getPrint_type_id().equals(Global.PRINT_ANSWER)) {
|
||||
String label = bean.getPrint_item_label();
|
||||
if (label.equals("Batch ID")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBatch_id());
|
||||
} else if (label.equals("Transfer By")) {
|
||||
printResult.setLabel(label);
|
||||
if (cashierName != null && cashierName.length() > 0) {
|
||||
printResult.setValue("Cashier");
|
||||
PRtransferBy.setLabel(label);
|
||||
PRtransferBy.setValue("Cashier");
|
||||
} else {
|
||||
printResult.setValue("Bank");
|
||||
PRtransferBy.setLabel(label);
|
||||
PRtransferBy.setValue("Bank");
|
||||
}
|
||||
} else if (label.equals("Cashier Name")) {
|
||||
if (PRtransferBy.getValue().equals("Cashier")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getCashier_name());
|
||||
}
|
||||
} else if (label.equals("Account No")) {
|
||||
if (PRtransferBy.getValue().equals("Bank")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBank_account());
|
||||
}
|
||||
} else if (label.equals("Bank Name")) {
|
||||
if (PRtransferBy.getValue().equals("Bank")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBank_name());
|
||||
}
|
||||
} else if (label.contains("Agreement No")) {
|
||||
int no = Integer.valueOf(label.replace("Agreement No", ""));
|
||||
printResult.setLabel("Agreement No");
|
||||
List<DepositReportD> reportDs = report
|
||||
.getDepositReportDList();
|
||||
try {
|
||||
TaskH taskHs = TaskHDataAccess.getOneHeader(activity,
|
||||
reportDs.get(no).getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if (taskHs != null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
if (agreement_no == null)
|
||||
agreement_no = "-";
|
||||
printResult.setValue(agreement_no);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
} else if (label.contains("Deposit Amount")) {
|
||||
int no = Integer.valueOf(label
|
||||
.replace("Deposit Amount", ""));
|
||||
printResult.setLabel("Deposit Amt");
|
||||
List<DepositReportD> reportDs = report
|
||||
.getDepositReportDList();
|
||||
try {
|
||||
printResult.setValue(Tool.separateThousand(reportDs
|
||||
.get(no).getDeposit_amt()));
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
} else if (label.equals("Total")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(String.valueOf(Tool
|
||||
.separateThousand(total)));
|
||||
}
|
||||
} else if (bean.getPrint_type_id().equals(
|
||||
Global.PRINT_BRANCH_ADDRESS)) {
|
||||
printResult.setLabel(GlobalData.getSharedGlobalData().getUser()
|
||||
.getBranch_address());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_BRANCH_NAME)) {
|
||||
printResult.setLabel(GlobalData.getSharedGlobalData().getUser()
|
||||
.getBranch_name());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_BT_ID)) {
|
||||
String btAddr = "?";
|
||||
try {
|
||||
btAddr = BluetoothAdapter.getDefaultAdapter().getAddress();
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue(btAddr);
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LABEL)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LABEL_BOLD)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id()
|
||||
.equals(Global.PRINT_LABEL_CENTER)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(
|
||||
Global.PRINT_LABEL_CENTER_BOLD)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LOGO)) {
|
||||
printResult.setLabel("");
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_NEW_LINE)) {
|
||||
String label = bean.getPrint_item_label();
|
||||
int no = Integer.valueOf(label.replace("New Line", ""));
|
||||
List<DepositReportD> reportDs = report.getDepositReportDList();
|
||||
int size = reportDs.size();
|
||||
if (no < size) {
|
||||
printResult.setLabel("------------------------------");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
if (no == 999) {
|
||||
printResult.setLabel("==============================");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
if (no == 998) {
|
||||
printResult.setLabel("\n");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_TIMESTAMP)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_USER_NAME)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue(GlobalData.getSharedGlobalData().getUser()
|
||||
.getFullname());
|
||||
}
|
||||
if (printResult.getLabel() != null) {
|
||||
PrintResultDataAccess.add(activity, printResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class BankAccountAdapter extends ArrayAdapter<Lookup> {
|
||||
private Context context;
|
||||
private List<Lookup> values;
|
||||
|
||||
public BankAccountAdapter(Context context, int resource, int textViewResourceId, List<Lookup> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context=context;
|
||||
this.values=objects;
|
||||
}
|
||||
|
||||
public int getCount(){
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public Lookup getItem(int position){
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position){
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getValue());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater= getActivity().getLayoutInflater();
|
||||
View view=inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView)view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getValue());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
private void setDummyBankAccountSpinner() {
|
||||
Lookup bankAccountDummy = new Lookup();
|
||||
bankAccountDummy.setUuid_lookup(uuidLookupDummy);
|
||||
bankAccountDummy.setValue(getString(R.string.choose_one_pc));
|
||||
|
||||
bankAccountList.add(0,bankAccountDummy);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,619 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.NewMainActivity;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.commons.Generator;
|
||||
import com.adins.mss.coll.commons.Toaster;
|
||||
import com.adins.mss.coll.dummy.UserHelpCOLDummy;
|
||||
import com.adins.mss.coll.fragments.view.DepositReportRecapitulateView;
|
||||
import com.adins.mss.coll.tool.Constants;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.GeneralParameter;
|
||||
import com.adins.mss.dao.PrintItem;
|
||||
import com.adins.mss.dao.PrintResult;
|
||||
import com.adins.mss.dao.Scheme;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintItemDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintResultDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/13/2015.
|
||||
*/
|
||||
public class DepositReportRecapitulateFragment extends Fragment {
|
||||
protected double total = 0;
|
||||
String batchId;
|
||||
private DepositReportRecapitulateView view;
|
||||
List<TaskD> reportsReconcile = new ArrayList<TaskD>();
|
||||
private int totalNeedPrint;
|
||||
private DepositReportH header;
|
||||
ListView list;
|
||||
|
||||
public void setBatchId(String batchId) {
|
||||
this.batchId = batchId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
view = new DepositReportRecapitulateView(getActivity());
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return view.layoutInflater(inflater, container);
|
||||
// return inflater.inflate(R.layout.new_fragment_deposit_report_recapitulate, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View mView, Bundle savedInstanceState) {
|
||||
super.onViewCreated(mView, savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
initialize();
|
||||
view.onCreate();
|
||||
view.publish();
|
||||
// Button transferButton = (Button) mView.findViewById(R.id.btnTransfer);
|
||||
// transferButton.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
// if (total != 0)
|
||||
// transfer();
|
||||
// else
|
||||
// Toast.makeText(getActivity(), getString(R.string.transfer_failed), Toast.LENGTH_SHORT).show();
|
||||
// }
|
||||
// });
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelpCOLDummy.showDummyDepositReport(
|
||||
DepositReportRecapitulateFragment.this.getActivity(),
|
||||
DepositReportRecapitulateFragment.this.getClass().getSimpleName(),
|
||||
view);
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if(item.getItemId() == R.id.mnGuide){
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelpCOLDummy.showDummyDepositReport(
|
||||
DepositReportRecapitulateFragment.this.getActivity(),
|
||||
DepositReportRecapitulateFragment.this.getClass().getSimpleName(),
|
||||
view);
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public void generatePrintResultDepReport(Context activity, String cashierName, DepositReportH report) {
|
||||
List<PrintItem> printItemList = PrintItemDataAccess.getAll(activity, "DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
List<PrintResult> printResultList = new ArrayList<PrintResult>();
|
||||
|
||||
//delete dulu yang ada di database, karena generate printResult dengan jawaban yang baru
|
||||
try {
|
||||
List<PrintResult> printResultByTaskH = PrintResultDataAccess.getAll(activity, report.getBatch_id());
|
||||
if (printResultByTaskH != null && printResultByTaskH.size() > 0) {
|
||||
PrintResultDataAccess.delete(activity, report.getBatch_id());
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
PrintResult PRtransferBy = new PrintResult(Tool.getUUID());
|
||||
PRtransferBy.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
PRtransferBy.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
PRtransferBy.setUuid_task_h(report.getBatch_id());
|
||||
for (PrintItem bean : printItemList) {
|
||||
PrintResult printResult = new PrintResult(Tool.getUUID());
|
||||
printResult.setPrint_type_id(bean.getPrint_type_id());
|
||||
printResult.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
printResult.setUuid_task_h(report.getBatch_id());
|
||||
|
||||
if (bean.getPrint_type_id().equals(Global.PRINT_ANSWER)) {
|
||||
String label = bean.getPrint_item_label();
|
||||
if (label.equals("Batch ID")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBatch_id());
|
||||
} else if (label.equals("Transfer By")) {
|
||||
if (!report.getBatch_id().equalsIgnoreCase("-")) {
|
||||
printResult.setLabel(label);
|
||||
if (cashierName != null && cashierName.length() > 0) {
|
||||
printResult.setValue("Cashier");
|
||||
PRtransferBy.setLabel(label);
|
||||
PRtransferBy.setValue("Cashier");
|
||||
} else {
|
||||
printResult.setValue("Bank");
|
||||
PRtransferBy.setLabel(label);
|
||||
PRtransferBy.setValue("Bank");
|
||||
}
|
||||
}
|
||||
} else if (label.equals("Cashier Name")) {
|
||||
if (PRtransferBy.getValue() != null && PRtransferBy.getValue().equals("Cashier")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getCashier_name());
|
||||
}
|
||||
} else if (label.equals("Account No")) {
|
||||
if (PRtransferBy.getValue() != null && PRtransferBy.getValue().equals("Bank")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBank_account());
|
||||
}
|
||||
} else if (label.equals("Bank Name")) {
|
||||
if (PRtransferBy.getValue() != null && PRtransferBy.getValue().equals("Bank")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBank_name());
|
||||
}
|
||||
} else if (label.contains("Agreement No")) {
|
||||
int no = Integer.valueOf(label.replace("Agreement No", ""));
|
||||
printResult.setLabel("Agreement No");
|
||||
List<DepositReportD> reportDs = report
|
||||
.getDepositReportDList();
|
||||
try {
|
||||
TaskH taskHs = TaskHDataAccess.getOneHeader(activity,
|
||||
reportDs.get(no).getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if (taskHs != null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
if (agreement_no == null)
|
||||
agreement_no = "-";
|
||||
printResult.setValue(agreement_no);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
// TODO: handle exception
|
||||
}
|
||||
} else if (label.contains("Deposit Amount")) {
|
||||
int no = Integer.valueOf(label
|
||||
.replace("Deposit Amount", ""));
|
||||
printResult.setLabel("Deposit Amt");
|
||||
List<DepositReportD> reportDs = report
|
||||
.getDepositReportDList();
|
||||
try {
|
||||
printResult.setValue(Tool.separateThousand(reportDs
|
||||
.get(no).getDeposit_amt(), false));
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
// TODO: handle exception
|
||||
}
|
||||
} else if (label.equals("Total")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(String.valueOf(Tool
|
||||
.separateThousand(total, false)));
|
||||
}
|
||||
} else if (bean.getPrint_type_id().equals(
|
||||
Global.PRINT_BRANCH_ADDRESS)) {
|
||||
printResult.setLabel(GlobalData.getSharedGlobalData().getUser()
|
||||
.getBranch_address());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_BRANCH_NAME)) {
|
||||
printResult.setLabel(GlobalData.getSharedGlobalData().getUser()
|
||||
.getBranch_name());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_BT_ID)) {
|
||||
String btAddr = "?";
|
||||
try {
|
||||
btAddr = BluetoothAdapter.getDefaultAdapter().getAddress();
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
|
||||
}
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue(btAddr);
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LABEL)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LABEL_BOLD)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id()
|
||||
.equals(Global.PRINT_LABEL_CENTER)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(
|
||||
Global.PRINT_LABEL_CENTER_BOLD)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LOGO)) {
|
||||
printResult.setLabel("");
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_NEW_LINE)) {
|
||||
String label = bean.getPrint_item_label();
|
||||
int no = Integer.valueOf(label.replace("New Line", ""));
|
||||
List<DepositReportD> reportDs = DepositReportDDataAccess.getAll(getContext(), report.getUuid_deposit_report_h());
|
||||
int size = reportDs.size();
|
||||
if (no < size) {
|
||||
printResult.setLabel("------------------------------");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
if (no == 999) {
|
||||
printResult.setLabel("==============================");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
if (no == 998) {
|
||||
printResult.setLabel("\n");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_TIMESTAMP)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_USER_NAME)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue(GlobalData.getSharedGlobalData().getUser()
|
||||
.getFullname());
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LOGIN_ID)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue(GlobalData.getSharedGlobalData().getUser().getLogin_id());
|
||||
}
|
||||
if (printResult.getLabel() != null) {
|
||||
PrintResultDataAccess.add(activity, printResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
reportsReconcile.clear();
|
||||
String uuidUser = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
List<TaskD> reports = TaskDDataAccess.getTaskDTagTotal(getActivity(), uuidUser);
|
||||
|
||||
|
||||
for (TaskD taskD : reports) {
|
||||
TaskH taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
if (taskH != null && taskH.getIs_reconciled() != null) {
|
||||
if (taskH.getIs_reconciled().equals("0")) {
|
||||
reportsReconcile.add(taskD);
|
||||
}
|
||||
}
|
||||
|
||||
if (taskH != null) {
|
||||
int printCount = taskH.getPrint_count() != null ? taskH.getPrint_count() : 0;
|
||||
String rvNumber = taskH.getRv_number();
|
||||
boolean isRVinFront = GeneralParameterDataAccess.isRvInFrontEnable(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
if (printCount > 0 || (rvNumber != null && !rvNumber.isEmpty()) || isRVinFront) {
|
||||
// do nothing
|
||||
} else {
|
||||
try {
|
||||
String uuidScheme = taskH.getUuid_scheme();
|
||||
Scheme scheme = SchemeDataAccess.getOne(getActivity(), uuidScheme);
|
||||
if (scheme != null) {
|
||||
if (scheme.getIs_printable().equals(Global.TRUE_STRING))
|
||||
totalNeedPrint++;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
{
|
||||
totalNeedPrint++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
list = (ListView) getView().findViewById(R.id.listRecapitulationDetail);
|
||||
list.setAdapter(new RecapitulationListAdapter(
|
||||
getActivity(),
|
||||
R.layout.item_recapitulation_detail,
|
||||
reportsReconcile.toArray(new TaskD[reportsReconcile.size()])
|
||||
)
|
||||
);
|
||||
}
|
||||
total = sumOfItems(reportsReconcile);
|
||||
// ListView list = (ListView) getView().findViewById(R.id.listRecapitulationDetail);
|
||||
// list.setAdapter(new RecapitulationListAdapter(
|
||||
// getActivity(),
|
||||
// R.layout.item_recapitulation_detail,
|
||||
// reportsReconcile.toArray(new TaskD[reportsReconcile.size()])
|
||||
// )
|
||||
// );
|
||||
|
||||
// void transfer() {
|
||||
// ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
// if (list.getAdapter().getCount() <= 2) {
|
||||
// Toaster.warning(getActivity(), getString(R.string.nothing_to_report));
|
||||
// return;
|
||||
// }else if (totalNeedPrint > 0) {
|
||||
// Toaster.warning(getActivity(), getActivity().getString(R.string.prompt_printRV));
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// BigDecimal totalValue = new BigDecimal(total);
|
||||
// Bundle bundle = new Bundle();
|
||||
// bundle.putString(Constants.KEY_BUND_BATCHID, batchId);
|
||||
// bundle.putString("TOTAL_DEPOSIT", totalValue.toString());
|
||||
//
|
||||
// DepositReportTransferFragment fragment = new DepositReportTransferFragment();
|
||||
// fragment.setArguments(bundle);
|
||||
// FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
|
||||
// transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
|
||||
// transaction.replace(R.id.content_frame, fragment);
|
||||
// transaction.addToBackStack(null);
|
||||
// transaction.commit();
|
||||
// }
|
||||
|
||||
// private class RecapitulationListAdapter extends ArrayAdapter<TaskD> {
|
||||
//
|
||||
// private final TaskD[] originalItems;
|
||||
//
|
||||
// public RecapitulationListAdapter(Context context, int resource, TaskD[] objects) {
|
||||
// super(context, resource, objects);
|
||||
// originalItems = objects;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getCount() {
|
||||
// return super.getCount() + 2;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @Override
|
||||
// public View getView(int position, View convertView, ViewGroup parent) {
|
||||
// View view = null;
|
||||
// if (position == 0) {
|
||||
// view = LayoutInflater.from(getContext()).inflate(R.layout.item_recapitulation_detail_black, parent, false);
|
||||
//
|
||||
// TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
// TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
// label.setText("Batch ID");
|
||||
// value.setText(Generator.generateBatchId(getContext()));
|
||||
// batchId=value.getText().toString().trim();
|
||||
// } else {
|
||||
// view = LayoutInflater.from(getContext()).inflate(R.layout.item_recapitulation_detail, parent, false);
|
||||
//
|
||||
//
|
||||
// TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
// TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
//
|
||||
// if (position == getCount() - 1) {
|
||||
// label.setText("Total");
|
||||
// value.setText(Tool.separateThousand(String.valueOf(sumOfItems(new ArrayList<TaskD>(Arrays.asList(originalItems))))));
|
||||
// } else {
|
||||
// TaskD item = getItem(position-1);
|
||||
//// label.setText(item.getTaskH().getTask_id());
|
||||
// label.setText(item.getTaskH().getAppl_no());
|
||||
// value.setText(Tool.separateThousand(item.getText_answer()));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return view;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private double sumOfItems(List<TaskD> items) {
|
||||
// double sum = 0;
|
||||
// try {
|
||||
// for (TaskD item : items) {
|
||||
// String value = item.getText_answer();
|
||||
// if(value==null || value.equals("")) value = "0";
|
||||
// String tempAnswer = Tool.deleteAll(value, ",");
|
||||
// String[] intAnswer = Tool.split(tempAnswer, ".");
|
||||
// if(intAnswer.length>1){
|
||||
// if(intAnswer[1].equals("00"))
|
||||
// value = intAnswer[0];
|
||||
// else {
|
||||
// value=tempAnswer;
|
||||
// }
|
||||
// }else{
|
||||
// value=tempAnswer;
|
||||
// }
|
||||
// double finalValue = Double.parseDouble(value);
|
||||
// sum += finalValue;
|
||||
// }
|
||||
// } catch (Exception e) { FireCrash.log(e);
|
||||
// // TODO: handle exception
|
||||
// }
|
||||
// return sum;
|
||||
// }
|
||||
}
|
||||
|
||||
void transfer() {
|
||||
String uuidUser = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
//NEW GS_PRINT_LOCK_MC
|
||||
GeneralParameter GSPrintLock = GeneralParameterDataAccess.getOne(getContext(), uuidUser, Global.GS_PRINT_LOCK_MC);
|
||||
|
||||
// ListView list = (ListView) getView().findViewById(R.id.listRecapitulationDetail);
|
||||
if (list.getAdapter().getCount() <= 0) {
|
||||
Toaster.warning(getActivity(), getString(R.string.nothing_to_report));
|
||||
return;
|
||||
} else if (totalNeedPrint > 0) {
|
||||
//2018-10-30 | Add Bypass Print Lock
|
||||
if (GSPrintLock != null && GSPrintLock.getGs_value().equals("1")) {
|
||||
Toaster.warning(getActivity(), getActivity().getString(R.string.prompt_printRV));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
BigDecimal totalValue = new BigDecimal(total);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(Constants.KEY_BUND_BATCHID, batchId);
|
||||
bundle.putString("TOTAL_DEPOSIT", totalValue.toString());
|
||||
DepositReportTransferFragment fragment = new DepositReportTransferFragment();
|
||||
fragment.setArguments(bundle);
|
||||
// AuthCashierFragment fragment = AuthCashierFragment.newInstance(bundle);
|
||||
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private double sumOfItems(List<TaskD> items) {
|
||||
double sum = 0;
|
||||
try {
|
||||
for (TaskD item : items) {
|
||||
String value = item.getText_answer();
|
||||
if (value == null || value.equals("")) value = "0";
|
||||
String tempAnswer = Tool.deleteAll(value, ",");
|
||||
String[] intAnswer = Tool.split(tempAnswer, ".");
|
||||
if (intAnswer.length > 1) {
|
||||
if (intAnswer[1].equals("00"))
|
||||
value = intAnswer[0];
|
||||
else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
} else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
double finalValue = Double.parseDouble(value);
|
||||
sum += finalValue;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
// TODO: handle exception
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
private DepositReportH prepareDummyDepositRHeader() {
|
||||
final DepositReportH header = new DepositReportH();
|
||||
header.setCashier_name("-");
|
||||
// header.setUser_id("");
|
||||
// header.setUser_pass("");
|
||||
header.setUuid_deposit_report_h(Tool.getUUID());
|
||||
header.setBatch_id("-");
|
||||
header.setTransfered_date(Tool.getSystemDateTime());
|
||||
header.setDtm_crt(Tool.getSystemDateTime());
|
||||
header.setUuid_user(GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
header.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
|
||||
ArrayList<DepositReportD> details = new ArrayList<DepositReportD>();
|
||||
String uuidUser = GlobalData.getSharedGlobalData().getUser().getUuid_user();
|
||||
for (TaskD task : reportsReconcile) {
|
||||
DepositReportD detail = new DepositReportD();
|
||||
detail.setUuid_task_h(task.getUuid_task_h());
|
||||
detail.setDtm_crt(Tool.getSystemDateTime());
|
||||
detail.setUsr_crt(uuidUser);
|
||||
detail.setUuid_deposit_report_d(Tool.getUUID());
|
||||
String value = task.getText_answer();
|
||||
|
||||
if (value == null || value.equals(""))
|
||||
value = "0";
|
||||
String tempAnswer = Tool.deleteAll(value, ",");
|
||||
String[] intAnswer = Tool.split(tempAnswer, ".");
|
||||
if (intAnswer.length > 1) {
|
||||
if (intAnswer[1].equals("00"))
|
||||
value = intAnswer[0];
|
||||
else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
} else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
|
||||
detail.setDeposit_amt(value);
|
||||
|
||||
detail.setUuid_deposit_report_h(header.getUuid_deposit_report_h());
|
||||
details.add(detail);
|
||||
}
|
||||
|
||||
DepositReportHDataAccess.add(getActivity(), header);
|
||||
for (DepositReportD reportD : details) {
|
||||
reportD.setIs_sent("10");
|
||||
reportD.setDepositReportH(header);
|
||||
DepositReportDDataAccess.add(getActivity(), reportD);
|
||||
}
|
||||
|
||||
generatePrintResultDepReport(getContext(), "-", header);
|
||||
return header;
|
||||
}
|
||||
|
||||
private class RecapitulationListAdapter extends ArrayAdapter<TaskD> {
|
||||
|
||||
private final TaskD[] originalItems;
|
||||
|
||||
public RecapitulationListAdapter(Context context, int resource, TaskD[] objects) {
|
||||
super(context, resource, objects);
|
||||
originalItems = objects;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return super.getCount() + 2;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = null;
|
||||
if (position == 0) {
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.item_recapitulation_detail_black, parent, false);
|
||||
|
||||
TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
label.setText("Batch ID");
|
||||
value.setText(Generator.generateBatchId(getContext()));
|
||||
batchId = value.getText().toString().trim();
|
||||
} else {
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.item_recapitulation_detail, parent, false);
|
||||
|
||||
|
||||
|
||||
TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
|
||||
if (position == getCount() - 1) {
|
||||
label.setText("Total");
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems(new ArrayList<TaskD>(Arrays.asList(originalItems))))));
|
||||
} else {
|
||||
TaskD item = getItem(position - 1);
|
||||
// label.setText(item.getTaskH().getTask_id());
|
||||
label.setText(item.getTaskH().getAppl_no());
|
||||
value.setText(Tool.separateThousand(item.getText_answer()));
|
||||
}
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,545 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatSpinner;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.dynamicform.SurveyHeaderBean;
|
||||
import com.adins.mss.base.todolist.ToDoList;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.commons.Toaster;
|
||||
import com.adins.mss.coll.tool.Constants;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.Scheme;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.UserDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class DepositReportRecapitulateFragmentNew extends Fragment {
|
||||
|
||||
private TextView formNameBatch;
|
||||
private TextView submitDateBatch;
|
||||
private FormAdapter formAdapter;
|
||||
private UserAdapter userAdapter;
|
||||
private BatchAdapter batchAdapter;
|
||||
public static String selectedDepositScheme;
|
||||
public static String selectedDepositSchemeName;
|
||||
public static String selectedDepositUser;
|
||||
public static String selectedBatchId;
|
||||
public static User selectedDepositUserObject = null;
|
||||
|
||||
protected double total = 0;
|
||||
private int totalNeedPrint;
|
||||
private List<TaskH> listTaskH;
|
||||
private List<String> listTaskBatch;
|
||||
private ToDoList toDoList;
|
||||
private RefreshBackgroundTask backgroundTask;
|
||||
List<TaskD> reportsReconcile = new ArrayList<TaskD>();
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
|
||||
toDoList = new ToDoList(getActivity());
|
||||
listTaskH = toDoList.getListTaskInStatusForMultiUser(ToDoList.SEARCH_BY_BATCH_ID, "BATCHID");
|
||||
|
||||
selectedDepositScheme = null;
|
||||
return inflater.inflate(R.layout.fragment_deposit_report_recapitulate_new, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
|
||||
List<Scheme> formListName = new ArrayList<>();
|
||||
formListName.clear();
|
||||
formListName.addAll(SchemeDataAccess.getAllActivePriorityScheme(getActivity()));
|
||||
|
||||
List<TaskH> batchIdList = new ArrayList<>();
|
||||
batchIdList.clear();
|
||||
List<TaskH> listTask = new ArrayList<>();
|
||||
listTaskBatch = getListBatchId();
|
||||
if (listTaskBatch != null && listTaskBatch.size() > 0) {
|
||||
for (String batch : listTaskBatch) {
|
||||
if (batch != null) {
|
||||
TaskH taskHBatch = TaskHDataAccess.getAllHeader(getActivity(), batch);
|
||||
listTask.add(taskHBatch);
|
||||
}
|
||||
}
|
||||
}
|
||||
batchIdList.addAll(listTask);
|
||||
|
||||
List<User> userListName = new ArrayList<>();
|
||||
userListName.clear();
|
||||
userListName.addAll(UserDataAccess.getAllUserActive(getActivity()));
|
||||
|
||||
AppCompatSpinner spinnerForm = (AppCompatSpinner) view.findViewById(R.id.priorityViewByForm);
|
||||
formAdapter = new FormAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, formListName);
|
||||
formAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
AppCompatSpinner spinnerUser = (AppCompatSpinner) view.findViewById(R.id.priorityViewByUser);
|
||||
userAdapter = new UserAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, userListName);
|
||||
userAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
spinnerForm.setVisibility(View.GONE);
|
||||
spinnerUser.setVisibility(View.GONE);
|
||||
|
||||
ImageView imgExpandForm = (ImageView) view.findViewById(R.id.img_expand_by_form);
|
||||
ImageView imgExpandUser = (ImageView) view.findViewById(R.id.img_expand_by_user);
|
||||
imgExpandForm.setVisibility(View.GONE);
|
||||
imgExpandUser.setVisibility(View.GONE);
|
||||
|
||||
AppCompatSpinner spinnerBatch = (AppCompatSpinner) view.findViewById(R.id.priorityViewByBatch);
|
||||
batchAdapter = new BatchAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, batchIdList);
|
||||
batchAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
spinnerForm.setAdapter(formAdapter);
|
||||
spinnerForm.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectedDepositScheme = formAdapter.getItem(position).getUuid_scheme();
|
||||
selectedDepositSchemeName = formAdapter.getItem(position).getScheme_description();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
spinnerUser.setAdapter(userAdapter);
|
||||
spinnerUser.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectedDepositUser = userAdapter.getItem(position).getUuid_user();
|
||||
selectedDepositUserObject = userAdapter.getItem(position);
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
spinnerBatch.setAdapter(batchAdapter);
|
||||
spinnerBatch.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectedBatchId = batchAdapter.getItem(position).getBatch_id();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
final Button transferButton = (Button) view.findViewById(R.id.transferButton);
|
||||
transferButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
total = sumOfItems(reportsReconcile);
|
||||
if (total != 0) {
|
||||
transferButton.setEnabled(false);
|
||||
transfer();
|
||||
} else {
|
||||
Toast.makeText(getActivity(), getString(R.string.transfer_failed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//make sure that first selected user is current logged user
|
||||
User defaultUser = GlobalData.getSharedGlobalData().getUser();
|
||||
int position = -1;
|
||||
for (User user : userListName) {
|
||||
position++;
|
||||
if (user.getUuid_user().equalsIgnoreCase(defaultUser.getUuid_user())) {
|
||||
if (selectedDepositUserObject == null) {
|
||||
selectedDepositUser = userListName.get(position).getUuid_user();
|
||||
selectedDepositUserObject = userListName.get(position);
|
||||
}
|
||||
spinnerUser.setSelection(position);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
formNameBatch = (TextView) getView().findViewById(R.id.formBatchValue);
|
||||
submitDateBatch = (TextView) getView().findViewById(R.id.dateBatchValue);
|
||||
|
||||
initialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
reportsReconcile.clear();
|
||||
List<TaskD> reports = TaskDDataAccess.getTaskDTagTotalbyBatchId(getActivity(), selectedBatchId);
|
||||
|
||||
|
||||
for (TaskD taskD : reports) {
|
||||
TaskH taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
selectedDepositScheme = taskH.getUuid_scheme();
|
||||
selectedDepositSchemeName = SchemeDataAccess.getOneSchemeName(getActivity(), selectedDepositScheme);
|
||||
if (taskH != null && taskH.getIs_reconciled() != null) {
|
||||
if (taskH.getIs_reconciled().equals("0")) {
|
||||
reportsReconcile.add(taskD);
|
||||
}
|
||||
}
|
||||
|
||||
if (taskH != null) {
|
||||
int printCount = taskH.getPrint_count() != null ? taskH.getPrint_count() : 0;
|
||||
String rvNumber = taskH.getRv_number();
|
||||
boolean isRVinFront = GeneralParameterDataAccess.isRvInFrontEnable(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
if (printCount > 0 || (rvNumber != null && !rvNumber.isEmpty()) || isRVinFront) {
|
||||
// do nothing
|
||||
} else {
|
||||
try {
|
||||
String uuidScheme = taskH.getUuid_scheme();
|
||||
Scheme scheme = SchemeDataAccess.getOne(getActivity(), uuidScheme);
|
||||
if (scheme != null) {
|
||||
if (scheme.getIs_printable().equals(Global.TRUE_STRING))
|
||||
totalNeedPrint++;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
totalNeedPrint++;
|
||||
}
|
||||
}
|
||||
formNameBatch.setText(selectedDepositSchemeName);
|
||||
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
|
||||
submitDateBatch.setText(df.format(taskH.getSubmit_date()));
|
||||
}
|
||||
}
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
list.setAdapter(new RecapitulationListAdapter(
|
||||
getActivity(),
|
||||
R.layout.item_recapitulation_detail,
|
||||
reportsReconcile.toArray(new TaskD[reportsReconcile.size()])
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
private List<String> getListBatchId() {
|
||||
List<String> depositedBatchList = new ArrayList<>();
|
||||
List<DepositReportH> depositedBatch = DepositReportHDataAccess.listOfBacth(getActivity());
|
||||
if (depositedBatch != null) {
|
||||
for (DepositReportH depositHeader : depositedBatch) {
|
||||
depositedBatchList.add(depositHeader.getBatch_id());
|
||||
}
|
||||
}
|
||||
List<String> undeposited = TaskHDataAccess.getAllBatchIdList(getActivity(), depositedBatchList);
|
||||
return undeposited;
|
||||
}
|
||||
|
||||
|
||||
void transfer() {
|
||||
ListView list = (ListView) getView().findViewById(R.id.recapitulationList);
|
||||
if (list.getAdapter().getCount() <= 1) {
|
||||
Toaster.warning(getActivity(), getString(R.string.nothing_to_report));
|
||||
return;
|
||||
} else if (totalNeedPrint > 0) {
|
||||
Toaster.warning(getActivity(), getActivity().getString(R.string.prompt_printRV));
|
||||
return;
|
||||
}
|
||||
BigDecimal totalValue = BigDecimal.valueOf(total);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(Constants.KEY_BUND_BATCHID, selectedBatchId);
|
||||
bundle.putString("TOTAL_DEPOSIT", totalValue.toString());
|
||||
bundle.putString("FORM", selectedDepositSchemeName);
|
||||
DepositReportTransferFragmentNew fragment = new DepositReportTransferFragmentNew();
|
||||
fragment.setArguments(bundle);
|
||||
FragmentTransaction transaction = NewMCMainActivity.fragmentManager.beginTransaction();
|
||||
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
|
||||
transaction.replace(R.id.content_frame, fragment);
|
||||
transaction.addToBackStack(null);
|
||||
transaction.commit();
|
||||
}
|
||||
|
||||
private class RecapitulationListAdapter extends ArrayAdapter<TaskD> {
|
||||
|
||||
private final TaskD[] originalItems;
|
||||
|
||||
public RecapitulationListAdapter(Context context, int resource, TaskD[] objects) {
|
||||
super(context, resource, objects);
|
||||
originalItems = objects;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return super.getCount() + 1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = LayoutInflater.from(getContext()).inflate(R.layout.item_recapitulation_detail, parent, false);
|
||||
|
||||
TextView label = (TextView) view.findViewById(R.id.itemLabel);
|
||||
TextView value = (TextView) view.findViewById(R.id.itemValue);
|
||||
|
||||
if (position == getCount() - 1) {
|
||||
label.setText("Total");
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems(new ArrayList<TaskD>(Arrays.asList(originalItems))))));
|
||||
value.setText(Tool.separateThousand(String.valueOf(sumOfItems(new ArrayList<TaskD>(Arrays.asList(originalItems))))));
|
||||
} else {
|
||||
TaskD item = getItem(position);
|
||||
label.setText(item.getTaskH().getAppl_no());
|
||||
value.setText(Tool.separateThousand(item.getText_answer()));
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
}
|
||||
|
||||
private double sumOfItems(List<TaskD> items) {
|
||||
double sum = 0;
|
||||
try {
|
||||
for (TaskD item : items) {
|
||||
String value = item.getText_answer();
|
||||
if (value == null || value.equals("")) value = "0";
|
||||
String tempAnswer = Tool.deleteAll(value, ",");
|
||||
String[] intAnswer = Tool.split(tempAnswer, ".");
|
||||
if (intAnswer.length > 1) {
|
||||
if (intAnswer[1].equals("00"))
|
||||
value = intAnswer[0];
|
||||
else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
} else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
double finalValue = Double.parseDouble(value);
|
||||
sum += finalValue;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
public class FormAdapter extends ArrayAdapter<Scheme> {
|
||||
private Context context;
|
||||
private List<Scheme> values;
|
||||
|
||||
public FormAdapter(Context context, int resource, int textViewResourceId, List<Scheme> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context = context;
|
||||
this.values = objects;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public Scheme getItem(int position) {
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText("Form : " + values.get(position).getScheme_description());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getScheme_description());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
public class BatchAdapter extends ArrayAdapter<TaskH> {
|
||||
private Context context;
|
||||
private List<TaskH> values;
|
||||
|
||||
public BatchAdapter(Context context, int resource, int textViewResourceId, List<TaskH> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context = context;
|
||||
this.values = objects;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public TaskH getItem(int position) {
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText("Batch : " + values.get(position).getBatch_id());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getBatch_id());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
public class UserAdapter extends ArrayAdapter<User> {
|
||||
private Context context;
|
||||
private List<User> values;
|
||||
|
||||
public UserAdapter(Context context, int resource, int textViewResourceId, List<User> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context = context;
|
||||
this.values = objects;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public User getItem(int position) {
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText("User : " + values.get(position).getLogin_id());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getLogin_id());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (listTaskH != null) {
|
||||
initiateRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
private void initiateRefresh() {
|
||||
cancelRefreshTask();
|
||||
backgroundTask = new RefreshBackgroundTask();
|
||||
backgroundTask.execute();
|
||||
}
|
||||
|
||||
private void cancelRefreshTask() {
|
||||
if (backgroundTask != null) {
|
||||
backgroundTask.cancel(true);
|
||||
backgroundTask = null;
|
||||
}
|
||||
}
|
||||
|
||||
private class RefreshBackgroundTask extends AsyncTask<Void, Void, List<TaskH>> {
|
||||
|
||||
static final int TASK_DURATION = 2 * 1000; // 2 seconds
|
||||
|
||||
@Override
|
||||
protected List<TaskH> doInBackground(Void... params) {
|
||||
// Sleep for a small amount of time to simulate a background-task
|
||||
try {
|
||||
Thread.sleep(TASK_DURATION);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
listTaskH.clear();
|
||||
listTaskH.addAll(toDoList.getListTaskInStatus(ToDoList.SEARCH_BY_BATCH_ID, "BATCHID"));
|
||||
ToDoList.listOfSurveyStatus = null;
|
||||
List<SurveyHeaderBean> list = new ArrayList<SurveyHeaderBean>();
|
||||
for (TaskH h : listTaskH) {
|
||||
list.add(new SurveyHeaderBean(h));
|
||||
}
|
||||
ToDoList.listOfSurveyStatus = list;
|
||||
|
||||
// Return a new random list of cheeses
|
||||
return listTaskH;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCancelled() {
|
||||
super.onCancelled();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<TaskH> result) {
|
||||
super.onPostExecute(result);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,388 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.commons.CommonImpl;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.fragments.view.DepositReportSummaryView;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/13/2015.
|
||||
*/
|
||||
public class DepositReportSummaryFragment extends Fragment {
|
||||
private DepositReportSummaryView view;
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
view = new DepositReportSummaryView(getActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
// View view = inflater.inflate(R.layout.fragment_deposit_report_summary, container, false);
|
||||
return view.layoutInflater(inflater, container);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View mView, Bundle savedInstanceState) {
|
||||
super.onViewCreated(mView, savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
view.onCreate();
|
||||
view.publish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
// private void initialize() {
|
||||
// populateFields();
|
||||
// cleanup();
|
||||
// fillHeader();
|
||||
// fillDetail();
|
||||
// }
|
||||
|
||||
// private void fillHeader() {
|
||||
// List<TaskH> h = TaskHDataAccess.getTaskCollToday(getActivity());
|
||||
// List<TaskH> allSentTask = TaskHDataAccess.getAllSentTask(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
// List<TaskH> allSentTaskToday = new ArrayList<TaskH>();
|
||||
// for(TaskH taskH : allSentTask){
|
||||
// if(CommonImpl.dateIsToday(taskH.getSubmit_date())){
|
||||
// allSentTaskToday.add(taskH);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// List<TaskH> allCollTask = TaskHDataAccess.getAllTaskCollection(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
// List<TaskH> collTaskToday = new ArrayList<TaskH>();
|
||||
// for(TaskH taskH : allCollTask){
|
||||
// if(CommonImpl.dateIsToday(taskH.getAssignment_date())){
|
||||
// collTaskToday.add(taskH);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//// int totalTask = TaskHDataAccess.getTotalTaskCollToday(getActivity());
|
||||
// int totalTask = collTaskToday.size();
|
||||
//// totalTaskLabel.setText(totalTask + " Tasks");
|
||||
// /* List<TaskD> totalTaskCollToday = TaskDDataAccess.getTotalTaskCollToday(getActivity());
|
||||
// int totalTaskValue = 0;
|
||||
// for (TaskD task : totalTaskCollToday) {
|
||||
// try {
|
||||
// totalTaskValue = Integer.parseInt(task.getText_answer());
|
||||
// } catch (Exception e) { FireCrash.log(e);
|
||||
// totalTaskValue = 0;
|
||||
// }
|
||||
// }*/
|
||||
// this.totalTaskValue.setText(totalTask + " Tasks");
|
||||
// int paidTask = TaskDDataAccess.getPaid(getActivity()).size();
|
||||
// int failTask = TaskDDataAccess.getFail(getActivity()).size();
|
||||
//
|
||||
// List<TaskD> paidAllTask = TaskDDataAccess.getAllPaid(getActivity());
|
||||
// paidTask = 0;
|
||||
// for(TaskD taskD:paidAllTask){
|
||||
// for(TaskH taskH :collTaskToday){
|
||||
// if(taskD.getUuid_task_h().equals(taskH.getUuid_task_h())){
|
||||
// paidTask++;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//// List<TaskD> failAllTask = TaskDDataAccess.getAllFail(getActivity());
|
||||
// failTask = 0;
|
||||
// for(TaskH taskH : allSentTaskToday){
|
||||
// /*List<TaskD> ds = TaskDDataAccess.isTaskPaid(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user(), taskH.getUuid_task_h());
|
||||
// for(TaskD d : ds){
|
||||
// String a = d.getUuid_task_d();
|
||||
// }*/
|
||||
// if(!TaskDDataAccess.isTaskPaid(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user(), taskH.getUuid_task_h())){
|
||||
// failTask++;
|
||||
// }
|
||||
//// List<TaskD> alltaskd = taskH.getTaskDList();
|
||||
//// for(TaskD d : alltaskd){
|
||||
//// String questionId = d.getQuestion_id();
|
||||
//// String questionGroupId = d.getQuestion_group_id();
|
||||
//// QuestionSet questionSet = QuestionSetDataAccess.getOne(getActivity(), taskH.getUuid_scheme(), questionId, questionGroupId);
|
||||
//// if(questionSet.getTag()!=null && Global.TAG_TOTAL.equals(questionSet.getTag())){
|
||||
//// tempPaid ++;
|
||||
//// break;
|
||||
//// }
|
||||
//// }
|
||||
// }
|
||||
//
|
||||
//// failTask = allSentTaskToday.size() - paidTask;
|
||||
//
|
||||
//
|
||||
//// for(TaskD taskD:failAllTask){
|
||||
//// for(TaskH taskH :collTaskToday){
|
||||
//// if(taskD.getUuid_task_h().equals(taskH.getUuid_task_h())){
|
||||
//// failTask++;
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//
|
||||
// int visitTask = paidTask + failTask;
|
||||
//
|
||||
// totalPaidLabel.setText(paidTask + " Tasks");
|
||||
// totalFailLabel.setText(failTask + " Tasks");
|
||||
// totalVisitLabel.setText(visitTask + " Tasks");
|
||||
// }
|
||||
//
|
||||
// private void fillDetail() {
|
||||
// List<DepositReportH> tempBatches = DepositReportHDataAccess.listOfBacth(getActivity(),GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
// List<DepositReportH> batches = new ArrayList<DepositReportH>();
|
||||
// for(DepositReportH reportH : tempBatches){
|
||||
// if(CommonImpl.dateIsToday(reportH.getDtm_crt())){
|
||||
// batches.add(reportH);
|
||||
// }
|
||||
// }
|
||||
// HashMap<DepositReportH, List<DepositReportD>> packedListOfBatch = packListOfBatch(batches);
|
||||
//// listOfBatch.setAdapter(new PackedBatchListAdapter(getActivity(), packedListOfBatch));
|
||||
// listOfBatch.setAdapter(new PackedBatchListAdapterNew(getActivity(), packedListOfBatch));
|
||||
// }
|
||||
//
|
||||
// private HashMap<DepositReportH, List<DepositReportD>> packListOfBatch(List<DepositReportH> batches) {
|
||||
// HashMap<DepositReportH, List<DepositReportD>> map = new HashMap<DepositReportH, List<DepositReportD>>();
|
||||
// for (DepositReportH reportH : batches) {
|
||||
// map.put(reportH, reportH.getDepositReportDList());
|
||||
// }
|
||||
// return map;
|
||||
// }
|
||||
//
|
||||
// private void populateFields() {
|
||||
// totalTaskLabel = (TextView) getView().findViewById(R.id.totalTask);
|
||||
// totalTaskValue = (TextView) getView().findViewById(R.id.totalTaskValue);
|
||||
// totalPaidLabel = (TextView) getView().findViewById(R.id.paidValue);
|
||||
// totalVisitLabel = (TextView) getView().findViewById(R.id.visitValue);
|
||||
// totalFailLabel = (TextView) getView().findViewById(R.id.failValue);
|
||||
// listOfBatch = (ListView) getView().findViewById(R.id.listOfBatch);
|
||||
// }
|
||||
//
|
||||
// private void cleanup() {
|
||||
// Date today = CommonImpl.resetDate();
|
||||
// DepositReportHDataAccess.deleteDepositReport(getActivity(), today);
|
||||
// }
|
||||
|
||||
// public static boolean dateIsToday(Date date){
|
||||
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
// Date tempDate = null;
|
||||
// try {
|
||||
// tempDate = sdf.parse(sdf.format(date));
|
||||
// } catch (ParseException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// Date today = Tool.getSystemDate();
|
||||
//
|
||||
// return today.equals(tempDate);
|
||||
// }
|
||||
|
||||
// private class PackedBatchListAdapter extends BaseAdapter {
|
||||
//
|
||||
// private final HashMap<TaskH, List<TaskD>> packedBatches;
|
||||
// private final List<TaskH> batchesHeaders;
|
||||
// private final Context context;
|
||||
//
|
||||
// public PackedBatchListAdapter(Context context, HashMap<TaskH, List<TaskD>> packedBatches) {
|
||||
// this.context = context;
|
||||
// this.packedBatches = packedBatches;
|
||||
// this.batchesHeaders =
|
||||
// Arrays.asList(packedBatches.keySet().toArray(new TaskH[packedBatches.keySet().size()]));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getCount() {
|
||||
// return packedBatches.size() + 1;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Object getItem(int position) {
|
||||
// return packedBatches.get(batchesHeaders.get(position));
|
||||
// }
|
||||
//
|
||||
// public int getTaskCount(int position) {
|
||||
// List<TaskD> tasks = (List<TaskD>) getItem(position);
|
||||
// return tasks.size();
|
||||
// }
|
||||
//
|
||||
// public int getTaskSum(int position) {
|
||||
// List<TaskD> tasks = (List<TaskD>) getItem(position);
|
||||
// int sum = 0;
|
||||
// for (TaskD task : tasks) {
|
||||
// try {
|
||||
// sum += Integer.parseInt(task.getText_answer());
|
||||
// } catch (Exception e) { FireCrash.log(e);
|
||||
// sum += 0;
|
||||
// }
|
||||
// }
|
||||
// return sum;
|
||||
// }
|
||||
//
|
||||
// public TaskH getHeader(int position) {
|
||||
// return batchesHeaders.get(position);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public long getItemId(int position) {
|
||||
// return position;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public View getView(int position, View convertView, ViewGroup parent) {
|
||||
// if (convertView == null) {
|
||||
// if (position % 2 == 0) {
|
||||
// convertView = LayoutInflater.from(context).inflate(R.layout.item_summary_batch_colored, parent, false);
|
||||
// } else {
|
||||
// convertView = LayoutInflater.from(context).inflate(R.layout.item_summary_batch_light, parent, false);
|
||||
// }
|
||||
// }
|
||||
// TextView label = (TextView) convertView.findViewById(R.id.itemLabel);
|
||||
// TextView value = (TextView) convertView.findViewById(R.id.itemValue);
|
||||
//
|
||||
// if (position == getCount() - 1) {
|
||||
// label.setText("Total");
|
||||
// value.setText(String.valueOf(getSumAll()));
|
||||
// return convertView;
|
||||
// }
|
||||
//
|
||||
// TaskH header = getHeader(position);
|
||||
// int taskCount = getTaskCount(position);
|
||||
// int taskSum = getTaskSum(position);
|
||||
//
|
||||
// label.setText(header.getAppl_no());
|
||||
// value.setText(taskCount + " Tasks, " + taskSum);
|
||||
//
|
||||
// return convertView;
|
||||
// }
|
||||
//
|
||||
// private int getSumAll() {
|
||||
// int sum = 0;
|
||||
// for (int i = 0; i < getCount() - 1; i++) {
|
||||
// sum += getTaskSum(i);
|
||||
// }
|
||||
// return sum;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// private class PackedBatchListAdapterNew extends BaseAdapter {
|
||||
//
|
||||
// private final HashMap<DepositReportH, List<DepositReportD>> packedBatches;
|
||||
// private final List<DepositReportH> batchesHeaders;
|
||||
// private final Context context;
|
||||
//
|
||||
// public PackedBatchListAdapterNew(Context context, HashMap<DepositReportH, List<DepositReportD>> packedBatches) {
|
||||
// this.context = context;
|
||||
// this.packedBatches = packedBatches;
|
||||
// this.batchesHeaders =
|
||||
// Arrays.asList(packedBatches.keySet().toArray(new DepositReportH[packedBatches.keySet().size()]));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getCount() {
|
||||
// return packedBatches.size() + 1;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Object getItem(int position) {
|
||||
// return packedBatches.get(batchesHeaders.get(position));
|
||||
// }
|
||||
//
|
||||
// public int getTaskCount(int position) {
|
||||
// List<DepositReportD> tasks = (List<DepositReportD>) getItem(position);
|
||||
// return tasks.size();
|
||||
// }
|
||||
//
|
||||
// public double getTaskSum(int position) {
|
||||
// List<DepositReportD> tasks = (List<DepositReportD>) getItem(position);
|
||||
// double sum = 0;
|
||||
// for (DepositReportD task : tasks) {
|
||||
// try {
|
||||
// sum += Double.parseDouble(task.getDeposit_amt());
|
||||
// } catch (Exception e) { FireCrash.log(e);
|
||||
// sum += 0;
|
||||
// }
|
||||
// }
|
||||
// return sum;
|
||||
// }
|
||||
//
|
||||
// public DepositReportH getHeader(int position) {
|
||||
// return batchesHeaders.get(position);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public long getItemId(int position) {
|
||||
// return position;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public View getView(int position, View convertView, ViewGroup parent) {
|
||||
// if (convertView == null) {
|
||||
// if (position % 2 == 0) {
|
||||
// convertView = LayoutInflater.from(context).inflate(R.layout.item_summary_batch_colored, parent, false);
|
||||
// } else {
|
||||
// convertView = LayoutInflater.from(context).inflate(R.layout.item_summary_batch_light, parent, false);
|
||||
// }
|
||||
// }
|
||||
// TextView label = (TextView) convertView.findViewById(R.id.itemLabel);
|
||||
// TextView value = (TextView) convertView.findViewById(R.id.itemValue);
|
||||
//
|
||||
// if (position == getCount() - 1) {
|
||||
// label.setText("Total");
|
||||
// value.setText(Tool.separateThousand(String.valueOf(getSumAll())));
|
||||
// return convertView;
|
||||
// }
|
||||
//
|
||||
// DepositReportH header = getHeader(position);
|
||||
// int taskCount = getTaskCount(position);
|
||||
// double taskSum = getTaskSum(position);
|
||||
//
|
||||
// label.setText(header.getBatch_id());
|
||||
// value.setText(taskCount + " Tasks, " + Tool.separateThousand(taskSum));
|
||||
//
|
||||
// return convertView;
|
||||
// }
|
||||
//
|
||||
// private int getSumAll() {
|
||||
// int sum = 0;
|
||||
// for (int i = 0; i < getCount() - 1; i++) {
|
||||
// sum += getTaskSum(i);
|
||||
// }
|
||||
// return sum;
|
||||
// }
|
||||
// }
|
||||
}
|
|
@ -0,0 +1,159 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.adins.mss.base.dynamicform.DynamicFormActivity;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.fragments.view.DepositReportTransferView;
|
||||
import com.adins.mss.coll.interfaces.OnCameraInAppListener;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
|
||||
|
||||
/**
|
||||
* Created by Aditya Purwa on 2/4/2015.
|
||||
*/
|
||||
public class DepositReportTransferFragment extends Fragment {
|
||||
// private static final int REQUEST_FOR_CAMERA_CAPTURE = 4;
|
||||
// private Spinner transferBySpinner;
|
||||
// private View asBank;
|
||||
// private View asCashier;
|
||||
// private TextView txtNomorRekening;
|
||||
// private TextView txtNamaBank;
|
||||
// private TextView txtNamaKasir;
|
||||
// private TextView txtBuktiTransfer;
|
||||
// private EditText editNomorRekening;
|
||||
// private EditText editNamaBank;
|
||||
// private EditText editBatchId;
|
||||
// private EditText editNamaKasir;
|
||||
// private ImageView imageBukti;
|
||||
// private Button buttonSelectPhoto;
|
||||
// private Button buttonSend;
|
||||
// private View view;
|
||||
// protected static byte[] byteImage = null;
|
||||
String total = "";
|
||||
String batchId = "";
|
||||
// protected static Bitmap image = null;
|
||||
// protected static Bitmap tempImage = null;
|
||||
private DepositReportTransferView view;
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
Utility.freeMemory();
|
||||
|
||||
view.onDestroy();
|
||||
// if(image!=null && !image.isRecycled()){
|
||||
// image.recycle();
|
||||
// image=null;
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
view = new DepositReportTransferView(getActivity(), onCameraInAppListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(DepositReportTransferFragment.this.getActivity(),DepositReportTransferFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
return view.layoutInflater(inflater, container);
|
||||
}
|
||||
|
||||
private OnCameraInAppListener onCameraInAppListener = new OnCameraInAppListener() {
|
||||
@Override
|
||||
public void onImageCapture(Intent intent, int requestCode) {
|
||||
startActivityForResult(intent, requestCode);
|
||||
}
|
||||
};
|
||||
|
||||
// public void setLabel(){
|
||||
// if(view!=null) {
|
||||
// txtNomorRekening = (TextView) view.findViewById(R.id.txtNomorRekening);
|
||||
// txtNamaBank = (TextView) view.findViewById(R.id.txtBankName);
|
||||
// txtNamaKasir = (TextView) view.findViewById(R.id.txtCashierName);
|
||||
// txtBuktiTransfer = (TextView) view.findViewById(R.id.txtBuktiTransfer);
|
||||
//
|
||||
// txtNomorRekening.setText(getActivity().getString(R.string.label_account_number_2));
|
||||
// txtNamaBank.setText(getActivity().getString(R.string.label_bank_name_2));
|
||||
// txtNamaKasir.setText(getActivity().getString(R.string.label_cashier_name_2));
|
||||
// txtBuktiTransfer.setText(getActivity().getString(R.string.label_transfer_evidence_2));
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
// setLabel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View mView, Bundle savedInstanceState) {
|
||||
super.onViewCreated(mView, savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
|
||||
total = getArguments().getString("TOTAL_DEPOSIT");
|
||||
batchId = getArguments().getString(com.adins.mss.coll.tool.Constants.KEY_BUND_BATCHID);
|
||||
|
||||
view.total = total;
|
||||
view.setBatchId(batchId);
|
||||
view.onCreate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
setHasOptionsMenu(true);
|
||||
super.onAttach(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if(item.getItemId() == R.id.mnGuide){
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(DepositReportTransferFragment.this.getActivity(), DepositReportTransferFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public static void onStartActivityResult(Intent intent, int requestCode) {
|
||||
new DynamicFormActivity().startActivityForResult(intent, requestCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
view.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
|
||||
public void onDestroy(){
|
||||
super.onDestroy();
|
||||
view.onDestroy();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,810 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.provider.MediaStore;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatSpinner;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.dynamicform.CustomerFragment;
|
||||
import com.adins.mss.base.dynamicform.DynamicFormActivity;
|
||||
import com.adins.mss.base.dynamicform.form.questions.ImageViewerActivity;
|
||||
import com.adins.mss.base.dynamicform.form.questions.viewholder.ImageQuestionViewHolder;
|
||||
import com.adins.mss.base.timeline.Constants;
|
||||
import com.adins.mss.base.todolist.form.CashOnHandResponse;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.commons.Toaster;
|
||||
import com.adins.mss.coll.models.DepositReportRequest;
|
||||
import com.adins.mss.coll.models.DepositReportResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.DepositReportD;
|
||||
import com.adins.mss.dao.DepositReportH;
|
||||
import com.adins.mss.dao.Lookup;
|
||||
import com.adins.mss.dao.PrintItem;
|
||||
import com.adins.mss.dao.PrintResult;
|
||||
import com.adins.mss.dao.TaskD;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.dao.User;
|
||||
import com.adins.mss.foundation.camerainapp.CameraActivity;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.DepositReportHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.LookupDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintItemDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.PrintResultDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.UserDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.adins.mss.foundation.image.Utils;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
import com.soundcloud.android.crop.Crop;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DepositReportTransferFragmentNew extends Fragment {
|
||||
|
||||
public static final String uuidLookupDummy = "lookupDummy";
|
||||
private static byte[] byteImage = null;
|
||||
private static Bitmap image = null;
|
||||
private static Bitmap tempImage = null;
|
||||
private View view;
|
||||
private View asBank;
|
||||
private EditText editNamaKasir;
|
||||
private ImageView imageBukti;
|
||||
private Button buttonSelectPhoto;
|
||||
private Button buttonSend;
|
||||
private BankAccountAdapter bankAccountAdapter;
|
||||
private List<Lookup> bankAccountList;
|
||||
private String selectedBank, selectedbankName, selectedBankAccount;
|
||||
private String total = "";
|
||||
private String batchId = "";
|
||||
private String formName = "";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
bankAccountList = new ArrayList<>();
|
||||
bankAccountList.clear();
|
||||
setDummyBankAccountSpinner();
|
||||
String schemeFlag;
|
||||
if (DepositReportRecapitulateFragmentNew.selectedDepositSchemeName.contains("Konven")) {
|
||||
schemeFlag = "KONVEN";
|
||||
} else {
|
||||
schemeFlag = "SYARIAH";
|
||||
}
|
||||
|
||||
bankAccountList.addAll(LookupDataAccess.getAllByLovGroup(getActivity(), "BANK_NAME", GlobalData.getSharedGlobalData().getUser().getBranch_id(), schemeFlag));
|
||||
|
||||
String branchId = DepositReportRecapitulateFragmentNew.selectedDepositUserObject.getBranch_id();
|
||||
if (Global.IS_DEV) {
|
||||
System.out.print(branchId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
view = inflater.inflate(R.layout.fragment_deposit_report_transfer_new, container, false);
|
||||
AppCompatSpinner spinnerBankAccount = (AppCompatSpinner) view.findViewById(R.id.spinnerBankAccount);
|
||||
bankAccountAdapter = new BankAccountAdapter(getActivity(), R.layout.spinner_style, R.id.text_spin, bankAccountList);
|
||||
bankAccountAdapter.setDropDownViewResource(R.layout.spinner_style);
|
||||
|
||||
spinnerBankAccount.setAdapter(bankAccountAdapter);
|
||||
spinnerBankAccount.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
if (position == 0) {
|
||||
selectedBank = bankAccountAdapter.getItem(position).getValue();
|
||||
selectedbankName = "";
|
||||
selectedBankAccount = "";
|
||||
} else {
|
||||
selectedBank = bankAccountAdapter.getItem(position).getValue();
|
||||
selectedBank = selectedBank.replace(" ", "");
|
||||
String[] answers = Tool.split(selectedBank, "|");
|
||||
selectedbankName = answers[0];
|
||||
selectedBankAccount = answers[1];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
return view;
|
||||
}
|
||||
|
||||
public void setLabel() {
|
||||
if (view != null) {
|
||||
TextView txtNamaKasir = (TextView) view.findViewById(R.id.txtCashierName);
|
||||
TextView txtBuktiTransfer = (TextView) view.findViewById(R.id.txtBuktiTransfer);
|
||||
|
||||
txtNamaKasir.setText(getActivity().getString(R.string.label_cashier_name_2));
|
||||
txtBuktiTransfer.setText(getActivity().getString(R.string.label_transfer_evidence_2));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
setLabel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
total = getArguments().getString("TOTAL_DEPOSIT");
|
||||
batchId = getArguments().getString("BATCHID");
|
||||
formName = getArguments().getString("FORM");
|
||||
asBank = view.findViewById(R.id.transferAsBank);
|
||||
View asCashier = view.findViewById(R.id.transferAsCashier);
|
||||
|
||||
asCashier.setVisibility(View.GONE);
|
||||
asBank.setVisibility(View.VISIBLE);
|
||||
|
||||
editNamaKasir = (EditText) view.findViewById(R.id.editNamaKasir);
|
||||
imageBukti = (ImageView) view.findViewById(R.id.imageBukti);
|
||||
buttonSelectPhoto = (Button) view.findViewById(R.id.buttonSelectPhoto);
|
||||
buttonSend = (Button) view.findViewById(R.id.buttonSend);
|
||||
|
||||
setLabel();
|
||||
imageBukti.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
if (imageBukti.getDrawable() != null && image != null) {
|
||||
if (byteImage == null)
|
||||
byteImage = Utils.bitmapToByte(tempImage);
|
||||
imageBukti.setDrawingCacheEnabled(true);
|
||||
imageBukti.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
|
||||
imageBukti.buildDrawingCache();
|
||||
image = Bitmap.createBitmap(imageBukti.getDrawingCache(true));
|
||||
Global.isViewer = true;
|
||||
|
||||
Global.isViewer = true;
|
||||
Bundle extras = new Bundle();
|
||||
extras.putByteArray(ImageViewerActivity.BUND_KEY_IMAGE, byteImage);
|
||||
extras.putInt(ImageViewerActivity.BUND_KEY_IMAGE_QUALITY, Utils.picQuality);
|
||||
extras.putBoolean(ImageViewerActivity.BUND_KEY_IMAGE_ISVIEWER, Global.isViewer);
|
||||
Intent intent = new Intent(getActivity(), ImageViewerActivity.class);
|
||||
intent.putExtras(extras);
|
||||
imageBukti.setDrawingCacheEnabled(false);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
buttonSelectPhoto.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Constants.flag_edit = 2;
|
||||
openCameraApp(getActivity());
|
||||
}
|
||||
});
|
||||
|
||||
buttonSend.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
buttonSend.setClickable(false);
|
||||
buttonSelectPhoto.setClickable(false);
|
||||
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
new SendDepositReportTask(getActivity()).
|
||||
execute(selectedBankAccount,
|
||||
selectedbankName,
|
||||
editNamaKasir.getText().toString().trim(),
|
||||
String.valueOf(asBank.getVisibility()));
|
||||
} else {
|
||||
Toaster.warning(getActivity(), getActivity().getString(R.string.failed_send_data));
|
||||
buttonSend.setClickable(true);
|
||||
buttonSelectPhoto.setClickable(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
String application = GlobalData.getSharedGlobalData().getAuditData().getApplication();
|
||||
if (Global.APPLICATION_COLLECTION.equalsIgnoreCase(application)) {
|
||||
menu.findItem(R.id.menuMore).setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == Utils.REQUEST_IN_APP_CAMERA && resultCode == Activity.RESULT_OK) {
|
||||
Bundle bundle = data.getExtras();
|
||||
if (bundle != null) {
|
||||
Uri uri = Uri.parse(bundle.getString(CameraActivity.PICTURE_URI));
|
||||
File file = new File(uri.getPath());
|
||||
image = Utils.pathToBitmapWithRotation(file);
|
||||
tempImage = Utils.pathToBitmapWithRotation(file);
|
||||
byteImage = Utils.pathBitmapToByteWithRotation(file);
|
||||
imageBukti.setImageBitmap(image);
|
||||
}
|
||||
} else if (requestCode == Utils.REQUEST_CAMERA && resultCode == Activity.RESULT_OK) {
|
||||
Uri uri = Uri.parse(DynamicFormActivity.mCurrentPhotoPath);
|
||||
File file = new File(uri.getPath());
|
||||
image = Utils.pathToBitmapWithRotation(file);
|
||||
byteImage = Utils.pathBitmapToByteWithRotation(file);
|
||||
tempImage = Utils.pathToBitmapWithRotation(file);
|
||||
imageBukti.setImageBitmap(image);
|
||||
} else if (requestCode == Crop.REQUEST_PICK && resultCode == Activity.RESULT_OK) {
|
||||
Uri outputUri = data.getData();
|
||||
try {
|
||||
image = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(outputUri));
|
||||
tempImage = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(outputUri));
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
imageBukti.setImageBitmap(image);
|
||||
}
|
||||
Utility.freeMemory();
|
||||
}
|
||||
|
||||
private void openCameraApp(FragmentActivity mActivity) {
|
||||
if (GlobalData.getSharedGlobalData().isUseOwnCamera()) {
|
||||
int quality = Utils.picQuality;
|
||||
int thumbHeight = Utils.picHeight;
|
||||
int thumbWidht = Utils.picWidth;
|
||||
|
||||
Intent intent = new Intent(mActivity, CameraActivity.class);
|
||||
intent.putExtra(CameraActivity.PICTURE_WIDTH, thumbWidht);
|
||||
intent.putExtra(CameraActivity.PICTURE_HEIGHT, thumbHeight);
|
||||
intent.putExtra(CameraActivity.PICTURE_QUALITY, quality);
|
||||
|
||||
startActivityForResult(intent, Utils.REQUEST_IN_APP_CAMERA);
|
||||
} else {
|
||||
try {
|
||||
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
if (intent.resolveActivity(mActivity.getPackageManager()) != null) {
|
||||
File photoFile = null;
|
||||
try {
|
||||
photoFile = ImageQuestionViewHolder.createImageFile(getActivity());
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
if (photoFile != null) {
|
||||
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
|
||||
startActivityForResult(intent, Utils.REQUEST_CAMERA);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void generatePrintResultDepReport(Activity activity, String cashierName, DepositReportH report) {
|
||||
List<PrintItem> printItemList = PrintItemDataAccess.getAll(activity, "DUMYUUIDSCHEMEFORDEPOSITREPORT");
|
||||
|
||||
//delete dulu yang ada di database, karena generate printResult dengan jawaban yang baru
|
||||
List<PrintResult> printResultByTaskH = PrintResultDataAccess.getAll(activity, report.getBatch_id());
|
||||
if (printResultByTaskH.size() > 0) {
|
||||
PrintResultDataAccess.delete(activity, report.getBatch_id());
|
||||
}
|
||||
PrintResult PRtransferBy = new PrintResult(Tool.getUUID());
|
||||
PRtransferBy.setPrint_type_id(Global.PRINT_ANSWER);
|
||||
PRtransferBy.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
PRtransferBy.setUuid_task_h(report.getBatch_id());
|
||||
for (PrintItem bean : printItemList) {
|
||||
PrintResult printResult = new PrintResult(Tool.getUUID());
|
||||
printResult.setPrint_type_id(bean.getPrint_type_id());
|
||||
printResult.setUser(GlobalData.getSharedGlobalData().getUser());
|
||||
printResult.setUuid_task_h(report.getBatch_id());
|
||||
|
||||
if (bean.getPrint_type_id().equals(Global.PRINT_ANSWER)) {
|
||||
String label = bean.getPrint_item_label();
|
||||
if (label.equals("Batch ID")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBatch_id());
|
||||
} else if (label.equals("Transfer By")) {
|
||||
printResult.setLabel(label);
|
||||
if (cashierName != null && cashierName.length() > 0) {
|
||||
printResult.setValue("Cashier");
|
||||
PRtransferBy.setLabel(label);
|
||||
PRtransferBy.setValue("Cashier");
|
||||
} else {
|
||||
printResult.setValue("Bank");
|
||||
PRtransferBy.setLabel(label);
|
||||
PRtransferBy.setValue("Bank");
|
||||
}
|
||||
} else if (label.equals("Cashier Name")) {
|
||||
if (PRtransferBy.getValue().equals("Cashier")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getCashier_name());
|
||||
}
|
||||
} else if (label.equals("Account No")) {
|
||||
if (PRtransferBy.getValue().equals("Bank")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBank_account());
|
||||
}
|
||||
} else if (label.equals("Bank Name")) {
|
||||
if (PRtransferBy.getValue().equals("Bank")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(report.getBank_name());
|
||||
}
|
||||
} else if (label.contains("Agreement No")) {
|
||||
int no = Integer.valueOf(label.replace("Agreement No", ""));
|
||||
printResult.setLabel("Agreement No");
|
||||
List<DepositReportD> reportDs = report
|
||||
.getDepositReportDList();
|
||||
try {
|
||||
TaskH taskHs = TaskHDataAccess.getOneHeader(activity,
|
||||
reportDs.get(no).getUuid_task_h());
|
||||
String agreement_no = "";
|
||||
if (taskHs != null)
|
||||
agreement_no = taskHs.getAppl_no();
|
||||
if (agreement_no == null)
|
||||
agreement_no = "-";
|
||||
printResult.setValue(agreement_no);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (label.contains("Deposit Amount")) {
|
||||
int no = Integer.valueOf(label
|
||||
.replace("Deposit Amount", ""));
|
||||
printResult.setLabel("Deposit Amt");
|
||||
List<DepositReportD> reportDs = report
|
||||
.getDepositReportDList();
|
||||
try {
|
||||
printResult.setValue(Tool.separateThousand(reportDs
|
||||
.get(no).getDeposit_amt()));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (label.equals("Total")) {
|
||||
printResult.setLabel(label);
|
||||
printResult.setValue(String.valueOf(Tool
|
||||
.separateThousand(total)));
|
||||
}
|
||||
} else if (bean.getPrint_type_id().equals(
|
||||
Global.PRINT_BRANCH_ADDRESS)) {
|
||||
printResult.setLabel(GlobalData.getSharedGlobalData().getUser()
|
||||
.getBranch_address());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_BRANCH_NAME)) {
|
||||
printResult.setLabel(GlobalData.getSharedGlobalData().getUser()
|
||||
.getBranch_name());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_BT_ID)) {
|
||||
String btAddr = "?";
|
||||
try {
|
||||
btAddr = BluetoothAdapter.getDefaultAdapter().getAddress();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue(btAddr);
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LABEL)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LABEL_BOLD)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id()
|
||||
.equals(Global.PRINT_LABEL_CENTER)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(
|
||||
Global.PRINT_LABEL_CENTER_BOLD)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_LOGO)) {
|
||||
printResult.setLabel("");
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_NEW_LINE)) {
|
||||
String label = bean.getPrint_item_label();
|
||||
int no = Integer.valueOf(label.replace("New Line", ""));
|
||||
List<DepositReportD> reportDs = report.getDepositReportDList();
|
||||
int size = reportDs.size();
|
||||
if (no < size) {
|
||||
printResult.setLabel("------------------------------");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
if (no == 999) {
|
||||
printResult.setLabel("==============================");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
if (no == 998) {
|
||||
printResult.setLabel("\n");
|
||||
printResult.setValue("\n");
|
||||
}
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_TIMESTAMP)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue("");
|
||||
} else if (bean.getPrint_type_id().equals(Global.PRINT_USER_NAME)) {
|
||||
printResult.setLabel(bean.getPrint_item_label());
|
||||
printResult.setValue(GlobalData.getSharedGlobalData().getUser()
|
||||
.getFullname());
|
||||
}
|
||||
if (printResult.getLabel() != null) {
|
||||
PrintResultDataAccess.add(activity, printResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setDummyBankAccountSpinner() {
|
||||
Lookup bankAccountDummy = new Lookup();
|
||||
bankAccountDummy.setUuid_lookup(uuidLookupDummy);
|
||||
bankAccountDummy.setValue(getString(R.string.choose_one));
|
||||
|
||||
bankAccountList.add(0, bankAccountDummy);
|
||||
}
|
||||
|
||||
public class SendDepositReportTask extends AsyncTask<String, Void, List<String>> {
|
||||
String namaKasir;
|
||||
private ProgressDialog progressDialog;
|
||||
private final FragmentActivity activity;
|
||||
private DepositReportH header;
|
||||
private ArrayList<DepositReportD> details;
|
||||
private String errMsg;
|
||||
private StringBuilder sb;
|
||||
|
||||
public SendDepositReportTask(FragmentActivity activity) {
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
this.progressDialog = ProgressDialog.show(activity, "", activity.getString(R.string.progressSend), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> doInBackground(String... params) {
|
||||
List<String> results = new ArrayList<>();
|
||||
String result = "";
|
||||
if (Tool.isInternetconnected(getActivity())) {
|
||||
sb = new StringBuilder();
|
||||
|
||||
DepositReportRequest request = new DepositReportRequest();
|
||||
request.addImeiAndroidIdToUnstructured();
|
||||
header = new DepositReportH();
|
||||
header.setCashier_name("");
|
||||
header.setUuid_deposit_report_h(Tool.getUUID());
|
||||
header.setBatch_id(batchId);
|
||||
header.setFlag(formName);
|
||||
header.setTransfered_date(Tool.getSystemDateTime());
|
||||
header.setDtm_crt(Tool.getSystemDateTime());
|
||||
header.setUuid_user(DepositReportRecapitulateFragmentNew.selectedDepositUser);
|
||||
header.setUser(DepositReportRecapitulateFragmentNew.selectedDepositUserObject);
|
||||
if (null != header.getUuid_user() && !"".equals(header.getUuid_user())) {
|
||||
header.setUsr_crt(header.getUuid_user());
|
||||
} else {
|
||||
header.setUsr_crt(GlobalData.getSharedGlobalData().getUser().getUuid_user());
|
||||
}
|
||||
|
||||
if (params[3].equals(String.valueOf(View.VISIBLE))) {
|
||||
String noRek = params[0];
|
||||
String bankName = params[1];
|
||||
|
||||
if (noRek != null && noRek.length() > 0) {
|
||||
header.setBank_account(noRek);
|
||||
header.setBank_name(bankName);
|
||||
} else {
|
||||
sb.append(getActivity().getString(R.string.transfer_to_required));
|
||||
}
|
||||
|
||||
if (image == null) {
|
||||
sb.append(getActivity().getString(R.string.evidence_required));
|
||||
} else {
|
||||
try {
|
||||
byteImage = Utils.bitmapToByte(tempImage);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (byteImage != null)
|
||||
header.setImage(byteImage);
|
||||
else
|
||||
sb.append(getActivity().getString(R.string.evidence_required));
|
||||
}
|
||||
} else {
|
||||
namaKasir = params[2];
|
||||
if (namaKasir != null && namaKasir.length() > 0) {
|
||||
header.setCashier_name(namaKasir);
|
||||
} else {
|
||||
sb.append(getActivity().getString(R.string.cashier_required));
|
||||
}
|
||||
}
|
||||
|
||||
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
request.setReportHeader(header);
|
||||
|
||||
if (sb.length() > 0) {
|
||||
result = sb.toString();
|
||||
results.add(0, result);
|
||||
} else {
|
||||
details = new ArrayList<DepositReportD>();
|
||||
List<TaskD> tasks = TaskDDataAccess.getTaskDTagTotalbyBatchId(getActivity(), DepositReportRecapitulateFragmentNew.selectedBatchId);
|
||||
List<TaskD> reportsReconcile = new ArrayList<TaskD>();
|
||||
|
||||
for (TaskD taskD : tasks) {
|
||||
TaskH taskH = TaskHDataAccess.getOneHeader(getActivity(), taskD.getUuid_task_h());
|
||||
if (taskH.getIs_reconciled().equals("0")) {
|
||||
reportsReconcile.add(taskD);
|
||||
}
|
||||
}
|
||||
for (TaskD task : reportsReconcile) {
|
||||
DepositReportD detail = new DepositReportD();
|
||||
detail.setUuid_task_h(task.getTaskH().getUuid_task_h());
|
||||
detail.setDtm_crt(Tool.getSystemDateTime());
|
||||
detail.setUsr_crt(DepositReportRecapitulateFragmentNew.selectedDepositUser);
|
||||
detail.setUuid_deposit_report_d(Tool.getUUID());
|
||||
String value = task.getText_answer();
|
||||
|
||||
if (value == null || value.equals(""))
|
||||
value = "0";
|
||||
String tempAnswer = Tool.deleteAll(value, ",");
|
||||
String[] intAnswer = Tool.split(tempAnswer, ".");
|
||||
if (intAnswer.length > 1) {
|
||||
if (intAnswer[1].equals("00")) {
|
||||
value = intAnswer[0];
|
||||
} else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
} else {
|
||||
value = tempAnswer;
|
||||
}
|
||||
|
||||
detail.setDeposit_amt(value);
|
||||
|
||||
detail.setUuid_deposit_report_h(header.getUuid_deposit_report_h());
|
||||
details.add(detail);
|
||||
}
|
||||
|
||||
request.setListReportDetail(details);
|
||||
|
||||
String url = GlobalData.getSharedGlobalData().getURL_SENDDEPOSITREPORT();
|
||||
String json = GsonHelper.toJson(request);
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetric = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errMsg = e.getMessage();
|
||||
}
|
||||
|
||||
MssRequestType cohRequest = new MssRequestType();
|
||||
cohRequest.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
cohRequest.addImeiAndroidIdToUnstructured();
|
||||
String urlCoh = GlobalData.getSharedGlobalData().getURL_UPDATE_CASH_ON_HAND();
|
||||
String jsonCoh = GsonHelper.toJson(cohRequest);
|
||||
HttpConnectionResult serverResultCoh = null;
|
||||
// Firebase Performance Trace Network Request
|
||||
HttpMetric networkMetricCoh = FirebasePerformance.getInstance().newHttpMetric(
|
||||
url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetricCoh, jsonCoh);
|
||||
|
||||
try {
|
||||
serverResultCoh = httpConn.requestToServer(urlCoh, jsonCoh, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetricCoh, serverResultCoh);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errMsg = e.getMessage();
|
||||
}
|
||||
|
||||
try {
|
||||
if (serverResult != null) {
|
||||
result = serverResult.getResult();
|
||||
}
|
||||
results.add(0, result);
|
||||
String resultCoh = null;
|
||||
if (serverResultCoh != null) {
|
||||
resultCoh = serverResultCoh.getResult();
|
||||
}
|
||||
results.add(1, resultCoh);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
result = getActivity().getString(R.string.no_internet_connection);
|
||||
results.add(0, result);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(List<String> results) {
|
||||
boolean error = false;
|
||||
if (progressDialog.isShowing()) {
|
||||
try {
|
||||
progressDialog.dismiss();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
try {
|
||||
imageBukti.setDrawingCacheEnabled(false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (Global.IS_DEV)
|
||||
System.out.println(results);
|
||||
if (errMsg != null) {
|
||||
final NiftyDialogBuilder dialog = NiftyDialogBuilder.getInstance(getActivity());
|
||||
dialog.withTitle(getActivity().getString(R.string.error_capital)).withMessage(this.errMsg).
|
||||
withButton1Text("OK").
|
||||
setButton1Click(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
dialog.dismiss();
|
||||
CustomerFragment.doBack(getActivity());
|
||||
}
|
||||
}).
|
||||
isCancelable(false).show();
|
||||
error = true;
|
||||
} else {
|
||||
if (getActivity().getString(R.string.no_internet_connection).equals(results.get(0))) {
|
||||
Toaster.warning(getActivity(), results.get(0));
|
||||
error = true;
|
||||
} else {
|
||||
if (sb != null && sb.length() > 0) {
|
||||
Toaster.warning(getActivity(), results.get(0));
|
||||
error = true;
|
||||
} else {
|
||||
try {
|
||||
DepositReportResponse responseType = GsonHelper.fromJson(results.get(0), DepositReportResponse.class);
|
||||
if (responseType.getStatus().getCode() == 0) {
|
||||
header.setBatch_id(responseType.getBatchId());
|
||||
DepositReportHDataAccess.add(getActivity(), header);
|
||||
for (DepositReportD reportD : details) {
|
||||
reportD.setIs_sent(Global.TRUE_STRING);
|
||||
reportD.setDepositReportH(header);
|
||||
DepositReportDDataAccess.add(getActivity(), reportD);
|
||||
}
|
||||
generatePrintResultDepReport(getActivity(), namaKasir, header);
|
||||
|
||||
if (results.size() == 2) {
|
||||
try {
|
||||
CashOnHandResponse cashOnHandResponse = GsonHelper.fromJson(results.get(1), CashOnHandResponse.class);
|
||||
if (cashOnHandResponse.getStatus().getCode() == 0) {
|
||||
User user = GlobalData.getSharedGlobalData().getUser();
|
||||
user.setCash_on_hand(cashOnHandResponse.getCashOnHand());
|
||||
GlobalData.getSharedGlobalData().getUser().setCash_on_hand(
|
||||
cashOnHandResponse.getCashOnHand()
|
||||
);
|
||||
UserDataAccess.addOrReplace(getActivity(), user);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
|
||||
final NiftyDialogBuilder dialog = NiftyDialogBuilder.getInstance(getActivity());
|
||||
dialog.withTitle(getActivity().getString(R.string.success)).
|
||||
withMessage(getActivity().getString(R.string.success_deposit)).
|
||||
withButton1Text("OK").
|
||||
setButton1Click(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
dialog.dismiss();
|
||||
CustomerFragment.doBack(getActivity());
|
||||
CustomerFragment.doBack(getActivity());
|
||||
DepositReportDetailActivity.report = header;
|
||||
Intent intent = new Intent(getActivity(), DepositReportDetailActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
}).
|
||||
isCancelable(false).show();
|
||||
} else {
|
||||
final NiftyDialogBuilder dialog = NiftyDialogBuilder.getInstance(getActivity());
|
||||
dialog.withTitle(getActivity().getString(R.string.error_capital)).withMessage(responseType.getStatus().getMessage()).
|
||||
withButton1Text("OK").
|
||||
setButton1Click(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View paramView) {
|
||||
dialog.dismiss();
|
||||
CustomerFragment.doBack(getActivity());
|
||||
}
|
||||
}).
|
||||
isCancelable(false).show();
|
||||
}
|
||||
} catch (Exception e2) {
|
||||
e2.printStackTrace();
|
||||
Toaster.warning(getActivity(), results.get(0));
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (error) {
|
||||
buttonSend.setClickable(true);
|
||||
buttonSelectPhoto.setClickable(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class BankAccountAdapter extends ArrayAdapter<Lookup> {
|
||||
private final Context context;
|
||||
private final List<Lookup> values;
|
||||
|
||||
public BankAccountAdapter(Context context, int resource, int textViewResourceId, List<Lookup> objects) {
|
||||
super(context, resource, textViewResourceId, objects);
|
||||
this.context = context;
|
||||
this.values = objects;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return values.size();
|
||||
}
|
||||
|
||||
public Lookup getItem(int position) {
|
||||
return values.get(position);
|
||||
}
|
||||
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getValue());
|
||||
return label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.spinner_style, parent, false);
|
||||
TextView label = (TextView) view.findViewById(R.id.text_spin);
|
||||
label.setText(values.get(position).getValue());
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
class DetailKompetisiRequest extends MssRequestType {
|
||||
|
||||
@SerializedName("LOGIN_ID")
|
||||
protected String LOGIN_ID;
|
||||
|
||||
public String getLOGIN_ID() {
|
||||
return LOGIN_ID;
|
||||
}
|
||||
|
||||
public void setLOGIN_ID(String LOGIN_ID) {
|
||||
this.LOGIN_ID = LOGIN_ID;
|
||||
}
|
||||
|
||||
// @SerializedName("MEMBERSHIP_PROGRAM_CODE")
|
||||
// protected ArrayList<String> MEMBERSHIP_PROGRAM_CODE;
|
||||
//
|
||||
// public ArrayList<String> getMEMBERSHIP_PROGRAM_CODE() {
|
||||
// return MEMBERSHIP_PROGRAM_CODE;
|
||||
// }
|
||||
//
|
||||
// public void setMEMBERSHIP_PROGRAM_CODE(ArrayList<String> MEMBERSHIP_PROGRAM_CODE) {
|
||||
// this.MEMBERSHIP_PROGRAM_CODE = MEMBERSHIP_PROGRAM_CODE;
|
||||
// }
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import com.adins.mss.foundation.http.MssResponseType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DetailKompetisiResponse extends MssResponseType {
|
||||
|
||||
@SerializedName("resultList")
|
||||
public ArrayList<MemberShipData> resultList;
|
||||
|
||||
public ArrayList<MemberShipData> getResultList() {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public void setResultList(ArrayList<MemberShipData> resultList) {
|
||||
this.resultList = resultList;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class MemberShipData {
|
||||
|
||||
public String getMEMBERSHIP_PROGRAM_CODE() {
|
||||
return MEMBERSHIP_PROGRAM_CODE;
|
||||
}
|
||||
|
||||
public void setMEMBERSHIP_PROGRAM_CODE(String MEMBERSHIP_PROGRAM_CODE) {
|
||||
this.MEMBERSHIP_PROGRAM_CODE = MEMBERSHIP_PROGRAM_CODE;
|
||||
}
|
||||
|
||||
public String getINFORMATION_TYPE() {
|
||||
return INFORMATION_TYPE;
|
||||
}
|
||||
|
||||
public void setINFORMATION_TYPE(String INFORMATION_TYPE) {
|
||||
this.INFORMATION_TYPE = INFORMATION_TYPE;
|
||||
}
|
||||
|
||||
public ArrayList<TeamMember> getTEAM_MEMBER() {
|
||||
return TEAM_MEMBER;
|
||||
}
|
||||
|
||||
public void setTEAM_MEMBER(ArrayList<TeamMember> TEAM_MEMBER) {
|
||||
this.TEAM_MEMBER = TEAM_MEMBER;
|
||||
}
|
||||
public String getLOGO() {
|
||||
return LOGO;
|
||||
}
|
||||
|
||||
public void setLOGO(String LOGO) {
|
||||
this.LOGO = LOGO;
|
||||
}
|
||||
@SerializedName("MEMBERSHIP_PROGRAM_CODE")
|
||||
protected String MEMBERSHIP_PROGRAM_CODE;
|
||||
|
||||
@SerializedName("INFORMATION_TYPE")
|
||||
protected String INFORMATION_TYPE;
|
||||
|
||||
@SerializedName("MEMBERSHIP_PROGRAM_NAME")
|
||||
protected String MEMBERSHIP_PROGRAM_NAME;
|
||||
|
||||
@SerializedName("MEMBERSHIP_PROGRAM_DESCRIPTION")
|
||||
protected String MEMBERSHIP_PROGRAM_DESCRIPTION;
|
||||
|
||||
@SerializedName("MEMBERSHIP_PROGRAM_STATUS")
|
||||
protected String MEMBERSHIP_PROGRAM_STATUS;
|
||||
|
||||
@SerializedName("MEMBERSHIP_PROGRAM_START_DATE")
|
||||
protected String MEMBERSHIP_PROGRAM_START_DATE;
|
||||
|
||||
@SerializedName("GRACE_PERIODE")
|
||||
protected String GRACE_PERIODE;
|
||||
|
||||
@SerializedName("MEMBERSHIP_PROGRAM_EXPIRED_DATE")
|
||||
protected String MEMBERSHIP_PROGRAM_EXPIRED_DATE;
|
||||
|
||||
public String getMEMBERSHIP_PROGRAM_NAME() {
|
||||
return MEMBERSHIP_PROGRAM_NAME;
|
||||
}
|
||||
|
||||
public void setMEMBERSHIP_PROGRAM_NAME(String MEMBERSHIP_PROGRAM_NAME) {
|
||||
this.MEMBERSHIP_PROGRAM_NAME = MEMBERSHIP_PROGRAM_NAME;
|
||||
}
|
||||
|
||||
public String getMEMBERSHIP_PROGRAM_DESCRIPTION() {
|
||||
return MEMBERSHIP_PROGRAM_DESCRIPTION;
|
||||
}
|
||||
|
||||
public void setMEMBERSHIP_PROGRAM_DESCRIPTION(String MEMBERSHIP_PROGRAM_DESCRIPTION) {
|
||||
this.MEMBERSHIP_PROGRAM_DESCRIPTION = MEMBERSHIP_PROGRAM_DESCRIPTION;
|
||||
}
|
||||
|
||||
public String getMEMBERSHIP_PROGRAM_STATUS() {
|
||||
return MEMBERSHIP_PROGRAM_STATUS;
|
||||
}
|
||||
|
||||
public void setMEMBERSHIP_PROGRAM_STATUS(String MEMBERSHIP_PROGRAM_STATUS) {
|
||||
this.MEMBERSHIP_PROGRAM_STATUS = MEMBERSHIP_PROGRAM_STATUS;
|
||||
}
|
||||
|
||||
public String getMEMBERSHIP_PROGRAM_START_DATE() {
|
||||
return MEMBERSHIP_PROGRAM_START_DATE;
|
||||
}
|
||||
|
||||
public void setMEMBERSHIP_PROGRAM_START_DATE(String MEMBERSHIP_PROGRAM_START_DATE) {
|
||||
this.MEMBERSHIP_PROGRAM_START_DATE = MEMBERSHIP_PROGRAM_START_DATE;
|
||||
}
|
||||
|
||||
public String getGRACE_PERIODE() {
|
||||
return GRACE_PERIODE;
|
||||
}
|
||||
|
||||
public void setGRACE_PERIODE(String GRACE_PERIODE) {
|
||||
this.GRACE_PERIODE = GRACE_PERIODE;
|
||||
}
|
||||
|
||||
public String getMEMBERSHIP_PROGRAM_EXPIRED_DATE() {
|
||||
return MEMBERSHIP_PROGRAM_EXPIRED_DATE;
|
||||
}
|
||||
|
||||
public void setMEMBERSHIP_PROGRAM_EXPIRED_DATE(String MEMBERSHIP_PROGRAM_EXPIRED_DATE) {
|
||||
this.MEMBERSHIP_PROGRAM_EXPIRED_DATE = MEMBERSHIP_PROGRAM_EXPIRED_DATE;
|
||||
}
|
||||
|
||||
@SerializedName("TEAM_MEMBER")
|
||||
protected ArrayList<TeamMember> TEAM_MEMBER;
|
||||
|
||||
|
||||
@SerializedName("LOGO")
|
||||
protected String LOGO;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,163 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dummy.MyDashboardItemDummyAdapter;
|
||||
import com.adins.mss.coll.loyalti.pointacquisitionmonthly.MonthlyPointsChartView;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.Kompetisi;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GetDetailListKompetisi extends AsyncTask<Void, Void, String> {
|
||||
BeanResps beanResps;
|
||||
private Activity context;
|
||||
private ProgressDialog progressDialog;
|
||||
public DetailKompetisiResponse dataDetail;
|
||||
String errMsg = "";
|
||||
RecyclerView recyclerViewDashBoard;
|
||||
MyDashBoardItemRecyclerViewAdapter adapter;
|
||||
String className;
|
||||
|
||||
|
||||
// public GetDetailListKompetisi(RecyclerView recyclerView, MyDashBoardItemRecyclerViewAdapter adapter, FragmentActivity activity, BeanResps beanRespsData) {
|
||||
// recyclerViewDashBoard = recyclerView;
|
||||
// context = activity;
|
||||
// beanResps = beanRespsData;
|
||||
// this.adapter = adapter;
|
||||
// }
|
||||
|
||||
public GetDetailListKompetisi(RecyclerView recyclerView, MyDashBoardItemRecyclerViewAdapter adapter, FragmentActivity activity) {
|
||||
recyclerViewDashBoard = recyclerView;
|
||||
context = activity;
|
||||
this.adapter = adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
progressDialog = ProgressDialog.show(context, "", context.getString(R.string.please_wait_dialog), true);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(Void... voids) {
|
||||
if (Tool.isInternetconnected(context)) {
|
||||
|
||||
Gson gson = new GsonBuilder().setDateFormat("ddMMyyyyHHmmss").registerTypeHierarchyAdapter(byte[].class,
|
||||
new GsonHelper.ByteArrayToBase64TypeAdapter()).create();
|
||||
String result;
|
||||
DetailKompetisiRequest requestType = new DetailKompetisiRequest();
|
||||
// ArrayList<String> data = null;
|
||||
// data = new ArrayList<>();
|
||||
// for(int i = 0 ; i < dataKompetisireq.size() ; i++){
|
||||
// data.add(dataKompetisireq.get(i).getMembershipProgramCode());
|
||||
// }
|
||||
|
||||
String loginId = GlobalData.getSharedGlobalData().getUser().getLogin_id();
|
||||
|
||||
if(loginId.contains("@")){
|
||||
String[] separated = loginId.split("@");
|
||||
requestType.setLOGIN_ID(separated[0]);
|
||||
}else {
|
||||
requestType.setLOGIN_ID(loginId);
|
||||
}
|
||||
|
||||
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
// requestType.addItemToUnstructured(new KeyValue("imei", GlobalData.getSharedGlobalData().getImei()), false);
|
||||
|
||||
String json = GsonHelper.toJson(requestType);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_DETAILKOMPETISI();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
|
||||
//Firebase Performance Trace HTTP Request
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errMsg = e.getMessage();
|
||||
return errMsg;
|
||||
}
|
||||
|
||||
if(serverResult.getStatusCode() == 200){
|
||||
try {
|
||||
dataDetail = gson.fromJson(serverResult.getResult(), DetailKompetisiResponse.class);
|
||||
} catch (Exception e) {
|
||||
return e.getMessage();
|
||||
}
|
||||
}else {
|
||||
errMsg = context.getString(R.string.failed_get_data_try_again);
|
||||
}
|
||||
|
||||
return errMsg;
|
||||
} else {
|
||||
errMsg = context.getString(R.string.no_internet_connection);
|
||||
return errMsg;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String s) {
|
||||
super.onPostExecute(s);
|
||||
progressDialog.dismiss();
|
||||
if (errMsg.length() > 0) {
|
||||
Toast.makeText(context, errMsg, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
if(dataDetail == null || dataDetail.getResultList() == null
|
||||
|| dataDetail.getResultList().isEmpty() || dataDetail.getResultList().get(0).getTEAM_MEMBER() == null){
|
||||
Toast.makeText(context, context.getString(R.string.failed_get_data_try_again), Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
adapter.setDataDetailKompetisi(dataDetail);
|
||||
if (Global.userHelpDummyGuide.get(className) !=null &&
|
||||
Global.userHelpDummyGuide.size()>0 &&
|
||||
Global.userHelpDummyGuide.get(className).size()>0 &&
|
||||
Global.ENABLE_USER_HELP) {
|
||||
MyDashboardItemDummyAdapter dummyAdapter = new MyDashboardItemDummyAdapter(context,recyclerViewDashBoard,adapter);
|
||||
recyclerViewDashBoard.setAdapter(dummyAdapter);
|
||||
}else {
|
||||
adapter.notifyDataSetChanged();
|
||||
recyclerViewDashBoard.setAdapter(adapter);
|
||||
}
|
||||
}
|
||||
|
||||
public String getClassName() {
|
||||
return className;
|
||||
}
|
||||
|
||||
public void setClassName(String className) {
|
||||
this.className = className;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,130 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.util.Base64;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.base.util.Utility;
|
||||
import com.adins.mss.coll.GetLogoKompetisiResponse;
|
||||
import com.adins.mss.coll.NewMCMainActivity;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.dummy.MyDashboardItemDummyAdapter;
|
||||
import com.adins.mss.coll.loyalti.pointacquisitionmonthly.MonthlyPointsChartView;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.Kompetisi;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
import com.google.firebase.perf.FirebasePerformance;
|
||||
import com.google.firebase.perf.metrics.HttpMetric;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GetLogoKompetisi extends AsyncTask<Void, Void, String> {
|
||||
private Context context;
|
||||
String errMsg = "";
|
||||
public GetLogoKompetisiResponse logoKompetisiResponse;
|
||||
String memberCode;
|
||||
ImageView imageLogo;
|
||||
|
||||
|
||||
public GetLogoKompetisi(Context mContext, String membership_program_code, ImageView logoKompetisi) {
|
||||
context = mContext;
|
||||
memberCode = membership_program_code;
|
||||
imageLogo = logoKompetisi;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String doInBackground(Void... voids) {
|
||||
if (Tool.isInternetconnected(context)) {
|
||||
|
||||
Gson gson = new GsonBuilder().setDateFormat("ddMMyyyyHHmmss").registerTypeHierarchyAdapter(byte[].class,
|
||||
new GsonHelper.ByteArrayToBase64TypeAdapter()).create();
|
||||
String result;
|
||||
GetLogoRequest requestType = new GetLogoRequest();
|
||||
// ArrayList<String> data = null;
|
||||
// data = new ArrayList<>();
|
||||
// for(int i = 0 ; i < dataKompetisireq.size() ; i++){
|
||||
// data.add(dataKompetisireq.get(i).getMembershipProgramCode());
|
||||
// }
|
||||
requestType.setMEMBERSHIP_PROGRAM_CODE(memberCode);
|
||||
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
|
||||
// requestType.addItemToUnstructured(new KeyValue("imei", GlobalData.getSharedGlobalData().getImei()), false);
|
||||
|
||||
String json = GsonHelper.toJson(requestType);
|
||||
String url = GlobalData.getSharedGlobalData().getURL_GET_LOGOKOMPETISI();
|
||||
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
|
||||
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
|
||||
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
|
||||
HttpConnectionResult serverResult = null;
|
||||
|
||||
//Firebase Performance Trace HTTP Request
|
||||
HttpMetric networkMetric =
|
||||
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
|
||||
Utility.metricStart(networkMetric, json);
|
||||
|
||||
try {
|
||||
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
|
||||
Utility.metricStop(networkMetric, serverResult);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errMsg = e.getMessage();
|
||||
return errMsg;
|
||||
}
|
||||
|
||||
if(serverResult != null && serverResult.getStatusCode() == 200){
|
||||
try {
|
||||
logoKompetisiResponse = gson.fromJson(serverResult.getResult(), GetLogoKompetisiResponse.class);
|
||||
} catch (Exception e) {
|
||||
return e.getMessage();
|
||||
}
|
||||
}else {
|
||||
errMsg = context.getString(R.string.failed_get_data_try_again);
|
||||
}
|
||||
|
||||
return errMsg;
|
||||
} else {
|
||||
errMsg = context.getString(R.string.no_internet_connection);
|
||||
return errMsg;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String s) {
|
||||
super.onPostExecute(s);
|
||||
if (errMsg.length() > 0) {
|
||||
Toast.makeText(context, errMsg, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
String base64Logo = logoKompetisiResponse.getLOGO();
|
||||
if(base64Logo != null && !base64Logo.equals("")){
|
||||
byte[] decodedString = Base64.decode(base64Logo, Base64.DEFAULT );
|
||||
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
|
||||
imageLogo.setImageBitmap(decodedByte);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import com.adins.mss.foundation.http.MssRequestType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class GetLogoRequest extends MssRequestType {
|
||||
|
||||
@SerializedName("MEMBERSHIP_PROGRAM_CODE")
|
||||
protected String MEMBERSHIP_PROGRAM_CODE;
|
||||
|
||||
public String getMEMBERSHIP_PROGRAM_CODE() {
|
||||
return MEMBERSHIP_PROGRAM_CODE;
|
||||
}
|
||||
|
||||
public void setMEMBERSHIP_PROGRAM_CODE(String MEMBERSHIP_PROGRAM_CODE) {
|
||||
this.MEMBERSHIP_PROGRAM_CODE = MEMBERSHIP_PROGRAM_CODE;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.GsonHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.models.GuidelineAdapter;
|
||||
import com.adins.mss.coll.models.GuidelineFaqRequest;
|
||||
import com.adins.mss.coll.models.loyaltymodels.DocumentListDetail;
|
||||
import com.adins.mss.coll.models.loyaltymodels.GuidelineFaqResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
//import com.adins.mss.foundation.formatter.Base64;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
import android.util.Base64;
|
||||
import com.adins.mss.foundation.http.HttpConnectionResult;
|
||||
import com.adins.mss.foundation.http.HttpCryptedConnection;
|
||||
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
public class GuidelineFaqFragment extends Fragment {
|
||||
|
||||
RecyclerView guidelinesList;
|
||||
private static final String ARG_DOCUMENTS = "documents";
|
||||
private GuidelineAdapter guidelineAdapter;
|
||||
private List<DocumentListDetail> documentList;
|
||||
|
||||
public static GuidelineFaqFragment newInstance(List<DocumentListDetail> documentListDetails) {
|
||||
GuidelineFaqFragment fragment = new GuidelineFaqFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable(ARG_DOCUMENTS, (Serializable) documentListDetails);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_guideline_faq, container, false);
|
||||
guidelinesList = view.findViewById(R.id.guidelineRV);
|
||||
|
||||
getActivity().setTitle(getString(R.string.title_mn_guideline_faq));
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
if(getArguments() != null){
|
||||
documentList = (List<DocumentListDetail>) getArguments().getSerializable(ARG_DOCUMENTS);
|
||||
}
|
||||
|
||||
if(documentList != null){
|
||||
guidelineAdapter = new GuidelineAdapter(documentList, getContext());
|
||||
guidelinesList.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
guidelinesList.setAdapter(guidelineAdapter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by winy.firdasari on 03/02/2015.
|
||||
*/
|
||||
|
||||
public class HistoryPaymentFragment extends FragmentActivity {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
// this is not really necessary as ExpandableListActivity contains an ExpandableList
|
||||
setContentView(R.layout.fragment_history_payment);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.models.InstallmentScheduleItem;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.InstallmentSchedule;
|
||||
import com.adins.mss.foundation.formatter.Formatter;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Date;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
/**
|
||||
* Created by aditya on 07/05/15.
|
||||
*/
|
||||
public class InstallmentScheduleDetailFragment extends AppCompatActivity {
|
||||
public static final String INSTALLMENT_SCHEDULE_DETAIL = "InstallmentScheduleDetailFragment.INSTALLMENT_SCHEDULE_DETAIL";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.new_fragment_collection_activity_detail);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
TableLayout table = (TableLayout) findViewById(R.id.tableCollectionDetail);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.title_mn_installmentscheduledet));
|
||||
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
InstallmentSchedule item = InstallmentScheduleFragment.detailInstallmentSchedule;
|
||||
|
||||
int index = 1;
|
||||
Class<InstallmentSchedule> type = InstallmentSchedule.class;
|
||||
|
||||
for (Method method : type.getMethods()) {
|
||||
if (!method.getName().startsWith("get")) {
|
||||
continue;
|
||||
}
|
||||
// Seriously? No one want to output the class name for non techies.
|
||||
if (method.getName().equals("getClass")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
View row = LayoutInflater.from(this).inflate(
|
||||
R.layout.view_no_label_value, table, false);
|
||||
TextView no = (TextView) row.findViewById(R.id.no);
|
||||
TextView label = (TextView) row.findViewById(R.id.fieldName);
|
||||
TextView value = (TextView) row.findViewById(R.id.fieldValue);
|
||||
|
||||
String labelField = method.getName().replaceFirst("get", "");
|
||||
|
||||
if (labelField.equalsIgnoreCase("Dtm_crt")
|
||||
|| labelField.equalsIgnoreCase("Usr_crt")
|
||||
|| labelField.equalsIgnoreCase("Uuid_installment_schedule")
|
||||
|| labelField.equalsIgnoreCase("Uuid_task_h")
|
||||
|| labelField.equalsIgnoreCase("branch_code")) {
|
||||
|
||||
} else {
|
||||
no.setText(String.valueOf(index++));
|
||||
label.setText(labelField.replace("_", " "));
|
||||
label.setGravity(Gravity.LEFT);
|
||||
try {
|
||||
String stringValue = "";
|
||||
Object itemValue = method.invoke(item);
|
||||
if (itemValue == null) {
|
||||
stringValue = "-";
|
||||
} else if (method.getReturnType() == Date.class) {
|
||||
stringValue = Formatter.formatDate((Date) itemValue,
|
||||
Global.DATE_STR_FORMAT);
|
||||
} else {
|
||||
stringValue = String.valueOf(itemValue);
|
||||
}
|
||||
// if(stringValue!=null && stringValue.length()>3){
|
||||
// String part1 = stringValue.substring(stringValue.length()-3);
|
||||
// if(part1.substring(0, 1).equals("."))
|
||||
// {
|
||||
// value.setGravity(Gravity.RIGHT);
|
||||
// }
|
||||
// }
|
||||
value.setText(stringValue);
|
||||
value.setGravity(Gravity.RIGHT);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// if (index % 2 == 1) {
|
||||
// row.setBackgroundResource(R.color.tv_gray_light);
|
||||
// } else if (index % 2 == 0) {
|
||||
// row.setBackgroundResource(R.color.tv_gray);
|
||||
// }
|
||||
|
||||
table.addView(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,341 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.checkin.CheckInManager;
|
||||
import com.adins.mss.base.commons.TaskListener;
|
||||
import com.adins.mss.base.crashlytics.FireCrash;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.commons.Toaster;
|
||||
import com.adins.mss.coll.interfaces.TasksImpl;
|
||||
import com.adins.mss.coll.interfaces.TasksInterface;
|
||||
import com.adins.mss.coll.interfaces.callback.SaveDataInstallmentCallback;
|
||||
import com.adins.mss.coll.models.InstallmentScheduleResponse;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.InstallmentSchedule;
|
||||
import com.adins.mss.dao.TaskH;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.db.dataaccess.InstallmentScheduleDataAccess;
|
||||
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
|
||||
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
|
||||
import com.adins.mss.foundation.formatter.Formatter;
|
||||
import com.adins.mss.foundation.location.UpdateMenuIcon;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
|
||||
|
||||
/**
|
||||
* Created by winy.firdasari on 03/02/2015.
|
||||
*/
|
||||
|
||||
public class InstallmentScheduleFragment extends AppCompatActivity implements TaskListener,SaveDataInstallmentCallback, View.OnClickListener {
|
||||
ImageButton imageButton;
|
||||
private String taskId;
|
||||
|
||||
InstallmentScheduleResponse scheduleResponse;
|
||||
public static InstallmentSchedule detailInstallmentSchedule;
|
||||
private TasksInterface Tasks;
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
setContentView(R.layout.new_fragment_installment_schedule);
|
||||
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.title_mn_installmentschedule));
|
||||
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
Bundle bundle = getIntent().getExtras();
|
||||
taskId = bundle.getString(Global.BUND_KEY_TASK_ID);
|
||||
Tasks = new TasksImpl(this);
|
||||
|
||||
TaskH taskH = TaskHDataAccess.getOneTaskHeader(this, taskId);
|
||||
if(taskH!=null){
|
||||
InstallmentScheduleDataAccess.getAllByTask(this, taskH.getUuid_task_h());
|
||||
|
||||
Tasks.getDataInstallmentSchedule(taskId, this);
|
||||
|
||||
imageButton = (ImageButton) findViewById(R.id.imageBtnDownload);
|
||||
imageButton.setOnClickListener(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_installment_schedule), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater menuInflater = getMenuInflater();
|
||||
menuInflater.inflate(com.adins.mss.base.R.menu.main_menu, menu);
|
||||
mainMenu = menu;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
updateMenuIcon();
|
||||
|
||||
if(Global.ENABLE_USER_HELP &&
|
||||
(Global.userHelpGuide.get(InstallmentScheduleFragment.this.getClass().getSimpleName())!=null) ||
|
||||
Global.userHelpDummyGuide.get(InstallmentScheduleFragment.this.getClass().getSimpleName()) != null){
|
||||
menu.findItem(com.adins.mss.base.R.id.mnGuide).setVisible(true);
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
private static Menu mainMenu;
|
||||
|
||||
public static void updateMenuIcon() {
|
||||
UpdateMenuIcon uItem = new UpdateMenuIcon();
|
||||
uItem.updateGPSIcon(mainMenu);
|
||||
}
|
||||
@Override
|
||||
public void onCompleteTask(Object result) {
|
||||
InstallmentScheduleResponse installmentScheduleResponse = (InstallmentScheduleResponse) result;
|
||||
scheduleResponse = installmentScheduleResponse;
|
||||
TextView agreementNumber = (TextView) findViewById(R.id.agreementNumber);
|
||||
agreementNumber.setText(installmentScheduleResponse.getAgreementNo());
|
||||
|
||||
TableLayout table = (TableLayout) findViewById(R.id.tableHeaders);
|
||||
int index = 1;
|
||||
|
||||
if(installmentScheduleResponse.getInstallmentScheduleList().isEmpty()){
|
||||
NiftyDialogBuilder.getInstance(InstallmentScheduleFragment.this)
|
||||
.withMessage(R.string.no_data_from_server)
|
||||
.withTitle(getString(R.string.info_capital))
|
||||
.isCancelableOnTouchOutside(false)
|
||||
.withButton1Text(getString(R.string.btnClose))
|
||||
.setButton1Click(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
||||
for (InstallmentSchedule item : installmentScheduleResponse.getInstallmentScheduleList()) {
|
||||
|
||||
View row = LayoutInflater.from(InstallmentScheduleFragment.this).inflate(R.layout.view_row_installment_schedule, table, false);
|
||||
TextView no = (TextView) row.findViewById(R.id.no);
|
||||
TextView dueDate = (TextView) row.findViewById(R.id.dueDate);
|
||||
TextView amountInstallment = (TextView) row.findViewById(R.id.amountInstallment);
|
||||
TextView amountPaid = (TextView) row.findViewById(R.id.amountPaid);
|
||||
|
||||
row.setTag(item);
|
||||
|
||||
no.setText(String.valueOf(index++));
|
||||
dueDate.setText(Formatter.formatDate(item.getDue_date(), Global.DATE_STR_FORMAT));
|
||||
amountInstallment.setText(item.getInstallment_amount());
|
||||
amountPaid.setText(item.getInstallment_paid_amount());
|
||||
|
||||
String amtIns = item.getInstallment_amount();
|
||||
if(amtIns!=null && amtIns.length()>3){
|
||||
String part1 = amtIns.substring(amtIns.length()-3);
|
||||
if(part1.substring(0, 1).equals("."))
|
||||
{
|
||||
amountInstallment.setGravity(Gravity.RIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
String amtPaid = item.getInstallment_paid_amount();
|
||||
if(amtPaid!=null && amtPaid.length()>3){
|
||||
String part2 = amtPaid.substring(amtPaid.length()-3);
|
||||
if(part2.substring(0, 1).equals("."))
|
||||
{
|
||||
amountPaid.setGravity(Gravity.RIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
row.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
detailInstallmentSchedule = (InstallmentSchedule) v.getTag();
|
||||
Intent intent = new Intent(InstallmentScheduleFragment.this, InstallmentScheduleDetailFragment.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
table.addView(row);
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(InstallmentScheduleFragment.this,InstallmentScheduleFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == com.adins.mss.base.R.id.mnGPS && Global.LTM != null) {
|
||||
if (Global.LTM.getIsConnected()) {
|
||||
Global.LTM.removeLocationListener();
|
||||
Global.LTM.connectLocationClient();
|
||||
} else {
|
||||
CheckInManager.startGPSTracking(getApplicationContext());
|
||||
}
|
||||
Animation a = AnimationUtils.loadAnimation(this, com.adins.mss.base.R.anim.gps_rotate);
|
||||
findViewById(com.adins.mss.base.R.id.mnGPS).startAnimation(a);
|
||||
}
|
||||
if(item.getItemId() == R.id.mnGuide && !Global.BACKPRESS_RESTRICTION){
|
||||
UserHelp.reloadUserHelp(getApplicationContext(), InstallmentScheduleFragment.this);
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(InstallmentScheduleFragment.this, InstallmentScheduleFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelTask(boolean value) {
|
||||
//EMPTY
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLocalData(Object result) {
|
||||
List<InstallmentSchedule> installmentScheduleList = (List<InstallmentSchedule>) result;
|
||||
TextView agreementNumber = (TextView) findViewById(R.id.agreementNumber);
|
||||
agreementNumber.setText(installmentScheduleList.get(0).getAgreement_no());
|
||||
|
||||
TableLayout table = (TableLayout) findViewById(R.id.tableHeaders);
|
||||
int index = 1;
|
||||
|
||||
for (InstallmentSchedule item : installmentScheduleList) {
|
||||
|
||||
View row = LayoutInflater.from(InstallmentScheduleFragment.this).inflate(R.layout.view_row_installment_schedule, table, false);
|
||||
TextView no = (TextView) row.findViewById(R.id.no);
|
||||
TextView dueDate = (TextView) row.findViewById(R.id.dueDate);
|
||||
TextView amountInstallment = (TextView) row.findViewById(R.id.amountInstallment);
|
||||
TextView amountPaid = (TextView) row.findViewById(R.id.amountPaid);
|
||||
|
||||
row.setTag(item);
|
||||
|
||||
no.setText(String.valueOf(index++));
|
||||
dueDate.setText(Formatter.formatDate(item.getDue_date(), Global.DATE_STR_FORMAT));
|
||||
|
||||
String amtIns = item.getInstallment_amount();
|
||||
if(amtIns!=null && amtIns.length()>3){
|
||||
String part1 = amtIns.substring(amtIns.length()-3);
|
||||
if(part1.substring(0, 1).equals("."))
|
||||
{
|
||||
amountInstallment.setGravity(Gravity.RIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
String amtPaid = item.getInstallment_paid_amount();
|
||||
if(amtPaid!=null && amtPaid.length()>3){
|
||||
String part2 = amtPaid.substring(amtPaid.length()-3);
|
||||
if(part2.substring(0, 1).equals("."))
|
||||
{
|
||||
amountPaid.setGravity(Gravity.RIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
amountInstallment.setText(item.getInstallment_amount());
|
||||
amountPaid.setText(item.getInstallment_paid_amount());
|
||||
|
||||
row.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
detailInstallmentSchedule = (InstallmentSchedule) v.getTag();
|
||||
Intent intent = new Intent(InstallmentScheduleFragment.this, InstallmentScheduleDetailFragment.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
table.addView(row);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveFinished(boolean result) {
|
||||
if(result){
|
||||
Toast.makeText(this, getString(R.string.data_saved), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else{
|
||||
Toaster.warning(this,getString(R.string.failed_save_data));
|
||||
}
|
||||
imageButton.setEnabled(true);
|
||||
imageButton.setClickable(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
imageButton.setEnabled(false);
|
||||
imageButton.setClickable(false);
|
||||
try {
|
||||
Tasks.saveDataInstallmentSchedule(this, scheduleResponse, taskId,this);
|
||||
} catch (Exception e) {
|
||||
FireCrash.log(e);
|
||||
ACRA.getErrorReporter().handleSilentException(new Exception("Error: Insert Installment schedule Error. "+ e.getMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,291 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.GridView;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.fragments.DashBoardFragment.OnListFragmentInteractionListener;
|
||||
import com.adins.mss.coll.fragments.dummy.DummyContent.DummyItem;
|
||||
import com.adins.mss.coll.fragments.view.GridDashBoardAdapter;
|
||||
import com.adins.mss.foundation.formatter.Tool;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* {@link RecyclerView.Adapter} that can display a {@link DummyItem} and makes a call to the
|
||||
* specified {@link OnListFragmentInteractionListener}.
|
||||
* TODO: Replace the implementation with code for your data type.
|
||||
*/
|
||||
public class MyDashBoardItemRecyclerViewAdapter extends RecyclerView.Adapter<MyDashBoardItemRecyclerViewAdapter.ViewHolder> {
|
||||
|
||||
private final OnListFragmentInteractionListener mListener;
|
||||
private final Context mContext;
|
||||
private DetailKompetisiResponse dataDetailKompetisi;
|
||||
|
||||
|
||||
public MyDashBoardItemRecyclerViewAdapter(OnListFragmentInteractionListener listener, Context context) {
|
||||
mListener = listener;
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public DetailKompetisiResponse getDataDetailKompetisi() {
|
||||
return dataDetailKompetisi;
|
||||
}
|
||||
|
||||
public void setDataDetailKompetisi(DetailKompetisiResponse dataDetailKompetisi) {
|
||||
this.dataDetailKompetisi = dataDetailKompetisi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_dashboard, parent, false);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(final ViewHolder holder, final int position) {
|
||||
holder.mItem = dataDetailKompetisi;
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
Date now = calendar.getTime();
|
||||
|
||||
Date mydate = new Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24));
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd MMM yyyy");
|
||||
String yestr = dateFormat.format(mydate);
|
||||
|
||||
SimpleDateFormat simpleDate = new SimpleDateFormat("dd MMM yyyy");
|
||||
SimpleDateFormat simpleDate1 = new SimpleDateFormat("d");
|
||||
holder.labelPointSaya.setText(mContext.getString(R.string.my_point_competition, yestr));
|
||||
|
||||
DateFormat inputFormatter1 = new SimpleDateFormat("dd-MM-yyyy");
|
||||
Date datetanggal1 = null;
|
||||
try {
|
||||
datetanggal1 = inputFormatter1.parse(dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_START_DATE());
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
DateFormat outputFormatter1 = new SimpleDateFormat("MM/dd/yyyy");
|
||||
DateFormat outputFormatter2 = new SimpleDateFormat("dd MMM yyyy");
|
||||
String outputtanggal1 = outputFormatter2.format(datetanggal1); //
|
||||
Date datetanggal2 = null;
|
||||
try {
|
||||
datetanggal2 = inputFormatter1.parse(dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_EXPIRED_DATE());
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
String outputtanggal2 = outputFormatter2.format(datetanggal2); //
|
||||
|
||||
holder.startDate.setText(outputtanggal1 + " - " + outputtanggal2);
|
||||
holder.competitionName.setText(dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_NAME());
|
||||
|
||||
final double d = Double.parseDouble(dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_PERIOD());
|
||||
String pointPeriod = Tool.formatToCurrency(d);
|
||||
holder.totalPoinKompetisi.setText(pointPeriod);
|
||||
|
||||
if (dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_PERIOD().length() > 6) {
|
||||
holder.totalPoinKompetisi.setTextSize(16);
|
||||
} else if (dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_PERIOD().length() > 4) {
|
||||
holder.totalPoinKompetisi.setTextSize(20);
|
||||
} else {
|
||||
holder.totalPoinKompetisi.setTextSize(25);
|
||||
}
|
||||
|
||||
Integer gracepointnow = Integer.parseInt(dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_PERIOD());
|
||||
Integer gracepointbefore = Integer.parseInt(dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_PERIOD_BEFORE());
|
||||
if (gracepointnow < gracepointbefore) {
|
||||
holder.upDownGracePoint.setText("-" + String.valueOf(gracepointbefore - gracepointnow));
|
||||
holder.upDownGracePoint.setTextColor(Color.parseColor("#FF0000"));
|
||||
} else if (gracepointnow > gracepointbefore) {
|
||||
holder.upDownGracePoint.setText("+" + String.valueOf(gracepointnow - gracepointbefore));
|
||||
holder.upDownGracePoint.setTextColor(Color.parseColor("#008000"));
|
||||
} else {
|
||||
holder.upDownGracePoint.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
double dpoinmonth = Double.parseDouble(dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_MONTH());
|
||||
String poinMonth = Tool.formatToCurrency(dpoinmonth);
|
||||
holder.pointMonth.setText(poinMonth);
|
||||
|
||||
Integer pointmonthnow = Integer.parseInt(dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_MONTH());
|
||||
|
||||
Integer pointmonthbefore = Integer.parseInt(dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getPOINT_MONTH_BEFORE());
|
||||
double dpoinmonthbefore = Double.valueOf(pointmonthbefore);
|
||||
String poinmonthbeforestring = Tool.formatToCurrency(dpoinmonthbefore);
|
||||
|
||||
if (pointmonthnow < pointmonthbefore) {
|
||||
holder.textarrowUpDownMonth.setText(poinmonthbeforestring);
|
||||
holder.arrowUpDownMonth.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrowdownred));
|
||||
} else if (pointmonthnow > pointmonthbefore) {
|
||||
holder.textarrowUpDownMonth.setText(poinmonthbeforestring);
|
||||
holder.arrowUpDownMonth.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrowupgreen));
|
||||
} else {
|
||||
holder.textarrowUpDownMonth.setVisibility(View.INVISIBLE);
|
||||
holder.arrowUpDownMonth.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
GetLogoKompetisi getLogoKompetisi = new GetLogoKompetisi(mContext, dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_CODE(), holder.logoKompetisi);
|
||||
getLogoKompetisi.execute();
|
||||
|
||||
//DAILY AVERAGE MONTH
|
||||
String totaltanggal = simpleDate1.format(now);
|
||||
Integer tanggalHariIni = Integer.parseInt(totaltanggal);
|
||||
|
||||
Integer kalender8total;
|
||||
if ((tanggalHariIni - 1) == 0) {
|
||||
kalender8total = 0;
|
||||
} else {
|
||||
kalender8total = pointmonthnow / (tanggalHariIni - 1);
|
||||
}
|
||||
|
||||
String poinhari = Tool.formatToCurrency(kalender8total);
|
||||
|
||||
Integer kalender8totalbefore;
|
||||
if ((tanggalHariIni - 1) == 0) {
|
||||
kalender8totalbefore = 0;
|
||||
} else {
|
||||
kalender8totalbefore = pointmonthbefore / (tanggalHariIni - 1);
|
||||
}
|
||||
|
||||
String poin8beforestring = Tool.formatToCurrency(kalender8totalbefore);
|
||||
|
||||
if (kalender8total < kalender8totalbefore) {
|
||||
holder.textratatotalhari.setText(poinhari);
|
||||
holder.textarrowUpDownRata.setText(poin8beforestring);
|
||||
holder.arrowUpDownRata.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrowdownred));
|
||||
} else if (kalender8total > kalender8totalbefore && kalender8totalbefore >= 0) {
|
||||
holder.textratatotalhari.setText(poinhari);
|
||||
holder.textarrowUpDownRata.setText(poin8beforestring);
|
||||
holder.arrowUpDownRata.setImageDrawable(mContext.getResources().getDrawable(R.drawable.arrowupgreen));
|
||||
} else {
|
||||
holder.textratatotalhari.setText(poinhari);
|
||||
holder.textratatotalhari.setVisibility(View.VISIBLE);
|
||||
holder.textarrowUpDownRata.setVisibility(View.INVISIBLE);
|
||||
holder.arrowUpDownRata.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH);
|
||||
String waktusekarang = sdf.format(now);
|
||||
|
||||
Date date1 = null;
|
||||
try {
|
||||
date1 = inputFormatter1.parse(dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_START_DATE());
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String output1 = outputFormatter1.format(date1); //
|
||||
|
||||
Date firstDate = null;
|
||||
try {
|
||||
firstDate = sdf.parse(output1);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Date secondDate = null;
|
||||
try {
|
||||
secondDate = sdf.parse(waktusekarang);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
long diffInMillies = Math.abs(secondDate.getTime() - firstDate.getTime());
|
||||
long diff = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
|
||||
int days = (int) (long) diff;
|
||||
|
||||
int dailyAvgPeriodPoint;
|
||||
if (days <= 1) {
|
||||
dailyAvgPeriodPoint = 0;
|
||||
} else {
|
||||
dailyAvgPeriodPoint = gracepointnow / days;
|
||||
}
|
||||
|
||||
String poinharirata = Tool.formatToCurrency(dailyAvgPeriodPoint);
|
||||
holder.textratatotal.setText(poinharirata);
|
||||
|
||||
|
||||
ArrayList<TeamMember.DataGroupRank> dataGroupRank = dataDetailKompetisi.getResultList().get(position).getTEAM_MEMBER().get(0).getDATA_GROUP_RANK();
|
||||
|
||||
holder.totalPoinKompetisi.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (null != mListener) {
|
||||
// Notify the active callbacks interface (the activity, if the
|
||||
// fragment is attached to one) that an item has been selected.
|
||||
if (d == 0) {
|
||||
Toast.makeText(mContext, mContext.getString(R.string.points_detail_not_found), Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("MembershipProgramCode", dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_CODE());
|
||||
bundle.putString("MembershipProgramName", dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_NAME());
|
||||
bundle.putString("ProgramStartDate", dataDetailKompetisi.getResultList().get(position).getMEMBERSHIP_PROGRAM_START_DATE());
|
||||
mListener.onListFragmentInteraction(bundle);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
GridDashBoardAdapter adapter = new GridDashBoardAdapter(mContext, dataGroupRank);
|
||||
holder.gridView.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return dataDetailKompetisi.getResultList().size();
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
private final TextView competitionName;
|
||||
private final TextView totalPoinKompetisi;
|
||||
private final TextView pointMonth;
|
||||
private final TextView startDate;
|
||||
private final TextView labelPointSaya;
|
||||
private final GridView gridView;
|
||||
private final ImageView logoKompetisi;
|
||||
private final ImageView arrowUpDownMonth;
|
||||
private final ImageView arrowUpDownRata;
|
||||
private final TextView textarrowUpDownMonth;
|
||||
private final TextView textarrowUpDownRata;
|
||||
private final TextView textratatotal;
|
||||
private final TextView textratatotalhari;
|
||||
private final TextView upDownGracePoint;
|
||||
private DetailKompetisiResponse mItem;
|
||||
|
||||
private ViewHolder(View view) {
|
||||
super(view);
|
||||
competitionName = (TextView) view.findViewById(R.id.namaKompetisi);
|
||||
totalPoinKompetisi = (TextView) view.findViewById(R.id.poinPeriod);
|
||||
pointMonth = (TextView) view.findViewById(R.id.angka1);
|
||||
textratatotalhari = (TextView) view.findViewById(R.id.angka2);
|
||||
labelPointSaya = (TextView) view.findViewById(R.id.labelPoinSaya);
|
||||
|
||||
startDate = (TextView) view.findViewById(R.id.dateEvent);
|
||||
gridView = (GridView) view.findViewById(R.id.gridview);
|
||||
logoKompetisi = (ImageView) view.findViewById(R.id.logoKompetisi);
|
||||
|
||||
arrowUpDownMonth = (ImageView) view.findViewById(R.id.updownallcalender);
|
||||
arrowUpDownRata = (ImageView) view.findViewById(R.id.updownallcalender2);
|
||||
|
||||
textarrowUpDownMonth = (TextView) view.findViewById(R.id.updatePointMonth);
|
||||
textarrowUpDownRata = (TextView) view.findViewById(R.id.updatePointRata);
|
||||
textratatotal = (TextView) view.findViewById(R.id.angka3);
|
||||
upDownGracePoint = (TextView) view.findViewById(R.id.updownGracePoin);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.PaymentHistoryD;
|
||||
import com.adins.mss.foundation.formatter.Formatter;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 23/03/15.
|
||||
*/
|
||||
public class PaymentHistoryDetailFragment extends AppCompatActivity {
|
||||
public static final String PAYMENT_HISTORY_DETAIL = "PaymentHistoryDetailFragment.PAYMENT_HISTORY_DETAIL";
|
||||
public static final String BUND_KEY_TRANSACTIONCODE= "TRANSACTIONCODE";
|
||||
private FirebaseAnalytics screenName;
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
setContentView(R.layout.new_fragment_payment_history_detail);
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.title_mn_paymenthistorydet));
|
||||
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
List<PaymentHistoryD> details = PaymentHistoryFragment.details;
|
||||
TableLayout table = (TableLayout) findViewById(R.id.tableCollectionDetail);
|
||||
|
||||
TextView transactionCode = (TextView)findViewById(R.id.transactionCode);
|
||||
transactionCode.setText(getIntent().getStringExtra(PaymentHistoryDetailFragment.BUND_KEY_TRANSACTIONCODE));
|
||||
|
||||
for(PaymentHistoryD detail : details) {
|
||||
|
||||
int index = 1;
|
||||
Class<PaymentHistoryD> type = PaymentHistoryD.class;
|
||||
|
||||
for (Method method : type.getMethods()) {
|
||||
if (!method.getName().startsWith("get") || method.getName().equals("getClass")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
View row = LayoutInflater.from(this).inflate(
|
||||
R.layout.view_no_label_value, table, false);
|
||||
TextView no = (TextView) row.findViewById(R.id.no);
|
||||
TextView label = (TextView) row.findViewById(R.id.fieldName);
|
||||
TextView value = (TextView) row.findViewById(R.id.fieldValue);
|
||||
|
||||
String labelField = method.getName().replaceFirst("get", "");
|
||||
|
||||
if (!labelField.equalsIgnoreCase("Dtm_crt")
|
||||
&& !labelField.equalsIgnoreCase("Dtm_upd")
|
||||
&& !labelField.equalsIgnoreCase("Usr_crt")
|
||||
&& !labelField.equalsIgnoreCase("Usr_upd")
|
||||
&& !labelField.equalsIgnoreCase("Uuid_installment_schedule")
|
||||
&& !labelField.equalsIgnoreCase("Uuid_task_h")
|
||||
&& !labelField.equalsIgnoreCase("Uuid_payment_history_h")
|
||||
&& !labelField.equalsIgnoreCase("Uuid_payment_history_d")) {
|
||||
no.setText(String.valueOf(index++));
|
||||
label.setText(labelField.replace("_", " "));
|
||||
try {
|
||||
String stringValue = "";
|
||||
Object itemValue = null;
|
||||
itemValue = method.invoke(detail);
|
||||
if (itemValue == null) {
|
||||
stringValue = "-";
|
||||
} else if (method.getReturnType() == Date.class) {
|
||||
stringValue = Formatter.formatDate((Date) itemValue,
|
||||
Global.DATE_STR_FORMAT);
|
||||
} else {
|
||||
stringValue = String.valueOf(itemValue);
|
||||
}
|
||||
if (stringValue.length() > 3) {
|
||||
String part1 = stringValue.substring(stringValue.length() - 3);
|
||||
if (part1.substring(0, 1).equals(".")) {
|
||||
value.setGravity(Gravity.RIGHT);
|
||||
}
|
||||
}
|
||||
value.setText(stringValue);
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
table.addView(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_payment_history_detail), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,147 @@
|
|||
package com.adins.mss.coll.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
|
||||
import com.adins.mss.base.GlobalData;
|
||||
import com.adins.mss.base.checkin.CheckInManager;
|
||||
import com.adins.mss.base.util.LocaleHelper;
|
||||
import com.adins.mss.coll.R;
|
||||
import com.adins.mss.coll.fragments.view.PaymentHistoryView;
|
||||
import com.adins.mss.constant.Global;
|
||||
import com.adins.mss.dao.PaymentHistoryD;
|
||||
import com.adins.mss.foundation.UserHelp.UserHelp;
|
||||
import com.adins.mss.foundation.location.UpdateMenuIcon;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
import org.acra.ACRA;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
|
||||
|
||||
/**
|
||||
* Created by adityapurwa on 20/03/15.
|
||||
*/
|
||||
public class PaymentHistoryFragment extends AppCompatActivity {
|
||||
public static List<PaymentHistoryD> details;
|
||||
private PaymentHistoryView view;
|
||||
|
||||
private FirebaseAnalytics screenName;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
screenName = FirebaseAnalytics.getInstance(this);
|
||||
setContentView(R.layout.new_fragment_payment_history);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.title_mn_paymenthistory));
|
||||
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
|
||||
view = new PaymentHistoryView(this);
|
||||
view.onCreate();
|
||||
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(PaymentHistoryFragment.this,PaymentHistoryFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if(!Global.BACKPRESS_RESTRICTION) {
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == com.adins.mss.base.R.id.mnGPS && Global.LTM != null) {
|
||||
if (Global.LTM.getIsConnected()) {
|
||||
Global.LTM.removeLocationListener();
|
||||
Global.LTM.connectLocationClient();
|
||||
} else {
|
||||
CheckInManager.startGPSTracking(getApplicationContext());
|
||||
}
|
||||
Animation a = AnimationUtils.loadAnimation(this, com.adins.mss.base.R.anim.gps_rotate);
|
||||
findViewById(com.adins.mss.base.R.id.mnGPS).startAnimation(a);
|
||||
}
|
||||
if(item.getItemId() == R.id.mnGuide && !Global.BACKPRESS_RESTRICTION){
|
||||
UserHelp.reloadUserHelp(getApplicationContext(), PaymentHistoryFragment.this);
|
||||
Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
UserHelp.showAllUserHelp(PaymentHistoryFragment.this, PaymentHistoryFragment.this.getClass().getSimpleName());
|
||||
}
|
||||
}, SHOW_USERHELP_DELAY_DEFAULT);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater menuInflater = getMenuInflater();
|
||||
menuInflater.inflate(com.adins.mss.base.R.menu.main_menu, menu);
|
||||
mainMenu = menu;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
updateMenuIcon();
|
||||
|
||||
if(Global.ENABLE_USER_HELP &&
|
||||
(Global.userHelpGuide.get(PaymentHistoryFragment.this.getClass().getSimpleName())!=null) ||
|
||||
Global.userHelpDummyGuide.get(PaymentHistoryFragment.this.getClass().getSimpleName()) != null){
|
||||
menu.findItem(com.adins.mss.base.R.id.mnGuide).setVisible(true);
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
//Set Firebase screen name
|
||||
screenName.setCurrentScreen(this, getString(R.string.screen_name_payment_history), null);
|
||||
}
|
||||
|
||||
private static Menu mainMenu;
|
||||
|
||||
public static void updateMenuIcon() {
|
||||
UpdateMenuIcon uItem = new UpdateMenuIcon();
|
||||
uItem.updateGPSIcon(mainMenu);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
Context context = newBase;
|
||||
Locale locale;
|
||||
try{
|
||||
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} catch (Exception e) {
|
||||
locale = new Locale(LocaleHelper.ENGLSIH);
|
||||
context = LocaleHelper.wrap(newBase, locale);
|
||||
} finally {
|
||||
super.attachBaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue