fortenew commit prod

fortenew
Rustem 2024-12-04 11:23:52 +05:00
parent a050407beb
commit 64a1ea99c4
6 changed files with 72 additions and 22 deletions

View File

@ -33,9 +33,9 @@ class CloseDayResultsBean {
static CloseDayResultsBean? fromMap(Map<String, dynamic>? map) { static CloseDayResultsBean? fromMap(Map<String, dynamic>? map) {
if (map == null) return null; if (map == null) return null;
CloseDayResultsBean closeDayResultsBean = CloseDayResultsBean(); CloseDayResultsBean closeDayResultsBean = CloseDayResultsBean();
closeDayResultsBean.reconciliationResult = List.empty()..addAll( closeDayResultsBean.reconciliationResult = (map['reconciliationResult'] as List)
(map['reconciliationResult'] as List).map((o) => ReconciliationResultBean.fromMap(o)) .map((o) => ReconciliationResultBean.fromMap(o))
); .toList();
return closeDayResultsBean; return closeDayResultsBean;
} }
@ -76,9 +76,9 @@ class TransactionsBean {
static TransactionsBean? fromMap(Map<String, dynamic>? map) { static TransactionsBean? fromMap(Map<String, dynamic>? map) {
if (map == null) return null; if (map == null) return null;
TransactionsBean transactionsBean = TransactionsBean(); TransactionsBean transactionsBean = TransactionsBean();
transactionsBean.transaction = List.empty()..addAll( transactionsBean.transaction = (map['transaction'] as List)
(map['transaction'] as List).map((o) => TransactionBean.fromMap(o)) .map((o) => TransactionBean.fromMap(o))
); .toList();
return transactionsBean; return transactionsBean;
} }

View File

@ -117,7 +117,7 @@ class ResultBean {
/// description : "Successfully completed" /// description : "Successfully completed"
class HostResponseBean { class HostResponseBean {
String? code; int? code;
String? description; String? description;
static HostResponseBean? fromMap(Map<String, dynamic>? map) { static HostResponseBean? fromMap(Map<String, dynamic>? map) {

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:aman_kassa_flutter/core/models/halyk/close_day_data.dart'; import 'package:aman_kassa_flutter/core/models/halyk/close_day_data.dart' as halyk;
import 'package:aman_kassa_flutter/core/models/forte/close_day_data.dart'; import 'package:aman_kassa_flutter/core/models/forte/close_day_data.dart' as forte;
import 'package:aman_kassa_flutter/views/bank_setting/bank_setting_view.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/bank_view/bank_view.dart';
import 'package:aman_kassa_flutter/views/check/image_show_container.dart'; import 'package:aman_kassa_flutter/views/check/image_show_container.dart';
@ -17,6 +17,8 @@ import 'package:aman_kassa_flutter/views/settings/printer/views/PrinterEncoding.
import 'package:aman_kassa_flutter/views/settings/printer/views/PrinterPaperSize.dart'; import 'package:aman_kassa_flutter/views/settings/printer/views/PrinterPaperSize.dart';
import 'package:aman_kassa_flutter/views/settings/setting_printer_view.dart'; import 'package:aman_kassa_flutter/views/settings/setting_printer_view.dart';
import 'package:aman_kassa_flutter/views/login/login_view.dart'; import 'package:aman_kassa_flutter/views/login/login_view.dart';
import '../redux/state/bank_state.dart';
import '../redux/store.dart';
import './route_names.dart'; import './route_names.dart';
import 'package:aman_kassa_flutter/views/bank_setting/forte_setting_view.dart'; import 'package:aman_kassa_flutter/views/bank_setting/forte_setting_view.dart';
@ -109,12 +111,33 @@ Route<dynamic> generateRoute(RouteSettings settings) {
routeName: settings.name!, routeName: settings.name!,
viewToShow: PrinterPaperView(), viewToShow: PrinterPaperView(),
); );
// case CloseDayShowRoute: case CloseDayShowRoute:
// CloseDayData data = settings.arguments as CloseDayData; var data = settings.arguments;
// return _getPageRoute(
// routeName: settings.name!, if (data is halyk.CloseDayData) {
// viewToShow: CloseDayShowContainer(data), return _getPageRoute(
// ); routeName: settings.name!,
viewToShow: CloseDayShowContainer(data),
);
} else if (data is forte.CloseDayData) {
return _getPageRoute(
routeName: settings.name!,
viewToShow: CloseDayShowContainer(data),
);
} else {
return _getPageRoute(
routeName: settings.name!,
viewToShow: Scaffold(
appBar: AppBar(
title: Text('Информация недоступна'),
),
body: Center(
child: Text('Данные не могут быть отображены. Пожалуйста, попробуйте позже.'),
),
),
);
}
default: default:
return MaterialPageRoute( return MaterialPageRoute(
builder: (_) => Scaffold( builder: (_) => Scaffold(

View File

@ -86,7 +86,8 @@ class ApiService extends BaseService {
print(hash); print(hash);
Map<String, String> requestBody = <String, String>{'login': login, 'hash': hash}; Map<String, String> requestBody = <String, String>{'login': login, 'hash': hash};
String pointUrl = test ? '/fortepos/test/gettoken' : '/fortepos/prod/gettoken'; // String pointUrl = '/fortepos/test/gettoken';
String pointUrl = '/fortepos/prod/gettoken';
var response = await requestFormData(pointUrl, requestBody, bodyEntry: true, posEndPoint: true, statusCheck: false); var response = await requestFormData(pointUrl, requestBody, bodyEntry: true, posEndPoint: true, statusCheck: false);
print(response); print(response);
return FortePosSession.fromJson(jsonDecode(response)); return FortePosSession.fromJson(jsonDecode(response));

View File

@ -35,6 +35,8 @@ import 'package:vocsy_esys_flutter_share/vocsy_esys_flutter_share.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import '../../core/models/aman_dao.dart'; import '../../core/models/aman_dao.dart';
import '../../redux/state/bank_state.dart';
import '../payment/forte_pos_service.dart';
class ImageShowContainer extends StatefulWidget { class ImageShowContainer extends StatefulWidget {
final ImageShowModel showModel; final ImageShowModel showModel;
@ -233,7 +235,13 @@ class _MyFloatingActionButtonState extends State<MyFloatingActionButton> {
} }
try { try {
await Redux.store!.dispatch(changePinSkipFromSetting(true)); await Redux.store!.dispatch(changePinSkipFromSetting(true));
AmanDao<CardData> response = await reversalHalykPos(widget.data.cardData!, widget.data.voucher!.total!); // Определяем метод отмены в зависимости от типа сессии
final BankState? state = Redux.store?.state.bankState;
final isForteSessionActive = state?.sessionType == 'Forte';
final AmanDao<CardData> response = isForteSessionActive
? await reversalFortePos(widget.data.cardData!, widget.data.voucher!.total!)
: await reversalHalykPos(widget.data.cardData!, widget.data.voucher!.total!);
if (response.success == true) { if (response.success == true) {
pressRefund(); pressRefund();
} else { } else {
@ -274,7 +282,12 @@ class _MyFloatingActionButtonState extends State<MyFloatingActionButton> {
try { try {
await Redux.store!.dispatch(changePinSkipFromSetting(true)); await Redux.store!.dispatch(changePinSkipFromSetting(true));
AmanDao<CardData> response = await refundHalykPos(widget.data.cardData!, widget.data.voucher!.total!); final BankState? state = Redux.store?.state.bankState;
final isForteSessionActive = state?.sessionType == 'Forte';
final AmanDao<CardData> response = isForteSessionActive
? await refundFortePos(widget.data.cardData!, widget.data.voucher!.total!)
: await refundHalykPos(widget.data.cardData!, widget.data.voucher!.total!);
if (response.success == true) { if (response.success == true) {
pressRefund(); pressRefund();
} else { } else {

View File

@ -1,13 +1,18 @@
import 'package:aman_kassa_flutter/core/models/halyk/close_day_data.dart'; import 'package:aman_kassa_flutter/core/models/halyk/close_day_data.dart' as halyk;
import 'package:aman_kassa_flutter/core/models/halyk/halyk_close_day_dao.dart'; import 'package:aman_kassa_flutter/core/models/halyk/halyk_close_day_dao.dart' as halykDao;
import 'package:aman_kassa_flutter/core/models/forte/close_day_data.dart' as forte;
import 'package:aman_kassa_flutter/core/models/forte/forte_close_day_dao.dart' as forteDao;
import 'package:aman_kassa_flutter/core/models/transaction_item.dart'; import 'package:aman_kassa_flutter/core/models/transaction_item.dart';
import 'package:aman_kassa_flutter/shared/shared_styles.dart'; import 'package:aman_kassa_flutter/shared/shared_styles.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import '../../redux/state/bank_state.dart';
import '../../redux/store.dart';
class CloseDayShowContainer extends StatelessWidget { class CloseDayShowContainer extends StatelessWidget {
final CloseDayData data; final dynamic data;
DateFormat dateFormat = DateFormat("dd.MM.yyyy HH:mm:ss"); DateFormat dateFormat = DateFormat("dd.MM.yyyy HH:mm:ss");
CloseDayShowContainer(this.data); CloseDayShowContainer(this.data);
@override @override
@ -60,7 +65,15 @@ class CloseDayShowContainer extends StatelessWidget {
return Divider(); return Divider();
}, },
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
TransactionBean item = data.items!.elementAt(index); final BankState? state = Redux.store?.state.bankState;
final isForteSessionActive = state?.sessionType == 'Forte';
var item;
if (isForteSessionActive == true) {
item = data.items!.elementAt(index) as forteDao.TransactionBean;
} else {
item = data.items!.elementAt(index) as halykDao.TransactionBean;
}
return ListTile( return ListTile(
title: Text(item.instrumentSpecificData?.maskedPan ?? ''), title: Text(item.instrumentSpecificData?.maskedPan ?? ''),
subtitle: Column( subtitle: Column(