Compare commits
3 commits
89fdcce613
...
621d2f1614
| Author | SHA1 | Date | |
|---|---|---|---|
| 621d2f1614 | |||
| 809cf7aa5f | |||
| 794edf902a |
6 changed files with 28 additions and 14 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:developer';
|
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||||
import 'package:dio_smart_retry/dio_smart_retry.dart';
|
import 'package:dio_smart_retry/dio_smart_retry.dart';
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
|
import 'package:ocbo_esign_mobile/blocs/qr/qr_bloc.dart';
|
||||||
import 'package:ocbo_esign_mobile/blocs/user/user_bloc.dart';
|
import 'package:ocbo_esign_mobile/blocs/user/user_bloc.dart';
|
||||||
import 'package:ocbo_esign_mobile/pages/approval_page.dart';
|
import 'package:ocbo_esign_mobile/pages/approval_page.dart';
|
||||||
import 'package:ocbo_esign_mobile/pages/index_page.dart';
|
import 'package:ocbo_esign_mobile/pages/index_page.dart';
|
||||||
|
|
@ -75,7 +76,10 @@ class MyApp extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MultiBlocProvider(
|
return MultiBlocProvider(
|
||||||
providers: [BlocProvider(create: (context) => UserBloc())],
|
providers: [
|
||||||
|
BlocProvider(create: (context) => UserBloc()),
|
||||||
|
BlocProvider(create: (context) => QrBloc()),
|
||||||
|
],
|
||||||
child: MaterialApp.router(
|
child: MaterialApp.router(
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
theme: ThemeData(useMaterial3: true),
|
theme: ThemeData(useMaterial3: true),
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import 'package:ocbo_esign_mobile/functions/get_api.dart';
|
||||||
import 'package:ocbo_esign_mobile/widgets/box_widget.dart';
|
import 'package:ocbo_esign_mobile/widgets/box_widget.dart';
|
||||||
import 'package:ocbo_esign_mobile/widgets/input_widget.dart';
|
import 'package:ocbo_esign_mobile/widgets/input_widget.dart';
|
||||||
import 'package:ocbo_esign_mobile/widgets/text_widget.dart';
|
import 'package:ocbo_esign_mobile/widgets/text_widget.dart';
|
||||||
|
import 'package:intl/intl.dart';
|
||||||
|
|
||||||
class ValidateDetailPage extends StatefulWidget {
|
class ValidateDetailPage extends StatefulWidget {
|
||||||
const ValidateDetailPage({super.key});
|
const ValidateDetailPage({super.key});
|
||||||
|
|
@ -17,18 +18,21 @@ class ValidateDetailPage extends StatefulWidget {
|
||||||
|
|
||||||
class _ValidateDetailPageState extends State<ValidateDetailPage> {
|
class _ValidateDetailPageState extends State<ValidateDetailPage> {
|
||||||
final _searchController = TextEditingController();
|
final _searchController = TextEditingController();
|
||||||
late double _total = 0;
|
late int _total = 0;
|
||||||
|
final NumberFormat formatter = NumberFormat('#,###.##');
|
||||||
|
|
||||||
void _getTotalSigned() async {
|
void _getTotalSigned() async {
|
||||||
final name = await blocGetQr(context);
|
final name = await blocGetQr(context);
|
||||||
final response = await getApi('get-transactions-count', name, null);
|
final responseCount = await getApi('get-transactions-count', name, null);
|
||||||
log(name.toString());
|
final total = responseCount['result'];
|
||||||
log(response.toString());
|
|
||||||
final total = response['result'];
|
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_total = double.parse(total);
|
_total = double.parse(total).toInt();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
final response = await getApi('get-transactions', name, null);
|
||||||
|
final applicationNoList = response['result'];
|
||||||
|
final dateList = response['result2'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -72,7 +76,7 @@ class _ValidateDetailPageState extends State<ValidateDetailPage> {
|
||||||
children: [
|
children: [
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
TextWidget(text: _total.toString(), size: 64, bold: true),
|
TextWidget(text: formatter.format(_total), size: 64, bold: true),
|
||||||
TextWidget(text: 'Total Signed Applications', size: 16),
|
TextWidget(text: 'Total Signed Applications', size: 16),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,6 @@ class _BarcodeScannerScreenState extends State<BarcodeScannerScreen> {
|
||||||
final qr = value.substring(35);
|
final qr = value.substring(35);
|
||||||
final response = await getApi('check-qr', qr, null);
|
final response = await getApi('check-qr', qr, null);
|
||||||
final result = response["result"]?.toString();
|
final result = response["result"]?.toString();
|
||||||
log('result: $result');
|
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|
@ -103,8 +102,7 @@ class _BarcodeScannerScreenState extends State<BarcodeScannerScreen> {
|
||||||
await blocSetQr(context, qrResult);
|
await blocSetQr(context, qrResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gotoDetails() async {
|
void gotoDetails() {
|
||||||
log('qr $qrResult');
|
|
||||||
updateBlockQr();
|
updateBlockQr();
|
||||||
context.push('/details');
|
context.push('/details');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
12
pubspec.lock
12
pubspec.lock
|
|
@ -29,10 +29,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: bloc
|
name: bloc
|
||||||
sha256: a2cebb899f91d36eeeaa55c7b20b5915db5a9df1b8fd4a3c9c825e22e474537d
|
sha256: a48653a82055a900b88cd35f92429f068c5a8057ae9b136d197b3d56c57efb81
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.1.0"
|
version: "9.2.0"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -304,6 +304,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.1"
|
||||||
|
intl:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: intl
|
||||||
|
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.20.2"
|
||||||
json_annotation:
|
json_annotation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ dependencies:
|
||||||
hashlib: ^2.2.0
|
hashlib: ^2.2.0
|
||||||
flutter_bloc: ^9.1.1
|
flutter_bloc: ^9.1.1
|
||||||
vibration: ^3.1.4
|
vibration: ^3.1.4
|
||||||
|
intl: ^0.20.2
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue