using System; using CoreSavingLibrary; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml.Linq; using DataLibrary; namespace Saving.Criteria { public partial class u_cri_loangenbook_memno : PageWebSheet, WebSheet { protected String app; protected String gid; protected String rid; protected String pdf; protected String runProcess; protected String popupReport; public String outputProcess = ""; private DwThDate tdw_criteria; protected String jsGetMemberInfo; protected String jsGetMemberInfo2; #region WebSheet Members public void InitJsPostBack() { HdOpenIFrame.Value = "False"; runProcess = WebUtil.JsPostBack(this, "runProcess"); tdw_criteria = new DwThDate(dw_criteria, this); tdw_criteria.Add("start_date", "start_tdate"); tdw_criteria.Add("calintto_date", "calintto_tdate"); tdw_criteria.Add("sendbook_date", "sendbook_tdate"); tdw_criteria.Add("end_date", "end_tdate"); jsGetMemberInfo = WebUtil.JsPostBack(this, "jsGetMemberInfo"); jsGetMemberInfo2 = WebUtil.JsPostBack(this, "jsGetMemberInfo2"); } public void WebSheetLoadBegin() { if (IsPostBack) { dw_criteria.RestoreContext(); } else { //default values. dw_criteria.InsertRow(0); dw_criteria.SetItemDateTime(1, "start_date", state.SsWorkDate); dw_criteria.SetItemDateTime(1, "end_date", state.SsWorkDate); dw_criteria.SetItemDateTime(1, "sendbook_date", state.SsWorkDate); dw_criteria.SetItemDateTime(1, "calintto_date", state.SsWorkDate); DwUtil.RetrieveDDDW(dw_criteria, "start_group_1", "criteria", null); DwUtil.RetrieveDDDW(dw_criteria, "end_group_1", "criteria", null); DwUtil.RetrieveDDDW(dw_criteria, "branch_id", "criteria", null); dw_criteria.SetItemString(1, "branch_id", state.SsCoopControl); //dw_criteria.SetItemString(1, "memno1", "00000000"); //dw_criteria.SetItemString(1, "memno2", "00000000"); tdw_criteria.Eng2ThaiAllRow(); DwUtil.RetrieveDDDW(dw_criteria, "manager", "criteria", null); Sdt d = WebUtil.QuerySdt(" select min(membgroup_code)as mg , max(membgroup_code)as xg from mbucfmembgroup "); if (d.Next()) { dw_criteria.SetItemString(1, "start_group", d.GetString("mg")); dw_criteria.SetItemString(1, "end_group", d.GetString("xg")); String sql = "select mbmembmaster.member_no, (mbucfprename.prename_desc || mbmembmaster.memb_name||' '||mbmembmaster.memb_surname) as names from mbmembmaster inner join mbucfprename on mbmembmaster.prename_code = mbucfprename.prename_code where trim(mbmembmaster.membgroup_code) = '" + d.GetString("mg") + "' and coop_id = '" + state.SsCoopControl + "' and rownum =1 order by member_no asc "; Sdt d2 = WebUtil.QuerySdt(sql); if (d2.Next()) { dw_criteria.SetItemString(1, "memno1", d2.GetString("member_no")); dw_criteria.SetItemString(1, "name_4", d2.GetString("names")); } sql = "select mbmembmaster.member_no, (mbucfprename.prename_desc || mbmembmaster.memb_name||' '||mbmembmaster.memb_surname) as names from mbmembmaster inner join mbucfprename on mbmembmaster.prename_code = mbucfprename.prename_code where trim(mbmembmaster.membgroup_code) = '" + d.GetString("xg") + "' and coop_id = '" + state.SsCoopControl + "' and rownum =1 order by member_no asc "; d = WebUtil.QuerySdt(sql); d.Next(); dw_criteria.SetItemString(1, "memno2", d.GetString("member_no")); dw_criteria.SetItemString(1, "name_3", d.GetString("names")); } } //--- Page Arguments try { app = Request["app"].ToString(); } catch { } if (app == null || app == "") { app = state.SsApplication; } try { gid = Request["gid"].ToString(); } catch { } try { rid = Request["rid"].ToString(); } catch { } //Report Name. try { Sta ta = new Sta(state.SsConnectionString); String sql = ""; sql = @"SELECT REPORT_NAME FROM WEBREPORTDETAIL WHERE ( GROUP_ID = '" + gid + @"' ) AND ( REPORT_ID = '" + rid + @"' )"; Sdt dt = ta.Query(sql); ReportName.Text = dt.Rows[0]["REPORT_NAME"].ToString(); ta.Close(); } catch { ReportName.Text = "[" + rid + "]"; } //Link back to the report menu. LinkBack.PostBackUrl = String.Format("~/ReportDefault.aspx?app={0}&gid={1}", app, gid); } public void CheckJsPostBack(string eventArg) { if (eventArg == "runProcess") { RunProcess(); } else if (eventArg == "popupReport") { PopupReport(); } else if (eventArg == "jsGetMemberInfo") { String sql = "select mbmembmaster.member_no, (mbucfprename.prename_desc || mbmembmaster.memb_name||' '||mbmembmaster.memb_surname) as names from mbmembmaster inner join mbucfprename on mbmembmaster.prename_code = mbucfprename.prename_code where trim(mbmembmaster.member_no) like '%" + dw_criteria.GetItemString(1, "memno1").Trim() + "%' and coop_id = '" + state.SsCoopControl + "' and rownum =1 order by member_no asc "; Sdt d = WebUtil.QuerySdt(sql); d.Next(); dw_criteria.SetItemString(1, "memno1", d.GetString("member_no")); dw_criteria.SetItemString(1, "name_4", d.GetString("names")); } else if (eventArg == "jsGetMemberInfo2") { String sql = "select mbmembmaster.member_no, (mbucfprename.prename_desc || mbmembmaster.memb_name||' '||mbmembmaster.memb_surname) as names from mbmembmaster inner join mbucfprename on mbmembmaster.prename_code = mbucfprename.prename_code where trim(mbmembmaster.member_no) like '%" + dw_criteria.GetItemString(1, "memno1").Trim() + "%' and coop_id = '" + state.SsCoopControl + "' and rownum =1 order by member_no asc "; Sdt d = WebUtil.QuerySdt(sql); d.Next(); dw_criteria.SetItemString(1, "memno2", d.GetString("member_no")); dw_criteria.SetItemString(1, "name_3", d.GetString("names")); } } public void SaveWebSheet() { } public void WebSheetLoadEnd() { } #endregion #region Report private void RunProcess() { DateTime calintto_date = dw_criteria.GetItemDate(1, "calintto_date"); DateTime sendbook_date = dw_criteria.GetItemDate(1, "sendbook_date"); DateTime start_date = dw_criteria.GetItemDate(1, "start_date"); try { String start_group = "%"; String end_group = "%"; String memno1 = dw_criteria.GetItemString(1, "memno1").Trim(); String memno2 = dw_criteria.GetItemString(1, "memno2").Trim(); start_group = dw_criteria.GetItemString(1, "start_group").Trim(); end_group = dw_criteria.GetItemString(1, "end_group").Trim(); String sqldelete = "delete from MBHISTARREAR where ITEMTYPE_CODE = 'LON' "; WebUtil.QuerySdt(sqldelete); String sql = "select lncontmaster.member_no,lncontmaster.principal_balance,lncontmaster.principal_arrear,lncontmaster.fineyear_arrear,lncontmaster.intyear_arrear" + ",lncontmaster.loancontract_no,lncontmaster.interest_arrear,lncontmaster.fine_arrear,lncontmaster.expirecont_date from lncontmaster inner join mbmembmaster on lncontmaster.member_no" + " =mbmembmaster.member_no where ( trim(mbmembmaster.membgroup_code) between '" + start_group + "' and '" + start_group + "') and ( trim(mbmembmaster.member_no) between '" + memno1 + "' and '" + memno2 + "') and lncontmaster.coop_id = '" + state.SsCoopControl + "' and lncontmaster.principal_balance >0 "; Sdt dt = WebUtil.QuerySdt(sql); int i = 1; while (dt.Next()) { Decimal int_plus = 0, fine_plus = 0, prin_arr = 0; if (dt.GetDecimal("intyear_arrear") < dt.GetDecimal("interest_arrear")) { int_plus = dt.GetDecimal("interest_arrear") - dt.GetDecimal("intyear_arrear"); } if (dt.GetDecimal("fineyear_arrear") < dt.GetDecimal("fine_arrear")) { fine_plus = dt.GetDecimal("fine_arrear") - dt.GetDecimal("fineyear_arrear"); } String sqls = "select (period_payment - prinpaid_amt) as paid from lncontperiodpaydet where (expireperiod_date <= {0}) and coop_id = '" + state.SsCoopControl + "' and loancontract_no='" + dt.GetString("loancontract_no") + "' and rownum=1 order by period asc "; sqls = WebUtil.SQLFormat(sqls, calintto_date); Sdt fg = WebUtil.QuerySdt(sqls); if (fg.Next()) { prin_arr = fg.GetDecimal("paid"); } prin_arr = dt.GetDecimal("principal_arrear") + prin_arr; fine_plus = WebUtil.calfine_new(dt.GetString("loancontract_no"), calintto_date, state.SsCoopControl) + fine_plus; int_plus = WebUtil.Calint(dt.GetString("loancontract_no"), calintto_date, state.SsCoopControl) + int_plus; String sqlInsert = "insert into MBHISTARREAR(MEMBER_NO, SEQ_NO , ITEMTYPE_CODE , PRINCIPAL_ARR, INTEREST_ARR , FINE_ARR , LOANCONTRACT_NO, LASTPAYMENT_DATE , PRINCIPAL_BALANCE , BFFINEARR_AMT, BFINTARR_AMT, EXPIREPERIOD_DATE ) " + "values('" + dt.GetString("member_no") + "'," + i + ",'LON'," + prin_arr + "," + int_plus + " " + "," + fine_plus + ",'" + dt.GetString("loancontract_no") + "',{1}," + "" + dt.GetDecimal("principal_balance") + "," + dt.GetDecimal("intyear_arrear") + "," + dt.GetDecimal("fineyear_arrear") + ",{0})"; sqlInsert = WebUtil.SQLFormat(sqlInsert, dt.GetDate("expirecont_date"), start_date); WebUtil.QuerySdt(sqlInsert); i++; } } catch (Exception e) { LtServerMessage.Text = WebUtil.ErrorMessage(e.ToString()); } //อ่านค่าจากหน้าจอใส่ตัวแปรรอไว้ก่อน. String start_tdate = WebUtil.ConvertDateThaiToEng(dw_criteria, "start_date", null); String calintto_tdate = WebUtil.ConvertDateThaiToEng(dw_criteria, "calintto_date", null); String sendbook_tdate = WebUtil.ConvertDateThaiToEng(dw_criteria, "sendbook_date", null); //Decimal start_salary = dw_criteria.GetItemDecimal(1, "start_salary"); //Decimal end_salary = dw_criteria.GetItemDecimal(1, "end_salary"); //แปลง Criteria ให้อยู่ในรูปแบบมาตรฐาน.. ReportHelper lnv_helper = new ReportHelper(); lnv_helper.AddArgument(start_date.ToShortDateString(), ArgumentType.DateTime); lnv_helper.AddArgument(sendbook_date.ToShortDateString(), ArgumentType.DateTime); lnv_helper.AddArgument(calintto_date.ToShortDateString(), ArgumentType.DateTime); lnv_helper.AddArgument(dw_criteria.GetItemString(1, "manager").Trim().ToString(), ArgumentType.String); //ชื่อไฟล์ PDF = YYYYMMDDHHMMSS__.PDF String pdfFileName = DateTime.Now.ToString("yyyyMMddHHmmss", WebUtil.EN); pdfFileName += "_" + gid + "_" + rid + ".pdf"; pdfFileName = pdfFileName.Trim(); //ส่งให้ ReportService สร้าง PDF ให้ {โดยปกติจะอยู่ใน C:\GCOOP\Saving\PDF\}. try { String criteriaXML = lnv_helper.PopArgumentsXML(); string printer = "PDF"; outputProcess = WebUtil.runProcessingReport(state, app, gid, rid, criteriaXML, pdfFileName, printer); //CoreSavingLibrary.WcfReport.ReportClient lws_report = wcf.Report; //this.pdf = lws_report.GetPDFURL(state.SsWsPass) + pdfFileName; //String li_return = lws_report.RunWithID(state.SsWsPass, app, gid, rid, state.SsUsername, criteriaXML, pdfFileName); //if( li_return == "true" ) //{ // HdOpenIFrame.Value = "True"; //} } catch (Exception ex) { LtServerMessage.Text = WebUtil.ErrorMessage(ex); return; } } public void PopupReport() { //เด้ง Popup ออกรายงานเป็น PDF. String pop = "Gcoop.OpenPopup('" + pdf + "')"; ClientScript.RegisterClientScriptBlock(this.GetType(), "DsReport", pop, true); } #endregion } }