Advertisement
ricky_yulianto

Untitled

Jan 28th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.88 KB | None | 0 0
  1. package codelabs.siloam.fragment;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.support.annotation.NonNull;
  7. import android.support.annotation.Nullable;
  8. import android.support.v4.app.Fragment;
  9. import android.support.v7.app.AppCompatActivity;
  10. import android.support.v7.widget.LinearLayoutManager;
  11. import android.support.v7.widget.RecyclerView;
  12. import android.text.TextUtils;
  13. import android.view.KeyEvent;
  14. import android.view.LayoutInflater;
  15. import android.view.View;
  16. import android.view.ViewGroup;
  17. import android.view.inputmethod.EditorInfo;
  18. import android.widget.Button;
  19. import android.widget.EditText;
  20. import android.widget.TextView;
  21. import android.widget.Toast;
  22.  
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27.  
  28. import butterknife.BindView;
  29. import butterknife.ButterKnife;
  30. import butterknife.OnClick;
  31. import butterknife.Unbinder;
  32. import codelabs.siloam.R;
  33. import codelabs.siloam.activity.AssetDetailActivity;
  34. import codelabs.siloam.activity.ScanActivity;
  35. import codelabs.siloam.activity.SelectActivity;
  36. import codelabs.siloam.activity.SelectBigActivity;
  37. import codelabs.siloam.activity.StockOpnameDetailActivity;
  38. import codelabs.siloam.adapter.LibraryAdapter;
  39. import codelabs.siloam.adapter.StockOpnameAdapter;
  40. import codelabs.siloam.connection.ApiUtils;
  41. import codelabs.siloam.connection.AppConstant;
  42. import codelabs.siloam.connection.DataManager;
  43. import codelabs.siloam.connection.RetrofitInterface;
  44. import codelabs.siloam.custom.RecyclerTouchListener;
  45. import codelabs.siloam.custom.SpacingItemDecoration;
  46. import codelabs.siloam.dialog.DialogProgress;
  47. import codelabs.siloam.model.GetAssetByDepartment;
  48. import codelabs.siloam.model.GetBarcodeScan;
  49. import codelabs.siloam.model.GetChecklistForm;
  50. import codelabs.siloam.model.GetDepartment;
  51. import codelabs.siloam.model.GetEquipment;
  52. import codelabs.siloam.model.LibraryItem;
  53. import codelabs.siloam.model.SelectItem;
  54. import codelabs.siloam.utils.MyLog;
  55. import codelabs.siloam.utils.RecentUtils;
  56. import retrofit2.Call;
  57. import retrofit2.Callback;
  58. import retrofit2.Response;
  59.  
  60.  
  61.  
  62. public class StockOpnameFragment extends Fragment implements View.OnClickListener {
  63. // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
  64. private static final String ARG_TEXT = "param1";
  65.  
  66. private static final int SELECT_DEPARTMENT = 111;
  67. private static final int SELECT_EQUIPMENT = 222;
  68. private static final int SELECT_SCAN = 123;
  69. @BindView(R.id.ed_department)
  70. EditText edDepartment;
  71. @BindView(R.id.ed_equipment)
  72. EditText edEquipment;
  73. @BindView(R.id.btn_scan)
  74. TextView btnScan;
  75. @BindView(R.id.ed_serial_number)
  76. EditText edSerialNumber;
  77. @BindView(R.id.recycler_view)
  78. RecyclerView recyclerView;
  79.  
  80. @Nullable
  81. private int pageText;
  82.  
  83. Unbinder unbinder;
  84. private DialogProgress dialogProgress;
  85. private Toast mToast;
  86. private StockOpnameAdapter mAdapter;
  87.  
  88. private ArrayList<SelectItem> itemsDepartment = new ArrayList<>();
  89. private String selectedDepartmentID;
  90. private ArrayList<SelectItem> itemsEquipment = new ArrayList<>();
  91. private String selectedEquipmentID;
  92.  
  93. Call<GetDepartment> callDepartment;
  94. Call<GetEquipment> callEq;
  95.  
  96. private List<GetAssetByDepartment.DATABean> responseData = new ArrayList<>();
  97.  
  98. public StockOpnameFragment() {
  99. // Required empty public constructor
  100. }
  101.  
  102. public static StockOpnameFragment newInstance(@NonNull final int pageText) {
  103. StockOpnameFragment fragment = new StockOpnameFragment();
  104.  
  105. Bundle args = new Bundle();
  106. args.putInt(ARG_TEXT, pageText);
  107. fragment.setArguments(args);
  108.  
  109. return fragment;
  110. }
  111.  
  112. @Override
  113. public void onCreate(Bundle savedInstanceState) {
  114. super.onCreate(savedInstanceState);
  115. if (getArguments() != null) {
  116. pageText = getArguments().getInt(ARG_TEXT);
  117. }
  118. }
  119.  
  120.  
  121. @Override
  122. public void onResume() {
  123. super.onResume();
  124. // Set title
  125. ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(getResources().getString(R.string.history_menu));
  126. }
  127.  
  128. @Override
  129. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  130. Bundle savedInstanceState) {
  131. // Inflate the layout for this fragment
  132. View view = inflater.inflate(R.layout.fragment_stock_opname, container, false);
  133. unbinder = ButterKnife.bind(this, view);
  134.  
  135. edDepartment.setOnClickListener(this);
  136. edEquipment.setOnClickListener(this);
  137. btnScan.setOnClickListener(this);
  138.  
  139. // edSerialNumber.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  140. // @Override
  141. // public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  142. // if ((event !=null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)){
  143. // loadBarcodeScan(edSerialNumber.getText().toString());
  144. // }
  145. // return false;
  146. // }
  147. // });
  148.  
  149. return view;
  150. }
  151.  
  152. // private void loadBarcodeScan(String barcode) {
  153. //
  154. // showDialogProgress("Getting Barcode Data");
  155. //
  156. // RetrofitInterface apiService = ApiUtils.getAPIService();
  157. // String auth = AppConstant.AuthValue + DataManager.getInstance().getToken();
  158. // Map<String, String> params = new HashMap<>();
  159. // params.put("barcode", barcode);
  160. // Call<GetBarcodeScan> call = apiService.gettingBarcodeScan(auth, params);
  161. // call.enqueue(new Callback<GetBarcodeScan>() {
  162. // }
  163. // }
  164.  
  165.  
  166. @Override
  167. public void onDestroyView() {
  168. super.onDestroyView();
  169. unbinder.unbind();
  170. if(callDepartment != null)
  171. callDepartment.cancel();
  172.  
  173. if(callEq != null)
  174. callEq.cancel();
  175. }
  176.  
  177.  
  178. public void showDialogProgress(String message) {
  179. if (message != null) {
  180. dialogProgress = new DialogProgress(getContext(), message, true);
  181. dialogProgress.setCancelable(false);
  182. dialogProgress.show();
  183. } else {
  184. dialogProgress = new DialogProgress(getContext(), "Loading ...", false);
  185. dialogProgress.setCancelable(false);
  186. dialogProgress.show();
  187. }
  188. }
  189.  
  190. public void hideDialogProgress() {
  191. if (dialogProgress != null) {
  192. if (dialogProgress.isShowing()) {
  193. dialogProgress.dismiss();
  194. }
  195. }
  196. }
  197.  
  198.  
  199. public void showToast(String val) {
  200. if (mToast != null) mToast.cancel();
  201. mToast = Toast.makeText(getContext(), val, Toast.LENGTH_SHORT);
  202. mToast.show();
  203. }
  204.  
  205. @Override
  206. public void onClick(View view) {
  207.  
  208. if(view == edDepartment){
  209.  
  210. if (itemsDepartment.size() == 0)
  211. loadDepartment();
  212. else
  213. openSelectDepartment();
  214.  
  215. }else if(view == edEquipment){
  216.  
  217. if (itemsEquipment.size() == 0)
  218. loadEquipment();
  219. else
  220. openSelectEquipment();
  221.  
  222. }else if(view == btnScan){
  223. Intent intent = new Intent(getContext(),ScanActivity.class);
  224. startActivityForResult(intent, SELECT_SCAN);
  225. }
  226. }
  227.  
  228. // @OnClick(R.id.btn_start)
  229. // public void onViewClicked() {
  230. //// doGetAsset();
  231. //
  232. // if(TextUtils.isEmpty(selectedDepartmentID)){
  233. // showToast("Please select department");
  234. // return;
  235. // }
  236. //
  237. //
  238. // Intent intent = new Intent(getContext(),StockOpnameDetailActivity.class);
  239. // intent.putExtra(StockOpnameDetailActivity.DEPARTMENT_ID, selectedDepartmentID);
  240. // intent.putExtra(StockOpnameDetailActivity.EQUIPMENT_ID, selectedEquipmentID);
  241. // startActivity(intent);
  242. // }
  243.  
  244.  
  245. private void loadDepartment() {
  246. showDialogProgress("Getting Department List");
  247.  
  248. Map<String, String> params = new HashMap<>();
  249. params.put("hospital_id", DataManager.getInstance().getHospital_id()+"");
  250. RetrofitInterface apiService = ApiUtils.getAPIService();
  251. String auth = AppConstant.AuthValue + DataManager.getInstance().getToken();
  252. callDepartment = apiService.gettingDepartment(auth,params);
  253. callDepartment.enqueue(new Callback<GetDepartment>() {
  254. @Override
  255. public void onResponse(@NonNull Call<GetDepartment> call, @NonNull Response<GetDepartment> data) {
  256. hideDialogProgress();
  257. if (data.isSuccessful()) {
  258. GetDepartment response = data.body();
  259. if (response != null) {
  260. if (response.getSTATUS() == 200) {
  261.  
  262. List<GetDepartment.DATABean> responseDATA = response.getDATA();
  263. for (GetDepartment.DATABean dataBean : responseDATA) {
  264. itemsDepartment.add(new SelectItem(dataBean.getId() + "", dataBean.getName(), dataBean.getDescription()));
  265. }
  266.  
  267. openSelectDepartment();
  268.  
  269. } else {
  270. showToast(response.getMESSAGE());
  271. }
  272. } else {
  273. showToast(getString(R.string.no_response));
  274. }
  275. } else {
  276. RecentUtils.handleRetrofitError(data.code());
  277. }
  278. }
  279.  
  280. @Override
  281. public void onFailure(@NonNull Call<GetDepartment> call, @NonNull Throwable t) {
  282. if (!call.isCanceled()) {
  283. hideDialogProgress();
  284. MyLog.logE(t.getMessage());
  285. showToast(getString(R.string.network_error));
  286. }
  287. }
  288. });
  289. }
  290.  
  291.  
  292.  
  293. private void openSelectDepartment() {
  294. Intent intent = new Intent(getContext(), SelectActivity.class);
  295. intent.putExtra(SelectActivity.TITLE, getString(R.string.input_department));
  296. intent.putParcelableArrayListExtra(SelectActivity.ITEMS, itemsDepartment);
  297. startActivityForResult(intent, SELECT_DEPARTMENT);
  298. }
  299.  
  300.  
  301.  
  302. private void loadEquipment() {
  303. showDialogProgress("Getting Equipment List");
  304.  
  305. RetrofitInterface apiService = ApiUtils.getAPIService();
  306. String auth = AppConstant.AuthValue + DataManager.getInstance().getToken();
  307. callEq = apiService.gettingEquipment(auth);
  308. callEq.enqueue(new Callback<GetEquipment>() {
  309. @Override
  310. public void onResponse(@NonNull Call<GetEquipment> call, @NonNull Response<GetEquipment> data) {
  311. hideDialogProgress();
  312. if (data.isSuccessful()) {
  313. GetEquipment response = data.body();
  314. if (response != null) {
  315. if (response.getSTATUS() == 200) {
  316.  
  317. List<GetEquipment.DATABean> responseDATA = response.getDATA();
  318. for (GetEquipment.DATABean dataBean : responseDATA) {
  319. itemsEquipment.add(new SelectItem(dataBean.getId() + "", dataBean.getName(), dataBean.getDescription()));
  320. }
  321.  
  322. openSelectEquipment();
  323.  
  324. } else {
  325. showToast(response.getMESSAGE());
  326. }
  327. } else {
  328. showToast(getString(R.string.no_response));
  329. }
  330. } else {
  331. RecentUtils.handleRetrofitError(data.code());
  332. }
  333. }
  334.  
  335. @Override
  336. public void onFailure(@NonNull Call<GetEquipment> call, @NonNull Throwable t) {
  337. if (!call.isCanceled()) {
  338. hideDialogProgress();
  339. MyLog.logE(t.getMessage());
  340. showToast(getString(R.string.network_error));
  341. }
  342. }
  343. });
  344. }
  345.  
  346.  
  347.  
  348. private void openSelectEquipment() {
  349. SelectBigActivity.selectedItems = itemsEquipment;
  350. Intent intent = new Intent(getContext(), SelectBigActivity.class);
  351. intent.putExtra(SelectActivity.TITLE, getString(R.string.input_equipment));
  352. intent.putParcelableArrayListExtra(SelectActivity.ITEMS, itemsEquipment);
  353. startActivityForResult(intent, SELECT_EQUIPMENT);
  354. }
  355.  
  356. private void setAssetData() {
  357. recyclerView.setNestedScrollingEnabled(false);
  358. recyclerView.setHasFixedSize(true);
  359. LinearLayoutManager layoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);
  360. recyclerView.setLayoutManager(layoutManager);
  361.  
  362. // SpacingItemDecoration itemDecoration = new SpacingItemDecoration(RecentUtils.ConvertDpToPx(getContext(), 16), true);
  363. // recyclerView.addItemDecoration(itemDecoration);
  364.  
  365. recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getContext(), recyclerView, new RecyclerTouchListener.ClickListener() {
  366. @Override
  367. public void onClick(View view, int position) {
  368. Intent intent = new Intent(getContext(), AssetDetailActivity.class);
  369. intent.putExtra(AssetDetailActivity.DEPARTMENT_ID, selectedDepartmentID);
  370. intent.putExtra(AssetDetailActivity.EQUIPMENT_ID, selectedEquipmentID);
  371. intent.putExtra(AssetDetailActivity.BARCODE, responseData.get(position).getCode() );
  372. startActivity(intent);
  373. }
  374.  
  375. @Override
  376. public void onLongClick(View view, int position) {
  377.  
  378. }
  379. }));
  380.  
  381.  
  382. mAdapter = new StockOpnameAdapter(getContext());
  383. recyclerView.setAdapter(mAdapter);
  384. loadData();
  385. }
  386.  
  387. private void loadData() {
  388.  
  389. Map<String, String> params = new HashMap<>();
  390. params.put("hospital_id", DataManager.getInstance().getHospital_id()+"");
  391. params.put("dept_id", selectedDepartmentID);
  392. if(!TextUtils.isEmpty(selectedEquipmentID))
  393. params.put("eq_type", selectedEquipmentID);
  394.  
  395.  
  396. // tvLoading.setText("Getting Asset Detail");
  397. // tvLoadingDesc.setText("Please wait for getting asset detail");
  398. // containerLoading.setVisibility(View.VISIBLE);
  399.  
  400. RetrofitInterface apiService = ApiUtils.getAPIService();
  401. String auth = AppConstant.AuthValue + DataManager.getInstance().getToken();
  402. Call<GetAssetByDepartment> call = apiService.gettingAssetByDepartment(auth,params);
  403. call.enqueue(new Callback<GetAssetByDepartment>() {
  404. @Override
  405. public void onResponse(@NonNull Call<GetAssetByDepartment> call, @NonNull Response<GetAssetByDepartment> data) {
  406. // containerLoading.setVisibility(View.GONE);
  407. if (data.isSuccessful()) {
  408. GetAssetByDepartment response = data.body();
  409. if (response != null) {
  410. if (response.getSTATUS() == 200) {
  411. // containerContent.setVisibility(View.VISIBLE);
  412. responseData = response.getDATA();
  413.  
  414. processData();
  415.  
  416. } else {
  417. // containerError.setVisibility(View.VISIBLE);
  418. // tvError.setText(response.getMESSAGE());
  419. }
  420. } else {
  421. // containerError.setVisibility(View.VISIBLE);
  422. // tvError.setText(getString(R.string.no_response));
  423. }
  424. } else {
  425. // containerError.setVisibility(View.VISIBLE);
  426. // RecentUtils.handleRetrofitError(data.code(), tvError);
  427. }
  428. }
  429.  
  430. @Override
  431. public void onFailure(@NonNull Call<GetAssetByDepartment> call, @NonNull Throwable t) {
  432. if (!call.isCanceled()) {
  433. MyLog.logE(t.getMessage());
  434. // containerLoading.setVisibility(View.GONE);
  435. // containerError.setVisibility(View.VISIBLE);
  436. // tvError.setText(getString(R.string.network_error));
  437. }
  438. }
  439. });
  440. }
  441.  
  442. private void processData() {
  443. mAdapter.addData(responseData);
  444. }
  445.  
  446.  
  447. @Override
  448. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  449. super.onActivityResult(requestCode, resultCode, data);
  450. if (resultCode == Activity.RESULT_OK) {
  451. if (requestCode == SELECT_DEPARTMENT) {
  452. SelectItem selectItem = data.getParcelableExtra("result");
  453. edDepartment.setText(selectItem.getTitle());
  454. selectedDepartmentID = selectItem.getId();
  455. if(!edEquipment.getText().toString().equals("")) {
  456. setAssetData();
  457. // itemsDepartment.clear();
  458. // selectedDepartmentID = "";
  459. // edDepartment.setText("");
  460. }
  461. }
  462. if (requestCode == SELECT_EQUIPMENT) {
  463. SelectItem selectItem = data.getParcelableExtra("result");
  464. edEquipment.setText(selectItem.getTitle());
  465. selectedEquipmentID = selectItem.getId();
  466. if(!edDepartment.getText().toString().equals(""))
  467. {
  468. setAssetData();
  469. }
  470. }
  471. if(requestCode == SELECT_SCAN){
  472. String itemScanned = data.getStringExtra("result");
  473. edSerialNumber.setText(itemScanned);
  474. // setAssetData();
  475. }
  476. }
  477.  
  478. }//onActivityResult
  479. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement