first commit

This commit is contained in:
benjibennn
2023-12-27 16:10:09 +08:00
commit 4f35362cf9
370 changed files with 108340 additions and 0 deletions

BIN
lib/bookkeeping/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,42 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_animations.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk1_widget.dart' show Bk1Widget;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk1Model extends FlutterModel<Bk1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_animations.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk2_widget.dart' show Bk2Widget;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk2Model extends FlutterModel<Bk2Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk3_widget.dart' show Bk3Widget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk3Model extends FlutterModel<Bk3Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
import '/backend/api_requests/api_calls.dart';
import '/components/alert_box_custom_widget.dart';
import '/components/appbar_widget.dart';
import '/components/emptylist_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_button_tabbar.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'bk4_widget.dart' show Bk4Widget;
import 'package:aligned_dialog/aligned_dialog.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk4Model extends FlutterModel<Bk4Widget> {
/// Local state fields for this page.
bool checkPermission26 = false;
bool checkPermission27 = false;
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Stores action output result for [Backend Call - API (Check role has permission)] action in bk4 widget.
ApiCallResponse? apiResult26;
// Stores action output result for [Backend Call - API (Check role has permission)] action in bk4 widget.
ApiCallResponse? apiResult27;
// State field(s) for TabBar widget.
TabController? tabBarController;
int get tabBarCurrentIndex =>
tabBarController != null ? tabBarController!.index : 0;
// Stores action output result for [Backend Call - API (View Document)] action in Container widget.
ApiCallResponse? apiResult4qr;
// Stores action output result for [Backend Call - API (View Document)] action in Container widget.
ApiCallResponse? apiResult8ni;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
tabBarController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,55 @@
import '/backend/api_requests/api_calls.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import '/flutterlib/upload_data.dart';
import 'bk41_widget.dart' show Bk41Widget;
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk41Model extends FlutterModel<Bk41Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
bool isDataUploading = false;
FFUploadedFile uploadedLocalFile =
FFUploadedFile(bytes: Uint8List.fromList([]));
// State field(s) for name widget.
FocusNode? nameFocusNode;
TextEditingController? nameController;
String? Function(BuildContext, String?)? nameControllerValidator;
// State field(s) for description widget.
FocusNode? descriptionFocusNode;
TextEditingController? descriptionController;
String? Function(BuildContext, String?)? descriptionControllerValidator;
// State field(s) for category widget.
String? categoryValue;
FormFieldController<String>? categoryValueController;
// Stores action output result for [Backend Call - API (Add Document)] action in Button widget.
ApiCallResponse? apiResultl9k;
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {
unfocusNode.dispose();
nameFocusNode?.dispose();
nameController?.dispose();
descriptionFocusNode?.dispose();
descriptionController?.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk42_widget.dart' show Bk42Widget;
import 'package:badges/badges.dart' as badges;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Bk42Model extends FlutterModel<Bk42Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
/// Initialization and disposal methods.
void initState(BuildContext context) {}
void dispose() {
unfocusNode.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,95 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk_checkout_widget.dart' show BkCheckoutWidget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BkCheckoutModel extends FlutterModel<BkCheckoutWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode1;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode2;
TextEditingController? textController2;
String? Function(BuildContext, String?)? textController2Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode3;
TextEditingController? textController3;
String? Function(BuildContext, String?)? textController3Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode4;
TextEditingController? textController4;
String? Function(BuildContext, String?)? textController4Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode5;
TextEditingController? textController5;
String? Function(BuildContext, String?)? textController5Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode6;
TextEditingController? textController6;
String? Function(BuildContext, String?)? textController6Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode7;
TextEditingController? textController7;
String? Function(BuildContext, String?)? textController7Validator;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode8;
TextEditingController? textController8;
String? Function(BuildContext, String?)? textController8Validator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode1?.dispose();
textController1?.dispose();
textFieldFocusNode2?.dispose();
textController2?.dispose();
textFieldFocusNode3?.dispose();
textController3?.dispose();
textFieldFocusNode4?.dispose();
textController4?.dispose();
textFieldFocusNode5?.dispose();
textController5?.dispose();
textFieldFocusNode6?.dispose();
textController6?.dispose();
textFieldFocusNode7?.dispose();
textController7?.dispose();
textFieldFocusNode8?.dispose();
textController8?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk_checkout1_widget.dart' show BkCheckout1Widget;
import 'package:styled_divider/styled_divider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BkCheckout1Model extends FlutterModel<BkCheckout1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'bk_view_widget.dart' show BkViewWidget;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class BkViewModel extends FlutterModel<BkViewWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

View File

@@ -0,0 +1,174 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'bk_view_model.dart';
export 'bk_view_model.dart';
class BkViewWidget extends StatefulWidget {
const BkViewWidget({
Key? key,
required this.fileUrl,
}) : super(key: key);
final dynamic fileUrl;
@override
_BkViewWidgetState createState() => _BkViewWidgetState();
}
class _BkViewWidgetState extends State<BkViewWidget> {
late BkViewModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => BkViewModel());
}
@override
void dispose() {
_model.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
: FocusScope.of(context).unfocus(),
child: Scaffold(
key: scaffoldKey,
backgroundColor: FlutterTheme.of(context).primaryBackground,
appBar: PreferredSize(
preferredSize: Size.fromHeight(0.0),
child: AppBar(
backgroundColor: Color(0xFFE7E36B),
automaticallyImplyLeading: false,
actions: [],
centerTitle: false,
elevation: 0.0,
),
),
body: SafeArea(
top: true,
child: Stack(
children: [
Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Container(
width: 390.0,
height: 546.0,
decoration: BoxDecoration(
color: Color(0xFFCECECE),
),
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Align(
alignment:
AlignmentDirectional(1.0, 0.0),
child: Padding(
padding:
EdgeInsetsDirectional.fromSTEB(
0.0, 5.0, 5.0, 0.0),
child: FlutterIconButton(
borderRadius: 20.0,
borderWidth: 1.0,
buttonSize: 40.0,
fillColor: Color(0xFF9B0025),
icon: Icon(
Icons.close,
color: Color(0xFFE8E8E8),
size: 26.0,
),
onPressed: () async {
context.safePop();
},
),
),
),
),
],
),
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.network(
widget.fileUrl!.toString(),
width: 300.0,
height: 200.0,
fit: BoxFit.contain,
alignment: Alignment(0.0, 0.0),
),
),
),
),
],
),
),
),
),
),
],
),
),
Align(
alignment: AlignmentDirectional(0.0, 1.0),
child: wrapWithModel(
model: _model.navBar1Model,
updateCallback: () => setState(() {}),
child: NavBar1Widget(),
),
),
Align(
alignment: AlignmentDirectional(0.0, -1.0),
child: wrapWithModel(
model: _model.appbarModel,
updateCallback: () => setState(() {}),
child: AppbarWidget(),
),
),
],
),
),
),
);
}
}

View File

@@ -0,0 +1,64 @@
import '/backend/api_requests/api_calls.dart';
import '/components/appbar_widget.dart';
import '/components/emptylist_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import '/flutterlib/custom_functions.dart' as functions;
import 'search1_widget.dart' show Search1Widget;
import 'package:easy_debounce/easy_debounce.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class Search1Model extends FlutterModel<Search1Widget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode;
TextEditingController? textController;
String? Function(BuildContext, String?)? textControllerValidator;
// State field(s) for DropDown widget.
String? dropDownValue;
FormFieldController<String>? dropDownValueController;
// State field(s) for CheckboxListTile widget.
bool? checkboxListTileValue;
// State field(s) for Checkbox widget.
Map<dynamic, bool> checkboxValueMap = {};
List<dynamic> get checkboxCheckedItems =>
checkboxValueMap.entries.where((e) => e.value).map((e) => e.key).toList();
// Stores action output result for [Backend Call - API (View Document)] action in Container widget.
ApiCallResponse? apiResultr1v;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode?.dispose();
textController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,89 @@
import '/components/appbar_widget.dart';
import '/components/nav_bar1_widget.dart';
import '/flutterlib/flutter_drop_down.dart';
import '/flutterlib/flutter_icon_button.dart';
import '/flutterlib/flutter_theme.dart';
import '/flutterlib/flutter_util.dart';
import '/flutterlib/flutter_widgets.dart';
import '/flutterlib/form_field_controller.dart';
import 'search_page_widget.dart' show SearchPageWidget;
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
class SearchPageModel extends FlutterModel<SearchPageWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// State field(s) for DropDown widget.
String? dropDownValue1;
FormFieldController<String>? dropDownValueController1;
// State field(s) for status widget.
String? statusValue;
FormFieldController<String>? statusValueController;
// State field(s) for TextField widget.
FocusNode? textFieldFocusNode;
TextEditingController? textController1;
String? Function(BuildContext, String?)? textController1Validator;
// State field(s) for DropDown widget.
String? dropDownValue2;
FormFieldController<String>? dropDownValueController2;
// State field(s) for category_id122 widget.
String? categoryId122Value;
FormFieldController<String>? categoryId122ValueController;
// State field(s) for status122 widget.
String? status122Value;
FormFieldController<String>? status122ValueController;
// State field(s) for search122 widget.
FocusNode? search122FocusNode;
TextEditingController? search122Controller;
String? Function(BuildContext, String?)? search122ControllerValidator;
// State field(s) for fix_date122 widget.
String? fixDate122Value;
FormFieldController<String>? fixDate122ValueController;
DateTime? datePicked1;
// State field(s) for afterdate widget.
FocusNode? afterdateFocusNode;
TextEditingController? afterdateController;
String? Function(BuildContext, String?)? afterdateControllerValidator;
DateTime? datePicked2;
// State field(s) for beforedate widget.
FocusNode? beforedateFocusNode;
TextEditingController? beforedateController;
String? Function(BuildContext, String?)? beforedateControllerValidator;
// Model for NavBar1 component.
late NavBar1Model navBar1Model;
// Model for appbar component.
late AppbarModel appbarModel;
/// Initialization and disposal methods.
void initState(BuildContext context) {
navBar1Model = createModel(context, () => NavBar1Model());
appbarModel = createModel(context, () => AppbarModel());
}
void dispose() {
unfocusNode.dispose();
textFieldFocusNode?.dispose();
textController1?.dispose();
search122FocusNode?.dispose();
search122Controller?.dispose();
afterdateFocusNode?.dispose();
afterdateController?.dispose();
beforedateFocusNode?.dispose();
beforedateController?.dispose();
navBar1Model.dispose();
appbarModel.dispose();
}
/// Action blocks are added here.
/// Additional helper methods are added here.
}

File diff suppressed because it is too large Load Diff