|
|
|
|
@ -968,21 +968,21 @@ bool addUniquePayloadPath(
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool hasUniqueUsablePressureRecord(
|
|
|
|
|
bool hasUniqueSelectablePressureRecord(
|
|
|
|
|
const QVector<nmPressureGaugeRecord>& vecRecords,
|
|
|
|
|
const QString& sGaugeCode)
|
|
|
|
|
{
|
|
|
|
|
int nMatchCount = 0;
|
|
|
|
|
bool bUsable = false;
|
|
|
|
|
bool bSelectable = false;
|
|
|
|
|
for(int nIndex = 0; nIndex < vecRecords.size(); ++nIndex)
|
|
|
|
|
{
|
|
|
|
|
if(vecRecords[nIndex].sGaugeCode == sGaugeCode)
|
|
|
|
|
{
|
|
|
|
|
++nMatchCount;
|
|
|
|
|
bUsable = vecRecords[nIndex].eStatus == NM_GaugeRecord_Usable;
|
|
|
|
|
bSelectable = nmIsSelectablePressureRecord(vecRecords[nIndex]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return nMatchCount == 1 && bUsable;
|
|
|
|
|
return nMatchCount == 1 && bSelectable;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const nmFlowGaugeRecord* findUniqueUsableFlowRecord(
|
|
|
|
|
@ -1015,7 +1015,7 @@ bool isWellGaugeSelectionValid(
|
|
|
|
|
const QVector<nmPressureGaugeRecord> vecPressureRecords =
|
|
|
|
|
pWell->getPressureRecords();
|
|
|
|
|
if(!sPressureCode.isEmpty() &&
|
|
|
|
|
!hasUniqueUsablePressureRecord(vecPressureRecords, sPressureCode))
|
|
|
|
|
!hasUniqueSelectablePressureRecord(vecPressureRecords, sPressureCode))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
@ -6759,9 +6759,9 @@ bool nmDataAnalyzeManager::loadNmResultV3InPlace(
|
|
|
|
|
const QString sPressureCode =
|
|
|
|
|
pWell->getSelectedPressureGaugeCode();
|
|
|
|
|
if(!sPressureCode.isEmpty() &&
|
|
|
|
|
!hasUniqueUsablePressureRecord(
|
|
|
|
|
!hasUniqueSelectablePressureRecord(
|
|
|
|
|
oGaugeData.m_vecPressureRecords, sPressureCode)) {
|
|
|
|
|
qWarning() << "Loaded selected pressure Gauge Code is dangling:"
|
|
|
|
|
qWarning() << "Loaded selected pressure Gauge Code is invalid:"
|
|
|
|
|
<< sPressureCode;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|