<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="com.csc.library.entry.HelpEntry,com.csc.library.system.Task"%>
<%@ page import="com.csc.library.database.*,com.csc.library.session.*"  %>
<%@ page import="com.csc.library.utilities.CheckNull"%>
<%@ page import="com.csc.library.utilities.*"%>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.*"%>
<% //request.setCharacterEncoding("UTF-8"); %>
<jsp:useBean id="PSR002" class="com.csc.library.system.Task" scope="page"/>
<%
	//response.setHeader("Cache-Control","must-revalidate");
	response.setContentType("application/vnd.ms-excel; UTF-8");
	response.setHeader("Content-Disposition", "inline; filename=" + "export.xls");
	CheckNull chk = new CheckNull();
	CscCalendar cc = new CscCalendar();
	PSR002.setChannel(request, response);
	HelpEntry screen = (HelpEntry) PSR002.process("HelpEntry","MEMPLOYEEREPORTHELP");
	screen.setMaxLine(20);
    screen.getInquiry().setParam("__active_on", "off");
	String statusFirst = chk.chkNullString(request.getParameter("statusFirst"), "false");
	String branch = chk.chkNullString(request.getParameter("branch"));
	String branchDesc = chk.chkNullString(request.getParameter("MBRANCH@TDESC"));
	String startdate = chk.chkNullString(request.getParameter("startdate"), cc.getDDMMYYYY());
	String enddate = chk.chkNullString(request.getParameter("enddate"), cc.getDDMMYYYY());
	String view = chk.chkNullString(request.getParameter("__view"));
	String filter = chk.chkNullString(request.getParameter("__filter"),"1=1");
	String allbranch = chk.chkNullString(request.getParameter("allbranch"));
	String bu1 = chk.chkNullString(request.getParameter("__bu1"));
	String bu2 = chk.chkNullString(request.getParameter("__bu2"));
	String bu3 = chk.chkNullString(request.getParameter("__bu3"));
	String bu4 = chk.chkNullString(request.getParameter("__bu4"));
	String bu5 = chk.chkNullString(request.getParameter("__bu5"));
	String workarea = chk.chkNullString(request.getParameter("__workarea"));
	UProfile uprofile = screen.getUProfile();
	CscCalendar st = new CscCalendar(startdate);
	CscCalendar en = new CscCalendar(enddate);
	screen.process();

	if(!allbranch.equals("")){
		filter += allbranch;
	}

	if(!branch.equals("")){
		filter += " and branch = '"+branch+"'";
	}

	if(!bu1.equals("")){
		filter += " and bu1 = '"+bu1+"'";
	}

	if(!bu2.equals("")){
		filter += " and bu2 = '"+bu2+"'";
	}

	if(!bu3.equals("")){
		filter += " and bu3 = '"+bu3+"'";
	}

	if(!bu4.equals("")){
		filter += " and bu4 = '"+bu4+"'";
	}

	if(!bu5.equals("")){
		filter += " and bu5 = '"+bu5+"'";
	}

	if(!workarea.equals("")){
		filter += " and workarea = '"+workarea+"'";
	}

	if(!startdate.equals("")){
		filter += " and startdate between '"+st.getYYYYMMDD()+"' and '"+en.getYYYYMMDD()+"'";
	}
%>

<%!
public static int daysBetween(CscCalendar d1, CscCalendar d2) {
  return (int) ((d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24))+1;
 }
%>
<%!
  private boolean chkZero(String val) {
  	return val.equals("0000000")?true:false;
  }

  private boolean chkBlank(String val) {
  	return val.equals("")?true:false;
  }

  private String getDescBu(String table, String bu, String buid,UProfile up) {
  	String val = "";
  	try {
  		DbInquiry mbu = new InitialInquiry(up).getDbInquiry(table);
  		mbu.setColumn("tdesc");
  		mbu.clearOldCondition();
  		mbu.setFilter(bu + "='"+ buid +"'");
  		mbu.refresh();
		if (mbu.next()) {
			val = mbu.getString("tdesc");
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
  	return val;
  }

private String getDescPosition(String table, String po,UProfile up) {
  	String val = "";
  	try {
  		DbInquiry mbu = new InitialInquiry(up).getDbInquiry(table);
  		mbu.setColumn("tdesc");
  		mbu.clearOldCondition();
  		mbu.setFilter("positionid='"+ po +"'");
  		mbu.refresh();
		if (mbu.next()) {
			val = mbu.getString("tdesc");
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
  	return val;
}
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- <link href="../CSS/TISCO.css" rel="stylesheet" type="text/css"> -->
<!-- <link href="../CSS/bootstrap.css" rel="stylesheet"> -->
<script src="../JS/jquery-1.11.3.min.js"></script>
 <!-- <script src="../JS/bootstrap.min.js"></script> -->
<script type="text/javascript" language="javascript" src="../JS/SCREEN.js"></script>
<script type="text/javascript" language="javascript" src="../JS/VIEWCALENDAR.js"></script>
<script language="javascript"  src="../JS/DATEINPUT.js"></script>
<script language="javascript">setLang("<%=screen.getUProfile().get("lang")%>");</script>

<script language="JavaScript" type="text/JavaScript">

function goHelp(helpName,inputName) {
	var helpReturn = "";
	helpReturn = inputName+":branchid,MBRANCH@TDESC";
	linkHelp_Return(helpName,helpReturn);
}

function GoExport(){
	with(document.cscform){
	//alert(__filter.value);
	var param = "PSR001_EXP.jsp";
	window.open(param);

	}
}

function GoPrint(){
	with(document.cscform){
	var param = "PSR001_PDF.jsp";
	window.open(param);
		submit();
	}
}
function GoView(){
	with(document.cscform){
		__view.value = "1"
		submit();
	}
}

function checkBox(){
	with(document.cscform){
		if(allbranch.checked==true){
			allbranch.value=" and BRANCH in (select branchid from MBRANCH) ";
			//alert(allbranch.value);
		}else{
			allbranch.value="";
			//alert(allbranch.value);
		}
	}
}

$(function() {
	$('#export').click(function() {
		GoExport();
	});

	$('#preview').click(function() {
		 GoView();
	});

	$('#print').click(function() {
		GoPrint();
	});

	});



</script>
<style>
	.table-condensed > tbody > tr > td {
		padding: 4px;
		border: 0px solid #ddd;
	}
	img[height="20"] {
		padding: 0px;
	}
	.table-bordered th {
		text-align: center;
		vertical-align: middle;
	}
	.eiei {
		overflow: scroll;
		height: 100%;
	}
	.format_text{
	  mso-number-format:"\@";/*force text*/
	}
</style>
</head>
<body leftmargin="0" topmargin="0">
	<form name="cscform" method="post">
		<input type="hidden" name="__language" value="<%=screen.getUProfile().get("lang")%>">
		<input type="hidden" name="__fixCon" value="">
		<input type="hidden" name="__cmd" value="">
		<input type="hidden" name="__view" value="">
		<input type="hidden" name="__screen" value="PSR020">
		<input type="hidden" name="__goPage" value ="">
		<input type="hidden" name="__employeeid" value="">
		<input type="hidden" name="__companyid" value="<%=screen.getUProfile().get("companyid")%>">
		<input type="hidden" name="__orderBy" value="">
		<input type="hidden" name="__empview" value="">
		<input type="hidden" name="__calendar" value="">
		<input type="hidden" name="__filter" value="<%=request.getParameter("__filter")%>">
		<input type="hidden" name="branch" value="<%=request.getParameter("branch")%>">
		<input type="hidden" name="startdate" value="<%=request.getParameter("startdate")%>">
		<input type="hidden" name="startdate" value="<%=request.getParameter("enddate")%>">
		<input type="hidden" name="allbranch" value="<%=request.getParameter("allbranch")%>">
		<script language="javascript">getInputFormatDate();</script>
		<table class="table table-bordered maxsize" border="1">
		<%
			DbRecord emp_rec = new InitialRecord(screen.getUProfile()).getDbRecord("memployee");
			DbInquiry op = new InitialInquiry(screen.getUProfile()).getDbInquiry("COLOPTION");
			op.setColumn("*");
			op.setFilter("optionid = '22' ");
			op.refresh();
			op.next();

			Map<Integer, Integer> linkmap = new LinkedHashMap<Integer, Integer>();
			for(int i=1;i<=6;i++){
				String chknum = op.getString("chk"+i);
				if(chknum.equals("1")){
					//out.print(i+"</br>");
					linkmap.put(i,Integer.valueOf(op.getString("col"+i)));
				}
			}
			int colspan = 5+linkmap.size() ;

        	SimpleDateFormat df = new SimpleDateFormat("hh:mm a", Locale.ENGLISH);
        	GregorianCalendar gc= new GregorianCalendar();

            boolean langthai = screen.getUProfile().get("lang").equalsIgnoreCase("THA");
            String str_reportname = "", str_perioddate = "", str_printdate = "", str_printby = "", str_refer = "";
            if(langthai){
                str_reportname = "รายงาน :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;รายงานรายชื่อพนักงานเข้าใหม่และการคำนวณ Probation";
                str_perioddate = "ช่วงวันที่ :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+startdate+" ถึง "+enddate;
                str_printdate = "วันที่พิมพ์ :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;วัน"+cc.getLongThiDOW()+"ที่ "+cc.getDate()+ " " + cc.getThaiLongMonth() + " พ.ศ. "+ cc.getThaiYYYY() +
              			" " +cc.getHHMM() + " น.";
                str_printby = "พิมพ์โดย :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+screen.getUProfile().get("tfullname");
                str_refer = "อ้างอิง # RPI2100";
            } else {
                str_reportname = "Report Name :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;New Employee List And Probation Calulation Report";
                str_perioddate = "Period Date :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+startdate+" To "+enddate;
                str_printdate = "Print Date :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+cc.getEngFull()+ " " + df.format((Date)gc.getTime());
                str_printby = "Print By :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+screen.getUProfile().get("efullname");
                str_refer = "Ref # RPI2100";
            }

		%>
			<thead>
				<tr>
					<td colspan="<%=colspan+2%>" style="font-size: 150%;"><b><%=screen.getUProfile().get("companyname") %></b></td>
				</tr>
				<tr>
					<td colspan="2"><b><%=langthai?"รายงาน :":"Report Name :"%></b></td>
					<td colspan="<%=colspan%>"><%=langthai?"รายงานรายชื่อพนักงานเข้าใหม่และการคำนวณ Probation":"New Employee List And Probation Calulation Report"%></td>
				</tr>
				<tr>
					<td colspan="2"><b><%=langthai?"ช่วงวันที่ :":"Period Date :"%></b></td>
					<td colspan="<%=colspan%>"><%=langthai?startdate+" ถึง "+enddate:startdate+" To "+enddate%></td>
				</tr>
				<tr>
					<td colspan="2"><b><%=langthai?"วันที่พิมพ์ :":"Print Date :"%></b></td>
					<td colspan="<%=colspan%>"><%=langthai?"วัน"+cc.getLongThiDOW()+"ที่ "+cc.getDate()+ " " + cc.getThaiLongMonth() + " พ.ศ. "+ cc.getThaiYYYY() +
	              			" " +cc.getHHMM() + " น.":cc.getEngFull()+ " " + df.format((Date)gc.getTime())%></td>
				</tr>
				<tr>
					<td colspan="2"><b><%=langthai?"พิมพ์โดย :":"Print By :"%></td>
					<td colspan="<%=colspan-2%>"><%=screen.getUProfile().get("fullname")%></td>
					<td colspan="2" style="vertical-align: right;"><%=langthai?"อ้างอิง # RPI2100":"Ref # RPI2100"%></td>
				</tr>
				<tr>
					<th rowspan="2" style="vertical-align: middle;"><%=langthai?"ลำดับ":"No."%></th>
					<th rowspan="2" style="vertical-align: middle;"><%=langthai?"รหัสพนักงาน":"Employee ID"%></th>
					<th rowspan="2" style="vertical-align: middle;"><%=langthai?"ชื่อ-นามสกุล":"Name-Surname"%></th>
					<th rowspan="2" style="vertical-align: middle;"><%=emp_rec.getField("bu1").getDescription()%></th>
					<th rowspan="2" style="vertical-align: middle;"><%=emp_rec.getField("bu2").getDescription()%></th>
					<th rowspan="2" style="vertical-align: middle;"><%=emp_rec.getField("bu3").getDescription()%></th>
					<th rowspan="2" style="vertical-align: middle;"><%=langthai?"วันที่เริ่มต้น":"Start Date"%></th>
					<% if(linkmap.size() != 0){ %>
					<th colspan="<%=linkmap.size()%>" style="vertical-align: middle;"><%=langthai?"วันที่ครบกำหนดทดลองงาน":"Probation Date"%></th>
					<% } %>
				</tr>
				<tr>
					<%
						for(Integer key : linkmap.keySet()){
					%>
						<th style="vertical-align: middle;">
							<%=langthai?"ครบ&nbsp;"+linkmap.get(key)+"&nbsp;วัน":linkmap.get(key)+"&nbsp;Day(s)"%>
						</th>
					<%
						}
					%>
				</tr>
			</thead>
			<tbody>
		<%
		int no = 1;
		String DbType = screen.getUProfile().getDbType().toUpperCase();
		String strJoiner = "+";
		if(DbType.equals("PGSQL") || DbType.equals("ORACLE")){
			strJoiner = "||";
		}

		String sql="";
		if(screen.getUProfile().get("lang").equals("eng")){
			 sql = "select me.EMPLOYEEID,pre.EDESC"+strJoiner+"me.EFNAME"+strJoiner+"' '"+strJoiner+"me.ELNAME as fullname,b1.EDESC as bu1,b2.EDESC as bu2,b3.EDESC as bu3,STARTDATE from MEMPLOYEE me left join MPREFIX pre on me.EMP_PREFIX = pre.PREFIXID left join MBU3 b3 on me.BU3 = b3.BU3ID left join MBU2 b2 on me.BU2 = b2.BU2ID left join MBU1 b1 on me.BU1 = b1.BU1ID where "+filter+" ORDER BY me.bu1,me.bu2,me.bu3,me.bu4,me.bu5";
		}else{
			 sql = "select me.EMPLOYEEID,pre.TDESC"+strJoiner+"me.FNAME"+strJoiner+"' '"+strJoiner+"me.LNAME as fullname,b1.TDESC as bu1,b2.TDESC as bu2,b3.TDESC as bu3,STARTDATE from MEMPLOYEE me left join MPREFIX pre on me.EMP_PREFIX = pre.PREFIXID left join MBU3 b3 on me.BU3 = b3.BU3ID left join MBU2 b2 on me.BU2 = b2.BU2ID left join MBU1 b1 on me.BU1 = b1.BU1ID where "+filter+" ORDER BY me.bu1,me.bu2,me.bu3,me.bu4,me.bu5";
		}
		//out.print(sql);
		try{
			DataSet ds = new DataSet(sql,screen.getUProfile().get("dbname"),"Memployee");
			ds.initConnection(screen.getUProfile());
			while (ds.next()) {
				CscCalendar stDate = new CscCalendar(chk.chkNullString(ds.getString("startdate")));

		%>
				<tr>
					<td align="center"><div style="width: 50px;"><%=no%></div></td>
					<td align="center"><div style="width: 150px;" class="format_text"><%=chk.chkNullString(ds.getString("employeeid"))%></div></td>
					<td align="left"><div style="width: 300px;"><%=chk.chkNullString(ds.getString("fullname"))%></div></td>
					<td align="left"><div style="width: 200px;"><%=chk.chkNullString(ds.getString("bu1"))%></div></td>
					<td align="left"><div style="width: 200px;"><%=chk.chkNullString(ds.getString("bu2"))%></div></td>
					<td align="left"><div style="width: 200px;"><%=chk.chkNullString(ds.getString("bu3"))%></div></td>
					<td align="center"><div style="width: 100px;"><%=stDate.getDDMMYYYY()%></div></td>
					<%
						for (Integer key : linkmap.keySet()){
					%>
						<td align="center"><div style="width: 100px;"><%=new CscCalendar(chk.chkNullString(ds.getString("startdate"))).incDate(linkmap.get(key)).getDDMMYYYY()%></div></td>
					<%
						}
					%>
				</tr>
		<%
				no++;
			}
		} catch(Exception e) {
			e.printStackTrace();
		}
		%>
			</tbody>
		</table>
		<!----------BEGIN CSC ENDING ZONE ------------------------>
		<%=screen.endJSP()%>
		<!----------END CSC ENDING ZONE -------------------------->
	</form>
</body>
</html>