add pdf generator
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import 'package:fcs/domain/entities/carton.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/carton/model/carton_model.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import '../../../helpers/pdf.dart';
|
||||
import '../carton_info.dart';
|
||||
|
||||
class CartonListRow extends StatelessWidget {
|
||||
@@ -64,7 +67,11 @@ class CartonListRow extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(width: 15),
|
||||
IconButton(
|
||||
onPressed: () {}, icon: Icon(AntDesign.qrcode,color: Colors.black))
|
||||
onPressed: () {
|
||||
_pdf(box, context);
|
||||
},
|
||||
icon:
|
||||
Icon(AntDesign.qrcode, color: Colors.black))
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -100,4 +107,11 @@ class CartonListRow extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
_pdf(Carton carton, BuildContext context) async {
|
||||
Carton? c = await context.read<CartonModel>().getCarton(carton.id!);
|
||||
if (c == null) return;
|
||||
|
||||
generateCartonPdf(c);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class MainModel extends ChangeNotifier {
|
||||
|
||||
set setMessaginToken(token) {
|
||||
this.messagingToken = token;
|
||||
uploadMsgToken();
|
||||
_uploadMsgToken();
|
||||
}
|
||||
|
||||
Setting? setting;
|
||||
@@ -84,24 +84,50 @@ class MainModel extends ChangeNotifier {
|
||||
this.isFirstLaunch = await SharedPref.isFirstLaunch() ?? true;
|
||||
this.packageInfo = await PackageInfo.fromPlatform();
|
||||
|
||||
if (userListener != null) userListener!.cancel();
|
||||
userListener?.cancel();
|
||||
userListener =
|
||||
Services.instance.authService.getUserStream().listen((_user) {
|
||||
// if (_user != null) {
|
||||
// models.forEach((m) => m.initUser(_user));
|
||||
// // call diffPrivileges if privilege changed or first time login
|
||||
// if (this.user == null || _user.diffPrivileges(this.user!)) {
|
||||
// models.forEach((m) => m.privilegeChanged());
|
||||
// }
|
||||
// if (this.user == null) {
|
||||
// uploadMsgToken();
|
||||
// }
|
||||
// } else {
|
||||
// if (this.user != null) {
|
||||
// models.forEach((m) => m.logout());
|
||||
// }
|
||||
// }
|
||||
// this.user = _user;
|
||||
// isLoaded = true;
|
||||
|
||||
bool isFirstTime = user == null && _user != null;
|
||||
bool diffPrivilege =
|
||||
_user != null && (user == null || user!.diffPrivileges(_user));
|
||||
bool loggingOut = user != null && _user == null;
|
||||
user = _user;
|
||||
|
||||
if (_user != null) {
|
||||
models.forEach((m) => m.initUser(_user));
|
||||
// call diffPrivileges if privilege changed or first time login
|
||||
if (this.user == null || _user.diffPrivileges(this.user!)) {
|
||||
models.forEach((m) => m.privilegeChanged());
|
||||
}
|
||||
if (this.user == null) {
|
||||
uploadMsgToken();
|
||||
}
|
||||
} else {
|
||||
if (this.user != null) {
|
||||
models.forEach((m) => m.logout());
|
||||
for (final m in models) {
|
||||
m.initUser(_user);
|
||||
if (diffPrivilege) {
|
||||
m.privilegeChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
this.user = _user;
|
||||
if (loggingOut) {
|
||||
for (final m in models) {
|
||||
m.logout();
|
||||
}
|
||||
}
|
||||
|
||||
if (isFirstTime) {
|
||||
_uploadMsgToken();
|
||||
}
|
||||
|
||||
isLoaded = true;
|
||||
notifyListeners();
|
||||
});
|
||||
@@ -136,20 +162,23 @@ class MainModel extends ChangeNotifier {
|
||||
return authResult;
|
||||
}
|
||||
|
||||
Future<void>? uploadMsgToken() {
|
||||
if (messagingToken == null || user == null) return null;
|
||||
Future<void> _uploadMsgToken() {
|
||||
log.info("messagingToken:$messagingToken::user:$user");
|
||||
if (messagingToken == null || user == null) return Future.value();
|
||||
return Services.instance.userService.uploadMsgToken(messagingToken!);
|
||||
}
|
||||
|
||||
Future<void>? removeMsgToken() {
|
||||
if (messagingToken == null || user == null) return null;
|
||||
Future<void> _removeMsgToken() {
|
||||
if (messagingToken == null || user == null) return Future.value();
|
||||
return Services.instance.userService.removeMsgToken(messagingToken!);
|
||||
}
|
||||
|
||||
Future<void> signout() async {
|
||||
try {
|
||||
await removeMsgToken();
|
||||
} catch (e) {}
|
||||
await _removeMsgToken();
|
||||
} catch (e) {
|
||||
log.info(e.toString());
|
||||
}
|
||||
await Services.instance.authService.signout();
|
||||
models.forEach((m) => m.logout());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user