parent
47a4567a3d
commit
cf2f0ee6cf
|
|
@ -1,62 +1,79 @@
|
||||||
//import 'dart:developer' as prefix0;
|
import 'dart:convert';
|
||||||
import 'package:logger/logger.dart';
|
import 'package:logger/logger.dart';
|
||||||
|
|
||||||
// class SimpleLogPrinter extends LogPrinter {
|
class SimpleLogPrinter extends LogPrinter {
|
||||||
// static int counter = 0;
|
final String className;
|
||||||
// final String className;
|
static final _deviceStackTraceRegex = RegExp(r'#[0-9]+[\s]+(.+) \(([^\s]+)\)');
|
||||||
|
static final _webStackTraceRegex = RegExp(r'^((packages|dart-sdk)\/[^\s]+\/)');
|
||||||
|
SimpleLogPrinter(this.className);
|
||||||
|
|
||||||
// SimpleLogPrinter(this.className);
|
@override
|
||||||
|
List<String> log(LogEvent event) {
|
||||||
|
var level = event.level;
|
||||||
|
var message = stringifyMessage(event.message);
|
||||||
|
var error = event.error?.toString() ?? '';
|
||||||
|
var color = PrettyPrinter.levelColors[level];
|
||||||
|
var emoji = PrettyPrinter.levelEmojis[level];
|
||||||
|
String stack;
|
||||||
|
if (event.stackTrace == null) {
|
||||||
|
stack = formatStackTrace(StackTrace.current, 2);
|
||||||
|
} else {
|
||||||
|
stack = formatStackTrace(event.stackTrace, 2);
|
||||||
|
}
|
||||||
|
print(color(' $emoji $message $error -> $stack '));
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
// @override
|
String stringifyMessage(dynamic message) {
|
||||||
// List<String> log(LogEvent event) {
|
if (message is Map || message is Iterable) {
|
||||||
// prefix0.log(
|
var encoder = JsonEncoder.withIndent(' ');
|
||||||
// event.message,
|
return encoder.convert(message);
|
||||||
// time: DateTime.now(),
|
} else {
|
||||||
// level: () {
|
return message.toString();
|
||||||
// switch (event.level) {
|
}
|
||||||
// case Level.verbose:
|
}
|
||||||
// return 0;
|
|
||||||
// case Level.debug:
|
|
||||||
// return 500;
|
|
||||||
// case Level.info:
|
|
||||||
// return 0;
|
|
||||||
// case Level.warning:
|
|
||||||
// return 1500;
|
|
||||||
// case Level.error:
|
|
||||||
// return 2000;
|
|
||||||
// case Level.wtf:
|
|
||||||
// return 2000;
|
|
||||||
// default:
|
|
||||||
// return 2000;
|
|
||||||
// }
|
|
||||||
// }(),
|
|
||||||
// name: className,
|
|
||||||
// error: event.error,
|
|
||||||
// sequenceNumber: counter += 1,
|
|
||||||
// );
|
|
||||||
// return [];
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Logger getLogger(String className) {
|
String formatStackTrace(StackTrace stackTrace, int methodPosition) {
|
||||||
// //return Logger(printer: SimpleLogPrinter(className));
|
var lines = stackTrace.toString().split('\n');
|
||||||
// return Logger(
|
var formatted = <String>[];
|
||||||
// printer: PrettyPrinter(
|
var count = 0;
|
||||||
// methodCount: 1, // number of method calls to be displayed
|
for (var line in lines) {
|
||||||
// errorMethodCount: 1, // number of method calls if stacktrace is provided
|
if (_discardDeviceStacktraceLine(line) ||
|
||||||
// lineLength: 120, // width of the output
|
_discardWebStacktraceLine(line)) {
|
||||||
// colors: true, // Colorful log messages
|
continue;
|
||||||
// printEmojis: false, // Print an emoji for each log message
|
}
|
||||||
// printTime: false // Should each log print contain a timestamp
|
formatted.add('${line.replaceFirst(RegExp(r'#\d+\s+'), '')}');
|
||||||
// ));
|
if (++count == methodPosition) {
|
||||||
// }
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (formatted.isEmpty) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
//return formatted.join('\n');
|
||||||
|
return formatted.last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool _discardDeviceStacktraceLine(String line) {
|
||||||
|
var match = _deviceStackTraceRegex.matchAsPrefix(line);
|
||||||
|
if (match == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return match.group(2).startsWith('package:logger');
|
||||||
|
}
|
||||||
|
|
||||||
|
bool _discardWebStacktraceLine(String line) {
|
||||||
|
var match = _webStackTraceRegex.matchAsPrefix(line);
|
||||||
|
if (match == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return match.group(1).startsWith('packages/logger') ||
|
||||||
|
match.group(1).startsWith('dart-sdk/lib');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Logger getLogger(String className) {
|
Logger getLogger(String className) {
|
||||||
//return Logger(printer: SimpleLogPrinter(className));
|
return Logger(printer: SimpleLogPrinter(className));
|
||||||
return Logger(
|
}
|
||||||
printer: SimplePrinter(
|
|
||||||
colors: true, // Colorful log messages
|
|
||||||
printTime: false // Should each log print contain a timestamp
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -102,13 +102,20 @@ class DataService extends BaseService {
|
||||||
* name,
|
* name,
|
||||||
* type
|
* type
|
||||||
*/
|
*/
|
||||||
Future<void> insertVoucher({ @required User user, String data, String base64Data, @required String name, double total = 0.0, String type = VoucherTypePayment, String url }) {
|
Future<void> insertVoucher(
|
||||||
|
{@required User user,
|
||||||
|
String data,
|
||||||
|
String base64Data,
|
||||||
|
@required String name,
|
||||||
|
double total = 0.0,
|
||||||
|
String type = VoucherTypePayment,
|
||||||
|
String url}) {
|
||||||
assert(user != null);
|
assert(user != null);
|
||||||
assert(name != null);
|
assert(name != null);
|
||||||
Voucher voucher = Voucher()
|
Voucher voucher = Voucher()
|
||||||
..name=name
|
..name = name
|
||||||
..url=url
|
..url = url
|
||||||
..total = total
|
..total = total
|
||||||
..appCompanyId = user.appCompanyId
|
..appCompanyId = user.appCompanyId
|
||||||
..kassaId = user.kassaId
|
..kassaId = user.kassaId
|
||||||
..data = data
|
..data = data
|
||||||
|
|
@ -141,13 +148,13 @@ class DataService extends BaseService {
|
||||||
data = jsonEncode(checkData.toJson());
|
data = jsonEncode(checkData.toJson());
|
||||||
}
|
}
|
||||||
|
|
||||||
log.i('token: $token');
|
// log.i('token: $token');
|
||||||
log.i('data: $data');
|
// log.i('data: $data');
|
||||||
Response<dynamic> response = await (operationType == OperationTypePay
|
Response<dynamic> response = await (operationType == OperationTypePay
|
||||||
? _api.sell(token, data)
|
? _api.sell(token, data)
|
||||||
: _api.sellReturn(token, data));
|
: _api.sellReturn(token, data));
|
||||||
log.i('response status: ${response.status}');
|
// log.i('response status: ${response.status}');
|
||||||
log.i('response operation: ${response.operation}');
|
// log.i('response operation: ${response.operation}');
|
||||||
if (response.status == 200 && response.operation == true) {
|
if (response.status == 200 && response.operation == true) {
|
||||||
User user = Redux.store.state.userState.user;
|
User user = Redux.store.state.userState.user;
|
||||||
String check = response?.body['check'];
|
String check = response?.body['check'];
|
||||||
|
|
@ -155,19 +162,21 @@ class DataService extends BaseService {
|
||||||
String url = response?.body['link'];
|
String url = response?.body['link'];
|
||||||
int checkNum = journal['check_num'];
|
int checkNum = journal['check_num'];
|
||||||
var summ = journal['summ'];
|
var summ = journal['summ'];
|
||||||
double total = summ!= null ? double.parse(summ.toString()) : 0.0;
|
double total = summ != null ? double.parse(summ.toString()) : 0.0;
|
||||||
this.insertVoucher(
|
this.insertVoucher(
|
||||||
user: user,
|
user: user,
|
||||||
name: 'Чек №$checkNum',
|
name: 'Чек №$checkNum',
|
||||||
data: data ,
|
data: data,
|
||||||
base64Data: check,
|
base64Data: check,
|
||||||
total: total,
|
total: total,
|
||||||
url: url,
|
url: url,
|
||||||
type: operationType == OperationTypeReturn ? VoucherTypeReturnPay : VoucherTypePayment );
|
type: operationType == OperationTypeReturn
|
||||||
|
? VoucherTypeReturnPay
|
||||||
|
: VoucherTypePayment);
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
} catch (e) {
|
} catch (e, stack) {
|
||||||
print(e);
|
log.e("sellOrReturn", e, stack);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -191,33 +200,44 @@ class DataService extends BaseService {
|
||||||
try {
|
try {
|
||||||
String token = user.token;
|
String token = user.token;
|
||||||
Response<dynamic> goods = await _api.getGoodsFromServer(token);
|
Response<dynamic> goods = await _api.getGoodsFromServer(token);
|
||||||
|
if(goods.operation==false){
|
||||||
|
log.w('session is closed');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
Response<dynamic> categories = await _api.getCategoryFromServer(token);
|
Response<dynamic> categories = await _api.getCategoryFromServer(token);
|
||||||
Response<dynamic> services = await _api.getServiceFromServer(token);
|
Response<dynamic> services = await _api.getServiceFromServer(token);
|
||||||
await _db.deleteAll(Goog_tableName);
|
await _db.deleteAll(Goog_tableName);
|
||||||
await _db.deleteAll(Category_tableName);
|
await _db.deleteAll(Category_tableName);
|
||||||
await _db.deleteAll(Service_tableName);
|
await _db.deleteAll(Service_tableName);
|
||||||
log.i('All tables cleaned');
|
log.i('All tables cleaned');
|
||||||
for (var key in goods.body.keys) {
|
|
||||||
Good row = Good.fromJson(goods.body[key]);
|
|
||||||
await _db.insert(Goog_tableName, row.toMap());
|
|
||||||
}
|
|
||||||
log.i('Inserted ${goods.body.length} to table $Goog_tableName');
|
|
||||||
|
|
||||||
for (var el in categories.body) {
|
|
||||||
Category row = Category.fromJson(el);
|
|
||||||
await _db.insert(Category_tableName, row.toMap());
|
|
||||||
}
|
|
||||||
log.i('Inserted ${categories.body.length} to table $Category_tableName');
|
|
||||||
|
|
||||||
for (var key in services.body.keys) {
|
if (goods.body.isNotEmpty) {
|
||||||
Service row = Service.fromJson(services.body[key]);
|
for (var key in goods.body.keys) {
|
||||||
await _db.insert(Service_tableName, row.toMap());
|
Good row = Good.fromJson(goods.body[key]);
|
||||||
|
await _db.insert(Goog_tableName, row.toMap());
|
||||||
|
}
|
||||||
|
log.i('Inserted ${goods.body.length} to table $Goog_tableName');
|
||||||
|
}
|
||||||
|
if (categories.body.isNotEmpty) {
|
||||||
|
for (var el in categories.body) {
|
||||||
|
Category row = Category.fromJson(el);
|
||||||
|
await _db.insert(Category_tableName, row.toMap());
|
||||||
|
}
|
||||||
|
log.i(
|
||||||
|
'Inserted ${categories.body.length} to table $Category_tableName');
|
||||||
}
|
}
|
||||||
log.i('Inserted ${services.body.length} to table $Service_tableName');
|
|
||||||
|
|
||||||
|
if (services.body.isNotEmpty) {
|
||||||
|
for (var key in services.body.keys) {
|
||||||
|
Service row = Service.fromJson(services.body[key]);
|
||||||
|
await _db.insert(Service_tableName, row.toMap());
|
||||||
|
}
|
||||||
|
log.i('Inserted ${services.body?.length} to table $Service_tableName');
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
} catch (e) {
|
} catch (e, stack) {
|
||||||
print(e);
|
log.e("load from server", e, stack);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ packages:
|
||||||
name: http
|
name: http
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.1"
|
version: "0.12.2"
|
||||||
http_parser:
|
http_parser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ dependencies:
|
||||||
logger: ^0.9.1
|
logger: ^0.9.1
|
||||||
get_it: ^4.0.2
|
get_it: ^4.0.2
|
||||||
equatable: ^1.2.2
|
equatable: ^1.2.2
|
||||||
http: ^0.12.1
|
http: ^0.12.2
|
||||||
sqflite: ^1.3.1
|
sqflite: ^1.3.1
|
||||||
path_provider: ^1.6.11
|
path_provider: ^1.6.11
|
||||||
google_fonts: ^1.1.0
|
google_fonts: ^1.1.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue