diff --git a/services/net/NetworkService.cpp b/services/net/NetworkService.cpp index 056c10d..7eb704a 100644 --- a/services/net/NetworkService.cpp +++ b/services/net/NetworkService.cpp @@ -1952,6 +1952,10 @@ void NetworkService::onDeviceWentOffline(const QString &deviceId) { QSharedPointer mtx = keyMutex(deviceId, app.bankProfileId); QMutexLocker locker(mtx.data()); + // [ОТКЛЮЧЕНО] Серверный DELETE материала при уходе устройства в офлайн убран. + // DELETE материала на сервере выполняется только при переключении карты в + // настройках банка (AccountSettingsWindow::toggleMaterialStatus). + /* const QList materials = MaterialDAO::getAccounts(deviceId, app.code); for (const MaterialInfo &mat : materials) { if (mat.materialId.isEmpty()) continue; @@ -1965,6 +1969,7 @@ void NetworkService::onDeviceWentOffline(const QString &deviceId) { << mat.materialId; } } + */ const QString path = m_apiBase + m_pathBankProfile + "/" + app.bankProfileId + "/false"; patchJson(path, QJsonObject(), true); @@ -2099,6 +2104,10 @@ void NetworkService::disableAllProfilesOnServer() { const QString bpState = bp["state"].toString(); if (bpId.isEmpty()) continue; + // [ОТКЛЮЧЕНО] Серверный DELETE материала при shutdown убран. DELETE материала + // на сервере выполняется только при переключении карты в настройках банка + // (AccountSettingsWindow::toggleMaterialStatus). + /* // Сперва DELETE всех материалов профиля — инвариант «материал живёт на // сервере только при локально active профиле». Идём по списку с сервера, // чтобы зацепить и те, что локально потеряли materialId, но на бэке остались. @@ -2116,6 +2125,7 @@ void NetworkService::disableAllProfilesOnServer() { qWarning() << "[shutdown] DELETE failed for material" << matId; } } + */ if (bpState != "disabled") { patchJson(m_apiBase + m_pathBankProfile + "/" + bpId + "/false", QJsonObject(), true); diff --git a/views/bank/AccountSettingsWindow.cpp b/views/bank/AccountSettingsWindow.cpp index 942528d..ec8c221 100644 --- a/views/bank/AccountSettingsWindow.cpp +++ b/views/bank/AccountSettingsWindow.cpp @@ -280,6 +280,11 @@ void AccountSettingsWindow::toggleProfileStatus() { } }; } else { + // [ОТКЛЮЧЕНО] Серверный DELETE материала при выключении профиля убран. + // DELETE материала на сервере выполняется только при переключении карты + // в настройках банка (toggleMaterialStatus). + onSuccess = []() {}; + /* onSuccess = [this, deviceId, appCode]() { const QList materials = MaterialDAO::getAccounts(deviceId, appCode); for (const auto &mat : materials) { @@ -298,6 +303,7 @@ void AccountSettingsWindow::toggleProfileStatus() { qDebug() << "[AccountSettings] Deleting material on profile-disable:" << mat.materialId; } }; + */ } sendAppStatus(newStatus, std::move(onSuccess)); } diff --git a/views/bank/BankSetupWizard.cpp b/views/bank/BankSetupWizard.cpp index 809e400..b1dfbcf 100644 --- a/views/bank/BankSetupWizard.cpp +++ b/views/bank/BankSetupWizard.cpp @@ -674,6 +674,11 @@ void BankSetupWizard::applyActiveCardSelection() { return; } + // [ОТКЛЮЧЕНО] Серверный DELETE материала в мастере настройки убран — DELETE + // материала на сервере выполняется только при переключении карты в настройках + // банка (AccountSettingsWindow::toggleMaterialStatus). Сразу выполняем POST. + launchPost(); + /* auto remaining = QSharedPointer::create(toDelete.size()); for (const MaterialInfo &m : toDelete) { auto *t = new QThread; @@ -691,6 +696,7 @@ void BankSetupWizard::applyActiveCardSelection() { QObject::connect(t, &QThread::finished, t, &QThread::deleteLater); t->start(); } + */ } static QString humanReadableError(const QString &error) {