Commit dbead1a0 authored by Izol's avatar Izol

Simply #2

parent b3caf093
......@@ -24,7 +24,10 @@ class StartService {
String prevBalance,
String cardNumber,
String getRegDb,
String amount) async {
String amount,
String outletId,
String persoReff
) async {
var result;
try {
result = await platform.invokeMethod("topup_inquiry", <String, dynamic>{
......@@ -33,6 +36,8 @@ class StartService {
'card_number': cardNumber,
'get_reg_db': getRegDb,
'amount': amount,
'outlet_id': outletId,
"perso_reff": persoReff
});
} catch (error) {
result = error.toString();
......
......@@ -98,7 +98,6 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
deposit,
cardNumber,
name,
getRegDb,
lastBalance,
approvalCode,
amount,
......@@ -112,7 +111,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
Map<String, dynamic>? dataQris;
var countMax = 0;
String? prevBalance, maskedText;
String? prevBalance, maskedText,getRegDb;
String subPhone = "";
var trxId = "";
......@@ -336,6 +335,9 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
Future<void> topUpInquiry(String outletName, var info) async {
var infoMap = jsonDecode(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();
prevInfoCard = info;
prevBalance = infoMap["balance"].toString();
......@@ -355,7 +357,7 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
});
amount = amountController!.text.replaceAll(",", "").toString();
var responseInquiry = await StartService.topupInquiryResponse(
outletName, prevBalance!, cardNumber, getRegDb, amount);
outletName, prevBalance!, cardNumber, getRegDb!, amount, outletId, persoReff);
var infoInquiry = jsonDecode(responseInquiry);
var name = infoMap["name"].toString().trim();
......@@ -870,16 +872,78 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
int _maxDuration = int.parse(PreferencesHelper.getString("idle"));
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() {
int duration = int.parse(idle);
idleDuration.value =
duration; // set nilai awal untuk idleDuration// ubah string idle menjadi integer
idleDuration.value = duration; // set nilai awal untuk idleDuration
int count = 0; // tambahkan variabel untuk menghitung durasi
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");
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) {
// jika idleDuration sudah habis dan dialog tidak sedang ditampilkan
isShowingDialog = true;
......@@ -890,6 +954,8 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
});
}
void tapDial() async {
Future.delayed(const Duration(milliseconds: 500), () async {
var isTap = await StartService.getCard();
......@@ -2400,8 +2466,6 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
],
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
......@@ -2409,54 +2473,53 @@ class _HomePageState extends State<HomePage> implements AlertDialogCallback {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextButton(
onPressed: () {
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);
});
},
child: const HomeServices(
iconUrl: 'assets/ic_topup.png',
title: 'Isi Ulang',
subtitle: " topup balance",
),
),
// TextButton(
// onPressed: () {
// 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);
// });
// },
// child: const HomeServices(
// iconUrl: 'assets/ic_topup.png',
// title: 'Isi Ulang',
// subtitle: " topup balance",
// ),
// ),
TextButton(
onPressed: () {
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