add carton from mix_box & from cargos

This commit is contained in:
Thinzar Win
2021-01-09 19:11:47 +06:30
parent 0bbd568adc
commit 9d2f9a671f
16 changed files with 583 additions and 322 deletions

View File

@@ -1,8 +1,11 @@
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/carton/model/carton_model.dart';
import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/barcode_scanner.dart';
import 'package:flutter/material.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'carton_list_row.dart';
@@ -21,7 +24,7 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
PartSearchDelegate({this.callbackCartonSelect});
@override
String get searchFieldLabel => 'Search by Carton Number/Customer Name';
String get searchFieldLabel => 'Search by Carton Number';
@override
ThemeData appBarTheme(BuildContext context) {
@@ -40,6 +43,11 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
@override
List<Widget> buildActions(BuildContext context) {
return [
IconButton(
icon: Icon(MaterialCommunityIcons.barcode_scan,
size: 30, color: Colors.white),
onPressed: () => _scan(context),
),
IconButton(
icon: Icon(Icons.clear),
onPressed: () => query = '',
@@ -106,17 +114,41 @@ class PartSearchDelegate extends SearchDelegate<Carton> {
@override
Widget buildSuggestions(BuildContext context) {
final cartonModel = Provider.of<CartonModel>(context);
return Container(
child: Center(
child: Opacity(
opacity: 0.2,
child: Icon(
MaterialCommunityIcons.package,
color: primaryColor,
size: 200,
),
),
padding: EdgeInsets.only(top: 5),
child: ListView(
children: cartonModel.cartons
.map((u) => CartonListRow(
carton: u,
callbackCartonSelect: callbackCartonSelect,
))
.toList(),
),
);
}
_scan(BuildContext context) async {
PermissionStatus permission =
await PermissionHandler().checkPermissionStatus(PermissionGroup.camera);
if (permission != PermissionStatus.granted) {
Map<PermissionGroup, PermissionStatus> permissions =
await PermissionHandler()
.requestPermissions([PermissionGroup.camera]);
if (permissions[PermissionGroup.camera] != PermissionStatus.granted) {
showMsgDialog(context, "Error", "Camera permission is not granted");
return null;
}
}
try {
String barcode = await scanBarcode();
if (barcode != null) {
query = barcode;
showResults(context);
}
} catch (e) {
print('error: $e');
}
}
}