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,91 @@
package com.adins.mss.base;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.PrintResult;
import com.adins.mss.dao.TaskH;
import com.adins.mss.foundation.db.dataaccess.PrintResultDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.dialog.DialogManager;
import java.util.List;
/**
* Created by winy.firdasari on 30/01/2015.
*/
public class PrintTask extends AsyncTask<String, Void, List<PrintResult>> {
private ProgressDialog progressDialog;
private String errMessage = null;
private Activity activity;
private String messageWait;
private String messageEmpty;
private String taskId;
//inijiniunnij dasfasfs
public PrintTask(Activity activity) {
this.activity = activity;
this.messageWait = activity.getString(R.string.progressWait);
this.messageEmpty = activity.getString(R.string.msgNoPrintItem);
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(this.activity, "", this.messageWait, true);
}
@Override
protected List<PrintResult> doInBackground(String... params) {
List<PrintResult> result = null;
try {
String taskId = params[0];
this.taskId = taskId;
//bong 7 may 15 - asumsi data print result di lokal sudah siap untuk di-print
TaskH taskH = TaskHDataAccess.getOneTaskHeader(activity, taskId);
result = PrintResultDataAccess.getAll(activity, taskH.getUuid_task_h());
// FormManager formManager = new FormManager();
// result = formManager.getReadyPrintItem(activity, taskId);
} catch (Exception ex) {
if (Global.IS_DEV)
ex.printStackTrace();
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
errMessage = ex.getMessage();
}
return result;
}
@Override
protected void onPostExecute(List<PrintResult> result) {
if (progressDialog.isShowing()) {
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
}
if (errMessage != null) {
DialogManager.showAlert(activity, DialogManager.TYPE_ERROR, errMessage, activity.getString(R.string.test_label));
} else if (result == null || result.size() == 0) {
DialogManager.showAlert(activity, DialogManager.TYPE_INFO, messageEmpty, activity.getString(R.string.test_label));
} else {
PrintActivity.setListOfPrint(result);
Intent i = new Intent(this.activity, PrintActivity.class);
this.activity.startActivity(i);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/sample"/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -0,0 +1,47 @@
package com.adins.mss.foundation.operators;
import androidx.annotation.Keep;
import com.gadberry.utility.expression.Argument;
import com.gadberry.utility.expression.Expression;
import com.gadberry.utility.expression.Function;
import com.gadberry.utility.expression.InvalidArgumentsException;
import java.util.List;
/**
* Created by gigin.ginanjar on 14/09/2016.
*/
public class IfElseFunctionDummy extends Function {
@Keep
public IfElseFunctionDummy(Expression expression) {
super(expression);
}
@Override
protected void checkArgs(List<Argument> args) throws InvalidArgumentsException {
if (args.size() < 3) {
throw new InvalidArgumentsException(
"IfElseOperator requires a minimum of three arguments."
);
}
if (!args.get(0).isBoolean()) {
throw new InvalidArgumentsException(
"IfElseOperator only accepts boolean. Wrong type of arguments provided. Arg: "
+ args.get(0).toString());
}
for (Argument arg : args) {
if (arg.isNull()) {
throw new InvalidArgumentsException(
"IfElseOperator cannot accept null arguments. At least one argument provided was null.");
}
}
}
@Override
public Argument resolve() {
Argument condArgument = new Argument(getArgument(0).toBoolean(), getResolver());
return condArgument;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="@color/gradient_start" />
<stroke
android:width="2dp"
android:color="@android:color/transparent" />
<corners
android:radius="5dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="@color/gradient_start"
android:endColor="@color/gradient_end"
android:angle="270" />
<stroke
android:width="2dp"
android:color="@android:color/transparent" />
<corners
android:radius="5dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>

View file

@ -0,0 +1,210 @@
package com.adins.mss.base;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.adins.mss.base.api.ChangePasswordApi;
import com.adins.mss.base.api.ChangePasswordApiCallback;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.form.questions.QuestionsValidator;
import com.adins.mss.base.errorhandler.ErrorMessageHandler;
import com.adins.mss.base.errorhandler.IShowError;
import com.adins.mss.base.login.DefaultLoginModel;
import com.adins.mss.base.mainmenu.MainMenuHelper;
import com.adins.mss.base.models.ChangePasswordRequestModel;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.db.dataaccess.UserDataAccess;
import org.acra.ACRA;
/**
* Created by adityapurwa on 30/03/15.
*/
public class ChangePasswordFragment extends Fragment implements IShowError {
public static final String AS_ACTIVITY = "ChangePasswordActivity.AS_ACTIVITY";
private EditText currentPassword;
private EditText newPassword;
private EditText retypePassword;
private Button changePassword;
ErrorMessageHandler errorMessageHandler;
//bong 7 apr 15 not override
public static void onBackPressed() {
//EMPTY
}
@SuppressLint("NewApi")
@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_changepassword));
getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
errorMessageHandler = new ErrorMessageHandler(this);
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public void onResume() {
super.onResume();
getActivity().getActionBar().setTitle(getString(R.string.title_mn_changepassword));
getActivity().getActionBar().removeAllTabs();
getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
View actionBar = view.findViewById(R.id.actionbar);
final boolean asActivity = getArguments().getBoolean(AS_ACTIVITY);
if (actionBar != null && asActivity) {
actionBar.setVisibility(View.GONE);
}
String pwdExp = getActivity().getIntent().getStringExtra(DefaultLoginModel.PWD_EXP);
try {
if (pwdExp.equals("1")) {
errorMessageHandler.processError("",getActivity().getString(R.string.password_expired), ErrorMessageHandler.TOAST_TYPE);
}
} catch (Exception e) {
FireCrash.log(e);
}
currentPassword = (EditText) view.findViewById(R.id.currentPassword);
newPassword = (EditText) view.findViewById(R.id.newPassword);
retypePassword = (EditText) view.findViewById(R.id.retypePassword);
changePassword = (Button) view.findViewById(R.id.changePassword);
changePassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentPassword.getText() == null || currentPassword.getText().toString().equals("")) {
currentPassword.setError(getActivity().getString(R.string.current_password_mandatory));
}
if (newPassword.getText() == null ||
newPassword.getText().toString().equals("")) {
newPassword.setError(getActivity().getString(R.string.new_password_mandatory));
return;
}
if (!newPassword.getText().toString().equals(retypePassword.getText().toString())) {
errorMessageHandler.processError(""
,getActivity().getString(R.string.new_password_equal),
ErrorMessageHandler.TOAST_TYPE);
return;
}
if (newPassword.getText().toString().equals(currentPassword.getText().toString())) {
errorMessageHandler.processError(""
,getActivity().getString(R.string.new_password_different)
, ErrorMessageHandler.TOAST_TYPE);
}
ChangePasswordRequestModel request = new ChangePasswordRequestModel();
request.setUuid_user(GlobalData.getSharedGlobalData().getUser().getUuid_user());
request.setOld_password(currentPassword.getText().toString());
request.setNew_password(newPassword.getText().toString());
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
ChangePasswordApi api = new ChangePasswordApi(getActivity());
api.setCallback(new ChangePasswordApiCallback() {
@Override
public void onFailed(String message) {
try {
errorMessageHandler.processError(getActivity().getString(R.string.warning_capital)
,message
, ErrorMessageHandler.TOAST_TYPE);
} catch (Exception e) {
FireCrash.log(e);
errorMessageHandler.processError("","Change Password Error", ErrorMessageHandler.TOAST_TYPE);
}
}
@Override
public void onSuccess() {
Toast.makeText(getActivity(), getActivity().getString(R.string.password_changed), Toast.LENGTH_LONG).show();
if (!asActivity) {
User user = GlobalData.getSharedGlobalData().getUser();
user.setPassword(newPassword.getText().toString());
UserDataAccess.addOrReplace(getActivity(), user);
MainMenuHelper.doBackFragment(getActivity());
} else {
User user = GlobalData.getSharedGlobalData().getUser();
user.setPassword(newPassword.getText().toString());
UserDataAccess.addOrReplace(getActivity(), user);
goToSynchronize();
Global.syncIntent = null;
getActivity().finish();
}
clear();
}
});
api.execute(request);
}
});
}
private void clear() {
currentPassword.setText("");
newPassword.setText("");
retypePassword.setText("");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_change_password, container, false);
}
public boolean checkRegex(EditText editText) {
String regex = "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$";
String answer = editText.getText().toString().trim();
if ( !answer.isEmpty()) {
if (QuestionsValidator.regexIsMatch(answer, regex)) {
return true;
} else {
editText.setError(getActivity().getString(R.string.alpha_numeric_warning));
Toast.makeText(getActivity(), getActivity().getString(R.string.input_not_valid), Toast.LENGTH_SHORT).show();
return false;
}
}
return true;
}
private void goToSynchronize() {
if (Global.syncIntent != null) {
Intent syncIntent = Global.syncIntent;
startActivity(syncIntent);
}
}
@Override
public void showError(String errorSubject, String errorMsg, int notifType) {
if(notifType == ErrorMessageHandler.TOAST_TYPE){
if(errorSubject == null || errorSubject.equals(""))
Toast.makeText(getActivity(), errorMsg, Toast.LENGTH_SHORT).show();
else {
Toast.makeText(getActivity(), errorSubject+": "+errorMsg, Toast.LENGTH_SHORT).show();
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,76 @@
package com.adins.mss.coll.networks.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.base.util.Utility;
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 com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
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;
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(getUrl(), FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric,GsonHelper.toJson(entity));
try {
serverResult = httpConn.requestToServer(getUrl(), GsonHelper.toJson(entity), Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} 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();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1,202 @@
package com.adins.mss.odr.accounts;
import android.content.Context;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import com.adins.mss.base.dynamicform.form.ScrollingLinearLayoutManager;
import com.adins.mss.base.dynamicform.form.questions.viewholder.ExpandableRecyclerView;
import com.adins.mss.base.todo.form.GetSchemeTask;
import com.adins.mss.base.util.Utility;
import com.adins.mss.dao.Account;
import com.adins.mss.foundation.db.dataaccess.AccountDataAccess;
import com.adins.mss.odr.MONewTaskActivity;
import com.adins.mss.odr.R;
import com.adins.mss.odr.accounts.adapter.AccountButtonAdapter;
import com.adins.mss.odr.accounts.adapter.AccountButtonOpportunitiesAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* Created by muhammad.aap on 11/27/2018.
*/
public class AccountDetailFragment extends Fragment {
private String uuidAccount;
private Account account;
private EditText txtAddress;
private EditText txtPhone1;
private EditText txtPhone2;
private EditText txtPhone3;
private Button btnNewProspect;
ExpandableRecyclerView qRecyclerView;
public static AccountButtonAdapter buttonOppAdapter;
//private ExpandableListView btnRecyclerViewOpportunities;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
AccountButtonOpportunitiesAdapter listAdapter;
// public static AdapterBaru questionAdapter;
@Override
public void onAttach(Context context) {
super.onAttach(context);
setHasOptionsMenu(true);
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_account_detail, container, false);
Bundle bundle = getArguments();
String uuidAccount = bundle.getString("uuidAccount");
account = AccountDataAccess.getOne(getActivity(), uuidAccount);
txtAddress = (EditText) view.findViewById(R.id.txtAddressAccDetail);
txtPhone1 = (EditText) view.findViewById(R.id.txtNumber1Acc);
txtPhone2 = (EditText) view.findViewById(R.id.txtNumber2Acc);
txtPhone3 = (EditText) view.findViewById(R.id.txtNumber3Acc);
btnNewProspect = (Button) view.findViewById(R.id.btnNewProspectAcc);
// btnRecyclerViewOpportunities = (ExpandableListView) view.findViewById(R.id.btnRecyclerViewOpportunitiesAcc);
txtAddress.setText(account.getAccount_address());
txtPhone1.setText(account.getAccount_phone_1());
if (account.getAccount_phone_2() != null && !account.getAccount_phone_2().isEmpty())
txtPhone2.setText(account.getAccount_phone_2());
//if (account.getAccount_phone_3() != null && !account.getAccount_phone_3().isEmpty())
// txtPhone3.setText(account.getAccount_phone_3());
btnNewProspect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GetSchemeTask task = new GetSchemeTask(getActivity(), new MONewTaskActivity(), true);
task.execute();
}
});
// questionAdapter = new QuestionViewAdapter(getActivity(), qRecyclerView, listOfQuestionGroup, listOfQuestionBean, this);
// btnRecyclerViewOpportunities.setAdapter(questionAdapter);
// preparing list data
prepareListData();
listAdapter = new AccountButtonOpportunitiesAdapter(getActivity(), listDataHeader, listDataChild);
// setting list adapter
// btnRecyclerViewOpportunities.setAdapter(listAdapter);
//
// // Listview Group click listener
// btnRecyclerViewOpportunities.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
//
// @Override
// public boolean onGroupClick(ExpandableListView parent, View v,
// int groupPosition, long id) {
// // Toast.makeText(getApplicationContext(),
// // "Group Clicked " + listDataHeader.get(groupPosition),
// // Toast.LENGTH_SHORT).show();
// return false;
// }
// });
//
// // Listview Group expanded listener
// btnRecyclerViewOpportunities.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
//
// @Override
// public void onGroupExpand(int groupPosition) {
// Toast.makeText(getActivity(),
// listDataHeader.get(groupPosition) + " Expanded",
// Toast.LENGTH_SHORT).show();
// }
// });
//
// // Listview Group collasped listener
// btnRecyclerViewOpportunities.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {
//
// @Override
// public void onGroupCollapse(int groupPosition) {
// Toast.makeText(getActivity(),
// listDataHeader.get(groupPosition) + " Collapsed",
// Toast.LENGTH_SHORT).show();
//
// }
// });
//
// // Listview on child click listener
// btnRecyclerViewOpportunities.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
//
// @Override
// public boolean onChildClick(ExpandableListView parent, View v,
// int groupPosition, int childPosition, long id) {
// // TODO Auto-generated method stub
// Toast.makeText(
// getActivity(),
// listDataHeader.get(groupPosition)
// + " : "
// + listDataChild.get(
// listDataHeader.get(groupPosition)).get(
// childPosition), Toast.LENGTH_SHORT)
// .show();
// return false;
// }
// });
if (view instanceof RelativeLayout) {
Context context = view.getContext();
qRecyclerView = (ExpandableRecyclerView) view.findViewById(R.id.btnOpportunities);
int duration = getResources().getInteger(com.adins.mss.base.R.integer.scroll_duration);
qRecyclerView.setLayoutManager(new ScrollingLinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false, duration));
// buttonOppAdapter = new AccountButtonAdapter(getActivity(), qRecyclerView, listOfQuestionBean, this);
qRecyclerView.setAdapter(buttonOppAdapter);
}
return view;
}
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
listDataHeader.add("Opportunities");
List<String> nowShowing = new ArrayList<String>();
nowShowing.add("The Conjuring");
nowShowing.add("Despicable Me 2");
nowShowing.add("Turbo");
nowShowing.add("Grown Ups 2");
nowShowing.add("Red 2");
nowShowing.add("The Wolverine");
listDataChild.put(listDataHeader.get(0), nowShowing);
}
@Override
public void onResume() {
super.onResume();
getActivity().setTitle(getString(com.adins.mss.base.R.string.header_mn_account_detail));
}
@Override
public void onPause() {
super.onPause();
}
}

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,57 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/tv_white">
<ScrollView android:layout_width="match_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:padding="8dp">
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/installment_schedule_detail"
android:textStyle="bold"
android:textSize="24sp"/>
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<TableLayout android:layout_width="match_parent"
android:layout_height="fill_parent"
android:paddingTop="8dp"
android:stretchColumns="2"
android:id="@+id/tablePaymentDetails">
<TableRow android:layout_width="match_parent" android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:background="@drawable/spinner_background">
<TextView android:text="@string/label_no"
android:textSize="12sp"
android:paddingRight="6dp"
android:paddingLeft="6dp"
android:gravity="center"
android:textColor="@color/tv_white"
android:textStyle="bold"/>
<TextView android:text="@string/label_field"
android:textSize="12sp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:minWidth="150dp"
android:textColor="@color/tv_white"
android:textStyle="bold"/>
<TextView android:text="@string/label_value"
android:textSize="12sp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:textColor="@color/tv_white"
android:textStyle="bold"/>
</TableRow>
</TableLayout>
</HorizontalScrollView>
</LinearLayout>
</ScrollView>
</LinearLayout>

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,433 @@
package com.adins.mss.odr;
import android.annotation.SuppressLint;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.foundation.formatter.Formatter;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.odr.tool.Constants;
import com.google.firebase.analytics.FirebaseAnalytics;
import org.acra.ACRA;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
public class CheckOrderActivity extends Fragment implements OnClickListener, OnItemSelectedListener{
class DateClickListener implements View.OnClickListener {
private final EditText mTarget;
private final Context mContext;
public DateClickListener(Context context, EditText target) {
mContext = context;
mTarget = target;
}
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mTarget.setText(dayOfMonth + "/" + Tool.appendZeroForDateTime(monthOfYear, true) + "/" + year);
}
}, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
dialog.show();
}
}
public static final String keyCustName = "EXTRA_CUST_NAME_KEY";
protected EditText txtStartDate;
protected EditText txtEndDate;
protected EditText txtNomorOrder;
protected Spinner spinnerSearch;
private EditText txtNamaCustomer;
private String[] isiSearchBy;
private Button btnSearch;
private ImageView btnStartDate;
private ImageView btnEndDate;
private RelativeLayout byDateLayout;
private LinearLayout byNomorLayout;
protected View view;
private LinearLayout byNamaLayout, container;
private FirebaseAnalytics screenName;
private com.google.android.material.bottomnavigation.BottomNavigationView bottomNav;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
setHasOptionsMenu(true);
}
@Override
public void onDestroyView() {
super.onDestroyView();
bottomNav.getMenu().findItem(com.adins.mss.odr.R.id.taskListNav).setEnabled(true);
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
screenName = FirebaseAnalytics.getInstance(getActivity());
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
view = inflater.inflate(R.layout.check_order, container, false);
getActivity().setTitle(R.string.title_mn_checkorder);
txtStartDate = (EditText)view.findViewById(R.id.txtStartDate);
txtEndDate = (EditText)view.findViewById(R.id.txtEndDate);
txtNomorOrder = (EditText)view.findViewById(R.id.txtNomorOrder);
txtNamaCustomer = (EditText) view.findViewById(R.id.txtCustomerName);
btnSearch = (Button)view.findViewById(R.id.btnSearchOrder);
btnStartDate =(ImageView)view.findViewById(R.id.btnStartDate);
btnEndDate=(ImageView)view.findViewById(R.id.btnEndDate);
spinnerSearch=(Spinner)view.findViewById(R.id.cbSearchBy);
byDateLayout=(RelativeLayout) view.findViewById(R.id.byDate);
byNomorLayout=(LinearLayout) view.findViewById(R.id.byNoOrder);
byNamaLayout = (LinearLayout) view.findViewById(R.id.byCustName);
bottomNav = getActivity().findViewById(com.adins.mss.odr.R.id.bottomNav);
btnStartDate.setOnClickListener(new DateClickListener(getActivity(), txtStartDate));
btnEndDate.setOnClickListener(new DateClickListener(getActivity(), txtEndDate));
btnSearch.setOnClickListener(this);
this.container = view.findViewById(R.id.container);
this.container.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if(!UserHelp.isActive)
UserHelp.showAllUserHelp(CheckOrderActivity.this.getActivity(),CheckOrderActivity.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
});
isiSearchBy = this.getResources().getStringArray(R.array.cbSearchBy);
// ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(
// getActivity(), R.array.cbSearchBy,
// R.layout.spinner_style);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getActivity(), R.layout.spinner_style, R.id.text_spin, getResources().getStringArray(R.array.cbSearchBy)) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
textView.setTextColor(Color.WHITE);
return textView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
textView.setTextColor(Color.BLACK);
return textView;
}
};
// ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getActivity(), R.layout.spinner_style, R.id.text_spin, R.array.cbSearchBy){
//
// @Override
// public View getView(int position, View convertView, ViewGroup parent) {
// TextView textView = (TextView) super.getView(position, convertView, parent);
//
// textView.setTextColor(Color.WHITE);
//
// return textView;
// }
//
// @Override
// public View getDropDownView(int position, View convertView, ViewGroup parent){
// // Cast the drop down items (popup items) as text view
// TextView tv = (TextView) super.getDropDownView(position,convertView,parent);
//
// // Set the text color of drop down items
// tv.setTextColor(Color.RED);
//
// // If this item is selected item
//// if(position == mSelectedIndex){
//// // Set spinner selected popup item's text color
//// tv.setTextColor(Color.BLUE);
//// }
//
// // Return the modified view
// return tv;
// }
// };
spinnerSearch.setAdapter(adapter);
spinnerSearch.setOnItemSelectedListener(this);
return view;
}
@Override
public void onResume(){
super.onResume();
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_check_order), null);
bottomNav.getMenu().findItem(com.adins.mss.odr.R.id.taskListNav).setEnabled(false);
}
@Override
public void onPause() {
super.onPause();
Global.haveLogin = 1;
}
protected void disableCheckOrderBtn(){
bottomNav.getMenu().findItem(com.adins.mss.odr.R.id.taskListNav).setEnabled(true);
}
protected Intent getNextActivityIntent(){
// return new Intent(getActivity().getApplicationContext(), ResultActivity.class);
bottomNav.getMenu().findItem(com.adins.mss.odr.R.id.taskListNav).setEnabled(true);
return new Intent(getActivity().getApplicationContext(), ResultOrderActivity.class);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int id = v.getId();
if(id==R.id.btnSearchOrder){
StringBuffer errorMessage = new StringBuffer();
if (spinnerSearch.getSelectedItemPosition()==0) {
if (txtStartDate.getText().toString().length()==0){
errorMessage.append(getString(R.string.start_date_required));
}
if(txtEndDate.getText().toString().length()==0){
errorMessage.append(getString(R.string.end_date_required));
}
try {
SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
Date sDate,eDate;
long sLong = 0;
long eLong=0;
try {
sDate = f.parse(txtStartDate.getText().toString());
eDate = f.parse(txtEndDate.getText().toString());
eDate.setHours(23);
eDate.setMinutes(59);
eDate.setSeconds(59);
sLong = sDate.getTime();
eLong = eDate.getTime();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long milisecond=eLong-sLong;
if(milisecond>604799000){
errorMessage.append(getString(R.string.data_range_not_allowed));
}
else if(milisecond<0){
errorMessage.append(getString(R.string.input_not_valid));
}
} catch (Exception e) {
// TODO: handle exception
}
} else if (spinnerSearch.getSelectedItemPosition() == 1) {
if(txtNomorOrder.getText().toString().length()==0){
errorMessage.append(getString(R.string.nomor_order_rewuired));
}
} else if (spinnerSearch.getSelectedItemPosition() == 2) {
if(txtNamaCustomer.getText().toString().length() == 0) {
errorMessage.append(getString(R.string.cust_name_required));
} else if (txtNamaCustomer.getText().toString().length() < 3){
errorMessage.append(getString(R.string.cust_name_minimun_required));
}
}
if(errorMessage!=null&&errorMessage.length()>0){
Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_SHORT).show();
}else{
Intent nextActivity = getNextActivityIntent();
nextActivity.putExtra("startDate", txtStartDate.getText().toString());
nextActivity.putExtra("endDate", txtEndDate.getText().toString());
nextActivity.putExtra("nomorOrder", txtNomorOrder.getText().toString());
nextActivity.putExtra(keyCustName, txtNamaCustomer.getText().toString());
startActivity(nextActivity);
}
}
}
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position,
long id) {
long itemSearchBy = spinnerSearch.getItemIdAtPosition(position);
if (itemSearchBy == 1){
byDateLayout.setVisibility(View.GONE);
byNomorLayout.setVisibility(View.VISIBLE);
byNamaLayout.setVisibility(View.GONE);
} else if (itemSearchBy == 0){
byDateLayout.setVisibility(View.VISIBLE);
byNomorLayout.setVisibility(View.GONE);
byNamaLayout.setVisibility(View.GONE);
} else if (itemSearchBy == 2) {
byDateLayout.setVisibility(View.GONE);
byNomorLayout.setVisibility(View.GONE);
byNamaLayout.setVisibility(View.VISIBLE);
}
txtStartDate.setText("");
txtEndDate.setText("");
txtNamaCustomer.setText("");
txtNomorOrder.setText("");
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
@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() {
if (!UserHelp.isActive)
UserHelp.showAllUserHelp(CheckOrderActivity.this.getActivity(), CheckOrderActivity.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
container.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (!UserHelp.isActive)
UserHelp.showAllUserHelp(CheckOrderActivity.this.getActivity(), CheckOrderActivity.this.getClass().getSimpleName());
}
});
}
}
return super.onOptionsItemSelected(item);
}
@SuppressLint("ValidFragment")
public class DatePickerDialogCustom extends DialogFragment{
int id;
String startDate ="";
String endDate ="";
private DatePickerDialog.OnDateSetListener mStartDateSetListener =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
String month = Tool.appendZeroForDateTime(monthOfYear, true);
startDate = dayOfMonth + "/" + month + "/" + year;
txtStartDate.setText(startDate);
}
};
private DatePickerDialog.OnDateSetListener mEndDateSetListener =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
String month = Tool.appendZeroForDateTime(monthOfYear, true);
endDate = dayOfMonth + "/" + month + "/" + year;
txtEndDate.setText(endDate);
}
};
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String key = getArguments().getString(Constants.KEY_DATE);
int id=0;
if(key.equals(Constants.KEY_START_DATE))
id = getArguments().getInt(Constants.KEY_START_DATE);
else if(key.equals(Constants.KEY_END_DATE))
id = getArguments().getInt(Constants.KEY_END_DATE);
return DatePickerDialog(id);
}
public Dialog DatePickerDialog(int id){
Date sysdate =new Date(System.currentTimeMillis());
DatePickerDialog datePicker = null;
String sdt = Formatter.formatDate(sysdate, "dd/MM/yyyy");
String[] temp1 = sdt.split("/");
final int DayOfMonth = Integer.parseInt(temp1[0]);
final int Month = Integer.parseInt((temp1[1])) - 1;
final int Year = Integer.parseInt(temp1[2]);
if (id==Constants.START_DATE_DIALOG_ID) {
datePicker = new DatePickerDialog(getActivity(), mStartDateSetListener, Year, Month, DayOfMonth)
{
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year > Year)
view.updateDate(Year, Month, DayOfMonth);
if (monthOfYear > Month && year == Year)
view.updateDate(Year, Month, DayOfMonth);
if (dayOfMonth > DayOfMonth && year == Year && monthOfYear == Month)
view.updateDate(Year, Month, DayOfMonth);
}
};
}
else if (id==Constants.END_DATE_DIALOG_ID) {
datePicker = new DatePickerDialog(getActivity(), mEndDateSetListener, Year, Month, DayOfMonth)
{
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year > Year)
view.updateDate(Year, Month, DayOfMonth);
if (monthOfYear > Month && year == Year)
view.updateDate(Year, Month, DayOfMonth);
if (dayOfMonth > DayOfMonth && year == Year && monthOfYear == Month)
view.updateDate(Year, Month, DayOfMonth);
}
};
}
return datePicker;
}
}
}