aman-kassa-flutter/lib/redux/actions/calc_actions.dart

50 lines
1.9 KiB
Dart

import 'dart:convert';
import 'package:aman_kassa_flutter/core/entity/Category.dart';
import 'package:aman_kassa_flutter/core/entity/Goods.dart';
import 'package:aman_kassa_flutter/core/locator.dart';
import 'package:aman_kassa_flutter/core/models/dict_dao.dart';
import 'package:aman_kassa_flutter/core/models/product_dao.dart';
import 'package:aman_kassa_flutter/core/models/response.dart';
import 'package:aman_kassa_flutter/core/models/smena.dart';
import 'package:aman_kassa_flutter/core/services/ApiService.dart';
import 'package:aman_kassa_flutter/core/services/DataService.dart';
import 'package:aman_kassa_flutter/core/services/navigator_service.dart';
import 'package:aman_kassa_flutter/redux/constants/setting_const.dart';
import 'package:aman_kassa_flutter/redux/state/calc_state.dart';
import 'package:aman_kassa_flutter/redux/state/kassa_state.dart';
import 'package:aman_kassa_flutter/redux/state/setting_state.dart';
import 'package:aman_kassa_flutter/widgets/components/calculator/calculator.dart';
import 'package:meta/meta.dart';
import 'package:redux/redux.dart';
import 'package:redux_thunk/redux_thunk.dart';
import '../store.dart';
@immutable
class SetCalcStateAction {
final CalcState calcState;
SetCalcStateAction(this.calcState);
}
Future<void> setEqual(Store<AppState> store) async {
store.dispatch(SetCalcStateAction(CalcState(isEqual: true)));
}
Future<void> cleanCalcItems(Store<AppState> store) async {
store.dispatch(SetCalcStateAction(CalcState(calcItems: [])));
}
ThunkAction<AppState> onTapAction(String value) {
return (Store<AppState> store) async {
if(value == Calculations.EQUAL){
return setEqual(store);
}
List calcItems = Calculator.action(value: value, items: store.state.calcState.calcItems);
calcItems.asMap().forEach((index,element ) {
print('#$index: ${element.toString()}');
});
store.dispatch(SetCalcStateAction(CalcState(calcItems: calcItems, isEqual: false)));
};
}