receipt_view.dart
parent
012ef0acc6
commit
068374e794
|
|
@ -95,4 +95,21 @@ class DataService extends BaseService {
|
||||||
..articul = product.article?.toString();
|
..articul = product.article?.toString();
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<TransactionData?> getTransactionDataById(int? id) async {
|
||||||
|
if(id == null) return null;
|
||||||
|
try {
|
||||||
|
Map<String, dynamic>? map = await _db.queryById(transactionTableName, id);
|
||||||
|
if (map != null) {
|
||||||
|
final Transaction transaction = Transaction.fromMap(map);
|
||||||
|
final String? data = transaction.data;
|
||||||
|
if (data != null) {
|
||||||
|
return TransactionData.fromMap(jsonDecode(data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e, stack) {
|
||||||
|
log.e('getTransactionDataById', e, stack);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,9 @@ const String addByBarcodeViewRoute = 'AddByBarcodeView';
|
||||||
const String contragentSelectViewRoute = 'ContragentSelectViewRoute';
|
const String contragentSelectViewRoute = 'ContragentSelectViewRoute';
|
||||||
|
|
||||||
const String paymentViewRoute = 'paymentViewRoute';
|
const String paymentViewRoute = 'paymentViewRoute';
|
||||||
|
const String receiptViewRoute = 'receiptViewRoute';
|
||||||
|
|
||||||
const String settingPrinterBluetoothViewRoute = 'SettingPrinterBluetoothView';
|
const String settingPrinterBluetoothViewRoute = 'SettingPrinterBluetoothView';
|
||||||
const String settingPrinterBleBluetoothView = 'SettingPrinterBleBluetoothView';
|
|
||||||
const String settingPrinterBlueView = 'settingPrinterBlueView';
|
|
||||||
|
|
||||||
|
|
||||||
// Generate the views here
|
// Generate the views here
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,22 @@
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:satu/core/models/dictionary/category_row_data.dart';
|
import 'package:satu/core/models/dictionary/category_row_data.dart';
|
||||||
import 'package:satu/core/models/dictionary/good_row_data.dart';
|
import 'package:satu/core/models/dictionary/good_row_data.dart';
|
||||||
|
import 'package:satu/core/models/entity_data/transaction_data.dart';
|
||||||
import 'package:satu/views/dictionaries/category/category_edit.dart';
|
import 'package:satu/views/dictionaries/category/category_edit.dart';
|
||||||
import 'package:satu/views/dictionaries/category/category_select_view.dart';
|
import 'package:satu/views/dictionaries/category/category_select_view.dart';
|
||||||
import 'package:satu/views/dictionaries/category/category_view.dart';
|
|
||||||
import 'package:satu/views/dictionaries/goods/goods_edit.dart';
|
import 'package:satu/views/dictionaries/goods/goods_edit.dart';
|
||||||
import 'package:satu/views/dictionaries/goods/goods_view.dart';
|
import 'package:satu/views/login/login_view.dart';
|
||||||
|
import 'package:satu/views/main/main_view.dart';
|
||||||
import 'package:satu/views/settings/printer_bluetooth/printer_view.dart';
|
import 'package:satu/views/settings/printer_bluetooth/printer_view.dart';
|
||||||
import 'package:satu/views/work/views/add_by_barcode/add_by_barcode_view.dart';
|
import 'package:satu/views/work/views/add_by_barcode/add_by_barcode_view.dart';
|
||||||
import 'package:satu/views/work/views/add_product/add_product_view.dart';
|
import 'package:satu/views/work/views/add_product/add_product_view.dart';
|
||||||
import 'package:satu/views/login/login_view.dart';
|
|
||||||
import 'package:satu/views/main/main_view.dart';
|
|
||||||
import 'package:satu/views/settings/printer_bluetooth/printer_select.dart';
|
|
||||||
import 'package:satu/views/work/views/contragent/select_contragent_view.dart';
|
import 'package:satu/views/work/views/contragent/select_contragent_view.dart';
|
||||||
import 'package:satu/views/work/views/payment/payment_view.dart';
|
import 'package:satu/views/work/views/payment/payment_view.dart';
|
||||||
|
import 'package:satu/views/work/views/receipt/receipt_view.dart';
|
||||||
import 'package:satu/views/work/work_view.dart';
|
import 'package:satu/views/work/work_view.dart';
|
||||||
|
|
||||||
import './route_names.dart';
|
import './route_names.dart';
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
Route<dynamic> generateRoute(RouteSettings settings) {
|
Route<dynamic> generateRoute(RouteSettings settings) {
|
||||||
switch (settings.name) {
|
switch (settings.name) {
|
||||||
|
|
@ -80,13 +79,13 @@ Route<dynamic> generateRoute(RouteSettings settings) {
|
||||||
viewToShow: GoodEdit(good: good,),
|
viewToShow: GoodEdit(good: good,),
|
||||||
);
|
);
|
||||||
|
|
||||||
// case ImageShowRoute:
|
case receiptViewRoute:
|
||||||
// ImageShowModel data = settings.arguments as ImageShowModel;
|
final TransactionData data = settings.arguments! as TransactionData;
|
||||||
// //return SlideRightRoute(widget: ImageShowContainer(data));
|
//return SlideRightRoute(widget: ImageShowContainer(data));
|
||||||
// return _getPageRoute(
|
return _getPageRoute(
|
||||||
// routeName: settings.name,
|
routeName: settings.name,
|
||||||
// viewToShow: ImageShowContainer(data),
|
viewToShow: ReceiptView(transactionData: data,),
|
||||||
// );
|
);
|
||||||
default:
|
default:
|
||||||
return MaterialPageRoute(
|
return MaterialPageRoute(
|
||||||
builder: (_) => Scaffold(
|
builder: (_) => Scaffold(
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ class ContragentSelectBar extends StatelessWidget {
|
||||||
locator<NavigatorService>().push(contragentSelectViewRoute);
|
locator<NavigatorService>().push(contragentSelectViewRoute);
|
||||||
},
|
},
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.symmetric(vertical: 8.w, horizontal: 15.w),
|
padding: EdgeInsets.symmetric(vertical:08.w, horizontal: 15.w),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:grouped_list/grouped_list.dart';
|
import 'package:grouped_list/grouped_list.dart';
|
||||||
|
import 'package:satu/core/models/entity_data/transaction_data.dart';
|
||||||
import 'package:satu/core/models/flow/dao/transaction_dao.dart';
|
import 'package:satu/core/models/flow/dao/transaction_dao.dart';
|
||||||
import 'package:satu/core/redux/actions/journal_actions.dart';
|
import 'package:satu/core/redux/actions/journal_actions.dart';
|
||||||
import 'package:satu/core/redux/state/journal_state.dart';
|
import 'package:satu/core/redux/state/journal_state.dart';
|
||||||
import 'package:satu/core/redux/store.dart';
|
import 'package:satu/core/redux/store.dart';
|
||||||
|
import 'package:satu/core/services/data_service.dart';
|
||||||
|
import 'package:satu/core/services/navigator_service.dart';
|
||||||
|
import 'package:satu/core/utils/locator.dart';
|
||||||
|
import 'package:satu/routes/route_names.dart';
|
||||||
import 'package:satu/shared/app_colors.dart';
|
import 'package:satu/shared/app_colors.dart';
|
||||||
import 'package:satu/widgets/bar/products_app_bar.dart';
|
import 'package:satu/widgets/bar/products_app_bar.dart';
|
||||||
import 'package:satu/widgets/buttons/option_pill.dart';
|
import 'package:satu/widgets/buttons/option_pill.dart';
|
||||||
|
|
@ -17,6 +22,9 @@ class JournalView extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _JournalViewState extends State<JournalView> {
|
class _JournalViewState extends State<JournalView> {
|
||||||
|
final DataService _dataService = locator<DataService>();
|
||||||
|
final NavigatorService _navigatorService = locator<NavigatorService>();
|
||||||
|
|
||||||
int tabIndex = 0;
|
int tabIndex = 0;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -30,6 +38,7 @@ class _JournalViewState extends State<JournalView> {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: const ProductsAppBar(
|
appBar: const ProductsAppBar(
|
||||||
title: 'Журнал транзакции',
|
title: 'Журнал транзакции',
|
||||||
|
drawerShow: true,
|
||||||
),
|
),
|
||||||
body: StoreConnector<AppState, JournalState>(
|
body: StoreConnector<AppState, JournalState>(
|
||||||
converter: (store) => store.state.journalState!,
|
converter: (store) => store.state.journalState!,
|
||||||
|
|
@ -38,9 +47,7 @@ class _JournalViewState extends State<JournalView> {
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(color: whiteColor),
|
||||||
color: whiteColor
|
|
||||||
),
|
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(15.0),
|
padding: const EdgeInsets.all(15.0),
|
||||||
child: Row(
|
child: Row(
|
||||||
|
|
@ -105,6 +112,9 @@ class _JournalViewState extends State<JournalView> {
|
||||||
date: element.date!,
|
date: element.date!,
|
||||||
amount: element.total,
|
amount: element.total,
|
||||||
received: element.received,
|
received: element.received,
|
||||||
|
onPress: () {
|
||||||
|
pushToReceiptView(element);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
itemComparator: (item1, item2) =>
|
itemComparator: (item1, item2) =>
|
||||||
item1.day!.compareTo(item2.day!),
|
item1.day!.compareTo(item2.day!),
|
||||||
|
|
@ -122,4 +132,13 @@ class _JournalViewState extends State<JournalView> {
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> pushToReceiptView(TransactionDao element) async {
|
||||||
|
final int? id = element.id;
|
||||||
|
TransactionData? transactionData =
|
||||||
|
await _dataService.getTransactionDataById(id);
|
||||||
|
if(transactionData != null) {
|
||||||
|
_navigatorService.push(receiptViewRoute, arguments: transactionData);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class SellView extends StatelessWidget {
|
||||||
backgroundColor: backgroundColor,
|
backgroundColor: backgroundColor,
|
||||||
childHeight: 60,
|
childHeight: 60,
|
||||||
child: ProductHeaderBar(
|
child: ProductHeaderBar(
|
||||||
count: state.items!.length,
|
count: state.items!.length,
|
||||||
sum: sumProducts(state.items!),
|
sum: sumProducts(state.items!),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:satu/core/models/entity_data/transaction_data.dart';
|
||||||
|
import 'package:satu/core/models/flow/sell_response.dart';
|
||||||
|
import 'package:satu/shared/app_colors.dart';
|
||||||
|
import 'package:satu/widgets/bar/products_app_bar.dart';
|
||||||
|
|
||||||
|
class ReceiptView extends StatelessWidget {
|
||||||
|
const ReceiptView({
|
||||||
|
required this.transactionData,
|
||||||
|
Key? key,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
|
final TransactionData transactionData;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
backgroundColor: whiteColor,
|
||||||
|
appBar: const ProductsAppBar(
|
||||||
|
title: 'Просмотр чека',
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
physics: const BouncingScrollPhysics(),
|
||||||
|
child: Center(child: imageFromBase64String(transactionData.sellResponse)),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget imageFromBase64String(SellResponse? sellResponse) {
|
||||||
|
final String? base64String = sellResponse?.checkPng;
|
||||||
|
if (base64String == null) {
|
||||||
|
return const Padding(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0),
|
||||||
|
child: Center(
|
||||||
|
child: Text('Отсутсвует информация о чеке'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 8.0),
|
||||||
|
child: Image.memory(base64Decode(base64String)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -8,7 +8,7 @@ class ProductsAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||||
final String? title;
|
final String? title;
|
||||||
final List<Widget>? actions;
|
final List<Widget>? actions;
|
||||||
final Widget? child;
|
final Widget? child;
|
||||||
final int? childHeight;
|
final double childHeight;
|
||||||
final double elevation;
|
final double elevation;
|
||||||
final Color? backgroundColor;
|
final Color? backgroundColor;
|
||||||
final bool drawerShow;
|
final bool drawerShow;
|
||||||
|
|
@ -32,8 +32,8 @@ class ProductsAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
image: AssetImage('assets/images/top_bar_bg.png'),
|
image: const AssetImage('assets/images/top_bar_bg.png'),
|
||||||
fit: BoxFit.fitWidth,
|
fit: childHeight > 0 ? BoxFit.cover : BoxFit.fitWidth,
|
||||||
alignment: FractionalOffset.topLeft,
|
alignment: FractionalOffset.topLeft,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -42,25 +42,32 @@ class ProductsAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
AppBar(
|
AppBar(
|
||||||
title: Text(title ?? ''),
|
title: Text(
|
||||||
|
title ?? '',
|
||||||
|
style: const TextStyle(color: blackColor, fontSize: 14),
|
||||||
|
),
|
||||||
|
iconTheme: const IconThemeData(
|
||||||
|
color: blackColor, //change your color here
|
||||||
|
),
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
elevation: 0.0,
|
elevation: 0.0,
|
||||||
leading: drawerShow ? IconButton(
|
leading: drawerShow
|
||||||
icon: Icon(
|
? IconButton(
|
||||||
Icons.menu,
|
icon: const Icon(
|
||||||
color: blackColor,
|
Icons.menu,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
locator<NavigatorService>()
|
locator<NavigatorService>()
|
||||||
.scaffoldDrawerKey
|
.scaffoldDrawerKey
|
||||||
.currentState!
|
.currentState!
|
||||||
.openDrawer();
|
.openDrawer();
|
||||||
},
|
},
|
||||||
) : null ,
|
)
|
||||||
|
: null,
|
||||||
actions: actions,
|
actions: actions,
|
||||||
),
|
),
|
||||||
if (child != null && childHeight! > 0) child!,
|
if (child != null && childHeight > 0) child!,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -69,6 +76,6 @@ class ProductsAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Size get preferredSize {
|
Size get preferredSize {
|
||||||
return new Size.fromHeight(60.0 + childHeight!);
|
return Size.fromHeight(60.0 + childHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,32 +5,33 @@ import 'package:satu/shared/shared_styles.dart';
|
||||||
import 'package:satu/widgets/dialog/modal_select_dialog.dart';
|
import 'package:satu/widgets/dialog/modal_select_dialog.dart';
|
||||||
|
|
||||||
class ProductHeaderBar extends StatelessWidget {
|
class ProductHeaderBar extends StatelessWidget {
|
||||||
|
const ProductHeaderBar({required this.count, required this.sum , Key? key})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
final int count;
|
final int count;
|
||||||
final num sum;
|
final num sum;
|
||||||
|
|
||||||
const ProductHeaderBar({Key? key, required this.count, required this.sum})
|
|
||||||
: super(key: key);
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 15.w, vertical: 10.w),
|
padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10),
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Итого: $sum тнг',
|
'Итого: $sum тнг',
|
||||||
style: TextStyle(
|
style: const TextStyle(
|
||||||
fontWeight: FontWeight.w700,
|
fontWeight: FontWeight.w700,
|
||||||
color: blackColor,
|
color: blackColor,
|
||||||
fontSize: ScreenUtil().setSp(20)),
|
fontSize: 20),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'Товаров выбрано: $count',
|
'Товаров выбрано: $count',
|
||||||
style: TextStyle(
|
style: const TextStyle(
|
||||||
fontWeight: FontWeight.w400,
|
fontWeight: FontWeight.w400,
|
||||||
color: blackColor,
|
color: blackColor,
|
||||||
fontSize: ScreenUtil().setSp(15)),
|
fontSize: 12),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,22 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:satu/core/models/dialog_models.dart';
|
||||||
import 'package:satu/core/redux/actions/sell_actions.dart';
|
import 'package:satu/core/redux/actions/sell_actions.dart';
|
||||||
import 'package:satu/core/redux/store.dart';
|
import 'package:satu/core/redux/store.dart';
|
||||||
|
import 'package:satu/core/services/dialog_service.dart';
|
||||||
|
import 'package:satu/core/utils/locator.dart';
|
||||||
import 'package:satu/shared/app_colors.dart';
|
import 'package:satu/shared/app_colors.dart';
|
||||||
|
|
||||||
class ProductsTitleBarBar extends StatelessWidget {
|
class ProductsTitleBarBar extends StatelessWidget {
|
||||||
const ProductsTitleBarBar(
|
const ProductsTitleBarBar({
|
||||||
{required this.title , Key? key, this.itemsExist = false})
|
required this.title,
|
||||||
: super(key: key);
|
Key? key,
|
||||||
|
this.itemsExist = false,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
final bool itemsExist;
|
final bool itemsExist;
|
||||||
final String title;
|
final String title;
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Padding(
|
return Padding(
|
||||||
|
|
@ -20,43 +24,33 @@ class ProductsTitleBarBar extends StatelessWidget {
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 10),
|
padding: const EdgeInsets.symmetric(vertical: 10),
|
||||||
child: Text(
|
child: Text(
|
||||||
title,
|
title,
|
||||||
style: const TextStyle(fontSize: 12, color: placeholderColor),
|
style: const TextStyle(fontSize: 12, color: placeholderColor),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)),
|
),
|
||||||
if (itemsExist)
|
if (itemsExist)
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final bool? result = await showDialog(
|
final DialogResponse response =
|
||||||
context: context,
|
await locator<DialogService>().showConfirmationDialog(
|
||||||
builder: (BuildContext context) {
|
title: 'Внимание',
|
||||||
return AlertDialog(
|
description: 'Удалить все товары из списка?',
|
||||||
title: const Text('Внимание'),
|
confirmationTitle: 'Удалить',
|
||||||
content: const Text('Удалить все товары из списка'),
|
cancelTitle: 'Отмена',
|
||||||
actions: <Widget>[
|
);
|
||||||
TextButton(
|
if (response.confirmed == true) {
|
||||||
onPressed: () =>
|
Redux.store!.dispatch(removeAllSellData);
|
||||||
Navigator.of(context).pop(true),
|
}
|
||||||
child: const Text('Удалить')),
|
},
|
||||||
TextButton(
|
child: Text(
|
||||||
onPressed: () => Navigator.of(context).pop(false),
|
'Удалить все',
|
||||||
child: const Text('Отмена'),
|
style: TextStyle(fontSize: 16.sp, color: dangerColor),
|
||||||
),
|
),
|
||||||
],
|
)
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
if (result == true) {
|
|
||||||
Redux.store!.dispatch(removeAllSellData);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
child: Text(
|
|
||||||
'Удалить все',
|
|
||||||
style: TextStyle(fontSize: 16.sp, color: dangerColor),
|
|
||||||
))
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue