import
import 'dart:ffi';
import 'package:flutter_money_formatter/flutter_money_formatter.
import 'package:flutter/material.dart';
import 'package:kopralapp/master/get_koperasi_data.dart';
import 'package:kopralapp/models/auth_model/user_auth.dart';
import
import 'package:kopralapp/screens/ajuan_screen/ajuan_screen.dart';
import 'package:kopralapp/utils/document_status.dart';
import 'package:kopralapp/utils/myDialog.dart';
import
import
import 'package:flutter/material.dart';
class
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (c) => FilterDocument(ajuanModel.documentStatus,(filterParam) {
Navigator.pop(context);
ajuanModel.PinjamanList.clear();
ajuanModel.documentStatus =
bool
ajuanModel.isReq =
bool isReqError = false;
//ToDO: Create list pinjaman
List
List
ScrollController controller;
int dataToView = 4;
int currentIndex = 0;
String startDate = "Select Date";
String endDate = "Select Date";
String documentNo = "Document No";
bool
ajuanModel.isFilter=
Koperasi dataKoperasi;
loadMore(){
currentIndex = currentIndex + dataToView;
if(currentIndex < PinjamanListAll.length){
setListToDisplay(PinjamanListAll, currentIndex);
}
notifyListeners();
ajuanModel.getPinjamanList();
})
);
}
dataKoperasi = await getKoperasiToken();
String url = BASE_URL + API_LIST_PENGAJUAN_PINJAMAN
+ "?kode_koperasi="+ dataKoperasi.kode_koperasi + "&no_anggota=" + dataKoperasi.no_anggota;
if (isFilter){
url = url + "?status_pengajuan="+StatusDocument(documentStatus).getName();
}
print(url);
var response = await http.get(url,
headers: {"Authorization":dataKoperasi.api_key == "" ? "your-api-key" : dataKoperasi.api_key}, )
.catchError((error) {
isReqError = true;
return;
});
if (response.body != null) {
isReq = false;
print(response.body);
if (response.statusCode == 200) {
Iterable res = json.decode(response.body);
print(res);
PinjamanResponse PinjamanListResponse = PinjamanResponse.fromJsonMap(res);
setDataList(PinjamanListResponse.ListPinjaman);
}
}else{
this.PinjamanList =
height: 215,
decoration: new
}
notifyListeners();
boxShadow: [
new BoxShadow(
color: Colors.grey,
blurRadius: 50.0,
),
],
),
child: Card(
shape: RoundedRectangleBorder(
// side: BorderSide(color: Colors.black, width: 1),
borderRadius: BorderRadius.circular(25),
),
child: Container(
padding: EdgeInsets.all(10.0),
child: Column(
children:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children:
Container(
width: MediaQuery.of(context).size.width,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children:
Text("Tanggal Ajuan",
style: TextStyle(fontFamily: "Title", fontSize: 15.0),
overflow: TextOverflow.ellipsis),
Text(data.status_pengajuan ?? "",
style: TextStyle(fontFamily: "Title", fontSize: 15.0, color: DocumentStatusColor().getColor(data.status_pengajuan)),
overflow: TextOverflow.ellipsis),
],
),
),
Container(
width: MediaQuery.of(context).size.width,
child: Text(
"19 mar 2019",
style: TextStyle(
fontFamily: "Subtitle",
fontSize: 15.0,
fontWeight: FontWeight.bold),
textAlign: TextAlign.left,
overflow: TextOverflow.ellipsis,
),
)
],
),
Padding(padding: EdgeInsets.only(top: 10.0)),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children:
Container(
width: MediaQuery.of(context).size.width,
child: Text("Tanggal Cair",
style: TextStyle(fontFamily: "Title", fontSize: 15.0),
overflow: TextOverflow.ellipsis),
),
Container(
width: MediaQuery.of(context).size.width,
child: Text(
"19 mar 2020",
style: TextStyle(
fontFamily: "Subtitle",
fontSize: 15.0,
fontWeight: FontWeight.bold),
textAlign: TextAlign.start,
overflow: TextOverflow.ellipsis,
),
)
],
),
Padding(padding: EdgeInsets.only(top: 10.0)),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children:
Container(
width: MediaQuery.of(context).size.width,
child: Text("Jenis",
style: TextStyle(fontFamily: "Title", fontSize: 15.0),
overflow: TextOverflow.ellipsis),
),
Container(
width: MediaQuery.of(context).size.width,
child: Text(
data.nama ?? "",
style: TextStyle(
fontFamily: "Subtitle",
fontSize: 15.0,
fontWeight: FontWeight.bold),
textAlign: TextAlign.start,
overflow: TextOverflow.ellipsis,
),
)
],
),
Padding(padding: EdgeInsets.only(top: 10.0)),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children:
Container(
width: MediaQuery.of(context).size.width,
child: Text("Nominal",
style: TextStyle(fontFamily: "Title", fontSize: 15.0),
overflow: TextOverflow.ellipsis),
),
Container(
width: MediaQuery.of(context).size.width,
child: Text(
data.total_pinjam_display,
style: TextStyle(
fontFamily: "Subtitle",
fontSize: 15.0,
fontWeight: FontWeight.bold),
textAlign: TextAlign.start,
overflow: TextOverflow.ellipsis,
),
)
],
),
Padding(padding: EdgeInsets.only(top: 10.0)),
],
),
),
),
);
data.forEach((element) {
FlutterMoneyFormatter fmf = new FlutterMoneyFormatter(
amount: double.parse(element.total_pinjaman.toString()),
settings: MoneyFormatterSettings(
symbol: 'Rp',
thousandSeparator: '.',
decimalSeparator: ',',
symbolAndNumberSeparator: ' ',
fractionDigits: 0,
compactFormatType: CompactFormatType.short
)
);
print(double.parse(element.total_pinjaman.toString()));
print(fmf.output.symbolOnLeft);
element.total_pinjam_display = fmf.output.symbolOnLeft;
});
this.PinjamanList.addAll(data);
notifyListeners();
return Loading(context).show();
}
if(index+dataToView-1 < PinjamanListAll.length){
return Container(
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children:
ownText("No Document", fontSize: 17.0, color: Colors.grey),
ownText("Tidak ada pengajuan",
fontSize: 12.0, color: Colors.grey),
],
),
),
);
}
_data(ajuanModel, BuildContext context) {
return ListView.builder(
physics: AlwaysScrollableScrollPhysics(),
controller: ajuanModel.isFilter? null : ajuanModel.controller,
itemBuilder: (c, i) => _item(ajuanModel.PinjamanList[i], context),
itemCount: ajuanModel.
}
notifyListeners();
}
setDefault()
);
}
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider
create: (context) => AjuanViewModel(),
child: Consumer
builder: (context, ajuanModel, child){
return Scaffold(
appBar: AppBar(
title: Text(
"Pengajuan Pinjaman",
style: TextStyle(fontFamily: "Title"),
),
actions:
IconButton(
onPressed: () {
Navigator.push(
context, MaterialPageRoute(
builder: (c) =>
AjuanAddScreen(
kodeKoperasi: ajuanModel.dataKoperasi
.kode_koperasi,
NoMember: ajuanModel.dataKoperasi.no_member,
NoAnggota: ajuanModel.dataKoperasi.no_anggota,)
)
);
},
icon: Icon(Icons.add),
),
IconButton(
onPressed: () => _filter(ajuanModel, context),
icon: Icon(Icons.filter_list),
)
],
),
body: RefreshIndicator(
child: Container(
margin: EdgeInsets.only(right: 8.0, left: 8.0, top: 10.0),
child: ajuanModel.isReq && ajuanModel.
getPinjamanList();
notifyListeners();
}
_loadMore() {
if (controller.offset >= controller.position.maxScrollExtent &&
!controller.position.outOfRange) {
loadMore();
}
}
AjuanViewModel(){
WidgetsBinding.instance.addPostFrameCallback((_) {
this.getPinjamanList();
});
}
),
onRefresh: (){
_loading(context);
ajuanModel.setDefault();
print("iki melbu refresh");
return ajuanModel.isReq ? Future.value(null) : null;
},
));
},
),
);
}
}