/*
 * PAY_HOLD.pgc - py 모듈 서비스 PAY_HOLD (one service = one file).
 * 지급 보류: 이미 지급완료(P)/마감(X)된 건은 보류 불가 - dbio 로 현재 상태를
 * 읽어 가드한 뒤 dbio 로 H 전이. dbio wrapper + status guard + extra field.
 * Runs on the caller's XA branch (no EXEC SQL CONNECT). Advertised by py_svr.
 */
#include "PAY_HOLD.h"

void PAY_HOLD(TPSVCINFO *p)
{
    UBFH *b = (UBFH *)p->data;
    long payout_id = getl(b, T_ID1);
    char st[4];

    if (pydb_get_status(payout_id, st) < 0) FAIL(b);
    if (st[0] == 'P' || st[0] == 'X') { setl(b, T_RC, 1); FAIL(b); }
    if (pydb_update_status(payout_id, "H") < 0) FAIL(b);
    setl(b, T_RC, 0);
    Bchg(b, T_STATUS, 0, "H", 0L);
    OK(b);
}
