From 41ecbc00652f2307debfcfa24597ac5a0f2ed24e Mon Sep 17 00:00:00 2001 From: kicap Date: Mon, 13 Nov 2023 18:33:06 +0800 Subject: [PATCH] slight changes --- .../dana_sosial_admin_view.dart | 58 ++++++++++----- .../dana_sosial_admin_view_model.dart | 74 ++++++++++++++++++- .../data_siswa/data_siswa_view.dart | 2 +- .../data_siswa/data_siswa_view_model.dart | 18 +++++ .../edit_dialog_siswa_view.dart | 1 + .../edit_siswa/edit_siswa_view.dart | 4 +- .../detail_dana_sosial_view.dart | 6 +- macos/Flutter/GeneratedPluginRegistrant.swift | 2 - pubspec.lock | 24 ------ pubspec.yaml | 2 +- 10 files changed, 139 insertions(+), 52 deletions(-) diff --git a/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view.dart b/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view.dart index efbd19d..638ff9d 100644 --- a/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view.dart +++ b/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view.dart @@ -67,7 +67,7 @@ class DanaSosialAdminView extends StatelessWidget { ), ), Text( - 'Rp. 1.000.000', + 'Rp. ${OtherFunction().commaFormat(model.jumlahDonasi)}', style: regularTextStyle.copyWith( color: Colors.white, fontSize: 15, @@ -229,23 +229,47 @@ class TheData extends ViewModelWidget { trailing: viewModel.isLogin == null ? null : (viewModel.isLogin == true - ? Container( - width: 50, - height: 50, - decoration: BoxDecoration( - color: mainColor, - borderRadius: BorderRadius.circular(50), - ), - child: IconButton( - onPressed: () { - viewModel.goToEditDanaSosial(int.parse(viewModel - .danaSosialModelList[index].idDanaSosial!)); - }, - icon: const Icon( - Icons.edit, - color: Colors.white, + ? Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 50, + height: 50, + decoration: BoxDecoration( + color: mainColor, + borderRadius: BorderRadius.circular(50), + ), + child: IconButton( + onPressed: () { + viewModel.goToEditDanaSosial(int.parse(viewModel + .danaSosialModelList[index].idDanaSosial!)); + }, + icon: const Icon( + Icons.edit, + color: Colors.white, + ), + ), ), - ), + const SizedBox(width: 10), + Container( + width: 50, + height: 50, + decoration: BoxDecoration( + color: Colors.red, + borderRadius: BorderRadius.circular(50), + ), + child: IconButton( + onPressed: () { + viewModel.deleteData(int.parse(viewModel + .danaSosialModelList[index].idDanaSosial!)); + }, + icon: const Icon( + Icons.delete, + color: Colors.white, + ), + ), + ), + ], ) : null), ), diff --git a/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view_model.dart b/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view_model.dart index 09476c4..2d644a1 100644 --- a/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view_model.dart +++ b/lib/ui/views/admin_index_tracking/dana_sosial_admin/dana_sosial_admin_view_model.dart @@ -17,17 +17,45 @@ class DanaSosialAdminViewModel extends CustomBaseViewModel { final _httpService = locator(); final easyLoading = locator(); + int bulan = DateTime.now().month; + List danaSosialModelList = []; String? role; bool? isLogin; + int jumlahDonasi = 0; + Future init() async { await getData(); + await getJumlahDonasi(); prefs.then((SharedPreferences prefs) { role = prefs.getString('role'); isLogin = prefs.getBool('isLogin'); }); + // log.i(bulan); + } + + getJumlahDonasi() async { + setBusy(true); + easyLoading.showLoading(); + // get the month + var bulan = DateTime.now().month; + log.i(bulan); + // change bulan to string and add 0 if it is less than 10 + String bulanString = bulan.toString().length == 1 ? '0$bulan' : '$bulan'; + log.i(bulanString); + try { + var response = await _httpService.get('pemasukan?bulan=$bulanString'); + log.i(response.data['jumlah']); + // var theJumlahDonasi = response.data['jumlah']; + jumlahDonasi = response.data['jumlah']; + } catch (e) { + log.e(e); + } finally { + setBusy(false); + easyLoading.dismissLoading(); + } } getData() async { @@ -35,7 +63,7 @@ class DanaSosialAdminViewModel extends CustomBaseViewModel { easyLoading.showLoading(); try { var response = await _httpService.get('dana_sosial'); - log.i(response.data); + // log.i(response.data); danaSosialModelList = []; var datanya = response.data['data']; @@ -72,7 +100,7 @@ class DanaSosialAdminViewModel extends CustomBaseViewModel { 'filter_dana', formData, ); - log.i(response.data); + // log.i(response.data); danaSosialModelList = []; var datanya = response.data['data']; @@ -149,4 +177,46 @@ class DanaSosialAdminViewModel extends CustomBaseViewModel { ), ); } + + deleteData(int parse) async { + await dialogService + .showDialog( + title: 'Hapus Data', + description: 'Apakah anda yakin ingin menghapus data ini?', + buttonTitle: 'Hapus', + cancelTitle: 'Batal', + buttonTitleColor: Colors.red, + cancelTitleColor: Colors.green, + ) + .then( + (value) async { + if (value!.confirmed) { + easyLoading.showLoading(); + setBusy(true); + try { + var response = await _httpService.postWithFormData( + 'hapus_dana_sosial', + FormData.fromMap({ + 'id_dana_sosial': parse, + })); + log.i(response.data); + easyLoading.dismissLoading(); + easyLoading.showSuccess('Data berhasil dihapus'); + getData(); + getJumlahDonasi(); + } on DioError catch (e) { + // easyLoading.dismissLoading(); + log.e(e); + easyLoading.showError('Terjadi kesalahan'); + } finally { + setBusy(false); + easyLoading.dismissLoading(); + } + } else { + log.i('cancel'); + return; + } + }, + ); + } } diff --git a/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view.dart b/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view.dart index 10e367e..6efae95 100644 --- a/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view.dart +++ b/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view.dart @@ -51,7 +51,7 @@ class DataSiswaView extends StatelessWidget { ), ), Text( - '20 orang', + '${model.jumlahSiswa} orang', style: regularTextStyle.copyWith( color: Colors.white, fontSize: 15, diff --git a/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view_model.dart b/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view_model.dart index e6417b0..e2b434b 100644 --- a/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view_model.dart +++ b/lib/ui/views/admin_index_tracking/data_siswa/data_siswa_view_model.dart @@ -17,15 +17,33 @@ class DataSiswaViewModel extends CustomBaseViewModel { List siswaModelList = []; + int jumlahSiswa = 0; + String? role; Future init() async { await getData(); + await getJumlahSiswa(); prefs.then((SharedPreferences prefs) { role = prefs.getString('role'); }); } + getJumlahSiswa() async { + setBusy(true); + easyLoading.showLoading(); + try { + var response = await _httpService.get('jumlah_siswa'); + log.i(response.data['data']); + jumlahSiswa = int.parse(response.data['data']['jumlah']); + } catch (e) { + log.e(e); + } finally { + setBusy(false); + easyLoading.dismissLoading(); + } + } + getData() async { setBusy(true); easyLoading.showLoading(); diff --git a/lib/ui/views/admin_index_tracking/edit_siswa/edit_dialog_siswa/edit_dialog_siswa_view.dart b/lib/ui/views/admin_index_tracking/edit_siswa/edit_dialog_siswa/edit_dialog_siswa_view.dart index 5cfc9b4..6b6ed0d 100644 --- a/lib/ui/views/admin_index_tracking/edit_siswa/edit_dialog_siswa/edit_dialog_siswa_view.dart +++ b/lib/ui/views/admin_index_tracking/edit_siswa/edit_dialog_siswa/edit_dialog_siswa_view.dart @@ -286,6 +286,7 @@ class EditDialogSiswaView extends StatelessWidget { bool res = await model.updateSiswa(); if (res) { + // ignore: use_build_context_synchronously Navigator.pop(context); completer(DialogResponse(confirmed: true)); } diff --git a/lib/ui/views/admin_index_tracking/edit_siswa/edit_siswa_view.dart b/lib/ui/views/admin_index_tracking/edit_siswa/edit_siswa_view.dart index c00d8a2..7c6d30a 100644 --- a/lib/ui/views/admin_index_tracking/edit_siswa/edit_siswa_view.dart +++ b/lib/ui/views/admin_index_tracking/edit_siswa/edit_siswa_view.dart @@ -252,7 +252,7 @@ class EditSiswaView extends StatelessWidget { ), ), ) - : SizedBox(), + : const SizedBox(), model.role == 'admin' ? Positioned( top: 0, @@ -299,7 +299,7 @@ class EditSiswaView extends StatelessWidget { ), ), ) - : SizedBox(), + : const SizedBox(), ], ), ), diff --git a/lib/ui/views/detail_dana_sosial/detail_dana_sosial_view.dart b/lib/ui/views/detail_dana_sosial/detail_dana_sosial_view.dart index 13cbff0..fee79e2 100644 --- a/lib/ui/views/detail_dana_sosial/detail_dana_sosial_view.dart +++ b/lib/ui/views/detail_dana_sosial/detail_dana_sosial_view.dart @@ -33,12 +33,12 @@ class DetailDanaSosialView extends StatelessWidget { body: Padding( padding: const EdgeInsets.all(15), child: model.danaSosialModel == null - ? Center( + ? const Center( child: CircularProgressIndicator(), ) : (model.danaSosialModel!.bentuk == 'Pemasukan' - ? PemasukanWidget() - : PengeluaranWidget()), + ? const PemasukanWidget() + : const PengeluaranWidget()), ), ); }, diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 93e0730..b8e2b22 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,12 +5,10 @@ import FlutterMacOS import Foundation -import location import path_provider_foundation import shared_preferences_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 2d59ce5..c8cb5d8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -464,30 +464,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" - location: - dependency: "direct main" - description: - name: location - sha256: "9051959f6f2ccadd887b28b66e9cbbcc25b6838e37cf9e894c421ccc0ebf80b5" - url: "https://pub.dev" - source: hosted - version: "4.4.0" - location_platform_interface: - dependency: transitive - description: - name: location_platform_interface - sha256: "62eeaf1658e92e4459b727f55a3c328eccbac8ba043fa6d262ac5286ad48384c" - url: "https://pub.dev" - source: hosted - version: "2.3.0" - location_web: - dependency: transitive - description: - name: location_web - sha256: "6c08c408a040534c0269c4ff9fe17eebb5a36dea16512fbaf116b9c8bc21545b" - url: "https://pub.dev" - source: hosted - version: "3.1.1" logger: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index d2ca1c7..483a173 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -42,7 +42,7 @@ dependencies: path_provider: ^2.0.9 dio: flutter_easyloading: - location: ^4.4.0 + # location: ^4.4.0 google_fonts: flutter_svg: stylish_bottom_bar: ^1.0.0