/*
 *========================================================================
 *
 *   시스템명 : 요금징수 시스템
 *   파 일 명 : resend_pl.c
 *   작 성 자 : 오효섭
 *   작 성 일 : 2024.12.20
 *   수 정 일 : 
 *   설    명 : 
 *
 *========================================================================
*/

#include    <stdio.h>
#include    <sys/wait.h>
#include    <sys/errno.h>
#include    <sys/types.h>
#include    <sys/ipc.h>
#include    <sys/msg.h>

#include "dir_path.h"
#include "path_def.h"
#include "chg_struc.h"
#include "def_set.h"
#include "crd_def.h"
#include "MessageSender.h"

long  glRunning     = PROC_RUNNING;

/*
 *========================================================================
 *
 *   함 수 명 : main
 *   작 성 자 : 오효섭
 *   작 성 일 : 2024.12.20
 *   수 정 일 :
 *   설    명 : 
 *
 *========================================================================
*/

int main(int argc, char *argv[])
{
    char msg[1024];
	char oMsg[1024];
	char spath[128];
	char tpath[128];
    int    i;
    int    nResult;
    char   ch;
	char   *p;
    int ret;
	int flag=0;

	if(argc < 2 || !(strcmp(argv[1], "0") >= 0 && strcmp(argv[1], "1") <= 0))
	{
		printf("USAGE : ord_rvs [option]\n");
		printf(" option 0 : PL파일 생성 후 개정\n");
		printf(" option 1 : PL 개정만\n");
		return 0;
	}
	p = argv[0];
	flag = atoi(argv[1]);
	printf("flag = %d\n", flag);

	nResult = InitMessageSenderConfig(p);

    if (nResult != MQ_ERR_SUCCESS)
    {
        printf("Program terminated!!!\n");
        return -1;
    }

	switch(flag)
	{
		case 0:
		    memset(msg, 0x00, sizeof(msg));
		    sprintf(msg, "%s/plftp.sh", DIR_BIN);
		    system(msg);
		    ret = searchFile(1);

		    if(ret < 0)
		    {
		        printf("교통카드 PL 파일처리 실패\n");
				return 0;
		    }else
		    {
		        memset(msg, 0x00, sizeof(msg));
		        sprintf(msg, "cp -R %s/%s/PLTPCARDMST_S %s/%s/PLBASE", DIR_TCS, DIR_BASEINFO, DIR_TCS, DIR_BASEINFO);
		        system(msg);
		        sleep(1);
		        memset(msg, 0x00, sizeof(msg));
		        sprintf(msg, "split -b 100000000 %s/%s/PLBASE/PLTPCARDMST_S %s/%s/PLBASE/PLMST", DIR_TCS, DIR_BASEINFO, DIR_TCS, DIR_BASEINFO);
		        system(msg);
		        sleep(1);

		        memset(spath, 0x00, sizeof(spath));
		        memset(tpath, 0x00, sizeof(tpath));
		        for(i = 0; i < 14; i++)
		        {
		            ch = i+0x61;
		            sprintf(spath, "%s/%s/PLBASE/PLMSTa%c", DIR_TCS, DIR_BASEINFO, ch);
		            sprintf(tpath, "%s/%s/PLBASE/PLMST%03d", DIR_TCS, DIR_BASEINFO, i);
		            lb_rename(spath, tpath);
		            printf("rename %s %s", spath, tpath);
		        }

		        memset(spath, 0x00, sizeof(spath));
		        memset(tpath, 0x00, sizeof(tpath));
		        sprintf(spath, "%s/%s/PLTCRDINFO_S", DIR_TCS, DIR_BASEINFO);
		        sprintf(tpath, "%s/%s/PLTCRDINFO", DIR_TCS, DIR_BASEINFO);
		        lb_rename(spath, tpath);

				memset(spath, 0x00, sizeof(spath));
		        memset(tpath, 0x00, sizeof(tpath));
		        sprintf(spath, "%s/%s/PLTPCARDMST_S", DIR_TCS, DIR_BASEINFO);
		        sprintf(tpath, "%s/%s/PLTPCARDMST", DIR_TCS, DIR_BASEINFO);
		        lb_rename(spath, tpath);
			}

		case 1:
	        sprintf(msg, "%.2s0807002100%c", PLZ_CODE2, '\0');
	        MessageSender(FNO_RVS_UPT, msg, p, oMsg);
	        printf("############ PL 개정정보 변경 [%s]\n", oMsg);
	
	        sprintf(msg, "%.2s0207002100%c", PLZ_CODE2, '\0');
	        MessageSender(FNO_RVS_UPT, msg, p, oMsg);
	        printf("############ WRKR 개정정보 변경 [%s]\n", oMsg);

	        sprintf(msg, "0091%.2s%.2s%c", PLZ_CODE2, PLZ_CODE2, '\0');
	        MessageSender(FNO_WRKRINFO, msg, p, oMsg);
	        printf("############ 근무자 송신 결과 [%s]\n", oMsg);

	        sprintf(msg, "%.2s0107002100%c", PLZ_CODE2, '\0');
	        MessageSender(FNO_RVS_UPT, msg, p, oMsg);
	        printf("############ BASIC 개정정보 변경 [%s]\n", oMsg);

	        sprintf(msg, "0092%.2s%.2s%c", PLZ_CODE2, PLZ_CODE2, '\0');
	        MessageSender(FNO_BASICTBL, msg, p, oMsg);
	        printf("############ 기초 송신 결과 [%s]\n", oMsg);
			break;
	}

	printf("교통카드 PL 마스터 파일처리 완료\n");
}
