add project adins

This commit is contained in:
Alfrid Sanjaya Leo Putra 2024-07-25 14:44:22 +07:00
parent ad06ac5505
commit f8f85d679d
5299 changed files with 625430 additions and 0 deletions

View file

@ -0,0 +1 @@
/build

View 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'

View file

@ -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"
}

View 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.** {*;}

View file

@ -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);
}
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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

View file

@ -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

View file

@ -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;
}
}

View file

@ -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();
}
}

View file

@ -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;
}
}

View file

@ -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();
}
}

View file

@ -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
}
}

View file

@ -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);
}
}

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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();
}

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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;
}
}
}

View file

@ -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;
}
}

View file

@ -0,0 +1,10 @@
package com.adins.mss.coll.api;
/**
* Created by adityapurwa on 11/03/15.
*/
public interface SynchronizationCallback {
void onSuccess();
void onFailed();
}

View file

@ -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);
}

View file

@ -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){
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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();
}
}
}
}

View file

@ -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());
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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 {
}

View file

@ -0,0 +1,10 @@
package com.adins.mss.coll.closingtask.senders;
/**
* Created by angga.permadi on 6/6/2016.
*/
public interface ClosingTaskListener {
void onClosingTaskSuccess();
}

View file

@ -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();
}
}

View file

@ -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();
}

View file

@ -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);
}
}
}

View file

@ -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();
}
}

View file

@ -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");
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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();
}
}

View file

@ -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) {}
}

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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);
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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());
}
});
}
}

View file

@ -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);
}
}

View file

@ -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());
}
}
}

View file

@ -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);
}
}

View file

@ -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();
}
}

View file

@ -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));
}
};
}

View file

@ -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;
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}

View file

@ -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;
}
}

View file

@ -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();
// }
// }
}
}

View file

@ -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);
}
}
}

View file

@ -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();
}
}

View file

@ -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();
// }
}

View file

@ -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;
}
}
}

View file

@ -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);
}
}
}

View file

@ -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;
}
}
}

View file

@ -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);
// }
// }
}

View file

@ -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();
}
}
}

View file

@ -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;
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}

View file

@ -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;
}
}
}

View file

@ -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);
}
}
}

View file

@ -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;
// }
// }
}

View file

@ -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();
}
}

View file

@ -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;
}
}
}

View file

@ -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;
// }
}

View file

@ -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;
}

View file

@ -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;
}
}

View file

@ -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);
}
}
}

View file

@ -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;
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}
}

View file

@ -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()));
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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