/*
 * VL_LIMIT.pgc - vl 모듈 서비스 VL_LIMIT (one service = one file).
 * 기능: 매입금액 vs 가맹점 일한도 검증 (RC 1=초과).
 * 기존 인라인 vl_svr.pgc에서 분리; caller의 XA 브랜치에서 실행(EXEC SQL CONNECT 없음).
 * vl_svr가 tpsvrinit에서 이 서비스를 tpadvertise 한다.
 */
#include "VL_LIMIT.h"

void VL_LIMIT(TPSVCINFO *p)
{
    UBFH *b = (UBFH *)p->data;
    char merch[64];
    long rc = 0;
    EXEC SQL BEGIN DECLARE SECTION;
    long h_amt, h_lim;
    char h_merch[64];
    EXEC SQL END DECLARE SECTION;
    gets_(b, T_MERCHANT, merch, sizeof(merch));
    h_amt = getl(b, T_AMOUNT);
    strncpy(h_merch, merch, sizeof(h_merch)-1); h_merch[sizeof(h_merch)-1] = 0;
    EXEC SQL SELECT daily_limit INTO :h_lim FROM merchant WHERE merchant_id = :h_merch;
    if (sqlca.sqlcode < 0 || sqlca.sqlcode == 100) { setl(b, T_RC, 3); OK(b); } /* 3=가맹점 없음 */
    if (h_amt > h_lim) rc = 1;
    setl(b, T_RC, rc);
    OK(b);
}
