/**
 * @(#)file    TermsAgreeBiz.java
 * @(#)author  이성민
 * @(#)version 1.0
 *
 */
package kr.co.udapsoft.ebid.buyer.supplier.result.biz;



import kr.co.hsnc.common.base.WAFLogger;
import kr.co.hsnc.common.sql.Row;
import kr.co.hsnc.common.sql.RowSet;
import kr.co.hsnc.common.sql.RowSetImpl;
import kr.co.hsnc.common.sql.search.Search;
import kr.co.hsnc.common.sql.search.SearchImpl;
import kr.co.hsnc.common.sql.util.RowSetUtility;
import kr.co.hsnc.common.util.ValueObject;
import kr.co.udapsoft.ebid.buyer.common.file.FileManager;

import com.udapsoft.waf.system.Biz;
import com.udapsoft.waf.system.HandlerStorage;






public class PurResultDetail01Biz extends Biz {

	public PurResultDetail01Biz(HandlerStorage storage) 
	{
		super(storage);
	}

	/* (non-Javadoc)
	 * @see kr.co.hwenc.system.Biz#doBiz()
	 */
	public void doBiz() throws Exception 
	{
		WAFLogger.debug(":::::::::::::::::::::::::::::::::::::::::::::::::::::::PurResultDetail01Biz::::::::::::::::::::::::::::::::::::::::::::::::::::::::");
	    
	    ValueObject ResultDetail01BizVo = new ValueObject();
	    
	    if(storage.compareEvent("GET_DETAIL_01"))
        {
	        
            ResultDetail01BizVo = getResultDetail01_info(params);
	        
            storage.addValueObject("ResultDetail01BizVo", ResultDetail01BizVo);
            RowSet fileRowSet = FileManager.getFileList("RESULT_PDF", params.get("p_pur_cont_mod_id")+ResultDetail01BizVo.get("soc_cd")+params.get("p_acmp_yyyy")); //2020.02.13 파일 ID가 기성년도 없이 만들어지면서 매년 새로운 실적 발급시 과거 파일 지워지는 문제 발생하여 기성년도 추가
            
            storage.addRowSet("RESULT_PDF", fileRowSet);
        }
	    
	}
	
	
	private ValueObject getfilelist(String filegb,String id,String returnid){
        ValueObject vo = new ValueObject();
        RowSet rowSet = FileManager.getFileList(filegb, id);
        String str="";
            for(int i=0;i<rowSet.size();i++){
                Row row=rowSet.getRow(i);
                str += (i+1)+" : "+row.get("FILE_NAME")+" ("+ row.get("FILE_SIZE")+")";
                if(i+1!=rowSet.size()){
                    str +="\r\n";
                }
            }
            vo.set(returnid, str);
        return vo;
    }
	
	public ValueObject getResultDetail01_info(ValueObject params){
        Search search = new SearchImpl();
        ValueObject vo = null;
        RowSet rowSet = new RowSetImpl();
        
        StringBuffer sqlStr = new StringBuffer();
        
        
        try{
            
            sqlStr.append("            SELECT PUR_CONT_MOD_ID -- 외주계약변경ID                                                \n")
                    .append("                         ,ACMP_YYYY -- 기성년도                                                \n")
                    .append("                         ,DEPT_CD -- 현장코드                                                \n")
                    .append("                         ,GET_DEPT_NM(DEPT_CD) DEPT_NAME -- 현장명                                                \n")
                    .append("                         ,CORP_ID                                                \n")
                    .append("                         ,ISSUE_NO --발급번호                                                \n")
                    .append("                        ,ISU_VENDCD -- 신청인발급요청자) 사업자번호                                                 \n")
                    .append("                        ,ISU_VENDNM -- 신청인(발급요청자) 상호                                                \n")
                    .append("                        ,ISU_PRES_NM -- 신청인(발급요청자) 대표자명                                                \n")
                    .append("                        ,ISU_ADDR -- 신청인(발급요청자) 주소                                                \n")
                    .append("                        ,ISU_PHONE -- 신청인(발급요청자) 전화번호                                                \n")
                    .append("                        ,CONT_NM -- 공종(계약)명                                                \n")
                    .append("                        ,WORK_PLACE -- 현장소재지 (공사현장)                                                \n")
                    .append("                        ,CON_AMT -- 공종(계약)금액                                                \n")
                    .append("                        ,TO_CHAR(TO_DATE(CONT_CDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') CONT_CDATE -- 계약년월일 (YYYYMMDD)                                                \n")
                    .append("                        ,TO_CHAR(TO_DATE(CONT_SDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') CONT_SDATE -- 착공년월일 (YYYYMMDD)                                                \n")
                    .append("                        ,TO_CHAR(TO_DATE(CONT_EDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') CONT_EDATE-- 준공년월일 (YYYYMMDD)                                                \n")
                    .append("                        ,CONT_TAMT --  총계약금액 (총공사금액)                                                \n")
                    .append("                        ,CUR_PAY_AMT -- 당년도 기성액                                                \n")
                    .append("                        ,CUR_PAY_SAMT AS CUR_PAY_SAMT  -- 당년도 기성지급액                                                \n")
                    .append("                        ,ORD_NM -- 발주자                                                \n")
                    .append("                        ,CUR_CONT_AMT -- 당년도 계약액 (이월액)                                                \n")
                    .append("                        ,CUR_PAY_NAMT -- 당년도 미기성액                                                \n")
                    .append("                        ,CUR_CONT_AAMT -- 당년도추가(변경)계약액                                                \n")
                    .append("                        ,PRV_PAY_AMT-- 전년도까지 누계기성액                                                \n")
                    .append("                        ,PRV_PAY_SAMT-- 전년도까지 누계지급액                                                \n")
                    .append("                        ,PRV_PAY_NAMT -- 전년도까지 미기성액                                                \n")
                    .append("                        ,PRV_TRANS_AMT -- 전년도이월액 or 전년도이월공사액                                                \n")
                    .append("                        ,REG_VENDNM -- 발급자 상호                                                \n")
                    .append("                        ,REG_PRES_NM -- 발급자 대표자명                                                \n")
                    .append("                        ,REG_ADDR -- 발급자 주소                                                \n")
                    .append("                        ,REG_PHONE -- 발급자 전화번호                                                \n")
                    .append("                        ,PROG_STAT_CD  -- 진행상태 코드                                                \n")
                    .append("                        ,SOC_CD  -- 제출협회 코드                                                \n")
                    .append("                        ,DECODE(SOC_CD, '01', '대한전문건설협회', '02', '대한기계설비공사협회', '03', '한국소방시설협회', '04', '한국정보통신공사협회', '한국전기공사협회') SOC_NM                         \n")
                    .append("                        ,DECODE(PROG_STAT_CD, '10', '작성중', '20', '발급요청', '30', '발급완료', '91', '반려', '작성대상') PROG_STAT_NM                                                \n")
                    .append("                        ,LIC_NM --업종                                                \n")
                    .append("                        ,LIC_ORG --인허가기관                                                \n")
                    .append("                        ,REG_NO --등록번호                                                \n")
                    .append("                        ,ETC --기타                                                \n")
                    .append("                        ,TO_CHAR(TO_DATE(LIC_DATE, 'YYYY-MM-DD'), 'YYYY-MM-DD')  LIC_DATE --인허가연월일                                                \n")
                    .append("                        ,ISU_CHARGE_NM -- 담당자명                                                \n")
                    .append("                        ,ISU_REQ_HP1 --휴대전화                                                \n")
                    .append("                        ,ISU_REQ_HP2 --휴대전화                                                \n")
                    .append("                        ,ISU_REQ_HP3 --휴대전화                                                \n")
                    .append("                        ,WORK_KIND --공사종류 (공종, 공사업종)                                                \n")
                    .append("                        ,RETURN_RESON           --반려사유                                             \n")
                    .append("                        ,SUPP_SIGN_DATA                                                        \n")
                    .append("                        ,CONT_TAMT_O, PRV_PAY_AMT_O, CUR_PAY_AMT_O, CUR_PAY_NAMT_O             \n")
                    .append("                        ,ADD_01                                                        \n")
                    .append("                        ,ADD_02                                                        \n")
                    .append("             FROM PUR_RESULT_PLOOF_INFO          \n")
                    .append("             WHERE CORP_ID  = ?                                                \n")
                    .append("             AND PUR_CONT_MOD_ID  = ?                                                \n")
                    .append("             AND ACMP_YYYY  = ?                                                \n")
            		.append("             AND SOC_CD  = '01'                                                \n");
     
     
             search.setStatement(sqlStr.toString());

             search.addParameter(params.get("p_corp_id"));
             search.addParameter(params.get("p_pur_cont_mod_id"));
             search.addParameter(params.get("p_acmp_yyyy"));
             
             
            rowSet = search.execute();
            
            
            WAFLogger.debug(sqlStr.toString());
            WAFLogger.debug(search.getParameters());
            
            if(rowSet.size()>0){
                vo = RowSetUtility.getValueObject(rowSet.getRow(0));
            }
            
        }catch(Exception e){
            e.printStackTrace();
            throw e;
        }finally{
            if( vo == null) vo = new ValueObject();
            return vo;
        }
    }
    
	
}