manageStockTakeTasks method

Future<List<StockTakeTask>> manageStockTakeTasks(
  1. TaskAssignment taskAssingment
)

Implementation

Future<List<stockCount.StockTakeTask>> manageStockTakeTasks(tasksassign.TaskAssignment taskAssingment) async{

  print("${taskAssingment.task!.taskType.taskTypeId} ${taskAssingment.task!.taskId}");
  var api = await ExternalApiClassHelper.load('external_api');

  var externalApi =tasks. ExternalApiClass(
    externalWebApiToken: api?.externalWebApiToken ?? "",
    externalWebApiTokenName: api?.externalWebApiTokenName ?? "",
    licenseKey: api?.licenseKey ?? "",
    licenseKeyId: api?.licenseKeyId ?? "",
    employeeId: api?.employeeId ?? "",
  );

  var request= tasks.ManageStockTakeTaskRequest(
    externalApiClass: externalApi,
    stockTakeTask: tasks.StockTakeTask(
      taskType: tasks. TaskType(
        taskTypeId: taskAssingment.task?.taskType.taskTypeId
      ),
      taskid: taskAssingment.task?.taskId
    ),
    action: 'GET'
  );

  final plainBytes = request.writeToBuffer();
  final result = GrpcEncryptedHelper.encrypt(plainBytes);
  final Uint8List iv = result["iv"]!;
  final Uint8List cipherText = result["ciphertext"]!;
  var response = await  taskServiceClient.manageStockCountTaskPriority(tasks. EncryptedMessage(iv: iv,ciphertext: cipherText));
  final decryptedBytes = GrpcEncryptedHelper.decrypted(Uint8List.fromList(response.iv), Uint8List.fromList(response.ciphertext));
  final responses=tasks. ManageStockTakeTaskResponse.fromBuffer(decryptedBytes);
  if(responses.success){
    if(responses.stockTakeTask.isNotEmpty){
      List<stockCount.StockTakeTask> stocktake = [];
      for(var s in responses.stockTakeTask){
        List<stockCount.StockCountTaskPriority> listStockCountTaskPriority = [];
        for(var l in s.stockCountTaskPriority){
          listStockCountTaskPriority.add(stockCount.StockCountTaskPriority(project: icproject.ICProject(projectGroup: icproject.ProjectGroup(), organization: icproject.Organization(organizationid: 0),icProjectId: l.iCProject.icprojeid,projectName: l.iCProject.name,projectNameKh: l.iCProject.nameKh),  stockCountTaskPriorityProgress: stockCount.StockCountTaskPriorityProgress(l.stockCountTaskPriorityProgress.id, l.stockCountTaskPriorityProgress.name),priority: l.priority));

        }
        stocktake.add(stockCount.StockTakeTask(
          stocktakeid: s.stockTakeid,
          stockCountTaskPriority: listStockCountTaskPriority, task: tasks_lib.Task(taskId: s.taskid, taskType: taskType.TaskType(taskTypeId: s.taskType.taskTypeId)),

        ));
      }
      return stocktake;
    }
  }
  return [];
}