$platform_mgr = new tlPlatform($db, $args->testproject_id);
$tcase_mgr = new testcase($db);
if ($suite == 'testlink') {
    $testlink_cases = $platform_mgr->getTplanDeviceCaseScript($tplan_id, $device_id);
} else {
    $testlink_cases = $platform_mgr->getTplanDeviceCases($tplan_id, $device_id, $suite);
}
$gui = new stdClass();
$gui->needadd = array_diff($var_cases, $testlink_cases[0]);
$needdelete = array_diff($testlink_cases[0], $var_cases);
$gui->candelete = array_diff($testlink_cases[1], $var_cases);
$gui->cannotdelete = array_diff($needdelete, $gui->candelete);
$gui->added = $gui->deleted = array();
if (!is_null($gui->needadd)) {
    foreach ($gui->needadd as $case) {
        $rs = $tcase_mgr->modifyTplanDeviceCases($tplan_id, $device_id, $suite, $case, "add", $user_name);
        if ($rs == 'Success') {
            $gui->added[] = $case;
        }
    }
}
if (!is_null($gui->candelete)) {
    foreach ($gui->candelete as $case) {
        $rs = $tcase_mgr->modifyTplanDeviceCases($tplan_id, $device_id, $suite, $case, "delete", $user_name);
        if ($rs == 'Success') {
            $gui->deleted[] = $case;
        }
    }
}
if (!is_null($gui->cannotdelete)) {
    foreach ($gui->cannotdelete as $case) {