sender and consignee selection
This commit is contained in:
@@ -108,7 +108,7 @@ class _CartonFilterState extends State<CartonFilter> {
|
|||||||
Future<void> _loadMoreConsignee() async {
|
Future<void> _loadMoreConsignee() async {
|
||||||
if (_isLoadMoreConsignee) return;
|
if (_isLoadMoreConsignee) return;
|
||||||
var model = context.read<ConsigneeSelectionModel>();
|
var model = context.read<ConsigneeSelectionModel>();
|
||||||
if (model.reachEnd || model.ended) return;
|
if (model.ended) return;
|
||||||
setState(() {
|
setState(() {
|
||||||
_isLoadMoreConsignee = true;
|
_isLoadMoreConsignee = true;
|
||||||
});
|
});
|
||||||
@@ -141,7 +141,7 @@ class _CartonFilterState extends State<CartonFilter> {
|
|||||||
Future<void> _loadMoreSender() async {
|
Future<void> _loadMoreSender() async {
|
||||||
if (_isLoadMoreSender) return;
|
if (_isLoadMoreSender) return;
|
||||||
var model = context.read<SenderSelectionModel>();
|
var model = context.read<SenderSelectionModel>();
|
||||||
if (model.reachEnd || model.ended) return;
|
if (model.ended) return;
|
||||||
setState(() {
|
setState(() {
|
||||||
_isLoadMoreSender = true;
|
_isLoadMoreSender = true;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,23 +1,28 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||||
|
import 'package:fcs/config.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
|
||||||
import '../../../domain/constants.dart';
|
import '../../../domain/constants.dart';
|
||||||
import '../../../domain/entities/user.dart';
|
import '../../../domain/entities/user.dart';
|
||||||
|
import '../../../helpers/api_helper.dart';
|
||||||
|
import '../../../helpers/firebase_helper.dart';
|
||||||
import '../../main/model/base_model.dart';
|
import '../../main/model/base_model.dart';
|
||||||
|
|
||||||
class ConsigneeSelectionModel extends BaseModel {
|
class ConsigneeSelectionModel extends BaseModel {
|
||||||
final log = Logger("ConsigneeSearchModel");
|
final log = Logger("ConsigneeSearchModel");
|
||||||
// for search
|
// for search
|
||||||
String query = "";
|
String query = "";
|
||||||
int offset = 0;
|
|
||||||
bool reachEnd = false;
|
|
||||||
List<User> _consignees = [];
|
List<User> _consignees = [];
|
||||||
|
|
||||||
List<User> get getConsginees {
|
List<User> get getConsginees {
|
||||||
var users = new List<User>.from(_consignees);
|
var users = new List<User>.from(_consignees);
|
||||||
return users..insert(0, User(id: all, name: "All"));
|
if (query == "") {
|
||||||
|
return users..insert(0, User(id: all, name: "All"));
|
||||||
|
}
|
||||||
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isLoading = false;
|
bool isLoading = false;
|
||||||
@@ -30,8 +35,6 @@ class ConsigneeSelectionModel extends BaseModel {
|
|||||||
search(String term, {bool imm = false}) async {
|
search(String term, {bool imm = false}) async {
|
||||||
query = term;
|
query = term;
|
||||||
_consignees.clear();
|
_consignees.clear();
|
||||||
offset = 0;
|
|
||||||
reachEnd = false;
|
|
||||||
t?.cancel();
|
t?.cancel();
|
||||||
t = Timer(Duration(milliseconds: imm ? 0 : 800), () async {
|
t = Timer(Duration(milliseconds: imm ? 0 : 800), () async {
|
||||||
await loadMoreSearch(term: term);
|
await loadMoreSearch(term: term);
|
||||||
@@ -43,35 +46,26 @@ class ConsigneeSelectionModel extends BaseModel {
|
|||||||
await _refresh();
|
await _refresh();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// int rowPerPage = 21;
|
var bytes = utf8.encode(term);
|
||||||
// List<Carton> list = [];
|
var base64Str = base64.encode(bytes);
|
||||||
// SearchPara searchPara = SearchPara(filters: [], term: term);
|
HtmlEscape htmlEscape = const HtmlEscape();
|
||||||
// isLoading = true;
|
String escapeSender = htmlEscape.convert(base64Str);
|
||||||
|
|
||||||
// var path =
|
int rowPerPage = 20;
|
||||||
// "/search/$cartons_collection/${searchPara.escapeTerm}/$rowPerPage/$offset/${searchPara.escapeFilters}";
|
List<User> list = [];
|
||||||
|
|
||||||
// var result = await requestAPI(path, "GET",
|
var result = await requestAPI(
|
||||||
// token: await getToken(), url: Config.instance.searchURL);
|
"/api/fts/$user_collection/$escapeSender/$rowPerPage", "GET",
|
||||||
|
url: Config.instance.reportURL, token: await getToken());
|
||||||
|
|
||||||
// if (result != null) {
|
if (result != null) {
|
||||||
// for (var row in result) {
|
for (var row in result) {
|
||||||
// var item = ArtistExt.fromMapForSearch(row);
|
var item = User.fromJson(row);
|
||||||
// list.add(item);
|
list.add(item);
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
// for (var p in list) {
|
_consignees = List.from(list);
|
||||||
// selectedArtistList.contains(p)
|
|
||||||
// ? p.isSelected = true
|
|
||||||
// : p.isSelected = false;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// artists.addAll(list);
|
|
||||||
// offset += rowPerPage;
|
|
||||||
// if (list.length < rowPerPage) {
|
|
||||||
// reachEnd = true;
|
|
||||||
// }
|
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,28 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
|
||||||
|
import '../../../config.dart';
|
||||||
import '../../../domain/constants.dart';
|
import '../../../domain/constants.dart';
|
||||||
import '../../../domain/entities/user.dart';
|
import '../../../domain/entities/user.dart';
|
||||||
|
import '../../../helpers/api_helper.dart';
|
||||||
|
import '../../../helpers/firebase_helper.dart';
|
||||||
import '../../main/model/base_model.dart';
|
import '../../main/model/base_model.dart';
|
||||||
|
|
||||||
class SenderSelectionModel extends BaseModel {
|
class SenderSelectionModel extends BaseModel {
|
||||||
final log = Logger("SenderSelectionModel");
|
final log = Logger("SenderSelectionModel");
|
||||||
// for search
|
// for search
|
||||||
String query = "";
|
String query = "";
|
||||||
int offset = 0;
|
|
||||||
bool reachEnd = false;
|
|
||||||
List<User> _senders = [];
|
List<User> _senders = [];
|
||||||
|
|
||||||
List<User> get getSenders {
|
List<User> get getSenders {
|
||||||
var users = new List<User>.from(_senders);
|
var users = new List<User>.from(_senders);
|
||||||
return users..insert(0, User(id: all, name: "All"));
|
if (query == "") {
|
||||||
|
return users..insert(0, User(id: all, name: "All"));
|
||||||
|
}
|
||||||
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isLoading = false;
|
bool isLoading = false;
|
||||||
@@ -30,8 +35,6 @@ class SenderSelectionModel extends BaseModel {
|
|||||||
search(String term, {bool imm = false}) async {
|
search(String term, {bool imm = false}) async {
|
||||||
query = term;
|
query = term;
|
||||||
_senders.clear();
|
_senders.clear();
|
||||||
offset = 0;
|
|
||||||
reachEnd = false;
|
|
||||||
t?.cancel();
|
t?.cancel();
|
||||||
t = Timer(Duration(milliseconds: imm ? 0 : 800), () async {
|
t = Timer(Duration(milliseconds: imm ? 0 : 800), () async {
|
||||||
await loadMoreSearch(term: term);
|
await loadMoreSearch(term: term);
|
||||||
@@ -44,31 +47,28 @@ class SenderSelectionModel extends BaseModel {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// var bytes = utf8.encode(term);
|
var bytes = utf8.encode(term);
|
||||||
// var base64Str = base64.encode(bytes);
|
var base64Str = base64.encode(bytes);
|
||||||
// HtmlEscape htmlEscape = const HtmlEscape();
|
HtmlEscape htmlEscape = const HtmlEscape();
|
||||||
// String escapeSender = htmlEscape.convert(base64Str);
|
String escapeSender = htmlEscape.convert(base64Str);
|
||||||
|
|
||||||
// int rowPerPage = 20;
|
int rowPerPage = 20;
|
||||||
// List<User> list = [];
|
List<User> list = [];
|
||||||
|
|
||||||
// var result = await requestAPI(
|
var result = await requestAPI(
|
||||||
// "/api/fts/$user_collection/$escapeSender/$rowPerPage", "GET",
|
"/api/fts/$user_collection/$escapeSender/$rowPerPage", "GET",
|
||||||
// url: Config.instance.reportURL, token: await getToken());
|
url: Config.instance.reportURL, token: await getToken());
|
||||||
|
|
||||||
// if (result != null) {
|
if (result != null) {
|
||||||
// for (var row in result) {
|
for (var row in result) {
|
||||||
// var item = User.fromJson(row);
|
var item = User.fromJson(row);
|
||||||
// list.add(item);
|
list.add(item);
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
// _senders.addAll(list);
|
_senders = List.from(list);
|
||||||
// offset += rowPerPage;
|
|
||||||
// if (list.length < rowPerPage) {
|
notifyListeners();
|
||||||
// reachEnd = true;
|
|
||||||
// }
|
|
||||||
// notifyListeners();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
addDefaultSenders() async {
|
addDefaultSenders() async {
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import 'package:fcs/domain/entities/carton.dart';
|
import 'package:fcs/domain/entities/carton.dart';
|
||||||
import 'package:fcs/helpers/theme.dart';
|
import 'package:fcs/helpers/theme.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
|
||||||
|
|
||||||
|
import '../carton/print_qr_code_page.dart';
|
||||||
import 'carton_search.dart';
|
import 'carton_search.dart';
|
||||||
|
|
||||||
class CartonListRow extends StatelessWidget {
|
class CartonListRow extends StatelessWidget {
|
||||||
@@ -69,7 +71,14 @@ class CartonListRow extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 15),
|
const SizedBox(width: 15),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () {},
|
onPressed: () {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
CupertinoPageRoute(
|
||||||
|
builder: (context) =>
|
||||||
|
PrintQrCodePage(carton: carton)),
|
||||||
|
);
|
||||||
|
},
|
||||||
icon: Icon(AntDesign.qrcode,
|
icon: Icon(AntDesign.qrcode,
|
||||||
color: Colors.black))
|
color: Colors.black))
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ class _CartonSizeEditorState extends State<CartonSizeEditor> {
|
|||||||
final lengthBox = LengthPicker(
|
final lengthBox = LengthPicker(
|
||||||
controller: _lengthController,
|
controller: _lengthController,
|
||||||
lableKey: "box.length",
|
lableKey: "box.length",
|
||||||
|
displayFeet: true,
|
||||||
);
|
);
|
||||||
final widthBox = LengthPicker(
|
final widthBox = LengthPicker(
|
||||||
controller: _widthController,
|
controller: _widthController,
|
||||||
|
|||||||
Reference in New Issue
Block a user