Merge branch 'PayUpWithChanger' into pu/integration
This commit is contained in:
		@@ -311,6 +311,73 @@ void ATBDeviceControllerPlugin::cashCollect()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void ATBDeviceControllerPlugin::cashCollect(const QString & amount)
 | 
			
		||||
{
 | 
			
		||||
    if (this->coinProcessor() != nsDeviceControllerInterface::COIN_PROCESSOR::CHANGER) {
 | 
			
		||||
        this->cashCollect();
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // check if we must change coins:
 | 
			
		||||
 | 
			
		||||
    // inserted amount
 | 
			
		||||
    uint32_t amountInsertedInt = this->hw->getInsertedAmount();
 | 
			
		||||
 | 
			
		||||
    bool ok;
 | 
			
		||||
    uint32_t amountToPayInt = amount.toInt(&ok);
 | 
			
		||||
 | 
			
		||||
    // check if we must change coins:
 | 
			
		||||
    if (amountInsertedInt > amountToPayInt) {
 | 
			
		||||
 | 
			
		||||
        uint32_t amountToChangeInt = amountInsertedInt - amountToPayInt;
 | 
			
		||||
 | 
			
		||||
        qCritical() << "cashCollect(" << amount << ")";
 | 
			
		||||
        qCritical() << "             amount to change: " << QString::number(amountToChangeInt);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // trigger changer:
 | 
			
		||||
        emit this->cashPaymentChanging(nsDeviceControllerInterface::RESULT_STATE::SUCCESS,
 | 
			
		||||
                                       QString::number(amountToChangeInt),
 | 
			
		||||
                                       "",    // ErrorCode
 | 
			
		||||
                                       "");   // ErrorDescription
 | 
			
		||||
 | 
			
		||||
        // change
 | 
			
		||||
        hw->changer_returnCoins(amountToChangeInt);
 | 
			
		||||
 | 
			
		||||
        QTimer::singleShot(1000, this, &ATBDeviceControllerPlugin::onCashChangerState);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        // nothing to change:
 | 
			
		||||
 | 
			
		||||
        qCritical() << "cashCollect(" << amount << ")";
 | 
			
		||||
        qCritical() << "             nothing to change. ";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        hw->vend_success();
 | 
			
		||||
 | 
			
		||||
        QString amountString = QString::number(amountInsertedInt);
 | 
			
		||||
 | 
			
		||||
        // inserted coins
 | 
			
		||||
        uint32_t amountCoinsInt = CashUtils::getAmountOfInsertedCoins(this->hw);
 | 
			
		||||
        QString amountCoinsString = QString::number(amountCoinsInt);
 | 
			
		||||
 | 
			
		||||
        // inserted notes
 | 
			
		||||
        uint32_t amountNotesInt = CashUtils::getAmountOfInsertedNotes(this->hw);
 | 
			
		||||
        QString amountNotesString = QString::number(amountNotesInt);
 | 
			
		||||
 | 
			
		||||
        emit this->cashPaymentFinished(nsDeviceControllerInterface::RESULT_STATE::SUCCESS,
 | 
			
		||||
                                  amountString,
 | 
			
		||||
                                  amountCoinsString,        // coins
 | 
			
		||||
                                  amountNotesString,        // notes
 | 
			
		||||
                                  0,                        // proposed change
 | 
			
		||||
                                  "",
 | 
			
		||||
                                  "");
 | 
			
		||||
        this->currentCashState = CASH_STATE::CACHE_EMPTY;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ATBDeviceControllerPlugin::cashAbort()
 | 
			
		||||
{
 | 
			
		||||
    hw->vend_failed();
 | 
			
		||||
@@ -1444,6 +1511,10 @@ void ATBDeviceControllerPlugin::onCashChangerState()
 | 
			
		||||
                                  "");
 | 
			
		||||
        changerStateRequestCounter = 0;
 | 
			
		||||
        lastChangerResult = 0;
 | 
			
		||||
 | 
			
		||||
        // finalize vending:
 | 
			
		||||
        hw->vend_success();
 | 
			
		||||
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
@@ -1498,6 +1569,10 @@ void ATBDeviceControllerPlugin::onCashChangerState()
 | 
			
		||||
                                  errorDescription);
 | 
			
		||||
        changerStateRequestCounter = 0;
 | 
			
		||||
        lastChangerResult = 0;
 | 
			
		||||
 | 
			
		||||
        // finalize vending:
 | 
			
		||||
        hw->vend_success();
 | 
			
		||||
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ public:
 | 
			
		||||
    void requestStartCashInput(const QString & amount);
 | 
			
		||||
    void requestStopCashInput();
 | 
			
		||||
    void cashCollect();
 | 
			
		||||
    void cashCollect(const QString & amount);
 | 
			
		||||
    void cashAbort();
 | 
			
		||||
 | 
			
		||||
    // read coin/cash processing variants -----------------------------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -60,9 +60,10 @@ public:
 | 
			
		||||
    virtual void requestStopCashInput() = 0;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * called e.g. on Button "NEXT" in pay-up (direct coin input)
 | 
			
		||||
     * called e.g. after printing
 | 
			
		||||
     */
 | 
			
		||||
    virtual void cashCollect() = 0;
 | 
			
		||||
    virtual void cashCollect(const QString & amount) = 0;
 | 
			
		||||
    virtual void cashAbort() = 0;
 | 
			
		||||
 | 
			
		||||
    // TASKS: Account -------------------------------------------------------------
 | 
			
		||||
@@ -138,6 +139,14 @@ signals:
 | 
			
		||||
                                     const QString & errorCode,
 | 
			
		||||
                                     const QString & errorDescription);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * emitted if cashPayment has been finished, e.g. in result to task cashCollect():
 | 
			
		||||
     * if coins in changer must be given back to user.
 | 
			
		||||
     */
 | 
			
		||||
    void cashPaymentChanging(nsDeviceControllerInterface::RESULT_STATE resultState,
 | 
			
		||||
                                     const QString & changeValue,        // amount changed by changer/escrow
 | 
			
		||||
                                     const QString & errorCode,
 | 
			
		||||
                                     const QString & errorDescription);
 | 
			
		||||
    /**
 | 
			
		||||
     * emitted if cashPayment has been finished, e.g. in result to task cashCollect():
 | 
			
		||||
     *  -> ticket should be printed sucessfully
 | 
			
		||||
@@ -145,7 +154,7 @@ signals:
 | 
			
		||||
     * Provides data for logging, especially changed value
 | 
			
		||||
     */
 | 
			
		||||
    void cashPaymentFinished(nsDeviceControllerInterface::RESULT_STATE resultState,
 | 
			
		||||
                                     const QString & newCashValue,  // total inserted amount amount
 | 
			
		||||
                                     const QString & newCashValue,  // total inserted amount
 | 
			
		||||
                                     const QString & coinValue,     // inserted amount, paid with coins
 | 
			
		||||
                                     const QString & noteValue,     // inserted amount, paid with notes
 | 
			
		||||
                                     const QString & changeValue,   // amount changed by changer/escrow
 | 
			
		||||
@@ -203,7 +212,7 @@ signals:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Q_DECLARE_INTERFACE(DeviceControllerInterface,
 | 
			
		||||
                    "eu.atb.ptu.plugin.DeviceControllerInterface/1.1.6")
 | 
			
		||||
                    "eu.atb.ptu.plugin.DeviceControllerInterface/1.2.0")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
namespace nsDeviceControllerInterface {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user