/*
 * cl_cxlstat_batch.pgc - cl 마감 취소현황 집계 배치 (사유별 집계 리포트, 조회 전용).
 *
 * 취소(status=X) 마감이력을 취소 사유(오류정정/지연자료/중복마감)별로 집계해 출력한다.
 * host 변수는 전용 카피북 cl_cxlstat_cpy.h 를 EXEC SQL INCLUDE 로 가져온다.
 * Usage: cl_cxlstat_batch
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <atmi.h>

int main(int argc, char **argv)
{
    (void)argc; (void)argv;

    EXEC SQL INCLUDE cl_cxlstat_cpy;

    if (tpinit(NULL) < 0) { fprintf(stderr, "tpinit FAIL: %s\n", tpstrerror(tperrno)); return 1; }
    if (tpopen() < 0)     { fprintf(stderr, "tpopen FAIL: %s\n", tpstrerror(tperrno)); return 1; }
    if (tpbegin(30, 0) < 0) { fprintf(stderr, "tpbegin FAIL: %s\n", tpstrerror(tperrno)); return 1; }

    EXEC SQL SELECT
            count(*) FILTER (WHERE memo LIKE '취소:오류%'),
            count(*) FILTER (WHERE memo LIKE '취소:지연%'),
            count(*) FILTER (WHERE memo LIKE '취소:중복%'),
            count(*)
        INTO :cs_err, :cs_late, :cs_dup, :cs_tot FROM cl_close_log WHERE status = 'X';
    if (sqlca.sqlcode < 0) { tpabort(0); return 1; }

    printf(">>> cl_cxlstat_batch 취소현황: 오류정정=%ld 지연자료=%ld 중복마감=%ld 총=%ld\n",
           cs_err, cs_late, cs_dup, cs_tot);

    tpcommit(0);
    tpclose(); tpterm();
    return 0;
}
