sender and consignee selection

This commit is contained in:
tzw
2024-03-05 16:32:54 +06:30
parent b443293cd0
commit 247140de6b
5 changed files with 63 additions and 59 deletions

View File

@@ -1,23 +1,28 @@
import 'dart:async';
import 'dart:convert';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/config.dart';
import 'package:logging/logging.dart';
import '../../../domain/constants.dart';
import '../../../domain/entities/user.dart';
import '../../../helpers/api_helper.dart';
import '../../../helpers/firebase_helper.dart';
import '../../main/model/base_model.dart';
class ConsigneeSelectionModel extends BaseModel {
final log = Logger("ConsigneeSearchModel");
// for search
String query = "";
int offset = 0;
bool reachEnd = false;
List<User> _consignees = [];
List<User> get getConsginees {
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;
@@ -30,8 +35,6 @@ class ConsigneeSelectionModel extends BaseModel {
search(String term, {bool imm = false}) async {
query = term;
_consignees.clear();
offset = 0;
reachEnd = false;
t?.cancel();
t = Timer(Duration(milliseconds: imm ? 0 : 800), () async {
await loadMoreSearch(term: term);
@@ -43,35 +46,26 @@ class ConsigneeSelectionModel extends BaseModel {
await _refresh();
return;
}
// int rowPerPage = 21;
// List<Carton> list = [];
// SearchPara searchPara = SearchPara(filters: [], term: term);
// isLoading = true;
var bytes = utf8.encode(term);
var base64Str = base64.encode(bytes);
HtmlEscape htmlEscape = const HtmlEscape();
String escapeSender = htmlEscape.convert(base64Str);
// var path =
// "/search/$cartons_collection/${searchPara.escapeTerm}/$rowPerPage/$offset/${searchPara.escapeFilters}";
int rowPerPage = 20;
List<User> list = [];
// var result = await requestAPI(path, "GET",
// token: await getToken(), url: Config.instance.searchURL);
var result = await requestAPI(
"/api/fts/$user_collection/$escapeSender/$rowPerPage", "GET",
url: Config.instance.reportURL, token: await getToken());
// if (result != null) {
// for (var row in result) {
// var item = ArtistExt.fromMapForSearch(row);
// list.add(item);
// }
// }
if (result != null) {
for (var row in result) {
var item = User.fromJson(row);
list.add(item);
}
}
// for (var p in list) {
// selectedArtistList.contains(p)
// ? p.isSelected = true
// : p.isSelected = false;
// }
// artists.addAll(list);
// offset += rowPerPage;
// if (list.length < rowPerPage) {
// reachEnd = true;
// }
_consignees = List.from(list);
notifyListeners();
}