parent
f9ed7711e9
commit
4a1f65c681
|
|
@ -14,6 +14,7 @@ import java.util.List;
|
|||
import io.flutter.plugin.common.MethodChannel;
|
||||
import kz.com.aman.kassa.bank.gui.CustomKeyBoardDilalog;
|
||||
import kz.com.aman.kassa.model.AmanDao;
|
||||
import kz.com.aman.kassa.model.CardData;
|
||||
import kz.com.aman.kassa.plugins.BankNfcPlugins;
|
||||
import ru.m4bank.mpos.library.external.transactions.CardPaymentCallbackHandler;
|
||||
import ru.m4bank.mpos.service.commons.data.ResultType;
|
||||
|
|
@ -274,11 +275,16 @@ public class CardPaymentHandlerImpl implements CardPaymentCallbackHandler<Result
|
|||
@Override
|
||||
public void onTransactionDataReceived(TransactionData data) {
|
||||
System.out.println("----->---->---->onTransactionDataReceived");
|
||||
|
||||
plugin.getActivity().runOnUiThread(() -> {
|
||||
AmanDao<String> dao = new AmanDao<>();
|
||||
CardData cardData = new CardData();
|
||||
cardData.setCardExpiryDate(data.getCardExpiryDate());
|
||||
cardData.setCardNumber(data.getCardNumber());
|
||||
cardData.setCardPaymentSystemType(data.getCardPaymentSystemType());
|
||||
cardData.setTransactionNumber(data.getTransactionNumber());
|
||||
cardData.setTransactionType(data.getTransactionType().getCode());
|
||||
AmanDao<CardData> dao = new AmanDao<>();
|
||||
dao.setSuccess(true);
|
||||
dao.setMsg("OK");
|
||||
dao.setData(cardData);
|
||||
this.result.success(gson.toJson(dao));
|
||||
Toast.makeText(plugin.getActivity(), "Transaction data has been received", Toast.LENGTH_LONG)
|
||||
.show();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,343 @@
|
|||
package kz.com.aman.kassa.handler;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.flutter.plugin.common.MethodChannel;
|
||||
import kz.com.aman.kassa.MainActivity;
|
||||
import kz.com.aman.kassa.bank.M4BankActivity;
|
||||
import kz.com.aman.kassa.bank.gui.CustomKeyBoardDilalog;
|
||||
import kz.com.aman.kassa.plugins.BankNfcPlugins;
|
||||
import ru.m4bank.mpos.library.external.transactions.EasyCardRefundCallbackHandler;
|
||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
||||
import ru.m4bank.mpos.service.data.FiscalStatusData;
|
||||
import ru.m4bank.mpos.service.data.PrinterBaseData;
|
||||
import ru.m4bank.mpos.service.data.PrinterErrorData;
|
||||
import ru.m4bank.mpos.service.data.dynamic.objects.Reader;
|
||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
||||
import ru.m4bank.mpos.service.data.dynamic.objects.result.ResultCode;
|
||||
import ru.m4bank.mpos.service.data.dynamic.objects.transaction.RefundType;
|
||||
import ru.m4bank.mpos.service.hardware.error.AllError;
|
||||
import ru.m4bank.mpos.service.hardware.error.ErrorHandler;
|
||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.ApplicationIdConv;
|
||||
import ru.m4bank.mpos.service.hardware.external.cardreaderlib.data.enums.VirtualKeyboardStyleTypeConv;
|
||||
import ru.m4bank.mpos.service.result.PrinterResult;
|
||||
import ru.m4bank.mpos.service.result.Result;
|
||||
import ru.m4bank.mpos.service.transactions.data.ButtonKeyboardDto;
|
||||
import ru.m4bank.mpos.service.transactions.data.MessageButtonData;
|
||||
import ru.m4bank.mpos.service.transactions.data.TransactionData;
|
||||
import ru.m4bank.mpos.service.transactions.data.TransactionExecutionStatus;
|
||||
import ru.m4bank.mpos.service.transactions.data.error.TransactionErrorData;
|
||||
import ru.m4bank.mpos.service.transactions.dto.OnlineCardDataDto;
|
||||
import timber.log.Timber;
|
||||
|
||||
public class CardRefundAmanHandlerImpl implements EasyCardRefundCallbackHandler<Result>, GetTransactionsListCallbackHandler<Result> {
|
||||
|
||||
private final BankNfcPlugins plugin;
|
||||
private final MethodChannel.Result result;
|
||||
private final Gson gson = new Gson();
|
||||
private Transaction transaction;
|
||||
private CustomKeyBoardDilalog customKeyBoardDilalog;
|
||||
|
||||
public CardRefundAmanHandlerImpl(BankNfcPlugins plugin , MethodChannel.Result result) {
|
||||
this.plugin = plugin;
|
||||
this.result = result;
|
||||
customKeyBoardDilalog = new CustomKeyBoardDilalog();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCardReaderForTransactionGettingCompleted() {
|
||||
Timber.d("Reader has been received");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNoBoundedDevicesFound() {
|
||||
Timber.d("No bounded readers");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeviceToUseSelectionRequested(List<Reader> deviceList) {
|
||||
Timber.d("onDeviceToUseSelectionRequested");
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(plugin.getActivity());
|
||||
builder.setTitle("Choose device");
|
||||
|
||||
Spinner deviceListSpinner = new Spinner(plugin.getActivity());
|
||||
ArrayAdapter<Reader> adapter = new ArrayAdapter<>(plugin.getActivity(), android.R.layout.simple_spinner_item, new ArrayList<>(deviceList));
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
deviceListSpinner.setAdapter(adapter);
|
||||
|
||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
||||
plugin.getClientInterface().getTransactionManager().setCardReaderToUse((Reader) deviceListSpinner.getSelectedItem());
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
builder.setView(deviceListSpinner);
|
||||
plugin.getActivity().runOnUiThread(() -> builder.create().show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeviceToConnectSelectionRequested(List<String> deviceList) {
|
||||
Timber.d("onDeviceToConnectSelectionRequested");
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(plugin.getActivity());
|
||||
builder.setTitle("Choose device");
|
||||
|
||||
Spinner deviceListSpinner = new Spinner(plugin.getActivity());
|
||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(plugin.getActivity(), android.R.layout.simple_spinner_item, deviceList);
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
deviceListSpinner.setAdapter(adapter);
|
||||
|
||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
||||
plugin.getClientInterface().getTransactionManager().selectCardReader(deviceListSpinner.getSelectedItem().toString());
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
builder.setView(deviceListSpinner);
|
||||
plugin.getActivity().runOnUiThread(() -> builder.create().show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCompleted(Result result) {
|
||||
Timber.d("onCompleted");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()),
|
||||
Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWrongApiCalled() {
|
||||
Timber.d("onWrongApiCalled");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceiveCardData(OnlineCardDataDto data, boolean shouldConfirmBeManuallyCalled) {
|
||||
Timber.d("onReceiveCardData");
|
||||
if (shouldConfirmBeManuallyCalled) {
|
||||
plugin.getClientInterface().getTransactionManager().processOnlineTransaction(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequiredReversal(String description, ResultCode resultCode) {
|
||||
Timber.d("onRequiredReversal: %s, resultCode: %s", description, resultCode.name());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequiredApplicationSelection(List<ApplicationIdConv> list) {
|
||||
Timber.d("onRequiredApplicationSelection");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransactionInit() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransactionExecutionStatusChanged(TransactionExecutionStatus newStatus) {
|
||||
Timber.d("onTransactionExecutionStatusChanged: %s", newStatus.name());
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), newStatus.name(), Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorHandler errorHandler, TransactionErrorData transactionErrorData) {
|
||||
Timber.d("onError: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getDescription());
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onErrorWithPossibilityToRetry(ErrorHandler errorHandler) {
|
||||
Timber.d("onErrorWithPossibilityToRetry: %s, description: %s", ((AllError) errorHandler).name(), errorHandler.getDescription());
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), errorHandler.getFinalDescription(), Toast.LENGTH_LONG).show());
|
||||
plugin.getClientInterface().getTransactionManager().tryToRepeatExecuteLastRequestInTransaction();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransactionDataReceivedError(TransactionData data) {
|
||||
Timber.d("onTransactionDataReceivedError");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUserInformationRequested(boolean signNeeded) {
|
||||
Timber.d("onUserInformationRequested");
|
||||
plugin.getClientInterface().getTransactionManager().sendTransactionUserData("signature", "phone", "email");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransactionDataReceived(TransactionData data) {
|
||||
Timber.d("onTransactionDataReceived");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Transaction data has been received", Toast.LENGTH_LONG)
|
||||
.show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransactionCompleted() {
|
||||
Timber.d("onTransactionCompleted");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Operation has been successfully completed", Toast.LENGTH_LONG)
|
||||
.show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnectedEventReceivedOrCanNotEstablishConnection(boolean reconnectAvailable, String description) {
|
||||
Timber.d("onDisconnectedEventReceivedOrCanNotEstablishConnection");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConnectingProcessStarted(String name) {
|
||||
Timber.d("onConnectingProcessStarted: %s", name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReconnectNeededToProcess() {
|
||||
Timber.d("onReconnectNeededToProcess");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReconciliationRequiredToProcess() {
|
||||
Timber.d("onReconciliationRequiredToProcess");
|
||||
Timber.d("Reconciliation required!!!");
|
||||
plugin.getClientInterface().getTransactionManager().makeReconciliationDuringTransaction();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReconciliationCompleted(Result result) {
|
||||
Timber.d("onReconciliationCompleted");
|
||||
Timber.d("Reconciliation completed!!!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notAuthorized() {
|
||||
Timber.d("notAuthorized");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "notAuthorized", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRepeat(int attemptNumber) {
|
||||
Timber.d("onRepeat");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestedReportZ() {
|
||||
Timber.d("onRequestedReportZ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCompletedPrinting(PrinterResult<PrinterErrorData, PrinterBaseData> printerErrorDataPrinterBaseDataPrinterResult) {
|
||||
Timber.d("onCompletedPrinting");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusFiscalModule(FiscalStatusData fiscalStatusData) {
|
||||
Timber.d("onStatusFiscalModule");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrinterForRegistrationGettingCompleted() {
|
||||
Timber.d("onPrinterForRegistrationGettingCompleted");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNoBoundedPrinterFound() {
|
||||
Timber.d("onNoBoundedPrinterFound");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrinterToUseSelectionRequested(List<String> printerList) {
|
||||
Timber.d("onPrinterToUseSelectionRequested");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefundDataRequested() {
|
||||
Timber.d("onRefundDataRequested");
|
||||
plugin.getClientInterface().getTransactionManager().setRefundData(transaction, transaction.getAmount(), RefundType.General);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransactionsListReceived(List<Transaction> transactionList) {
|
||||
Timber.d("onTransactionsListReceived");
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(plugin.getActivity());
|
||||
builder.setTitle("Choose transaction");
|
||||
|
||||
Spinner transactionListSpinner = new Spinner(plugin.getActivity());
|
||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(plugin.getActivity(), android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
transactionListSpinner.setAdapter(adapter);
|
||||
|
||||
builder.setPositiveButton("OK", (dialog, which) -> {
|
||||
transaction = (Transaction) transactionListSpinner.getSelectedItem();
|
||||
plugin.getClientInterface().getTransactionManager().makeCardRefund(this);
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
builder.setView(transactionListSpinner);
|
||||
plugin.getActivity().runOnUiThread(() -> builder.create().show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityUpdateUiThread() {
|
||||
Timber.d("onActivityUpdateUiThread");
|
||||
plugin.getClientInterface().getTransactionManager().addPinpadClickListener(plugin.getActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePinPadButtons() {
|
||||
Timber.d("onCreatePinPadButtons");
|
||||
customKeyBoardDilalog.createDialog(plugin.getActivity());
|
||||
customKeyBoardDilalog.show(plugin.getActivity());
|
||||
ButtonKeyboardDto buttonKeyboardDto = new ButtonKeyboardDto.Build(
|
||||
customKeyBoardDilalog.getBtnb1(),
|
||||
customKeyBoardDilalog.getBtnb2(),
|
||||
customKeyBoardDilalog.getBtnb3(),
|
||||
customKeyBoardDilalog.getBtnb4(),
|
||||
customKeyBoardDilalog.getBtnb5(),
|
||||
customKeyBoardDilalog.getBtnb6(),
|
||||
customKeyBoardDilalog.getBtnb7(),
|
||||
customKeyBoardDilalog.getBtnb8(),
|
||||
customKeyBoardDilalog.getBtnb9(),
|
||||
customKeyBoardDilalog.getBtnb0(),
|
||||
customKeyBoardDilalog.getBtncancel(),
|
||||
customKeyBoardDilalog.getBtnconfirm(),
|
||||
customKeyBoardDilalog.getBtnclean(),
|
||||
plugin.getActivity().getWindowManager().getDefaultDisplay().getRotation()
|
||||
).build();
|
||||
plugin.getClientInterface().getTransactionManager().addPinPadButtons(buttonKeyboardDto);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShowPinPadKeyBoard(MessageButtonData messageButtonData) {
|
||||
Timber.d("onShowPinPadKeyBoard");
|
||||
customKeyBoardDilalog.setText(messageButtonData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateElementPin(int count) {
|
||||
Timber.d("onUpdateElementPin");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "count = " + count, Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCloseKeyboard() {
|
||||
Timber.d("onCloseKeyboard");
|
||||
customKeyBoardDilalog.close(plugin.getActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequiredAdditionalVirtualKeyboardSettings(VirtualKeyboardStyleTypeConv virtualKeyboardStyleTypeConv) {
|
||||
// activity.showSelectStyleDialog(additionalData ->
|
||||
// plugin.getClientInterface().getTransactionManager().addVirtualPinKeyboardData(additionalData));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequiredHostAddress() {
|
||||
Timber.d("onRequiredHostAddress");
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Set Host Address", Toast.LENGTH_LONG)
|
||||
.show());
|
||||
plugin.getClientInterface().getTransactionManager().setHostAddress("213.79.122.128", "8011");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package kz.com.aman.kassa.handler;
|
||||
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
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.plugins.BankNfcPlugins;
|
||||
import ru.m4bank.mpos.library.external.transactions.CloseDayCallbackHandler;
|
||||
import ru.m4bank.mpos.service.commons.data.ResultType;
|
||||
import ru.m4bank.mpos.service.data.dynamic.objects.Transaction;
|
||||
import ru.m4bank.mpos.service.handling.result.CloseDayResult;
|
||||
import ru.m4bank.mpos.service.result.Result;
|
||||
import ru.m4bank.mpos.service.transactions.network.closeday.CloseDayResponseInfo;
|
||||
|
||||
//import com.landicorp.uns.result;
|
||||
|
||||
|
||||
public class CloseDayHandlerImpl implements CloseDayCallbackHandler<Result> {
|
||||
private final BankNfcPlugins plugin;
|
||||
private final MethodChannel.Result result;
|
||||
private final Gson gson = new Gson();
|
||||
|
||||
public CloseDayHandlerImpl(BankNfcPlugins plugin, MethodChannel.Result result) {
|
||||
this.plugin = plugin;
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notAuthorized() {
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Not authorized", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCompleted(Result result) {
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), result.getResultType() + " " + (result.getDescription() == null ? "" : result.getDescription()), Toast.LENGTH_SHORT)
|
||||
.show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWrongApiCalled() {
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Wrong method has been called", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRepeat(int attemptNumber) {
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "Repeat attempt number " + attemptNumber, Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransactionsListReceived(List<Transaction> transactionList, List<CloseDayResponseInfo> list1) {
|
||||
plugin.getActivity().runOnUiThread(() -> Toast.makeText(plugin.getActivity(), "onTransactionsListReceived - " + transactionList, Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCompleted(CloseDayResult closeDayResult) {
|
||||
plugin.getActivity().runOnUiThread(() -> {
|
||||
AmanDao<String> dao = new AmanDao<>();
|
||||
dao.setSuccess(ResultType.SUCCESSFUL.equals(closeDayResult.getResultType()));
|
||||
dao.setMsg((closeDayResult.getDescription() == null ? "" : closeDayResult.getDescription()));
|
||||
this.result.success(gson.toJson(dao));
|
||||
Toast.makeText(plugin.getActivity(), closeDayResult.getResultType() + " " + (closeDayResult.getDescription() == null ? "" : closeDayResult.getDescription()), Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -27,6 +27,16 @@ public class TransactionDetailsHandlerImpl implements GetTransactionDetailsCallb
|
|||
plugin.getActivity().runOnUiThread(() -> {
|
||||
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());
|
||||
Toast.makeText(plugin.getActivity(), "Transaction details received: " + transaction, Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
});
|
||||
|
|
@ -48,7 +58,6 @@ public class TransactionDetailsHandlerImpl implements GetTransactionDetailsCallb
|
|||
plugin.getActivity().runOnUiThread(() -> {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(plugin.getActivity());
|
||||
builder.setTitle("Choose transaction");
|
||||
|
||||
Spinner transactionListSpinner = new Spinner(plugin.getActivity());
|
||||
ArrayAdapter<Transaction> adapter = new ArrayAdapter<>(plugin.getActivity(), android.R.layout.simple_spinner_item, new ArrayList<>(transactionList));
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
package kz.com.aman.kassa.model;
|
||||
|
||||
public class CardData {
|
||||
private Integer transactionNumber;
|
||||
private String cardExpiryDate;
|
||||
private String cardNumber;
|
||||
private String transactionType;
|
||||
private String cardPaymentSystemType;
|
||||
|
||||
public String getCardExpiryDate() {
|
||||
return cardExpiryDate;
|
||||
}
|
||||
|
||||
public void setCardExpiryDate(String cardExpiryDate) {
|
||||
this.cardExpiryDate = cardExpiryDate;
|
||||
}
|
||||
|
||||
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 String getCardPaymentSystemType() {
|
||||
return cardPaymentSystemType;
|
||||
}
|
||||
|
||||
public void setCardPaymentSystemType(String cardPaymentSystemType) {
|
||||
this.cardPaymentSystemType = cardPaymentSystemType;
|
||||
}
|
||||
|
||||
public Integer getTransactionNumber() {
|
||||
return transactionNumber;
|
||||
}
|
||||
|
||||
public void setTransactionNumber(Integer transactionNumber) {
|
||||
this.transactionNumber = transactionNumber;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +1,11 @@
|
|||
package kz.com.aman.kassa.plugins;
|
||||
|
||||
import android.os.Build;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.flutter.plugin.common.MethodCall;
|
||||
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
|
||||
|
|
@ -24,13 +20,11 @@ import kz.com.aman.kassa.handler.AuthorizationHandlerImpl;
|
|||
import kz.com.aman.kassa.handler.CardPaymentHandlerImpl;
|
||||
import kz.com.aman.kassa.handler.ConnectionCheckHandlerImpl;
|
||||
import kz.com.aman.kassa.handler.TransactionDetailsHandlerImpl;
|
||||
import kz.com.aman.kassa.handler.CloseDayHandlerImpl;
|
||||
import kz.com.aman.kassa.model.AmanDao;
|
||||
import ru.m4bank.mpos.library.M4BankMposClient;
|
||||
import ru.m4bank.mpos.library.M4BankMposClientInterfaceFacade;
|
||||
import ru.m4bank.mpos.library.M4BankMposParameters;
|
||||
import ru.m4bank.mpos.library.external.authorization.AuthorizationCallbackHandler;
|
||||
import ru.m4bank.mpos.library.external.transactions.GetTransactionsListCallbackHandler;
|
||||
import ru.m4bank.mpos.service.authorization.network.AuthorizationResponse;
|
||||
import ru.m4bank.mpos.service.commons.data.ConfigurationSettings;
|
||||
import ru.m4bank.mpos.service.commons.data.NetworkConfiguration;
|
||||
import ru.m4bank.mpos.service.commons.data.TerminalConfiguration;
|
||||
|
|
@ -93,6 +87,9 @@ public class BankNfcPlugins implements MethodCallHandler {
|
|||
case "shutdown":
|
||||
shutdown(call, result);
|
||||
break;
|
||||
case "closeDay":
|
||||
closeDay(call, result);
|
||||
break;
|
||||
case "transaction":
|
||||
showTransaction(call, result);
|
||||
break;
|
||||
|
|
@ -253,6 +250,16 @@ public class BankNfcPlugins implements MethodCallHandler {
|
|||
}
|
||||
}
|
||||
|
||||
private void closeDay(MethodCall call, Result result) {
|
||||
try {
|
||||
clientInterface.cancel();
|
||||
clientInterface.getTransactionManager().closeDay(new CloseDayHandlerImpl(this, result));
|
||||
} catch (Exception e) {
|
||||
System.out.println("=============>ERROR:"+e.getMessage());
|
||||
result.error("2", e.getMessage(), e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void showTransaction(MethodCall call, Result result){
|
||||
clientInterface.getTransactionManager()
|
||||
.getTransactionsList(
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
class CardData {
|
||||
final int transactionNumber;
|
||||
final String cardExpiryDate;
|
||||
final String cardNumber;
|
||||
final String transactionType;
|
||||
final String cardPaymentSystemType;
|
||||
|
||||
CardData({this.transactionNumber, this.cardExpiryDate, this.cardNumber, this.transactionType, this.cardPaymentSystemType});
|
||||
|
||||
static CardData fromJson(Map<String, dynamic> json) {
|
||||
return json != null ?
|
||||
CardData(
|
||||
transactionNumber: json['transactionNumber'],
|
||||
cardExpiryDate: json['cardExpiryDate'],
|
||||
cardNumber: json['cardNumber'],
|
||||
transactionType: json['transactionType'],
|
||||
cardPaymentSystemType: json['cardPaymentSystemType'],
|
||||
)
|
||||
: null;
|
||||
}
|
||||
Map<String, dynamic> toJson() =>
|
||||
{
|
||||
'transactionNumber': transactionNumber,
|
||||
'cardExpiryDate': cardExpiryDate,
|
||||
'cardNumber': cardNumber,
|
||||
'transactionType': transactionType,
|
||||
'cardPaymentSystemType': cardPaymentSystemType,
|
||||
};
|
||||
}
|
||||
|
|
@ -1,22 +1,26 @@
|
|||
import 'package:aman_kassa_flutter/core/models/card_data.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/check_item.dart';
|
||||
|
||||
class CheckData {
|
||||
final String type;
|
||||
num card;
|
||||
final List<CheckItem> items;
|
||||
CheckData({this.type, this.card, this.items});
|
||||
CardData cardData;
|
||||
CheckData({this.type, this.card, this.items, this.cardData});
|
||||
|
||||
static CheckData fromJson(Map<String, dynamic> json) {
|
||||
return CheckData(
|
||||
type: json['type'],
|
||||
card: json['card'],
|
||||
items: json['items'],
|
||||
items: (json['items'] as List).map((e) => CheckItem.fromJson(e)).toList(),
|
||||
cardData: CardData.fromJson(json['cardData'])
|
||||
);
|
||||
}
|
||||
Map<String, dynamic> toJson() =>
|
||||
{
|
||||
'type': type,
|
||||
'card': card,
|
||||
'items': items.map((e) => e.toJson()).toList()
|
||||
'items': items.map((e) => e.toJson()).toList(),
|
||||
'cardData': cardData!=null ? cardData.toJson() : null
|
||||
};
|
||||
}
|
||||
|
|
@ -95,6 +95,18 @@ class BankService extends BaseService {
|
|||
}
|
||||
}
|
||||
|
||||
Future<AmanDao> closeDay() async {
|
||||
try {
|
||||
String response = await _channel.invokeMethod("closeDay");
|
||||
AmanDao dao = AmanDao.fromJson(json.decode(response));
|
||||
log.i('${dao.success} - ${dao.msg}');
|
||||
return dao;
|
||||
} catch (e, stack) {
|
||||
log.e("BankService", e, stack);
|
||||
return new AmanDao(msg: 'Ошибка при закрытии дня');
|
||||
}
|
||||
}
|
||||
|
||||
Future<AmanDao> pay({double amount}) async {
|
||||
try {
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import 'package:aman_kassa_flutter/core/entity/Service.dart';
|
|||
import 'package:aman_kassa_flutter/core/entity/Voucher.dart';
|
||||
import 'package:aman_kassa_flutter/core/locator.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/calc_model.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/check_item.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/product_dao.dart';
|
||||
|
|
@ -135,16 +136,19 @@ class DataService extends BaseService {
|
|||
List<ProductDao> kassaItems,
|
||||
List<CalcModel> calcItems,
|
||||
String operationType,
|
||||
String mode}) async {
|
||||
String mode,
|
||||
CardData cardData}) async {
|
||||
try {
|
||||
String data;
|
||||
if (mode == SettingModeKassa) {
|
||||
CheckData checkData = _transformProductsToCheckData(
|
||||
paymentType: paymentType, tradeType: tradeType, items: kassaItems);
|
||||
checkData.cardData = cardData;
|
||||
data = jsonEncode(checkData.toJson());
|
||||
} else if (mode == SettingModeCalc) {
|
||||
CheckData checkData = _transformCalcModelToCheckData(
|
||||
paymentType: paymentType, tradeType: tradeType, items: calcItems);
|
||||
checkData.cardData = cardData;
|
||||
data = jsonEncode(checkData.toJson());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'dart:convert';
|
||||
|
||||
import 'package:aman_kassa_flutter/core/locator.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/aman_dao.dart';
|
||||
import 'package:aman_kassa_flutter/core/services/BankService.dart';
|
||||
import 'package:aman_kassa_flutter/core/services/dialog_service.dart';
|
||||
import 'package:aman_kassa_flutter/redux/actions/bank_actions.dart';
|
||||
|
|
@ -49,11 +50,51 @@ class _BankSettingViewState extends State<BankSettingView> {
|
|||
super.dispose();
|
||||
}
|
||||
|
||||
void _saveData() async {
|
||||
void _saveData(BuildContext _context) async {
|
||||
FocusScope.of(_context).unfocus();
|
||||
await Redux.store.dispatch(saveData(_emailController.text, _passwordController.text));
|
||||
_dialogService.showDialog(description: 'Данные сохранены');
|
||||
}
|
||||
|
||||
void _closeDay(BuildContext _context) async {
|
||||
FocusScope.of(_context).unfocus();
|
||||
|
||||
//Инициализация
|
||||
bool initialized = await _bankService.init();
|
||||
if (!initialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Проверка связи
|
||||
bool connected = await _bankService.connect();
|
||||
if (!connected) {
|
||||
return;
|
||||
}
|
||||
//Авторизация
|
||||
BankState bankState = Redux.store.state.bankState;
|
||||
AmanDao authDao = await _bankService.auth(
|
||||
login: bankState.login, password: bankState.password);
|
||||
if (!authDao.success) {
|
||||
if (authDao.msg != null) {
|
||||
_dialogService.showDialog(description: authDao.msg);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
AmanDao closeDayDao = await _bankService.closeDay();
|
||||
|
||||
if (!closeDayDao.success) {
|
||||
if (closeDayDao.msg != null) {
|
||||
_dialogService.showDialog(description: closeDayDao.msg);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
_dialogService.showDialog(description: 'Закрытие дня: операция прошла успешно!');
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
|
@ -87,7 +128,7 @@ class _BankSettingViewState extends State<BankSettingView> {
|
|||
),
|
||||
verticalSpaceMedium,
|
||||
RaisedButton(
|
||||
onPressed: this._saveData,
|
||||
onPressed: () => this._saveData(context),
|
||||
child: Text(
|
||||
'Cохранить',
|
||||
style: TextStyle(color: whiteColor, fontSize: 25.0),
|
||||
|
|
@ -95,6 +136,17 @@ class _BankSettingViewState extends State<BankSettingView> {
|
|||
color: primaryColor,
|
||||
padding:
|
||||
const EdgeInsets.symmetric(vertical: 5.0, horizontal: 20.0),
|
||||
),
|
||||
verticalSpaceLarge,
|
||||
RaisedButton(
|
||||
onPressed: () => this._closeDay(context),
|
||||
child: Text(
|
||||
'Закрыть день',
|
||||
style: TextStyle(color: whiteColor, fontSize: 25.0),
|
||||
),
|
||||
color: primaryColor,
|
||||
padding:
|
||||
const EdgeInsets.symmetric(vertical: 5.0, horizontal: 20.0),
|
||||
)
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class _BankViewState extends State<BankView> {
|
|||
String shutdownValue;
|
||||
String versionValue;
|
||||
String transactionValue;
|
||||
String closeDayValue;
|
||||
String getValue;
|
||||
String errorValue;
|
||||
bool loading = false;
|
||||
|
|
@ -36,7 +37,7 @@ class _BankViewState extends State<BankView> {
|
|||
|
||||
initialize() async {
|
||||
String result = await _channel.invokeMethod('init', <String, dynamic>{
|
||||
'serverUrl': 'http://185.98.84.231:2000',
|
||||
'serverUrl': 'http://195.200.74.83:5000',
|
||||
});
|
||||
setState(() {
|
||||
initValue = result ?? 'none';
|
||||
|
|
@ -66,7 +67,7 @@ class _BankViewState extends State<BankView> {
|
|||
|
||||
auth() async {
|
||||
String result = await _channel.invokeMethod("auth",
|
||||
<String, dynamic>{'login': 'uvaissov@gmail.com', 'password': '1234'});
|
||||
<String, dynamic>{'login': 'uvaissov@gmail.com', 'password': '8147'});
|
||||
setState(() {
|
||||
authValue = result;
|
||||
});
|
||||
|
|
@ -123,6 +124,20 @@ class _BankViewState extends State<BankView> {
|
|||
});
|
||||
}
|
||||
|
||||
closeDay() async {
|
||||
String result;
|
||||
try {
|
||||
String response = await _channel.invokeMethod("closeDay");
|
||||
AmanDao dao = AmanDao.fromJson(json.decode(response));
|
||||
result = '${dao.data} - ${dao.msg}';
|
||||
} catch (e) {
|
||||
result = (e.toString());
|
||||
}
|
||||
setState(() {
|
||||
closeDayValue = result;
|
||||
});
|
||||
}
|
||||
|
||||
error() async {
|
||||
String result;
|
||||
try {
|
||||
|
|
@ -158,77 +173,85 @@ class _BankViewState extends State<BankView> {
|
|||
children: <Widget>[
|
||||
RaisedButton(
|
||||
child: Text('Activity m4Bank'), onPressed: activity),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('version: $versionValue'),
|
||||
Text('version: $versionValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('Version'), onPressed: version),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('init: $initValue'),
|
||||
Text('init: $initValue' , overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('Init'), onPressed: initialize),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('connection: $connectionValue'),
|
||||
Text('connection: $connectionValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('Connect'), onPressed: connect),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('auth: $authValue'),
|
||||
Text('auth: $authValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(child: Text('Auth'), onPressed: auth),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('cancel: $cancelValue'),
|
||||
Text('cancel: $cancelValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(child: Text('Cancel'), onPressed: cancel),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('shutdown: $shutdownValue'),
|
||||
Text('shutdown: $shutdownValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('Shutdown'), onPressed: shutdown),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('transaction: $transactionValue'),
|
||||
Text('transaction: $transactionValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('Transaction'), onPressed: transaction),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('get: $getValue'),
|
||||
Text('get: $getValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('Get'), onPressed: get),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('error: $errorValue'),
|
||||
Text('error: $errorValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('Error'), onPressed: error),
|
||||
],
|
||||
),
|
||||
Text('pay: $payValue'),
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: <Widget>[
|
||||
Text('error: $closeDayValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(
|
||||
child: Text('CloseDay'), onPressed: closeDay),
|
||||
],
|
||||
),
|
||||
Text('pay: $payValue', overflow: TextOverflow.clip, maxLines: 2, softWrap: false),
|
||||
RaisedButton(child: Text('Payment'), onPressed: pay),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,5 +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/card_data.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/check_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';
|
||||
|
|
@ -62,6 +66,8 @@ class _HistoryViewState extends State<HistoryView> {
|
|||
},
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
Voucher voucher = data[index];
|
||||
CheckData checkData = CheckData.fromJson(json.decode(voucher.data));
|
||||
CardData cardData = checkData.cardData;
|
||||
return ListTile(
|
||||
onTap: () {
|
||||
_navigatorService.push(ImageShowRoute,
|
||||
|
|
@ -71,7 +77,13 @@ class _HistoryViewState extends State<HistoryView> {
|
|||
url: voucher.url));
|
||||
},
|
||||
title: buildText(voucher),
|
||||
subtitle: Text(dateFormat.format(voucher.dateTime)),
|
||||
subtitle: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(dateFormat.format(voucher.dateTime)),
|
||||
cardData != null ? Text('№ ${cardData.cardNumber} exp: ${cardData.cardExpiryDate}') : Text(''),
|
||||
],
|
||||
),
|
||||
trailing: Icon(Icons.arrow_right),
|
||||
leading: voucher.type == VoucherTypePayment
|
||||
? Icon(
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ class _PopupMenuState extends State<PopupMenu> {
|
|||
|
||||
List<Choice> _choices = <Choice>[
|
||||
const Choice(title: 'Информация о ККМ', icon: Icons.info_outline, command: 'infokkm'),
|
||||
//if (version >= 24 )
|
||||
// const Choice(title: 'Bank', icon: Icons.text_fields, command: 'bank'),
|
||||
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: 'Выйти', icon: Icons.exit_to_app, command: 'exit')
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:aman_kassa_flutter/core/locator.dart';
|
|||
import 'package:aman_kassa_flutter/core/logger.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/aman_dao.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/calc_model.dart';
|
||||
import 'package:aman_kassa_flutter/core/models/card_data.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/route_names.dart';
|
||||
|
|
@ -168,7 +169,7 @@ class _PaymentNfcViewState extends State<PaymentNfcView> {
|
|||
});
|
||||
|
||||
//check
|
||||
pressPayment('card');
|
||||
pressPayment('card' , payDao.data);
|
||||
}
|
||||
|
||||
cancel() async {
|
||||
|
|
@ -176,7 +177,7 @@ class _PaymentNfcViewState extends State<PaymentNfcView> {
|
|||
_navigatorService.pop();
|
||||
}
|
||||
|
||||
pressPayment(String type) async {
|
||||
pressPayment(String type, dynamic cardDataDynamic) async {
|
||||
setState(() {
|
||||
isBusy = true;
|
||||
});
|
||||
|
|
@ -189,6 +190,8 @@ class _PaymentNfcViewState extends State<PaymentNfcView> {
|
|||
if (_mode == SettingModeCalc) {
|
||||
_tradeType = SettingTradeTypeGood;
|
||||
}
|
||||
CardData cardData = cardDataDynamic != null ? CardData.fromJson(cardDataDynamic) : null;
|
||||
|
||||
List<ProductDao> kassaItems = _state.kassaState.kassaItems;
|
||||
List<CalcModel> calcItems = _state.calcState.calcItems;
|
||||
Response<dynamic> response = await _dataService.sellOrReturn(
|
||||
|
|
@ -198,7 +201,9 @@ class _PaymentNfcViewState extends State<PaymentNfcView> {
|
|||
operationType: widget.model.operationType,
|
||||
tradeType: _tradeType,
|
||||
calcItems: calcItems,
|
||||
mode: _mode);
|
||||
mode: _mode,
|
||||
cardData: cardData
|
||||
);
|
||||
setState(() {
|
||||
isBusy = false;
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue