using System; using CoreSavingLibrary; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using DataLibrary; namespace Saving.CriteriaIReport.genprincipal_paydet { public partial class genprincipal_paydet : PageWebReport, WebReport { protected String app; protected String gid; protected String rid; public void InitJsPostBack() { dsMain.InitDsMain(this); } public void WebSheetLoadBegin() { //--- 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 + "]"; } if (!IsPostBack) { dsMain.DdCoopId(); dsMain.DATA[0].adtm_calto = state.SsWorkDate; } } public void CheckJsPostBack(string eventArg) { } public void RunReport() { decimal loanapprove_amt = 0; decimal principal_balance = 0; decimal prnc_bal = 0; string loancontract_no = ""; try { string sql = @"select lncontmaster.* from ( select loancontract_no,sum(period_payment - prinpaid_amt ) as period_payment2 from lncontperiodpaydet group by loancontract_no )a inner join lncontmaster on a.loancontract_no = lncontmaster.loancontract_no where principal_balance >0 and period_payment2 <> principal_balance and loanapprove_amt >= principal_balance"; sql = WebUtil.SQLFormat(sql,state.SsCoopId); Sdt dt = WebUtil.QuerySdt(sql); while (dt.Next()) { loanapprove_amt = dt.GetDecimal("loanapprove_amt"); principal_balance = dt.GetDecimal("principal_balance"); prnc_bal = loanapprove_amt - principal_balance; loancontract_no = dt.GetString("loancontract_no"); if (prnc_bal > 0) { string selectpaydet = "select * from lncontperiodpaydet where loancontract_no ={0}"; selectpaydet = WebUtil.SQLFormat(selectpaydet, loancontract_no); Sdt select = WebUtil.QuerySdt(selectpaydet); decimal period_payment =0; decimal period = 1; while (select.Next()) { period_payment = select.GetDecimal("period_payment"); period = select.GetDecimal("period"); if (prnc_bal >= period_payment) { prnc_bal -= period_payment; string update = @"update lncontperiodpaydet set prinpaid_amt = period_payment where loancontract_no ={0} and period ={1}"; update = WebUtil.SQLFormat(update, loancontract_no, period); WebUtil.QuerySdt(update); } else if (prnc_bal > 0) { string update = @"update lncontperiodpaydet set prinpaid_amt = {2} where loancontract_no ={0} and period ={1}"; update = WebUtil.SQLFormat(update, loancontract_no, period, prnc_bal); WebUtil.QuerySdt(update); prnc_bal = 0; } else { string update = @"update lncontperiodpaydet set prinpaid_amt = 0 where loancontract_no ={0} and period ={1}"; update = WebUtil.SQLFormat(update, loancontract_no, period); WebUtil.QuerySdt(update); } } } else if (prnc_bal==0) { string update = @"update lncontperiodpaydet set prinpaid_amt = 0 where loancontract_no ={0}"; update = WebUtil.SQLFormat(update, loancontract_no); WebUtil.QuerySdt(update); } } string update_arrear = @"update lncontperiodpaydet set principal_arrear=period_payment-prinpaid_amt where expireperiod_date <={0} and prinpaid_amt <> period_payment"; update_arrear = WebUtil.SQLFormat(update_arrear, dsMain.DATA[0].adtm_calto); WebUtil.QuerySdt(update_arrear); } catch { } } public void WebSheetLoadEnd() { } } }