add project adins

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

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

View file

@ -0,0 +1,205 @@
package com.adins.mss.coll.fragments;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.pdf.PdfRenderer;
import android.os.Build;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import com.adins.mss.coll.R;
import com.adins.mss.constant.Global;
import com.github.chrisbanes.photoview.PhotoView;
import java.io.File;
import java.io.IOException;
public class PdfRendererFragment extends Fragment implements View.OnClickListener {
private ParcelFileDescriptor mFileDescriptor;
private PdfRenderer mPdfRenderer;
private LinearLayout pdfLayout;
private int mPageIndex;
private PdfRenderer.Page mCurrentPage;
private String urlFileName;
private String documentNameTitle;
private TextView documentName;
private PhotoView mImageView;
private Button mButtonPrevious;
private Button mButtonNext;
int displayWidth = 0;
int displayHeight = 0;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_pdf_renderer, container, false);
documentName = (TextView) view.findViewById(R.id.documentNameTitle);
mImageView = (PhotoView) view.findViewById(R.id.pdfImage);
mButtonNext = view.findViewById(R.id.next);
mButtonPrevious = view.findViewById(R.id.previous);
pdfLayout = view.findViewById(R.id.pdfLayout);
mButtonNext.setOnClickListener(this);
mButtonPrevious.setOnClickListener(this);
mPageIndex = 0;
if(getArguments() != null){
urlFileName = getArguments().getString("URL_FILE");
documentNameTitle = getArguments().getString("documentName");
documentName.setText(documentNameTitle);
}
pdfLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
pdfLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
displayWidth = pdfLayout.getWidth();
displayHeight = pdfLayout.getHeight();
try {
openRenderer(getActivity(), urlFileName);
showPage(mPageIndex);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getActivity(), getString(com.adins.mss.base.R.string.not_available), Toast.LENGTH_SHORT).show();
getActivity().finish();
} catch (Exception ex) {
if (Global.IS_DEV) {
ex.printStackTrace();
}
Toast.makeText(getActivity(), getString(com.adins.mss.base.R.string.not_available), Toast.LENGTH_SHORT).show();
getActivity().finish();
}
}
});
return view;
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onStart() {
super.onStart();
// try {
// openRenderer(getActivity(), urlFileName);
// showPage(mPageIndex);
// } catch (IOException e) {
// e.printStackTrace();
// Toast.makeText(getActivity(), getString(com.adins.mss.base.R.string.not_available), Toast.LENGTH_SHORT).show();
// getActivity().finish();
// } catch (Exception ex) {
// if (Global.IS_DEV) {
// ex.printStackTrace();
// }
// Toast.makeText(getActivity(), getString(com.adins.mss.base.R.string.not_available), Toast.LENGTH_SHORT).show();
// getActivity().finish();
// }
}
private void openRenderer(Context context, String urlFileName) throws IOException {
File file = new File(urlFileName);
if (!file.exists()) {
throw new IOException("File not found: " + urlFileName);
}
mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
if (mFileDescriptor != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mPdfRenderer = new PdfRenderer(mFileDescriptor);
}
}
}
@SuppressLint("NewApi")
private void showPage(int index) {
if (mPdfRenderer.getPageCount() <= index) {
return;
}
if (null != mCurrentPage) {
mCurrentPage.close();
}
mCurrentPage = mPdfRenderer.openPage(index);
int pageWidth = mCurrentPage.getWidth();
int pageHeight = mCurrentPage.getHeight();
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
// int displayWidth = displayMetrics.widthPixels;
// int displayHeight = displayMetrics.heightPixels;
// int displayWidth = pdfLayout.getWidth();
// int displayHeight = pdfLayout.getHeight();
float scaleX = (float) displayWidth / pageWidth;
float scaleY = (float) displayHeight / pageHeight;
float scale = Math.min(scaleX, scaleY);
int newWidth = Math.round(pageWidth * scale);
int newHeight = Math.round(pageHeight * scale);
Bitmap bitmap = Bitmap.createBitmap(newWidth, newHeight, Bitmap.Config.ARGB_8888);
Matrix matrix = new Matrix();
matrix.setScale(scale, scale);
mCurrentPage.render(bitmap, null, matrix, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
mImageView.setImageBitmap(bitmap);
updateUi();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void updateUi() {
int index = mCurrentPage.getIndex();
int pageCount = mPdfRenderer.getPageCount();
if (pageCount == 1) {
mButtonPrevious.setVisibility(View.GONE);
mButtonNext.setVisibility(View.GONE);
} else {
mButtonPrevious.setEnabled(0 != index);
mButtonNext.setEnabled(index + 1 < pageCount);
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(View view) {
int button = view.getId();
if (button == R.id.previous) {
showPage(mCurrentPage.getIndex() - 1);
} else if (button == R.id.next) {
showPage(mCurrentPage.getIndex() + 1);
}
}
}

View file

@ -0,0 +1,418 @@
package com.adins.mss.coll.fragments;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.dynamicform.JsonRequestPdfReceiptHistory;
import com.adins.mss.base.dynamicform.JsonResponsePdfReceiptHistory;
import com.adins.mss.base.pdfrenderer.ViewPdfRendererFragment;
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.api.ReceiptHistoryApi;
import com.adins.mss.coll.models.ReceiptHistoryResponse;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.ReceiptHistory;
import com.adins.mss.dao.TaskH;
import com.adins.mss.foundation.db.dataaccess.ReceiptHistoryDataAccess;
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.image.Base64;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.acra.ACRA;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
public class ReceiptHistoryFragment extends FragmentActivity {
public ReceiptHistoryResponse rHistoryResponse;
private String taskId;
private String agreementNo;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_receipt_history);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
Bundle bundle = getIntent().getExtras();
taskId = bundle.getString(Global.BUND_KEY_TASK_ID);
agreementNo = bundle.getString(Global.BUND_KEY_AGREEMENT_NO);
loadData();
}
public void saveData(Context context, ReceiptHistoryResponse receiptHistoryResponse) {
List<ReceiptHistory> receiptHistoryList = receiptHistoryResponse.getReceiptHistoryList();
if (receiptHistoryList != null && receiptHistoryList.size() > 0) {
TaskH taskH = TaskHDataAccess.getOneTaskHeader(context, taskId);
ReceiptHistoryDataAccess.delete(context, taskH.getTask_id());
for (ReceiptHistory receiptHistory : receiptHistoryList) {
receiptHistory.setUuid_task_h(taskH.getTask_id());
receiptHistory.setUuid_receipt_history(Tool.getUUID());
receiptHistory.setAgreement_no(agreementNo);
}
ReceiptHistoryDataAccess.add(getApplicationContext(), receiptHistoryList);
}
}
public void loadData() {
new AsyncTask<Void, Void, ReceiptHistoryResponse>() {
private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(ReceiptHistoryFragment.this,
"", getString(R.string.progressWait), true);
}
@Override
protected ReceiptHistoryResponse doInBackground(Void... params) {
ReceiptHistoryApi api = new ReceiptHistoryApi(ReceiptHistoryFragment.this);
try {
//bong 21 mei 15 - check internet connection
if (Tool.isInternetconnected(getApplicationContext())) {
return api.request(agreementNo, taskId);
}
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
protected void onPostExecute(ReceiptHistoryResponse receiptHistoryResponse) {
super.onPostExecute(receiptHistoryResponse);
if (progressDialog != null && progressDialog.isShowing()) {
try {
progressDialog.dismiss();
} catch (Exception e) {
}
}
if (receiptHistoryResponse == null) {
TaskH taskH = TaskHDataAccess.getOneTaskHeader(getApplicationContext(), taskId);
if (taskH != null) {
List<ReceiptHistory> receiptHistoryList = ReceiptHistoryDataAccess.getAllByTask(getApplicationContext(), taskH.getUuid_task_h());
if (receiptHistoryList != null) {
TableLayout table = (TableLayout) findViewById(R.id.tableHeaders);
int index = 1;
for (final ReceiptHistory item : receiptHistoryList) {
View row = LayoutInflater.from(ReceiptHistoryFragment.this).inflate(R.layout.view_row_receipt_history, table, false);
TextView contractNumber = (TextView) row.findViewById(R.id.contractNumber);
TextView receiptNumber = (TextView) row.findViewById(R.id.receiptNumber);
TextView paymentDate = (TextView) row.findViewById(R.id.paymentDate);
TextView file = (TextView) row.findViewById(R.id.file);
row.setTag(item);
contractNumber.setText(item.getAgreement_no());
receiptNumber.setText(item.getReceipt_no());
paymentDate.setText(item.getPayment_date() + "");
file.setText("(download)");
SpannableString spannableString = new SpannableString(file.getText());
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
String receiptNo = item.getReceipt_no();
if (receiptNo.contains("/")) {
receiptNo = receiptNo.replace("/", "");
}
getDocumentPDF(getApplicationContext(), item.getAgreement_no(), receiptNo);
}
};
spannableString.setSpan(clickableSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
file.setText(spannableString);
file.setMovementMethod(LinkMovementMethod.getInstance());
file.setHighlightColor(Color.TRANSPARENT);
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);
}
} else {
NiftyDialogBuilder.getInstance(ReceiptHistoryFragment.this)
.withMessage(getString(R.string.no_data_found_offline))
.withTitle(getString(R.string.no_data_found_offline))
.withIcon(android.R.drawable.ic_dialog_alert)
.withButton1Text(getString(R.string.btnClose))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
//finish();
NiftyDialogBuilder.getInstance(ReceiptHistoryFragment.this).dismiss();
}
})
.show();
}
}
} else if (receiptHistoryResponse.getStatus().getCode() != 0) {
NiftyDialogBuilder.getInstance(ReceiptHistoryFragment.this)
.withMessage(receiptHistoryResponse.getStatus().getMessage())
.withTitle(getString(R.string.server_error))
.withButton1Text(getString(R.string.btnClose))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
})
.show();
return;
} else if (!receiptHistoryResponse.getStatusCode().equalsIgnoreCase("00")) {
NiftyDialogBuilder.getInstance(ReceiptHistoryFragment.this)
.withMessage(receiptHistoryResponse.getMessage())
.withTitle(getString(R.string.message))
.withButton1Text(getString(R.string.btnClose))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
})
.show();
return;
} else {
rHistoryResponse = receiptHistoryResponse;
saveData(getApplicationContext(), rHistoryResponse);
TableLayout table = (TableLayout) findViewById(R.id.tableHeaders);
int index = 1;
for (final ReceiptHistory item : receiptHistoryResponse.getReceiptHistoryList()) {
View row = LayoutInflater.from(ReceiptHistoryFragment.this).inflate(R.layout.view_row_receipt_history, table, false);
TextView contractNumber = (TextView) row.findViewById(R.id.contractNumber);
TextView receiptNumber = (TextView) row.findViewById(R.id.receiptNumber);
TextView paymentDate = (TextView) row.findViewById(R.id.paymentDate);
TextView file = (TextView) row.findViewById(R.id.file);
row.setTag(item);
contractNumber.setText(rHistoryResponse.getAgreementNo());
receiptNumber.setText(item.getReceipt_no());
paymentDate.setText(item.getPayment_date() + "");
file.setText("(download)");
SpannableString spannableString = new SpannableString(file.getText());
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
String receiptNo = item.getReceipt_no();
if (receiptNo.contains("/")) {
receiptNo = receiptNo.replace("/", "");
}
getDocumentPDF(getApplicationContext(), item.getAgreement_no(), receiptNo);
}
};
spannableString.setSpan(clickableSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
file.setText(spannableString);
file.setMovementMethod(LinkMovementMethod.getInstance());
file.setHighlightColor(Color.TRANSPARENT);
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);
}
if (receiptHistoryResponse.getReceiptHistoryList().size() == 0) {
NiftyDialogBuilder.getInstance(ReceiptHistoryFragment.this)
.withMessage(R.string.no_data_from_server)
.withTitle(getString(R.string.info_capital))
.withButton1Text(getString(R.string.btnClose))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
})
.show();
}
}
}
}.execute();
}
@SuppressLint("StaticFieldLeak")
private void getDocumentPDF(final Context context, final String agreementNo, final String receiptNo) {
new AsyncTask<Void, Void, JsonResponsePdfReceiptHistory>() {
private ProgressDialog progressDialog;
private String fileLocation;
private String message;
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(ReceiptHistoryFragment.this,
"", getString(R.string.progressWait), true);
}
@Override
protected JsonResponsePdfReceiptHistory doInBackground(Void... arg0) {
String fileName = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + "/bafmcspdf" + "/" + agreementNo + "_" + receiptNo + ".pdf";
File fileOpen = new File(fileName);
if (fileOpen.exists()) {
fileLocation = fileName;
JsonResponsePdfReceiptHistory responsePdfReceiptHistory = new JsonResponsePdfReceiptHistory();
JsonResponsePdfReceiptHistory.Status status = new JsonResponsePdfReceiptHistory.Status();
status.setCode(0);
responsePdfReceiptHistory.setStatusCode("00");
responsePdfReceiptHistory.setStatus(status);
return responsePdfReceiptHistory;
} else {
try {
if (Tool.isInternetconnected(context)) {
JsonRequestPdfReceiptHistory requestPdfDocument = new JsonRequestPdfReceiptHistory();
requestPdfDocument.setAudit(GlobalData.getSharedGlobalData().getAuditData());
requestPdfDocument.addImeiAndroidIdToUnstructured();
requestPdfDocument.setAgreementNo(agreementNo);
requestPdfDocument.setInvoiceNo(receiptNo);
String json = GsonHelper.toJson(requestPdfDocument);
String url = GlobalData.getSharedGlobalData().getURL_GET_RECEIPT_HISTORY_PDF();
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, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
e.printStackTrace();
}
if (null != serverResult) {
if (serverResult.isOK()) {
JsonResponsePdfReceiptHistory responsePdfReceiptHistory = GsonHelper.fromJson(serverResult.getResult(), JsonResponsePdfReceiptHistory.class);
if (responsePdfReceiptHistory.getStatus().getCode() == 0) {
if (responsePdfReceiptHistory.getStatusCode().equals("200") || responsePdfReceiptHistory.getStatusCode().equals("00")) {
String pathFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + "/bafmcspdf";
File filePath = new File(pathFolder);
if (!filePath.exists()) {
filePath.mkdirs();
}
String uriString = filePath.getAbsolutePath() + "/" + agreementNo + "_" + receiptNo + ".pdf";
fileLocation = uriString;
try {
File file = new File(uriString);
byte[] pdfBytes = Base64.decode(responsePdfReceiptHistory.getPdf());
FileOutputStream os = new FileOutputStream(file);
os.write(pdfBytes);
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
message = "Error decoding pdf file!";
}
return responsePdfReceiptHistory;
} else {
message = responsePdfReceiptHistory.getMessage();
}
return responsePdfReceiptHistory;
} else {
message = responsePdfReceiptHistory.getStatus().getMessage();
}
} else {
message = serverResult.getResult();
}
} else {
message = "Failed to get result from Server";
}
} else {
message = context.getString(com.adins.mss.base.R.string.no_internet_connection);
}
return null;
} catch (Exception e) {
if (Global.IS_DEV) {
e.printStackTrace();
}
Log.e("Info", e.getMessage());
return null;
}
}
}
@Override
protected void onPostExecute(JsonResponsePdfReceiptHistory result) {
super.onPostExecute(result);
if (progressDialog != null && progressDialog.isShowing()) {
try {
progressDialog.dismiss();
} catch (Exception e) {
e.printStackTrace();
}
}
if (result != null && (result.getStatusCode().equals("200") || result.getStatusCode().equals("00"))) {
try {
Intent intent = new Intent(context, ViewPdfRendererFragment.class);
Bundle extras = new Bundle();
extras.putString("FILE_LOC", fileLocation);
intent.putExtras(extras);
startActivity(intent);
} catch (Exception ex) {
if (Global.IS_DEV) {
ex.printStackTrace();
}
}
} else if (result != null && !(result.getStatusCode().equals("200") || result.getStatusCode().equals("00"))) {
final NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(context);
dialogBuilder.withTitle(context.getString(com.adins.mss.base.R.string.info_capital))
.isCancelableOnTouchOutside(false)
.withMessage(result.getMessage())
.withButton1Text(context.getString(com.adins.mss.base.R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogBuilder.dismiss();
}
})
.show();
} else if (!TextUtils.isEmpty(message)) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, context.getString(com.adins.mss.base.R.string.msgErrorParsingJson), Toast.LENGTH_SHORT).show();
}
}
}.execute();
}
}

View file

@ -0,0 +1,205 @@
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.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TableLayout;
import android.widget.TextView;
import com.adins.mss.base.commons.TaskListener;
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.interfaces.ReportSummaryImpl;
import com.adins.mss.coll.interfaces.ReportSummaryInterface;
import com.adins.mss.coll.models.ReportSummaryResponse;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.foundation.formatter.Tool;
import com.google.firebase.analytics.FirebaseAnalytics;
import org.acra.ACRA;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
/**
* Created by Aditya Purwa on 2/16/2015.
*/
public class ReportSummaryFragment extends Fragment implements TaskListener {
private View view;
private TextView tanggal;
private TextView collector;
private TextView totalToBeCollected;
private TextView totalPaid;
private ReportSummaryInterface iReportSummary;
TableLayout table;
private View row;
private TextView txt_Aggrmn_No;
private TextView txt_Status;
private TextView txt_result;
private List<ReportSummaryResponse> listTask = new ArrayList<>();
private FirebaseAnalytics screenName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
screenName = FirebaseAnalytics.getInstance(getActivity());
Context context= this.getContext();
iReportSummary = new ReportSummaryImpl(context);
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
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_reportsummary));
tanggal = (TextView) view.findViewById(R.id.txtDate);
totalToBeCollected = (TextView) view.findViewById(R.id.txtCollected);
totalPaid = (TextView) view.findViewById(R.id.txtPaid);
table = (TableLayout) view.findViewById(R.id.tableSummary);
tanggal.setText(getString(R.string.text_empty));
totalToBeCollected.setText(getString(R.string.text_empty));
totalPaid.setText(getString(R.string.text_empty));
iReportSummary.getReportSummary(this);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(ReportSummaryFragment.this.getActivity(),ReportSummaryFragment.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
@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.new_fragment_report_summary, container, false);
} catch (Exception e) {
FireCrash.log(e);
}
return view;
}
@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(ReportSummaryFragment.this.getActivity(), ReportSummaryFragment.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
}
return super.onOptionsItemSelected(item);
}
@Override
public void onResume(){
super.onResume();
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_report_summary), null);
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().setTitle(getString(R.string.title_mn_reportsummary));
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_reportsummary));
// getActivity().getActionBar().removeAllTabs();
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
@Override
public void onAttach(Context context) {
setHasOptionsMenu(true);
super.onAttach(context);
}
@Override
public void onCompleteTask(Object result) {
ReportSummaryResponse reportSummaryResponse = (ReportSummaryResponse) result;
tanggal.setText(reportSummaryResponse.getCurrent_date());
totalToBeCollected.setText(Tool.separateThousand(String.format(Locale.US, "%.0f",reportSummaryResponse.getTotal_to_be_paid())));
totalPaid.setText(Tool.separateThousand(String.format(Locale.US, "%.0f",reportSummaryResponse.getTotal_received())));
listTask = reportSummaryResponse.getList_task();
if (listTask != null) {
for (ReportSummaryResponse listResponse : listTask) {
row = LayoutInflater.from(getContext()).inflate(R.layout.new_fragment_report_summary_row, table, false);
txt_Aggrmn_No = (TextView) row.findViewById(R.id.fieldAgrmnNo);
txt_Status = (TextView) row.findViewById(R.id.fieldStatus);
txt_result = (TextView) row.findViewById(R.id.fieldResult);
txt_Aggrmn_No.setText(listResponse.getAgreementNo());
txt_Status.setText(listResponse.getStatusTask());
if(!"-".equals(listResponse.getAmountPaid())){
txt_result.setText(Tool.separateThousand(String.format(Locale.US, "%.0f", Double.parseDouble(listResponse.getAmountPaid()))));
} else if (listResponse.getPtp().length() > 1) {
txt_result.setText(listResponse.getPtp());
} else {
txt_result.setText(listResponse.getNote());
}
table.addView(row);
}
}
}
@Override
public void onCancelTask(boolean value) {
//
}
@Override
public void onLocalData(Object result) {
}
// private static Menu mainMenu;
//
// @Override
// public void onPrepareOptionsMenu(Menu menu) {
// super.onPrepareOptionsMenu(menu);
// mainMenu = menu;
// }
//
// @Override
// public boolean onOptionsItemSelected(NewMenuItem item) {
// // Handle item selection
// int id = item.getItemId();
// if (id == R.id.menuMore) {
// mainMenu.findItem(R.id.mnViewMap).setVisible(false);
// mainMenu.findItem(R.id.mnViewAllHeader).setVisible(false);
// }
//
// return super.onOptionsItemSelected(item);
// }
}

View file

@ -0,0 +1,195 @@
package com.adins.mss.coll.fragments;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
public class TeamMember {
@SerializedName("LOGIN_ID")
protected String LOGIN_ID;
@SerializedName("POINT_PERIOD")
protected String POINT_PERIOD;
@SerializedName("POINT_PERIOD_BEFORE")
protected String POINT_PERIOD_BEFORE;
@SerializedName("POINT_MONTH")
protected String POINT_MONTH;
@SerializedName("POINT_MONTH_BEFORE")
protected String POINT_MONTH_BEFORE;
@SerializedName("DATA_GROUP_RANK")
protected ArrayList<DataGroupRank> DATA_GROUP_RANK;
@SerializedName("BEST_MEMBERSHIP_MEMBER")
protected ArrayList<BestMembershipMember> BEST_MEMBERSHIP_MEMBER;
public String getLOGIN_ID() {
return LOGIN_ID;
}
public void setLOGIN_ID(String LOGIN_ID) {
this.LOGIN_ID = LOGIN_ID;
}
public String getPOINT_PERIOD() {
return POINT_PERIOD;
}
public void setPOINT_PERIOD(String POINT_PERIOD) {
this.POINT_PERIOD = POINT_PERIOD;
}
public String getPOINT_PERIOD_BEFORE() {
return POINT_PERIOD_BEFORE;
}
public void setPOINT_PERIOD_BEFORE(String POINT_PERIOD_BEFORE) {
this.POINT_PERIOD_BEFORE = POINT_PERIOD_BEFORE;
}
public String getPOINT_MONTH() {
return POINT_MONTH;
}
public void setPOINT_MONTH(String POINT_MONTH) {
this.POINT_MONTH = POINT_MONTH;
}
public String getPOINT_MONTH_BEFORE() {
return POINT_MONTH_BEFORE;
}
public void setPOINT_MONTH_BEFORE(String POINT_MONTH_BEFORE) {
this.POINT_MONTH_BEFORE = POINT_MONTH_BEFORE;
}
public ArrayList<DataGroupRank> getDATA_GROUP_RANK() {
return DATA_GROUP_RANK;
}
public void setDATA_GROUP_RANK(ArrayList<DataGroupRank> DATA_GROUP_RANK) {
this.DATA_GROUP_RANK = DATA_GROUP_RANK;
}
public ArrayList<BestMembershipMember> getBEST_MEMBERSHIP_MEMBER() {
return BEST_MEMBERSHIP_MEMBER;
}
public void setBEST_MEMBERSHIP_MEMBER(ArrayList<BestMembershipMember> BEST_MEMBERSHIP_MEMBER) {
this.BEST_MEMBERSHIP_MEMBER = BEST_MEMBERSHIP_MEMBER;
}
class BestMembershipMember {
@SerializedName("LOGIN_ID")
protected String LOGIN_ID;
@SerializedName("POINT_PERIOD")
protected String POINT_PERIOD;
@SerializedName("POINT_PERIOD_BEFORE")
protected String POINT_PERIOD_BEFORE;
@SerializedName("POINT_MONTH")
protected String POINT_MONTH;
@SerializedName("POINT_MONTH_BEFORE")
protected String POINT_MONTH_BEFORE;
@SerializedName("DATA_GROUP_RANK")
protected ArrayList<DataGroupRank> DATA_GROUP_RANK;
public String getLOGIN_ID() {
return LOGIN_ID;
}
public void setLOGIN_ID(String LOGIN_ID) {
this.LOGIN_ID = LOGIN_ID;
}
public String getPOINT_PERIOD() {
return POINT_PERIOD;
}
public void setPOINT_PERIOD(String POINT_PERIOD) {
this.POINT_PERIOD = POINT_PERIOD;
}
public String getPOINT_PERIOD_BEFORE() {
return POINT_PERIOD_BEFORE;
}
public void setPOINT_PERIOD_BEFORE(String POINT_PERIOD_BEFORE) {
this.POINT_PERIOD_BEFORE = POINT_PERIOD_BEFORE;
}
public String getPOINT_MONTH() {
return POINT_MONTH;
}
public void setPOINT_MONTH(String POINT_MONTH) {
this.POINT_MONTH = POINT_MONTH;
}
public String getPOINT_MONTH_BEFORE() {
return POINT_MONTH_BEFORE;
}
public void setPOINT_MONTH_BEFORE(String POINT_MONTH_BEFORE) {
this.POINT_MONTH_BEFORE = POINT_MONTH_BEFORE;
}
public ArrayList<DataGroupRank> getDATA_GROUP_RANK() {
return DATA_GROUP_RANK;
}
public void setDATA_GROUP_RANK(ArrayList<DataGroupRank> DATA_GROUP_RANK) {
this.DATA_GROUP_RANK = DATA_GROUP_RANK;
}
}
public class DataGroupRank {
@SerializedName("LEVEL")
protected String LEVEL;
@SerializedName("RANK")
protected String RANK;
@SerializedName("RANK_BEFORE")
protected String RANK_BEFORE;
public String getLEVEL() {
return LEVEL;
}
public void setLEVEL(String LEVEL) {
this.LEVEL = LEVEL;
}
public String getRANK() {
return RANK;
}
public void setRANK(String RANK) {
this.RANK = RANK;
}
public String getRANK_BEFORE() {
return RANK_BEFORE;
}
public void setRANK_BEFORE(String RANK_BEFORE) {
this.RANK_BEFORE = RANK_BEFORE;
}
}
}

View file

@ -0,0 +1,72 @@
package com.adins.mss.coll.fragments.dummy;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Helper class for providing sample content for user interfaces created by
* Android template wizards.
* <p>
* TODO: Replace all uses of this class before publishing your app.
*/
public class DummyContent {
/**
* An array of sample (dummy) items.
*/
public static final List<DummyItem> ITEMS = new ArrayList<DummyItem>();
/**
* A map of sample (dummy) items, by ID.
*/
public static final Map<String, DummyItem> ITEM_MAP = new HashMap<String, DummyItem>();
private static final int COUNT = 2;
static {
// Add some sample items.
for (int i = 1; i <= COUNT; i++) {
addItem(createDummyItem(i));
}
}
private static void addItem(DummyItem item) {
ITEMS.add(item);
ITEM_MAP.put(item.id, item);
}
private static DummyItem createDummyItem(int position) {
return new DummyItem(String.valueOf(position), "Item " + position, makeDetails(position));
}
private static String makeDetails(int position) {
StringBuilder builder = new StringBuilder();
builder.append("Details about Item: ").append(position);
for (int i = 0; i < position; i++) {
builder.append("\nMore details information here.");
}
return builder.toString();
}
/**
* A dummy item representing a piece of content.
*/
public static class DummyItem {
public final String id;
public final String content;
public final String details;
public DummyItem(String id, String content, String details) {
this.id = id;
this.content = content;
this.details = details;
}
@Override
public String toString() {
return content;
}
}
}

View file

@ -0,0 +1,197 @@
package com.adins.mss.coll.fragments.view;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.adins.mss.coll.Navigator;
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.commons.ViewManager;
import com.adins.mss.coll.interfaces.callback.DepositReportCallback;
import com.adins.mss.coll.interfaces.DepositReportImpl;
import com.adins.mss.coll.interfaces.DepositReportInterface;
import com.adins.mss.coll.interfaces.NavigatorInterface;
import com.adins.mss.coll.tool.Constants;
import com.adins.mss.dao.DepositReportD;
import com.adins.mss.dao.DepositReportH;
import com.adins.mss.dao.TaskD;
import com.adins.mss.foundation.formatter.Tool;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
/**
* Created by kusnendi.muhamad on 28/07/2017.
*/
public class DepositReportRecapitulateView extends ViewManager {
protected double total = 0;
public String batchId;
public Activity activity;
private View view;
private int totalNeedPrint;
private DepositReportInterface depositReport;
List<TaskD> reportsReconcile = new ArrayList<TaskD>();
private TextView txtBatchId;
private TextView txtTotal;
public DepositReportRecapitulateView(Activity activity) {
super(activity);
this.activity = activity;
depositReport = new DepositReportImpl(activity);
}
@Override
public void publish() {
depositReport.getReportsReconcile(this);
}
public View layoutInflater(LayoutInflater inflater, ViewGroup container) {
view = inflater.inflate(R.layout.new_fragment_deposit_report_recapitulate, container, false);
return view;
}
@Override
public void onCreate() {
txtBatchId = (TextView) view.findViewById(R.id.batchId);
txtTotal = (TextView) view.findViewById(R.id.total);
txtBatchId.setText(Generator.generateBatchId(activity));
batchId = txtBatchId.getText().toString().trim();
txtTotal.setText(Tool.separateThousand(String.valueOf(total)));
Button transferButton = (Button) view.findViewById(R.id.btnTransfer);
transferButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
total = depositReport.sumOfItems(reportsReconcile);
if(total!=0) doTransfer();
else Toast.makeText(activity, activity.getString(R.string.transfer_failed), Toast.LENGTH_SHORT).show();
}
});
}
private void getTotal() {
txtTotal.setText(Tool.separateThousand(String.valueOf(total)));
}
private void doTransfer() {
ListView list = (ListView) view.findViewById(R.id.listRecapitulationDetail);
if (list.getAdapter().getCount() == 0) {
Toaster.warning(activity, activity.getString(R.string.nothing_to_report));
return;
}else if (totalNeedPrint > 0) {
Toaster.warning(activity, activity.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());
NavigatorInterface navigator = new Navigator(activity, bundle);
navigator.route(Navigator.DEPOSIT_REPORT_TRANSFER);
}
@Override
public void OnLoadReconcileData(List<TaskD> reconcileReport, int totalNeedPrint) {
this.reportsReconcile = reconcileReport;
this.totalNeedPrint = totalNeedPrint;
containerInit();
}
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();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
view = LayoutInflater.from(getContext()).inflate(R.layout.new_recapitulation_detail_item, parent, false);
TextView label = (TextView) view.findViewById(R.id.itemLabel);
TextView value = (TextView) view.findViewById(R.id.itemValue);
if (position == getCount()-1) {
total = depositReport.sumOfItems(new ArrayList<TaskD>(Arrays.asList(originalItems)));
getTotal();
}
TaskD item = getItem(position);
if (!item.getText_answer().equals("0") && !item.getText_answer().equals("")) {
label.setText(item.getTaskH().getAppl_no());
value.setText(Tool.separateThousand(item.getText_answer()));
}
return view;
}
}
private class RecapitulationListAdapterDummy extends ArrayAdapter<TaskD> {
public RecapitulationListAdapterDummy(Context context, int resource) {
super(context, resource);
}
@Override
public int getCount() {
return 1;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
view = LayoutInflater.from(getContext()).inflate(R.layout.new_recapitulation_detail_item, parent, false);
TextView label = (TextView) view.findViewById(R.id.itemLabel);
TextView value = (TextView) view.findViewById(R.id.itemValue);
label.setText("Sample Batch1");
value.setText(Tool.separateThousand(10000));
return view;
}
}
public void containerDummy(){
ListView list = (ListView) view.findViewById(R.id.listRecapitulationDetail);
list.setAdapter(new RecapitulationListAdapterDummy(activity, R.layout.new_recapitulation_detail_item));
}
public void containerInit(){
ListView list = (ListView) view.findViewById(R.id.listRecapitulationDetail);
list.setAdapter(new RecapitulationListAdapter(activity, R.layout.new_recapitulation_detail_item,
reportsReconcile.toArray(new TaskD[reportsReconcile.size()])));
}
}

Some files were not shown because too many files have changed in this diff Show more