using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CoreSavingLibrary; using DataLibrary; namespace Saving.Applications.shrlon.dlg.ws_dlg_rightcoll_ctrl { public partial class ws_dlg_rightcoll : PageWebDialog, WebDialog { [JsPostBack] public string Post { get; set; } [JsPostBack] public string PostCheck { get; set; } public void InitJsPostBack() { dsClearright.InitDsClearright(this); dsRightchoose.InitDsRightchoose(this); dsMain.InitDsMain(this); } public void WebDialogLoadBegin() { Session["xml_rightchoose"] = null; if (!IsPostBack) { String memb_no = Request["memb_no"].Trim(); String loan_type = Request["loan_type"].Trim(); String sql = @"select loanright_type from lnloantype where coop_id = {0} and loantype_code = {1}"; sql = WebUtil.SQLFormat(sql, state.SsCoopControl, loan_type); Sdt result = WebUtil.QuerySdt(sql); while (result.Next()) { dsMain.DATA[0].loanright_type = result.GetString("loanright_type"); } dsClearright.Retrieve(memb_no); if (dsMain.DATA[0].loanright_type != "4") { RightchooseRetrieve(memb_no, loan_type); } else { RightchooseRetrievedept(memb_no, loan_type); } Setcollbalancebegin(); } } public void RightchooseRetrievedept(string memb_no, string loan_type) { try { String sql = @"select lnloantyperightcoll.* ,lnucfloancolltype.loancolltype_desc from lnloantyperightcoll ,lnucfloancolltype where lnloantyperightcoll.loantype_code = {0} and lnloantyperightcoll.loancolltype_code = '03' and lnloantyperightcoll.loancolltype_code = lnucfloancolltype.loancolltype_code order by lnloantyperightcoll.loancolltype_code "; sql = WebUtil.SQLFormat(sql, loan_type); Sdt result = WebUtil.QuerySdt(sql); while (result.Next()) { string loancolltype_code = result.GetString("loancolltype_code"); string loancolltype_desc = result.GetString("loancolltype_desc"); string collmasttype_code = result.GetString("collmasttype_code"); decimal right_format = result.GetDecimal("right_format"); decimal right_perc = result.GetDecimal("right_perc"); string right_ratio = result.GetString("right_ratio"); decimal right_type = result.GetDecimal("right_type"); decimal idiv = 0, imul = 0; string right_format_display = ""; if (right_format == 1) { idiv = 100; imul = right_perc; right_format_display = right_perc + "%"; } else { right_format_display = right_ratio; int in_dex = right_ratio.IndexOf(":"); string s_mul = right_ratio.Substring(0, in_dex); string s_div = right_ratio.Substring(in_dex + 1); idiv = Convert.ToDecimal(s_div); imul = Convert.ToDecimal(s_mul); } String sql3 = @"select * from dpdeptmaster where member_no = {0} and deptclose_status = 0 order by depttype_code "; sql3 = WebUtil.SQLFormat(sql3, memb_no); Sdt result3 = WebUtil.QuerySdt(sql3); while (result3.Next()) { dsRightchoose.InsertLastRow(); int row = dsRightchoose.RowCount - 1; dsRightchoose.DATA[row].loancolltype_code = loancolltype_code; dsRightchoose.DATA[row].loancolltype_desc = loancolltype_desc; dsRightchoose.DATA[row].ref_collno = result3.GetString("deptaccount_no"); dsRightchoose.DATA[row].collbal_amt = result3.GetDecimal("withdrawable_amt");//prncbal dsRightchoose.DATA[row].collbase_amt = result3.GetDecimal("withdrawable_amt");//prncbal dsRightchoose.DATA[row].description = result3.GetString("deptaccount_name"); dsRightchoose.DATA[row].right_type = right_type; dsRightchoose.DATA[row].right_format = right_format_display; dsRightchoose.DATA[row].idiv = idiv; dsRightchoose.DATA[row].imul = imul; dsRightchoose.DATA[row].dept_type = result3.GetString("depttype_code"); } } } catch { } } public void CheckJsPostBack(string eventArg) { if (eventArg == "Post") { try { string xmls = Convert.ToString(dsRightchoose.ExportXml()); string excludecont = ""; for (int i = 0; i < dsClearright.RowCount; i++) { if (dsClearright.DATA[i].clear_status == 1) { excludecont += "," + dsClearright.DATA[i].LOANCONTRACT_NO; } } if (excludecont != "") { excludecont = excludecont.Substring(1); } string exRightchoose = ""; for (int i = 0; i < dsRightchoose.RowCount; i++) { if (dsRightchoose.DATA[i].operate_flag == 1) { exRightchoose += "," + dsRightchoose.DATA[i].loancolltype_code + ":" + dsRightchoose.DATA[i].ref_collno; } } if (exRightchoose != "") { exRightchoose = exRightchoose.Substring(1); } decimal sum_permiss_amt = 0; for (int i = 0; i < dsRightchoose.RowCount; i++) { if (dsRightchoose.DATA[i].operate_flag == 1) { sum_permiss_amt += dsRightchoose.DATA[i].permiss_amt; } } //Session["xml_rightchoose"] = dsRightchoose.ExportXml(); //this.SetOnLoadedScript("parent.GetValue('" + excludecont + "','" + xmls + "');"); this.SetOnLoadedScript("parent.GetValue('" + excludecont + "','" + exRightchoose + "','" + sum_permiss_amt + "');"); } catch (Exception ex) { LtServerMessage.Text = WebUtil.ErrorMessage(ex); } } else if (eventArg == "PostCheck") { int get_row = dsClearright.GetRowFocus(); string loancontract_no = dsClearright.DATA[get_row].LOANCONTRACT_NO; decimal status = dsClearright.DATA[get_row].clear_status; if (status == 0) { status = -1; } Setcollbalance(loancontract_no, status); } } public void Setcollbalance(string loancontract_no, decimal status) { String sql = @"select lc.loancolltype_code as loancolltype_code, lc.ref_collno as ref_collno, round( ( ( lm.principal_balance + lm.withdrawable_amt ) * lc.collactive_percent ) / lc.collbase_percent, 2 ) as collused_amt from lncontmaster lm, lncontcoll lc where ( lm.coop_id = lc.coop_id ) and ( lm.loancontract_no = lc.loancontract_no ) and ( lc.loancolltype_code <> '01' ) and ( lm.coop_id = {0} ) and ( lm.loancontract_no = {1} ) "; sql = WebUtil.SQLFormat(sql, state.SsCoopControl, loancontract_no); Sdt result = WebUtil.QuerySdt(sql); while (result.Next()) { for (int i = 0; i < dsRightchoose.RowCount; i++) { decimal collbal_amt = dsRightchoose.DATA[i].collbal_amt; if (dsRightchoose.DATA[i].loancolltype_code == result.GetString("loancolltype_code") && dsRightchoose.DATA[i].ref_collno == result.GetString("ref_collno")) { if (dsRightchoose.DATA[i].right_type == 1) { dsRightchoose.DATA[i].collbal_amt = collbal_amt + (result.GetDecimal("collused_amt") * status);// result.GetDecimal("collused_amt"); } break; } } } SetPermissamt(); } public void WebDialogLoadEnd() { } public void RightchooseRetrieve(string memb_no, string loan_type) { try { String sql = @"select lnloantyperightcoll.* ,lnucfloancolltype.loancolltype_desc from lnloantyperightcoll ,lnucfloancolltype where lnloantyperightcoll.loantype_code = {0} and lnloantyperightcoll.loancolltype_code = lnucfloancolltype.loancolltype_code order by lnloantyperightcoll.loancolltype_code "; sql = WebUtil.SQLFormat(sql, loan_type); Sdt result = WebUtil.QuerySdt(sql); while (result.Next()) { string loancolltype_code = result.GetString("loancolltype_code"); string loancolltype_desc = result.GetString("loancolltype_desc"); string collmasttype_code = result.GetString("collmasttype_code"); decimal right_format = result.GetDecimal("right_format"); decimal right_perc = result.GetDecimal("right_perc"); string right_ratio = result.GetString("right_ratio"); decimal right_type = result.GetDecimal("right_type"); decimal idiv = 0, imul = 0; string right_format_display = ""; if (right_format == 1) { idiv = 100; imul = right_perc; right_format_display = right_perc + "%"; } else { right_format_display = right_ratio; int in_dex = right_ratio.IndexOf(":"); string s_mul = right_ratio.Substring(0, in_dex); string s_div = right_ratio.Substring(in_dex + 1); idiv = Convert.ToDecimal(s_div); imul = Convert.ToDecimal(s_mul); } switch (loancolltype_code) { case "02": String sql2 = @"select mbucfprename.prename_desc, mbmembmaster.memb_name, mbmembmaster.memb_surname, mbmembmaster.member_no, shsharemaster.* from shsharemaster,mbmembmaster,mbucfprename where mbmembmaster.member_no ={0} and mbmembmaster.member_no=shsharemaster.member_no and mbmembmaster.prename_code = mbucfprename.prename_code"; sql2 = WebUtil.SQLFormat(sql2, memb_no); Sdt result2 = WebUtil.QuerySdt(sql2); while (result2.Next()) { dsRightchoose.InsertLastRow(); int row = dsRightchoose.RowCount - 1; dsRightchoose.DATA[row].loancolltype_code = loancolltype_code; dsRightchoose.DATA[row].loancolltype_desc = loancolltype_desc; dsRightchoose.DATA[row].collbal_amt = result2.GetDecimal("sharestk_amt") * 10;//sharestk_amt dsRightchoose.DATA[row].collbase_amt = result2.GetDecimal("sharestk_amt") * 10;//sharestk_amt dsRightchoose.DATA[row].description = "ทุนเรือนหุ้น " + result2.GetString("prename_desc") + result2.GetString("memb_name") + " " + result2.GetString("memb_surname"); dsRightchoose.DATA[row].ref_collno = memb_no; dsRightchoose.DATA[row].right_type = right_type; dsRightchoose.DATA[row].right_format = right_format_display; dsRightchoose.DATA[row].idiv = idiv; dsRightchoose.DATA[row].imul = imul; } break; case "03": String sql3 = @"select * from dpdeptmaster where member_no = {0} and deptclose_status = 0 order by depttype_code "; sql3 = WebUtil.SQLFormat(sql3, memb_no); Sdt result3 = WebUtil.QuerySdt(sql3); while (result3.Next()) { dsRightchoose.InsertLastRow(); int row = dsRightchoose.RowCount - 1; dsRightchoose.DATA[row].loancolltype_code = loancolltype_code; dsRightchoose.DATA[row].loancolltype_desc = loancolltype_desc; dsRightchoose.DATA[row].ref_collno = result3.GetString("deptaccount_no"); dsRightchoose.DATA[row].collbal_amt = result3.GetDecimal("withdrawable_amt");//prncbal dsRightchoose.DATA[row].collbase_amt = result3.GetDecimal("withdrawable_amt");//prncbal dsRightchoose.DATA[row].description = result3.GetString("deptaccount_name"); dsRightchoose.DATA[row].right_type = right_type; dsRightchoose.DATA[row].right_format = right_format_display; dsRightchoose.DATA[row].idiv = idiv; dsRightchoose.DATA[row].imul = imul; dsRightchoose.DATA[row].dept_type = result3.GetString("depttype_code"); } break; case "04": String sql4 = @"select lncollmaster.* , lnucfcollmasttype.collmasttype_desc from lncollmastmemco,lncollmaster ,lnucfcollmasttype where lncollmastmemco.memco_no = {0} and lncollmaster.collmasttype_code = {1} and lncollmastmemco.collmast_no=lncollmaster.collmast_no and lnucfcollmasttype.collmasttype_code = lncollmaster.collmasttype_code"; sql4 = WebUtil.SQLFormat(sql4, memb_no, collmasttype_code); Sdt result4 = WebUtil.QuerySdt(sql4); while (result4.Next()) { dsRightchoose.InsertLastRow(); int row = dsRightchoose.RowCount - 1; dsRightchoose.DATA[row].loancolltype_code = loancolltype_code; dsRightchoose.DATA[row].loancolltype_desc = result4.GetString("collmasttype_desc"); dsRightchoose.DATA[row].ref_collno = result4.GetString("collmast_no"); dsRightchoose.DATA[row].collbal_amt = result4.GetDecimal("mortgage_price"); dsRightchoose.DATA[row].collbase_amt = result4.GetDecimal("mortgage_price"); dsRightchoose.DATA[row].description = result4.GetString("collmast_refno"); dsRightchoose.DATA[row].right_type = right_type; dsRightchoose.DATA[row].right_format = right_format_display; dsRightchoose.DATA[row].idiv = idiv; dsRightchoose.DATA[row].imul = imul; } break; } } } catch { } } public void Setcollbalancebegin() { String sql = @"select loancolltype_code, ref_collno, round( sum( collused_amt ),2) as collused_amt from ( select lrc.loancolltype_code as loancolltype_code, lrc.ref_collno as ref_collno, ( ( ( lr.loanrequest_amt ) * lrc.collactive_percent ) / lrc.collbase_percent ) as collused_amt from lnreqloan lr, lnreqloancoll lrc where ( lr.coop_id = lrc.coop_id ) and ( lr.loanrequest_docno = lrc.loanrequest_docno ) and ( lr.loanrequest_status = 8 ) and ( lr.memcoop_id = {0} ) and ( lr.member_no = {1} ) union select lc.loancolltype_code as loancolltype_code, lc.ref_collno as ref_collno, ( ( ( lm.principal_balance + lm.withdrawable_amt ) * lc.collactive_percent ) / lc.collbase_percent ) as collused_amt from lncontmaster lm, lncontcoll lc where ( lm.coop_id = lc.coop_id ) and ( lm.loancontract_no = lc.loancontract_no ) and ( lm.contract_status > 0 ) and ( lc.loancolltype_code <> '01' ) and ( lm.memcoop_id = {0} ) and ( lm.member_no ={1}) ) group by loancolltype_code, ref_collno"; sql = WebUtil.SQLFormat(sql, state.SsCoopControl, Request["memb_no"].Trim()); Sdt result = WebUtil.QuerySdt(sql); while (result.Next()) { for (int i = 0; i < dsRightchoose.RowCount; i++) { decimal collbase_amt = dsRightchoose.DATA[i].collbase_amt; if (dsRightchoose.DATA[i].loancolltype_code == result.GetString("loancolltype_code") && dsRightchoose.DATA[i].ref_collno == result.GetString("ref_collno")) { if (dsRightchoose.DATA[i].right_type == 1) { dsRightchoose.DATA[i].collbal_amt = collbase_amt - result.GetDecimal("collused_amt"); } else { dsRightchoose.DATA[i].collbal_amt = collbase_amt; } break; } } } SetPermissamt(); } public void SetPermissamt() { for (int i = 0; i < dsRightchoose.RowCount; i++) { dsRightchoose.DATA[i].permiss_amt = (dsRightchoose.DATA[i].collbal_amt * dsRightchoose.DATA[i].imul) / dsRightchoose.DATA[i].idiv; } } } }