import 'package:kopralapp/master/filter_document.dart'; import 'package:kopralapp/models/pinjaman_model/pinjaman.dart'; import 'package:kopralapp/provider/ajuan_model/ajuan_screen_view_model.dart'; import 'package:kopralapp/screens/ajuan_screen/create_ajuan_screen/create_ajuan_screen.dart'; import 'package:kopralapp/utils/document_status.dart'; import 'package:kopralapp/utils/myDialog.dart'; import 'package:kopralapp/utils/widget_assets.dart'; import 'package:provider/provider.dart'; import 'package:flutter/material.dart'; class AjuanScreen extends StatelessWidget { _filter(ajuanModel, BuildContext context) { showModalBottomSheet( context: context, isScrollControlled: true, builder: (c) => FilterDocument(ajuanModel.documentStatus,(filterParam) { Navigator.pop(context); ajuanModel.PinjamanList.clear(); ajuanModel.documentStatus = filterParam.documentStatus; ajuanModel.isReq = true; ajuanModel.isFilter= true; ajuanModel.getPinjamanList(); }) ); } _item(Pinjaman data, BuildContext context) { return Container( height: 215, decoration: new BoxDecoration( 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)), ], ), ), ), ); } _loading(BuildContext context) { return Loading(context).show(); } _noData() { 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.PinjamanList.length, ); } @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.PinjamanList.isEmpty ? _loading(context) : !ajuanModel.isReq && ajuanModel.PinjamanList.isEmpty ? _noData() : _data(ajuanModel, context), ), onRefresh: (){ _loading(context); ajuanModel.setDefault(); print("iki melbu refresh"); return ajuanModel.isReq ? Future.value(null) : null; }, )); }, ), ); } }