/*
 * VL_THRESHOLD.pgc - vl 모듈 서비스 VL_THRESHOLD (one service = one file).
 * 기능: 규칙 임계치 검사 (dbio get_rule; amount>threshold → RC 1).
 * 기존 인라인 vl_svr.pgc에서 분리; caller의 XA 브랜치에서 실행(EXEC SQL CONNECT 없음).
 * vl_svr가 tpsvrinit에서 이 서비스를 tpadvertise 한다.
 */
#include "VL_THRESHOLD.h"

void VL_THRESHOLD(TPSVCINFO *p)
{
    UBFH *b = (UBFH *)p->data;
    char rule[32], sev[8];
    long amt, thr = 0, rc = 0;
    gets_(b, T_STR3, rule, sizeof(rule)); if (rule[0] == 0) strcpy(rule, "AMT_MAX");
    amt = getl(b, T_AMOUNT);
    if (vldb_get_rule(rule, &thr, sev) < 0) { setl(b, T_RC, 3); OK(b); } /* 3=규칙 없음 */
    if (thr > 0 && amt > thr) rc = 1;
    setl(b, T_ARG1, thr);
    Bchg(b, T_STR4, 0, sev, 0L);
    setl(b, T_RC, rc);
    OK(b);
}
