diff --git a/android/app/src/main/java/kz/com/aman/kassa/handler/CardRefundAmanHandlerImpl.java b/android/app/src/main/java/kz/com/aman/kassa/handler/CardRefundAmanHandlerImpl.java index 1b3a975..913b9b6 100644 --- a/android/app/src/main/java/kz/com/aman/kassa/handler/CardRefundAmanHandlerImpl.java +++ b/android/app/src/main/java/kz/com/aman/kassa/handler/CardRefundAmanHandlerImpl.java @@ -339,18 +339,18 @@ public class CardRefundAmanHandlerImpl implements EasyCardRefundCallbackHandler< if(this.authorizationCode.equalsIgnoreCase(transaction.getAuthorizationCode()) && transactionNumber.equals(transaction.getTransactionNumber()) && transaction.getTransactionType().equalsIgnoreCase("PAYMENT")) { - System.out.println("getCheck:"+ transaction.getCheck()); - System.out.println("getCheckNumber:"+ transaction.getCheckNumber()); - System.out.println("getAmount:"+ transaction.getAmount()); - System.out.println("getCardHolderName:"+ transaction.getCardHolderName()); - System.out.println("getCardType:"+ transaction.getCardType()); - System.out.println("getPrinterCheckNumber:"+ transaction.getPrinterCheckNumber()); - System.out.println("getTransactionNumber:"+ transaction.getTransactionNumber()); - System.out.println("getAdditionalAuthorizationCode:"+ transaction.getAdditionalAuthorizationCode()); - System.out.println("getAuthorizationCode:"+ transaction.getAuthorizationCode()); - System.out.println("getCardExpiryDate:"+ transaction.getCardExpiryDate()); - System.out.println("getTransactionType:"+ transaction.getTransactionType()); - System.out.println("getTransactionDate:"+ transaction.getTransactionDate()); +// System.out.println("getCheck:"+ transaction.getCheck()); +// System.out.println("getCheckNumber:"+ transaction.getCheckNumber()); +// System.out.println("getAmount:"+ transaction.getAmount()); +// System.out.println("getCardHolderName:"+ transaction.getCardHolderName()); +// System.out.println("getCardType:"+ transaction.getCardType()); +// System.out.println("getPrinterCheckNumber:"+ transaction.getPrinterCheckNumber()); +// System.out.println("getTransactionNumber:"+ transaction.getTransactionNumber()); +// System.out.println("getAdditionalAuthorizationCode:"+ transaction.getAdditionalAuthorizationCode()); +// System.out.println("getAuthorizationCode:"+ transaction.getAuthorizationCode()); +// System.out.println("getCardExpiryDate:"+ transaction.getCardExpiryDate()); +// System.out.println("getTransactionType:"+ transaction.getTransactionType()); +// System.out.println("getTransactionDate:"+ transaction.getTransactionDate()); this.transaction = transaction; break; } diff --git a/android/app/src/main/java/kz/com/aman/kassa/handler/CloseDayHandlerImpl.java b/android/app/src/main/java/kz/com/aman/kassa/handler/CloseDayHandlerImpl.java index 53b490a..c783699 100644 --- a/android/app/src/main/java/kz/com/aman/kassa/handler/CloseDayHandlerImpl.java +++ b/android/app/src/main/java/kz/com/aman/kassa/handler/CloseDayHandlerImpl.java @@ -4,11 +4,14 @@ import android.widget.Toast; import com.google.gson.Gson; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; import java.util.List; import io.flutter.plugin.common.MethodChannel; import kz.com.aman.kassa.bank.M4BankActivity; import kz.com.aman.kassa.model.AmanDao; +import kz.com.aman.kassa.model.TransactionDao; import kz.com.aman.kassa.plugins.BankNfcPlugins; import ru.m4bank.mpos.library.external.transactions.CloseDayCallbackHandler; import ru.m4bank.mpos.service.commons.data.ResultType; @@ -24,6 +27,7 @@ public class CloseDayHandlerImpl implements CloseDayCallbackHandler { private final BankNfcPlugins plugin; private final MethodChannel.Result result; private final Gson gson = new Gson(); + final SimpleDateFormat sdfDart = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public CloseDayHandlerImpl(BankNfcPlugins plugin, MethodChannel.Result result) { this.plugin = plugin; @@ -54,10 +58,21 @@ public class CloseDayHandlerImpl implements CloseDayCallbackHandler { @Override public void onTransactionsListReceived(List transactionList, List list1) { plugin.getActivity().runOnUiThread(() -> { - AmanDao dao = new AmanDao<>(); + AmanDao dao = new AmanDao<>(); dao.setSuccess(true); + dao.setMsg("list"); + for(Transaction transaction: transactionList){ + TransactionDao transactionDao = new TransactionDao(); + transactionDao.setAmount(transaction.getAmount()); + transactionDao.setCardExpireDate(transaction.getCardExpiryDate()); + transactionDao.setCardNumber(transaction.getMaskedPan()); + transactionDao.setCardType(transaction.getCardType()); + transactionDao.setTransactionType(transaction.getTransactionType()); + transactionDao.setDate(sdfDart.format(transaction.getDate())); + dao.getRows().add(transactionDao); + } this.result.success(gson.toJson(dao)); - Toast.makeText(plugin.getActivity(), "На закрытие дня: - " + transactionList, Toast.LENGTH_SHORT).show(); + // Toast.makeText(plugin.getActivity(), "На закрытие дня: - " + transactionList, Toast.LENGTH_SHORT).show(); }); } @@ -66,7 +81,7 @@ public class CloseDayHandlerImpl implements CloseDayCallbackHandler { plugin.getActivity().runOnUiThread(() -> { AmanDao dao = new AmanDao<>(); dao.setSuccess(ResultType.SUCCESSFUL.equals(closeDayResult.getResultType())); - dao.setMsg((closeDayResult.getDescription() == null ? "" : closeDayResult.getDescription())); + dao.setMsg((closeDayResult.getDescription() == null ? "null" : closeDayResult.getDescription())); this.result.success(gson.toJson(dao)); Toast.makeText(plugin.getActivity(), closeDayResult.getResultType() + " " + (closeDayResult.getDescription() == null ? "" : closeDayResult.getDescription()), Toast.LENGTH_SHORT) .show(); diff --git a/android/app/src/main/java/kz/com/aman/kassa/model/TransactionDao.java b/android/app/src/main/java/kz/com/aman/kassa/model/TransactionDao.java new file mode 100644 index 0000000..5ed9b3e --- /dev/null +++ b/android/app/src/main/java/kz/com/aman/kassa/model/TransactionDao.java @@ -0,0 +1,60 @@ +package kz.com.aman.kassa.model; + +import java.sql.Timestamp; + +public class TransactionDao { + String cardType; + String cardExpireDate; + String cardNumber; + String transactionType; + Long amount; + String date; + + public void setDate(String date) { + this.date = date; + } + + public String getDate() { + return date; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getCardExpireDate() { + return cardExpireDate; + } + + public void setCardExpireDate(String cardExpireDate) { + this.cardExpireDate = cardExpireDate; + } + + public String getCardNumber() { + return cardNumber; + } + + public void setCardNumber(String cardNumber) { + this.cardNumber = cardNumber; + } + + public String getTransactionType() { + return transactionType; + } + + public void setTransactionType(String transactionType) { + this.transactionType = transactionType; + } + + public Long getAmount() { + return amount; + } + + public void setAmount(Long amount) { + this.amount = amount; + } +} diff --git a/assets/images/halykpos.png b/assets/images/halykpos.png new file mode 100644 index 0000000..40b13b4 Binary files /dev/null and b/assets/images/halykpos.png differ diff --git a/lib/core/entity/Voucher.dart b/lib/core/entity/Voucher.dart index 8b6740a..3540b1c 100644 --- a/lib/core/entity/Voucher.dart +++ b/lib/core/entity/Voucher.dart @@ -14,6 +14,7 @@ const String Voucher_columnUrl = 'url'; const String VoucherTypePayment = 'payment'; const String VoucherTypeReturnPay = 'returnPay'; const String VoucherTypeReport = 'report'; +const String VoucherTypeCloseDayPosReport = 'closeDayPosReport'; class Voucher { int id; diff --git a/lib/core/foo_test.dart b/lib/core/foo_test.dart new file mode 100644 index 0000000..ce37072 --- /dev/null +++ b/lib/core/foo_test.dart @@ -0,0 +1,22 @@ +import 'dart:convert'; + +import 'package:aman_kassa_flutter/core/models/transaction_item.dart'; + +void main() { + var date = "2021-01-14T12:15:34.511Z"; + + String text = '{'+ + '"amount": 5500,'+ + '"cardExpireDate": "09/22",'+ + '"cardNumber": "400303******6254",'+ + '"cardType": "VISA",'+ + '"date": "2021-01-14 12:22:09",'+ + '"transactionType": "PAYMENT"'+ + '}'; + + print(text); + dynamic data = json.decode(text); + TransactionItem item = TransactionItem.fromJson(data); + + print(item.date); +} \ No newline at end of file diff --git a/lib/core/models/aman_dao.dart b/lib/core/models/aman_dao.dart index a8812ac..7581b24 100644 --- a/lib/core/models/aman_dao.dart +++ b/lib/core/models/aman_dao.dart @@ -1,16 +1,17 @@ class AmanDao { final T data; - //final List rows; + final dynamic rows; final String msg; final bool success; - AmanDao({this.data, this.success, this.msg}); + AmanDao({this.data, this.success, this.msg, this.rows}); factory AmanDao.fromJson(Map data) { return AmanDao( data: data['data'], msg: data['msg'], - success: data['success']); + success: data['success'], + rows: data['rows']); } } diff --git a/lib/core/models/close_day_data.dart b/lib/core/models/close_day_data.dart new file mode 100644 index 0000000..2f3437a --- /dev/null +++ b/lib/core/models/close_day_data.dart @@ -0,0 +1,45 @@ + +import 'package:aman_kassa_flutter/core/models/transaction_item.dart'; + +class CloseDayData { + final String title; + final num totalAmount; + final int totalCount; + final num paymentAmount; + final int paymentCount; + final num refundAmount; + final int refundCount; + + final List items; + CloseDayData({ + this.title, + this.items, + this.totalAmount, this.totalCount, + this.paymentAmount, this.paymentCount, + this.refundAmount, this.refundCount + }); + + static CloseDayData fromJson(Map json) { + return CloseDayData( + title: json['title'], + totalAmount: json['totalAmount'], + totalCount: json['totalCount'], + paymentAmount: json['paymentAmount'], + paymentCount: json['paymentCount'], + refundAmount: json['refundAmount'], + refundCount: json['refundCount'], + items: (json['items'] as List).map((e) => TransactionItem.fromJson(e)).toList(), + ); + } + Map toJson() => + { + 'title': title, + 'totalAmount': totalAmount, + 'totalCount': totalCount, + 'paymentAmount': paymentAmount, + 'paymentCount': paymentCount, + 'refundAmount': refundAmount, + 'refundCount': refundCount, + 'items': items.map((e) => e.toJson()).toList(), + }; +} \ No newline at end of file diff --git a/lib/core/models/transaction_item.dart b/lib/core/models/transaction_item.dart new file mode 100644 index 0000000..7744ca2 --- /dev/null +++ b/lib/core/models/transaction_item.dart @@ -0,0 +1,31 @@ +class TransactionItem { + final String cardType; + final String cardExpireDate; + final String cardNumber; + final String transactionType; + final num amount; + final DateTime date; + TransactionItem({this.cardType, this.cardExpireDate, this.cardNumber, this.transactionType, this.amount, this.date}); + + static TransactionItem fromJson(Map json) { + return TransactionItem( + cardType: json['cardType'], + cardExpireDate: json['cardExpireDate'], + cardNumber: json['cardNumber'], + transactionType: json['transactionType'], + amount: json['amount'], + date: json['date'] != null + ? DateTime.parse(json['date']) + : null, + ); + } + Map toJson() => + { + 'cardType': cardType, + 'cardExpireDate': cardExpireDate, + 'cardNumber': cardNumber, + 'transactionType': transactionType, + 'amount': amount, + 'date' : date !=null ? date.toString() : null, + }; +} \ No newline at end of file diff --git a/lib/core/route_names.dart b/lib/core/route_names.dart index 05777c6..dd2469b 100644 --- a/lib/core/route_names.dart +++ b/lib/core/route_names.dart @@ -1,6 +1,7 @@ const String LoginViewRoute = "LoginView"; const String HomeViewRoute = "HomeView"; const String ImageShowRoute = "ImageShowRoute"; +const String CloseDayShowRoute = "CloseDayShowRoute"; const String PaymentViewRoute = "PaymentView"; const String PaymentNfcViewRoute = "PaymentNfcViewRoute"; const String HistoryViewRoute = "HistoryView"; diff --git a/lib/core/router.dart b/lib/core/router.dart index 1a213ef..ba822a2 100644 --- a/lib/core/router.dart +++ b/lib/core/router.dart @@ -1,6 +1,8 @@ +import 'package:aman_kassa_flutter/core/models/close_day_data.dart'; import 'package:aman_kassa_flutter/views/bank_setting/bank_setting_view.dart'; import 'package:aman_kassa_flutter/views/bank_view/bank_view.dart'; import 'package:aman_kassa_flutter/views/check/image_show_container.dart'; +import 'package:aman_kassa_flutter/views/close_day_view/close_day_show_container.dart'; import 'package:aman_kassa_flutter/views/history/history_view.dart'; import 'package:aman_kassa_flutter/views/info_kkm/info_kkm_view.dart'; import 'package:aman_kassa_flutter/views/payment/payment_view.dart'; @@ -72,6 +74,12 @@ Route generateRoute(RouteSettings settings) { routeName: settings.name, viewToShow: ImageShowContainer(data), ); + case CloseDayShowRoute: + CloseDayData data = settings.arguments as CloseDayData; + return _getPageRoute( + routeName: settings.name, + viewToShow: CloseDayShowContainer(data), + ); default: return MaterialPageRoute( builder: (_) => Scaffold( diff --git a/lib/core/services/BankService.dart b/lib/core/services/BankService.dart index 4c9982d..dea5551 100644 --- a/lib/core/services/BankService.dart +++ b/lib/core/services/BankService.dart @@ -1,7 +1,10 @@ import 'dart:convert'; import 'package:aman_kassa_flutter/core/base/base_service.dart'; import 'package:aman_kassa_flutter/core/models/aman_dao.dart'; +import 'package:aman_kassa_flutter/core/models/close_day_data.dart'; +import 'package:aman_kassa_flutter/core/models/transaction_item.dart'; import 'package:flutter/services.dart'; +import 'package:intl/intl.dart'; class BankService extends BaseService { static const String _url = 'http://195.200.74.83:5000'; @@ -171,5 +174,39 @@ class BankService extends BaseService { } } + CloseDayData closeDayDataConvert(dynamic rows) { + final DateFormat formatter = DateFormat('dd.MM.yyyy'); + final DateTime now = DateTime.now(); + final String formatted = formatter.format(now); + List items = (rows as List).map((e) => TransactionItem.fromJson(e)).toList(); + num totalAmount = 0; + int totalCount = 0; + num paymentAmount = 0; + int paymentCount = 0; + num refundAmount = 0; + int refundCount = 0; + + for(TransactionItem item in items) { + if(item.transactionType == 'PAYMENT') { + paymentCount++; + paymentAmount += ( item.amount / 100 ); + totalAmount += ( item.amount / 100 ); + } else if(item.transactionType == 'REFUND') { + refundCount++; + refundAmount += ( item.amount / 100 ); + totalAmount -= ( item.amount / 100 ); + } + totalCount++; + } + + CloseDayData closeDayData = new CloseDayData( + items: items, + title: 'Отчет POS от $formatted', + totalAmount: totalAmount, totalCount: totalCount, + paymentAmount: paymentAmount, paymentCount: paymentCount, + refundAmount: refundAmount, refundCount: refundCount, + ); + return closeDayData; + } } diff --git a/lib/views/bank_setting/bank_setting_view.dart b/lib/views/bank_setting/bank_setting_view.dart index 034a744..f318196 100644 --- a/lib/views/bank_setting/bank_setting_view.dart +++ b/lib/views/bank_setting/bank_setting_view.dart @@ -63,7 +63,7 @@ class _BankSettingViewState extends State { return Scaffold( appBar: AppBar( centerTitle: true, - title: Text('Настройка Tap2Phone'), + title: Text('Настройка HalykPos'), ), body: SingleChildScrollView( child: Container( diff --git a/lib/views/close_day_view/close_day_show_container.dart b/lib/views/close_day_view/close_day_show_container.dart new file mode 100644 index 0000000..c68998b --- /dev/null +++ b/lib/views/close_day_view/close_day_show_container.dart @@ -0,0 +1,77 @@ +import 'package:aman_kassa_flutter/core/models/close_day_data.dart'; +import 'package:aman_kassa_flutter/core/models/transaction_item.dart'; +import 'package:aman_kassa_flutter/shared/shared_styles.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +class CloseDayShowContainer extends StatelessWidget { + final CloseDayData data; + DateFormat dateFormat = DateFormat("dd.MM.yyyy HH:mm:ss"); + CloseDayShowContainer(this.data); + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(data.title ?? 'Отчет: Закрытие дня POS'), + ), + body: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Общий итоги', style: const TextStyle(fontWeight: FontWeight.bold, color: Colors.black, fontSize: 15) ), + Table( + children: [ + TableRow(children: [ + TableCell(child: Text('Оплат:', style: productTextStyle,)), + TableCell(child: Text('${data.paymentCount}', textAlign: TextAlign.center, style: productTextStyle)), + TableCell(child: Text('${data.paymentAmount} T', textAlign: TextAlign.end, style: productTextStyle)), + ]), + TableRow(children: [ + TableCell(child: Text('Возвратов:', style: productTextStyle,)), + TableCell(child: Text('${data.refundCount}', textAlign: TextAlign.center, style: productTextStyle)), + TableCell(child: Text('${data.refundAmount} T', textAlign: TextAlign.end, style: productTextStyle)), + ]), + TableRow(children: [ + TableCell(child: Text('Итого:', style: productTextStyle,)), + TableCell(child: Text('${data.totalCount}', textAlign: TextAlign.center, style: productTextStyle)), + TableCell(child: Text('${data.totalAmount} T', textAlign: TextAlign.end, style: productTextStyle)), + ]), + ], + ) + ], + ), + ), + Divider(), + Expanded( + child: ListView.separated( + itemCount: data.items.length, + separatorBuilder: (BuildContext context, int index) { + return Divider(); + }, + itemBuilder: (BuildContext context, int index) { + TransactionItem item = data.items.elementAt(index); + return ListTile( + title: Text(item.cardNumber), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(dateFormat.format(item.date)), + ], + ), + trailing: Text('${item.amount / 100} T'), + ); + }, + ), + ), + ], + ) + ); + } +} + + diff --git a/lib/views/history/history_view.dart b/lib/views/history/history_view.dart index ec7498f..7e5d6dd 100644 --- a/lib/views/history/history_view.dart +++ b/lib/views/history/history_view.dart @@ -4,6 +4,7 @@ import 'package:aman_kassa_flutter/core/entity/Voucher.dart'; import 'package:aman_kassa_flutter/core/locator.dart'; import 'package:aman_kassa_flutter/core/models/card_data.dart'; import 'package:aman_kassa_flutter/core/models/check_data.dart'; +import 'package:aman_kassa_flutter/core/models/close_day_data.dart'; import 'package:aman_kassa_flutter/core/route_names.dart'; import 'package:aman_kassa_flutter/core/services/DbService.dart'; import 'package:aman_kassa_flutter/core/services/navigator_service.dart'; @@ -66,18 +67,32 @@ class _HistoryViewState extends State { }, itemBuilder: (BuildContext context, int index) { Voucher voucher = data[index]; - CheckData checkData = CheckData.fromJson(json.decode(voucher.data)); - CardData cardData = checkData.cardData; + CardData cardData; + CloseDayData closeDayData; + if( voucher.type == VoucherTypeCloseDayPosReport ) { + closeDayData = CloseDayData.fromJson(json.decode(voucher.data)); + } else if( voucher.data !=null ) { + CheckData checkData = CheckData.fromJson(json.decode(voucher.data)); + cardData = checkData.cardData; + } + + return ListTile( onTap: () { - _navigatorService.push(ImageShowRoute, - arguments: ImageShowModel( + + if( voucher.type == VoucherTypeCloseDayPosReport ) { + _navigatorService.push(CloseDayShowRoute, + arguments: closeDayData); + } else { + _navigatorService.push(ImageShowRoute, + arguments: ImageShowModel( data: voucher.base64Data, title: voucher.name, url: voucher.url, cardData: cardData, voucher: voucher, - )); + )); + } }, title: buildText(voucher), subtitle: Column( @@ -98,6 +113,11 @@ class _HistoryViewState extends State { MdiIcons.backupRestore, size: 40, ) + : voucher.type == VoucherTypeCloseDayPosReport ? + Icon( + Icons.phonelink_lock_outlined, + size: 40, + ) : Icon( Icons.description, size: 40, diff --git a/lib/views/home/components/popup_menu.dart b/lib/views/home/components/popup_menu.dart index 75c89af..9b68189 100644 --- a/lib/views/home/components/popup_menu.dart +++ b/lib/views/home/components/popup_menu.dart @@ -33,7 +33,7 @@ class _PopupMenuState extends State { //if (version >= 24 ) // const Choice(title: 'Bank', icon: Icons.text_fields, command: 'bank'), if (version >= 24 ) - const Choice(title: 'Настройка Tap2Phone', icon: MdiIcons.nfc, command: 'tap2phone'), + const Choice(title: 'Настройка HalykPos', icon: Icons.phonelink_lock_outlined, command: 'tap2phone'), const Choice(title: 'Выйти', icon: Icons.exit_to_app, command: 'exit') ]; setState(() { diff --git a/lib/views/home/tabs/AdditionalTab.dart b/lib/views/home/tabs/AdditionalTab.dart index 9e4aa4e..45487b9 100644 --- a/lib/views/home/tabs/AdditionalTab.dart +++ b/lib/views/home/tabs/AdditionalTab.dart @@ -1,6 +1,9 @@ +import 'dart:convert'; + import 'package:aman_kassa_flutter/core/entity/Voucher.dart'; import 'package:aman_kassa_flutter/core/locator.dart'; import 'package:aman_kassa_flutter/core/models/aman_dao.dart'; +import 'package:aman_kassa_flutter/core/models/close_day_data.dart'; import 'package:aman_kassa_flutter/core/models/money.dart'; import 'package:aman_kassa_flutter/core/models/response.dart'; import 'package:aman_kassa_flutter/core/models/dialog_models.dart'; @@ -273,10 +276,24 @@ class _AdditionalTabState extends State { return; } - _dialog.showDialog(description: 'Закрытие дня: операция прошла успешно!'); + + CloseDayData closeDayData = _bankService.closeDayDataConvert(closeDayDao.rows); + + User user = Redux.store.state.userState.user; + _dataService.insertVoucher( + user: user, + name: closeDayData.title, + data: jsonEncode(closeDayData.toJson()), + total: closeDayData.totalAmount.toDouble(), + type: VoucherTypeCloseDayPosReport); + + // _dialog.showDialog(description: 'Закрытие дня: операция прошла успешно!'); setState(() { isClosePosBusy = false; }); + + _navigator.push(CloseDayShowRoute, + arguments: closeDayData); } @override diff --git a/lib/views/payment/payment_view.dart b/lib/views/payment/payment_view.dart index 21a9248..c4edfb0 100644 --- a/lib/views/payment/payment_view.dart +++ b/lib/views/payment/payment_view.dart @@ -187,7 +187,7 @@ class _PaymentViewState extends State { } Widget _nfsButtonRender() { - if(!isBankApiAccess){ + if(!isBankApiAccess || widget.model.operationType != OperationTypePay){ return Container(); } return StoreConnector( @@ -204,36 +204,47 @@ class _PaymentViewState extends State { splashColor: halykColor.withOpacity(0.4), borderRadius: BorderRadius.circular(10.0), highlightColor: halykColor.withOpacity(0.1), - child: Stack( - alignment: Alignment.center, - children: [ - Opacity( - opacity: 0.25, - child: Image.asset( - 'assets/images/halyk-bank.png', - fit: BoxFit.cover, + child: Container( + width: ScreenUtil().setSp(100.0), + padding: const EdgeInsets.symmetric(vertical: 8.0), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10.0) + ), + child: Column( + children: [ + Container( width: ScreenUtil().setSp(80.0), - height: ScreenUtil().setSp(90.0), + height: ScreenUtil().setSp(80.0), + margin: const EdgeInsets.only(bottom: 8.0), + decoration: BoxDecoration( + border: Border.all(color: Colors.white), + borderRadius: BorderRadius.circular(10.0), + image: DecorationImage( + image: AssetImage('assets/images/halykpos.png'), fit: BoxFit.fitWidth + ), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.5), + spreadRadius: 5, + blurRadius: 7, + offset: Offset(0, 3), // changes position of shadow + ), + ], + ), ), - ), - Container( - padding: const EdgeInsets.all(8.0), - decoration: BoxDecoration( - border: Border.all(color: halykColor), - borderRadius: BorderRadius.circular(10.0) - ), - child: Column( - children: [ - Icon( - MdiIcons.nfc, - color: halykColor, - size: ScreenUtil().setSp(60.0), - ), - Text('Tap2Phone',style: TextStyle(fontSize: ScreenUtil().setSp(10.0), color: halykColor, fontWeight: FontWeight.bold ),), - ], - ), - ), - ], + // Row( + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Icon( + // MdiIcons.nfc, + // color: halykColor, + // size: ScreenUtil().setSp(20.0), + // ), + // Text('Tap2Phone',style: TextStyle(fontSize: ScreenUtil().setSp(10.0), color: halykColor, fontWeight: FontWeight.bold ),), + // ], + // ), + ], + ), ), ); } diff --git a/lib/views/payment_nfc/widgets/phone_view.dart b/lib/views/payment_nfc/widgets/phone_view.dart index 76e653c..fc42389 100644 --- a/lib/views/payment_nfc/widgets/phone_view.dart +++ b/lib/views/payment_nfc/widgets/phone_view.dart @@ -69,7 +69,26 @@ class _PhoneViewState extends State { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Icon(MdiIcons.nfc, color: primaryColor,size: ScreenUtil().setSp(90.0),), + Container( + width: ScreenUtil().setSp(80.0), + height: ScreenUtil().setSp(80.0), + margin: const EdgeInsets.only(bottom: 8.0), + decoration: BoxDecoration( + border: Border.all(color: Colors.white), + borderRadius: BorderRadius.circular(10.0), + image: DecorationImage( + image: AssetImage('assets/images/halykpos.png'), fit: BoxFit.fitWidth + ), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.5), + spreadRadius: 5, + blurRadius: 7, + offset: Offset(0, 3), // changes position of shadow + ), + ], + ), + ), verticalSpaceSmall, AutoSizeText('Ожидание карты', style: TextStyle(fontWeight: FontWeight.bold),) ], @@ -79,7 +98,26 @@ class _PhoneViewState extends State { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Icon(MdiIcons.shieldSearch, color: yellowColor,size: ScreenUtil().setSp(90.0),), + Container( + width: ScreenUtil().setSp(80.0), + height: ScreenUtil().setSp(80.0), + margin: const EdgeInsets.only(bottom: 8.0), + decoration: BoxDecoration( + border: Border.all(color: Colors.white), + borderRadius: BorderRadius.circular(10.0), + image: DecorationImage( + image: AssetImage('assets/images/halykpos.png'), fit: BoxFit.fitWidth + ), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.5), + spreadRadius: 5, + blurRadius: 7, + offset: Offset(0, 3), // changes position of shadow + ), + ], + ), + ), verticalSpaceSmall, AutoSizeText('Проверка', style: TextStyle(fontWeight: FontWeight.bold),) ],