add structure

This commit is contained in:
2020-05-29 07:45:27 +06:30
parent 4c851d9971
commit bad27ba5c4
272 changed files with 36065 additions and 174 deletions

141
lib/vo/po_do_count.dart Normal file
View File

@@ -0,0 +1,141 @@
import 'package:intl/intl.dart';
class PODOCount {
Map<dynamic, dynamic> mapPOCount = {};
Map<dynamic, dynamic> mapDOCount = {};
PODOCount({
this.mapPOCount,
this.mapDOCount,
});
//for po count
List<CountData> getPODataCounts(String status) {
return getDataCounts(mapPOCount, status);
}
List<TotalCountData> getPOTotalCounts() {
return getTotalCounts(mapPOCount);
}
//for do count
List<CountData> getDODataCounts(String status) {
return getDataCounts(mapDOCount, status);
}
List<TotalCountData> getDOTotalCounts() {
return getTotalCounts(mapDOCount);
}
List<CountData> getDataCounts(counts, String status) {
List<CountData> result = new List();
if (counts != null) {
DateTime today = new DateTime.now();
DateTime thirtyDaysAgo = today.subtract(new Duration(days: 30));
String _formatter = new DateFormat("yyyyMMdd").format(thirtyDaysAgo);
int _lastThirtyDays = int.tryParse(_formatter);
counts.forEach((k, value) {
int mapDay = int.tryParse(k);
if (mapDay < _lastThirtyDays) return;
CountData data = new CountData();
var parsedDate = DateTime.parse(k);
data.date = parsedDate;
if (value != null) {
value.forEach((key, count) {
if (key == status) {
data.status = key;
data.count = count;
}
});
}
result.add(data);
});
result.sort((a, b) {
return a.date.compareTo(b.date);
});
}
return result;
}
List<TotalCountData> getTotalCounts(counts) {
List<TotalCountData> result = new List();
if (counts != null) {
DateTime today = new DateTime.now();
DateTime thirtyDaysAgo = today.subtract(new Duration(days: 30));
String _formatter = new DateFormat("yyyyMMdd").format(thirtyDaysAgo);
int _lastThirtyDays = int.tryParse(_formatter);
counts.forEach((k, value) {
int mapDay = int.tryParse(k);
if (mapDay < _lastThirtyDays) return;
var parsedDate = DateTime.parse(k);
int sum = 0;
List<CountData> countList = new List();
if (value != null) {
value.forEach((key, count) {
sum += count;
countList
.add(CountData(date: parsedDate, status: key, count: count));
});
}
result.add(TotalCountData(
date: parsedDate, totalCount: sum, detailCountsList: countList));
});
result.sort((a, b) {
return a.date.compareTo(b.date);
});
}
return result;
}
List<CountData> getDetailCounts(counts) {
List<CountData> result = new List();
if (counts != null) {
counts.forEach((k, value) {
var parsedDate = DateTime.parse(k);
if (value != null) {
value.forEach((key, count) {
result.add(CountData(date: parsedDate, status: key, count: count));
});
}
});
result.sort((a, b) {
return a.date.compareTo(b.date);
});
}
return result;
}
factory PODOCount.fromMap(Map<String, dynamic> map, String docID) {
return PODOCount(
mapPOCount: map['po_count'],
mapDOCount: map['do_count'],
);
}
@override
String toString() {
return null;
}
}
class CountData {
DateTime date;
String status;
int count;
CountData({this.date, this.count, this.status});
}
class TotalCountData {
DateTime date;
int totalCount;
List<CountData> detailCountsList;
TotalCountData({this.date, this.detailCountsList, this.totalCount});
}