Commit dbead1a0 authored by Izol's avatar Izol

Simply #2

parent b3caf093
...@@ -24,7 +24,10 @@ class StartService { ...@@ -24,7 +24,10 @@ class StartService {
String prevBalance, String prevBalance,
String cardNumber, String cardNumber,
String getRegDb, String getRegDb,
String amount) async { String amount,
String outletId,
String persoReff
) async {
var result; var result;
try { try {
result = await platform.invokeMethod("topup_inquiry", <String, dynamic>{ result = await platform.invokeMethod("topup_inquiry", <String, dynamic>{
...@@ -33,6 +36,8 @@ class StartService { ...@@ -33,6 +36,8 @@ class StartService {
'card_number': cardNumber, 'card_number': cardNumber,
'get_reg_db': getRegDb, 'get_reg_db': getRegDb,
'amount': amount, 'amount': amount,
'outlet_id': outletId,
"perso_reff": persoReff
}); });
} catch (error) { } catch (error) {
result = error.toString(); result = error.toString();
......
...@@ -98,7 +98,6 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -98,7 +98,6 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
deposit, deposit,
cardNumber, cardNumber,
name, name,
getRegDb,
lastBalance, lastBalance,
approvalCode, approvalCode,
amount, amount,
...@@ -112,7 +111,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -112,7 +111,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
Map<String, dynamic>? dataQris; Map<String, dynamic>? dataQris;
var countMax = 0; var countMax = 0;
String? prevBalance, maskedText; String? prevBalance, maskedText,getRegDb;
String subPhone = ""; String subPhone = "";
var trxId = ""; var trxId = "";
...@@ -336,6 +335,9 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -336,6 +335,9 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
Future<void> topUpInquiry(String outletName, var info) async { Future<void> topUpInquiry(String outletName, var info) async {
var infoMap = jsonDecode(info); var infoMap = jsonDecode(info);
print('topUpInquiry info:$info'); print('topUpInquiry info:$info');
String outletId = PreferencesHelper.getString('outletname');
String persoReff = infoMap['regDb'];
outletId = outletId.substring(outletId.length - 4);
outletName = PreferencesHelper.getString('outletname').toString(); outletName = PreferencesHelper.getString('outletname').toString();
prevInfoCard = info; prevInfoCard = info;
prevBalance = infoMap["balance"].toString(); prevBalance = infoMap["balance"].toString();
...@@ -355,7 +357,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -355,7 +357,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
}); });
amount = amountController!.text.replaceAll(",", "").toString(); amount = amountController!.text.replaceAll(",", "").toString();
var responseInquiry = await StartService.topupInquiryResponse( var responseInquiry = await StartService.topupInquiryResponse(
outletName, prevBalance!, cardNumber, getRegDb, amount); outletName, prevBalance!, cardNumber, getRegDb!, amount, outletId, persoReff);
var infoInquiry = jsonDecode(responseInquiry); var infoInquiry = jsonDecode(responseInquiry);
var name = infoMap["name"].toString().trim(); var name = infoMap["name"].toString().trim();
...@@ -870,16 +872,78 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -870,16 +872,78 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
int _maxDuration = int.parse(PreferencesHelper.getString("idle")); int _maxDuration = int.parse(PreferencesHelper.getString("idle"));
late ValueNotifier<int> idleDuration; late ValueNotifier<int> idleDuration;
// void tapIdle() {
// int duration = int.parse(idle);
// idleDuration.value =
// duration; // set nilai awal untuk idleDuration// ubah string idle menjadi integer
// timer = Timer.periodic(Duration(seconds: 1), (timer) {
// // set timer dengan durasi 1 detik
// duration -= 1;
// idleDuration.value = duration; // set nilai baru untuk idleDuration
// // print("ini pesan waktu idle : $idleDuration");
// // print("isShowingdialog : $isShowingDialog");
// if (duration == 0 && !isShowingDialog) {
// // jika idleDuration sudah habis dan dialog tidak sedang ditampilkan
// isShowingDialog = true;
// timer?.cancel();
// _showTap();
// tapDial();
// }
// });
// }
void tapIdle() { void tapIdle() {
int duration = int.parse(idle); int duration = int.parse(idle);
idleDuration.value = idleDuration.value = duration; // set nilai awal untuk idleDuration
duration; // set nilai awal untuk idleDuration// ubah string idle menjadi integer int count = 0; // tambahkan variabel untuk menghitung durasi
timer = Timer.periodic(Duration(seconds: 1), (timer) { timer = Timer.periodic(Duration(seconds: 1), (timer) {
// set timer dengan durasi 1 detik // set timer dengan durasi 1 detik
duration -= 1; duration -= 1;
idleDuration.value = duration; // set nilai baru untuk idleDuration idleDuration.value = duration; // set nilai baru untuk idleDuration
// print("ini pesan waktu idle : $idleDuration"); // print("ini pesan waktu idle : $idleDuration");
// print("isShowingdialog : $isShowingDialog"); // print("isShowingdialog : $isShowingDialog");
count += 1; // tambahkan hitungan durasi setiap detik
if (count == 3 && !isShowingDialog) {
// jika durasi sudah mencapai 3 detik dan dialog tidak sedang ditampilkan
isShowingDialog = true;
if (timer != null) timer?.cancel();
tapIdle();
amountController?.clear();
var infoMap = jsonDecode(infoCard);
plainCardExpirity = infoMap['cardExpirity'];
var change = DateTime.fromMillisecondsSinceEpoch(
int.parse(infoMap['cardExpirity']) * 1000,
);
dateTimeCardExpirity = change;
final DateFormat formatter = DateFormat('dd-MMM-yyyy');
cardExpirity = formatter.format(change);
deposit = CurrencyFormat.convertToIdr(infoMap["deposit"], 2);
cardNumber = infoMap["cardNumber"];
String outletName = PreferencesHelper.getString('outlet_name');
countMax += 1;
String nilaiTap = PreferencesHelper.getString('maxTap');
String newCardNumber = infoMap["cardNumber"];
AwesomeDialog(
context: context,
dialogType: DialogType.info,
animType: AnimType.rightSlide,
dismissOnTouchOutside: false,
autoHide: Duration(seconds: 2),
headerAnimationLoop: true,
title: 'Mohon Tunggu Sebentar ...',
titleTextStyle: blackTextStyle.copyWith(
fontSize: 20,
fontWeight: bold,
),
desc: "Please wait a moment ...",
descTextStyle: greyTextStyle.copyWith(
fontSize: 18,
fontWeight: light,
),
).show().then((value) {
denom(outletName, infoCard);
});
}
if (duration == 0 && !isShowingDialog) { if (duration == 0 && !isShowingDialog) {
// jika idleDuration sudah habis dan dialog tidak sedang ditampilkan // jika idleDuration sudah habis dan dialog tidak sedang ditampilkan
isShowingDialog = true; isShowingDialog = true;
...@@ -890,6 +954,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -890,6 +954,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
}); });
} }
void tapDial() async { void tapDial() async {
Future.delayed(const Duration(milliseconds: 500), () async { Future.delayed(const Duration(milliseconds: 500), () async {
var isTap = await StartService.getCard(); var isTap = await StartService.getCard();
...@@ -2400,8 +2466,6 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2400,8 +2466,6 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
], ],
), ),
), ),
Column( Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
...@@ -2409,54 +2473,53 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback { ...@@ -2409,54 +2473,53 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
TextButton( // TextButton(
onPressed: () { // onPressed: () {
isShowingDialog = true; // isShowingDialog = true;
if (timer != null) timer?.cancel(); // if (timer != null) timer?.cancel();
tapIdle(); // tapIdle();
amountController?.clear(); // amountController?.clear();
var infoMap = jsonDecode(infoCard); // var infoMap = jsonDecode(infoCard);
plainCardExpirity = infoMap['cardExpirity']; // plainCardExpirity = infoMap['cardExpirity'];
var change = DateTime.fromMillisecondsSinceEpoch( // var change = DateTime.fromMillisecondsSinceEpoch(
int.parse(infoMap['cardExpirity']) * 1000, // int.parse(infoMap['cardExpirity']) * 1000,
); // );
dateTimeCardExpirity = change; // dateTimeCardExpirity = change;
final DateFormat formatter = DateFormat('dd-MMM-yyyy'); // final DateFormat formatter = DateFormat('dd-MMM-yyyy');
cardExpirity = formatter.format(change); // cardExpirity = formatter.format(change);
deposit = CurrencyFormat.convertToIdr(infoMap["deposit"], 2); // deposit = CurrencyFormat.convertToIdr(infoMap["deposit"], 2);
cardNumber = infoMap["cardNumber"]; // cardNumber = infoMap["cardNumber"];
String outletName = PreferencesHelper.getString('outlet_name'); // String outletName = PreferencesHelper.getString('outlet_name');
countMax += 1; // countMax += 1;
String nilaiTap = PreferencesHelper.getString('maxTap'); // String nilaiTap = PreferencesHelper.getString('maxTap');
String newCardNumber = infoMap["cardNumber"]; // String newCardNumber = infoMap["cardNumber"];
AwesomeDialog( // AwesomeDialog(
context: context, // context: context,
dialogType: DialogType.info, // dialogType: DialogType.info,
animType: AnimType.rightSlide, // animType: AnimType.rightSlide,
dismissOnTouchOutside: false, // dismissOnTouchOutside: false,
autoHide: Duration(seconds: 2), // autoHide: Duration(seconds: 2),
headerAnimationLoop: true, // headerAnimationLoop: true,
title: 'Mohon Tunggu Sebentar ...', // title: 'Mohon Tunggu Sebentar ...',
titleTextStyle: blackTextStyle.copyWith( // titleTextStyle: blackTextStyle.copyWith(
fontSize: 20, // fontSize: 20,
fontWeight: bold, // fontWeight: bold,
), // ),
desc: "Please wait a moment ...", // desc: "Please wait a moment ...",
descTextStyle: greyTextStyle.copyWith( // descTextStyle: greyTextStyle.copyWith(
fontSize: 18, // fontSize: 18,
fontWeight: light, // fontWeight: light,
), // ),
).show().then((value) { // ).show().then((value) {
denom(outletName, infoCard); // denom(outletName, infoCard);
}); // });
}, // },
child: const HomeServices( // child: const HomeServices(
iconUrl: 'assets/ic_topup.png', // iconUrl: 'assets/ic_topup.png',
title: 'Isi Ulang', // title: 'Isi Ulang',
subtitle: " topup balance", // subtitle: " topup balance",
), // ),
), // ),
TextButton( TextButton(
onPressed: () { onPressed: () {
timer?.cancel(); timer?.cancel();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment