Skip to content

Commit 81b8906

Browse files
committed
[transaction] Fix transaction offline deauthorized condition : use timestamp to check if the transaction is still ungoing
1 parent 5beccc1 commit 81b8906

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/chargepoint/transaction/TransactionManager.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ ocpp::types::AuthorizationStatus TransactionManager::startTransaction(unsigned i
185185
{
186186
std::lock_guard<std::mutex> lock(connector->mutex);
187187
connector->transaction_id = start_transaction_conf.transactionId;
188-
connector->transaction_start = DateTime::now();
188+
connector->transaction_start = start_transaction_req.timestamp;
189189
connector->transaction_id_tag = id_tag;
190190
m_connectors.saveConnector(connector->id);
191191
}
@@ -433,9 +433,12 @@ void TransactionManager::processFifoRequest()
433433
if (response.idTagInfo.status != AuthorizationStatus::Accepted)
434434
{
435435
// Look for the corresponding transaction
436-
Connector* connector = m_connectors.getConnector(request.connectorId);
437-
if (connector && (connector->transaction_id < 0) && (connector->transaction_id_tag == request.idTag.str()))
436+
if (connector && (connector->transaction_id < 0) && (connector->transaction_start == request.timestamp))
438437
{
438+
// Update current transaction id
439+
connector->transaction_id = connector->transaction_id_offline;
440+
m_connectors.saveConnector(request.connectorId);
441+
439442
// Notify end of transaction
440443
m_events_handler.transactionDeAuthorized(connector->id);
441444
}

0 commit comments

Comments
 (0)