Facebook
From Soiled Crane, 3 Years ago, written in Dart.
Embed
Download Paste or View Raw
Hits: 68
  1. import 'dart:convert';
  2. import 'dart:ffi';
  3. import 'package:flutter_money_formatter/flutter_money_formatter.dart';
  4. import 'package:http/http.dart' as http;
  5. import 'package:flutter/material.dart';
  6. import 'package:kopralapp/master/get_koperasi_data.dart';
  7. import 'package:kopralapp/models/auth_model/user_auth.dart';
  8. import 'package:kopralapp/models/pinjaman_model/pinjaman.dart';
  9. import 'package:kopralapp/models/pinjaman_model/pinjaman_response.dart';
  10. import 'package:kopralapp/models/user_koperasi/koperasi.dart';
  11. import 'package:kopralapp/screens/ajuan_screen/ajuan_screen.dart';
  12. import 'package:kopralapp/screens/ajuan_screen/create_ajuan_screen/create_ajuan_screen.dart';
  13. import 'package:kopralapp/utils/document_status.dart';
  14. import 'package:kopralapp/utils/myDialog.dart';
  15. import 'package:kopralapp/utils/string.dart';
  16. import 'package:shared_preferences/shared_preferences.dart';
  17.  
  18. class AjuanViewModel with ChangeNotifier {
  19.   DocumentStatus documentStatus = DocumentStatus.TERLAKSANA;
  20.   bool isReq = true;
  21.   bool isReqError = false;
  22.   //ToDO: Create list pinjaman
  23.   List<Pinjaman> PinjamanList = List();
  24.   List<Pinjaman> PinjamanListAll = List();
  25.   ScrollController controller;
  26.   int dataToView = 4;
  27.   int currentIndex = 0;
  28.   String startDate = "Select Date";
  29.   String endDate = "Select Date";
  30.   String documentNo = "Document No";
  31.   bool isFilter= false;
  32.   Koperasi dataKoperasi;
  33.  
  34.   loadMore(){
  35.     currentIndex = currentIndex + dataToView;
  36.     if(currentIndex < PinjamanListAll.length){
  37.       setListToDisplay(PinjamanListAll, currentIndex);
  38.     }
  39.     notifyListeners();
  40.   }
  41.  
  42.   getPinjamanList() async {
  43.     isReq = true;
  44.  
  45.     dataKoperasi = await getKoperasiToken();
  46.     String url = BASE_URL + API_LIST_PENGAJUAN_PINJAMAN
  47.         + "?kode_koperasi="+ dataKoperasi.kode_koperasi + "&no_anggota=" + dataKoperasi.no_anggota;
  48.     if (isFilter){
  49.       url = url + "?status_pengajuan="+StatusDocument(documentStatus).getName();
  50.     }
  51.     print(url);
  52.     var response = await http.get(url,
  53.       headers: {"Authorization":dataKoperasi.api_key == "" ? "your-api-key" : dataKoperasi.api_key}, )
  54.         .catchError((error) {
  55.           isReqError = true;
  56.           return;
  57.     });
  58.  
  59.     if (response.body != null) {
  60.       isReq = false;
  61.       print(response.body);
  62.       if (response.statusCode == 200) {
  63.         Iterable res = json.decode(response.body);
  64.         print(res);
  65.         PinjamanResponse PinjamanListResponse = PinjamanResponse.fromJsonMap(res);
  66.         setDataList(PinjamanListResponse.ListPinjaman);
  67.  
  68.       }
  69.     }else{
  70.       this.PinjamanList = new List();
  71.     }
  72.  
  73.     notifyListeners();
  74.   }
  75.  
  76.   setDataList(List<Pinjaman> data){
  77.     data.forEach((element) {
  78.       FlutterMoneyFormatter fmf = new FlutterMoneyFormatter(
  79.           amount: double.parse(element.total_pinjaman.toString()),
  80.           settings: MoneyFormatterSettings(
  81.               symbol: 'Rp',
  82.               thousandSeparator: '.',
  83.               decimalSeparator: ',',
  84.               symbolAndNumberSeparator: ' ',
  85.               fractionDigits: 0,
  86.               compactFormatType: CompactFormatType.short
  87.           )
  88.       );
  89.       print(double.parse(element.total_pinjaman.toString()));
  90.       print(fmf.output.symbolOnLeft);
  91.       element.total_pinjam_display = fmf.output.symbolOnLeft;
  92.     });
  93.  
  94.     this.PinjamanList.addAll(data);
  95.     notifyListeners();
  96.   }
  97.  
  98.   setListToDisplay(List<Pinjaman> data, int index){
  99.     if(index+dataToView-1 < PinjamanListAll.length){
  100.       PinjamanList.addAll(data.sublist(index, index+dataToView-1));
  101.     }
  102.     notifyListeners();
  103.   }
  104.  
  105.   setDefault() {
  106.     PinjamanList.clear();
  107.     getPinjamanList();
  108.     notifyListeners();
  109.   }
  110.  
  111.   _loadMore() {
  112.     if (controller.offset >= controller.position.maxScrollExtent &&
  113.         !controller.position.outOfRange) {
  114.       loadMore();
  115.     }
  116.   }
  117.  
  118.   AjuanViewModel(){
  119.     WidgetsBinding.instance.addPostFrameCallback((_) {
  120.       this.getPinjamanList();
  121.     });
  122.  
  123.   }
  124.  
  125. }

Replies to Untitled rss

Title Name Language When
Re: Untitled Paltry Terrapin dart 3 Years ago.