Example #1
0
function upsertHwr($db, $file_id, $hwr_list, $image_output_path)
{
    // 手書きデータの id 取得。
    $sql = getSQLBaseForFilehwrList();
    $sql .= " AND file_hwr.file_id = :file_id";
    $params = array();
    $params[':file_id'] = $file_id;
    $stmt = $db->prepare($sql);
    $stmt->execute($params);
    $saved_hwr_list = array();
    foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
        $saved_hwr_list[$row['mark_position_y']] = $row;
    }
    foreach ($hwr_list as $index => $hwr) {
        $hwr_val = $hwr['hwr_val'];
        $update_time = date("Y-m-d H:i:s", $hwr['update_time']);
        $mark_position_y = isset($hwr['mark_position_y']) ? $hwr['mark_position_y'] : '0';
        $hwr_image = array_key_exists('hwr_image', $hwr) ? $hwr['hwr_image'] : null;
        if (array_key_exists('hwr_id', $hwr)) {
            $hwr_id = $hwr['hwr_id'];
            // --- TBL: hwr
            $rslt = updHwr($db, $hwr_id, $hwr_val, $update_time);
            if (!$rslt) {
                \Sop\Log::error(__FILE__, __LINE__, 'Failed to update hwr.');
                $msg001 = "The update failed.: hwr";
                // 更新に失敗しました: hwr
                \Sop\Api::exitWithError(array($msg001));
            }
        } else {
            if (array_key_exists($mark_position_y, $saved_hwr_list)) {
                $hwr_id = $saved_hwr_list[$mark_position_y]['hwr_id'];
                // --- TBL: hwr
                $rslt = updHwr($db, $hwr_id, $hwr_val, $update_time);
                if (!$rslt) {
                    \Sop\Log::error(__FILE__, __LINE__, 'Failed to update hwr.');
                    $msg002 = "The update failed.: hwr";
                    // 更新に失敗しました: hwr
                    \Sop\Api::exitWithError(array($msg002));
                }
            } else {
                // insert
                // --- TBL: hwr
                $hwr_id = -1;
                $rslt = addHwr($db, $hwr_id, $hwr_val, $update_time, $mark_position_y);
                if (!$rslt) {
                    \Sop\Log::error(__FILE__, __LINE__, 'Failed to add hwr.');
                    $msg003 = "The registration failed.: hwr";
                    // 登録に失敗しました: hwr
                    \Sop\Api::exitWithError(array($msg003));
                }
                $hwr_id = getLastId($db);
                // --- TBL: file_hwr
                $rslt = addFilehwr($db, $file_id, $hwr_id);
                if (!$rslt) {
                    \Sop\Log::error(__FILE__, __LINE__, 'Failed to add file_hwr.');
                    $msg004 = "The registration failed.: file_hwr";
                    // 登録に失敗しました: file_hwr
                    \Sop\Api::exitWithError(array($msg004));
                }
            }
        }
        // ---------------------------
        // 手書きの画像をファイルに書き出す。
        // ---------------------------
        if ($hwr_image != null) {
            $file_path = $image_output_path . '/' . $file_id . '_' . $hwr_id . '.png';
            $hwr_image = preg_replace('#^data:image/png;base64,#', '', $hwr_image);
            $hwr_image = base64_decode($hwr_image);
            file_put_contents($file_path, $hwr_image);
        }
    }
}
Example #2
0
$div = array_key_exists('div', $_REQUEST) ? $_REQUEST['div'] : '';
$smpl_given_no = array_key_exists('smpl_given_no', $_REQUEST) ? $_REQUEST['smpl_given_no'] : '';
$pj_id = array_key_exists('pj_id', $_REQUEST) ? $_REQUEST['pj_id'] : '';
$sop_id = array_key_exists('sop_id', $_REQUEST) ? $_REQUEST['sop_id'] : '';
$tpl_id = array_key_exists('tpl_id', $_REQUEST) ? $_REQUEST['tpl_id'] : '';
$schema_type = array_key_exists('schema_type', $_REQUEST) ? $_REQUEST['schema_type'] : '';
$schema_id = array_key_exists('schema_id', $_REQUEST) ? $_REQUEST['schema_id'] : '';
$file_id = array_key_exists('file_id', $_REQUEST) ? $_REQUEST['file_id'] : '';
$hwr_val = array_key_exists('hwr_val', $_REQUEST) ? $_REQUEST['hwr_val'] : '';
$hwr_image = array_key_exists('hwr_image', $_REQUEST) ? $_REQUEST['hwr_image'] : '';
$user_id_2 = array_key_exists('user_id_2', $_REQUEST) ? $_REQUEST['user_id_2'] : '';
$hwr_id = '';
$date = date("Y-m-d H:i:s");
// 更新の場合
if ($div == 'upd') {
    $sql = getSQLBaseForFilehwrList();
    $sql .= " AND file_hwr.file_id = :file_id";
    $params = array();
    $params[':file_id'] = $file_id;
    $stmt = $db->prepare($sql);
    $stmt->execute($params);
    foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
        $hwr_id = $row['hwr_id'];
    }
}
// ---------------------------
// DB 登録 更新
// ---------------------------
$db->beginTransaction();
if ($div == 'add') {
    // --- TBL: file