/*
 * VL_DATE.pgc - vl 모듈 서비스 VL_DATE (one service = one file).
 * 기능: 영업일 유효성(미래일자 금지) 검증 (RC 1=미래).
 * 기존 인라인 vl_svr.pgc에서 분리; caller의 XA 브랜치에서 실행(EXEC SQL CONNECT 없음).
 * vl_svr가 tpsvrinit에서 이 서비스를 tpadvertise 한다.
 */
#include "VL_DATE.h"

void VL_DATE(TPSVCINFO *p)
{
    UBFH *b = (UBFH *)p->data;
    char bizdate[16];
    long rc = 0;
    EXEC SQL BEGIN DECLARE SECTION;
    long h_future;
    char h_bizdate[16];
    EXEC SQL END DECLARE SECTION;
    gets_(b, T_BIZDATE, bizdate, sizeof(bizdate));
    if (bizdate[0] == 0) { setl(b, T_RC, 2); OK(b); }   /* 2=일자 없음 */
    strncpy(h_bizdate, bizdate, sizeof(h_bizdate)-1); h_bizdate[sizeof(h_bizdate)-1] = 0;
    EXEC SQL SELECT CASE WHEN :h_bizdate::date > current_date THEN 1 ELSE 0 END INTO :h_future;
    if (sqlca.sqlcode < 0) { setl(b, T_RC, 3); OK(b); } /* 3=형식 오류 */
    if (h_future) rc = 1;
    setl(b, T_RC, rc);
    OK(b);
}
