handleWeighingStatus method

Future<void> handleWeighingStatus()

Implementation

Future<void> handleWeighingStatus() async {
  if (tblTRLoadingTO.value?.statusId ==
      LoadingStatusInternalTransferE.rejectVehicleAfterTareWeight.value) {
    if (tblTRLoadingWeighingTOList.isNotEmpty) {
      final firstWt = tblTRLoadingWeighingTOList[0].actualWeight ?? 0;

      try {
        final response = await _apiService.getData(
          AppUrls.getSystemConfigParamValByName,
          queryParams: {
            'configParamName': DefaultConfigurationSettingE
                .weighingDiffrenceAllowAtRejectVehicalInInternal.value
          },
        );

        if (response.statusCode == 200 && response.data != null) {
          final data = response.data['data'];

          if (data['ConfigParamVal'] != null) {
            negotiationValue.value =
                double.tryParse(data['ConfigParamVal'].toString()) ?? 0;

            final firstTakenWtPlus = firstWt + negotiationValue.value;
            final firstTakenWtMinus = firstWt - negotiationValue.value;

            final currentWeight = tblTRLoadingWeighingTO.actualWeight ?? 0;

            if (currentWeight > firstTakenWtPlus ||
                currentWeight < firstTakenWtMinus) {
              _showWeighingWarningDialog();
              return;
            }
          }
        }
      } catch (e) {
        print('Error getting config value: $e');
      }
    }
  }

  // Fallback: always call post if nothing else matched
  await postWeighingDetails();
}