getWeighingKata method

dynamic getWeighingKata()

Implementation

getWeighingKata() async {
  isLoading(true);
  allWeighingMachineList.value = [];
  weighingKataList.value = []; // Initialize weighingKataList

  try {
    final response =
        await _apiService.getData(AppUrls.getAllWeighingMachinesInternal);
    if (response.statusCode == 200 && response.data != null) {
      allWeighingMachineList.value =
          WeighingMachineTO.fromDecodedJsonList(response.data['data']);

      weighingKataList.value = allWeighingMachineList.value
          .map((machine) => DropDownResponse(
                value: machine.idWeighingMachine,
                text: machine.machineName,
              ))
          .toList();

      print('weighingKataList${weighingKataList.length}');

      if (allWeighingMachineList.value.isEmpty) {
        allWeighingMachineList.value = [];
      }

      // Filter machines for current user
      final List<WeighingMachineTO> filteredMachines = [];
      for (var element in allWeighingMachineList) {
        if (element.userIds != null && element.userIds!.isNotEmpty) {
          final userIdArr = element.userIds!.split(',');
          if (userIdArr.isNotEmpty) {
            final matchTO = userIdArr.where((f) => f == '1').toList();
            if (matchTO.isNotEmpty) {
              filteredMachines.add(element);
            }
          }
        }
      }

      // Update dropdown list with filtered machines
      weighingKataList.value = filteredMachines
          .map((machine) => DropDownResponse(
                value: machine.idWeighingMachine,
                text: machine.machineName,
              ))
          .toList();

      if (weighingKataList.isNotEmpty) {
        if (tblTRLoadingWeighingTO != null) {
          tblTRLoadingWeighingTO!.weighingMachineId =
              weighingKataList[0].value;
          selectKata.value = weighingKataList[0];
          // directWeighingMachine =
          //     tblTRLoadingWeighingTO!.weighingMachineId.toString();

          KataChanged();

          // Future.delayed(const Duration(milliseconds: 2000), () {
          //   onWeighingChange();
          // });
        }
      }
    }
  } catch (e) {
    print('Error in getWeighingKata: $e');
  } finally {
    isLoading(false);
  }
}