using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using DataLibrary; using Sybase.DataWindow; namespace GcoopServiceCs { public class InsuranceService { private String connectionString; private pbservice.str_progress progress; public InsuranceService(String connectionString) { this.connectionString = connectionString; } // doy init. ใบสมัคร /// /// การ Init ค่าให้ DataWindow 2 ตัว คือ DwMain และ DwLoan
/// 1. สร้าง DataStore ตั้งชื่อว่า dwMain นำ XML จาก argument มา import ใส่
/// 2. ไป select ข้อมูลจากทะเบียนสมาชิกใส่ Sdt แล้วนำค่าต่างๆ ไปยิงใส่ dwMain
/// 3. ไป select ข้อมูลหุ้นแล้วยิงใส่ dwMain
/// 4. สร้าง DataStore สำหรับข้อมูลเงินกู้ dwLoan เพื่อหายอด sum ของเงินกู้ และ export xml เพื่อส่งไปให้หน้า UI
/// 5. เมื่อยิงค่าตั้งต้นของ dwMain ครบแล้วให้ export xml ของ dwMain ส่งไปให้หน้า UI ///
/// pbl แบบ fullpath /// xml จาก DwMain /// คืนค่า Array String รูปแบบ XML 2 ตัวคือ DwMain(d_as_insureqnew) และ DwLoan(d_as_loandetail) public String[] InitInsuRequestNew(String pbl, String xmlInsuRequest) { String[] resu = new String[2]; resu[0] = ""; resu[1] = ""; Sta ta = new Sta(connectionString); try { //1. สร้าง DataStore ตั้งชื่อว่า dwMain นำ XML จาก argument มา import ใส่ DataStore dwMain = new DataStore(); dwMain.LibraryList = pbl; dwMain.DataWindowObject = "d_as_insureqnew"; dwMain.Reset(); dwMain.ImportString(xmlInsuRequest, FileSaveAsType.Xml); String memberNo = dwMain.GetItemString(1, "member_no"); //2. ไป select ข้อมูลจากทะเบียนสมาชิกใส่ Sdt แล้วนำค่าต่างๆ ไปยิงใส่ dwMain String sql = @" SELECT MBMEMBMASTER.MEMBER_NO, MBMEMBMASTER.MEMB_NAME, MBMEMBMASTER.MEMB_SURNAME, MBMEMBMASTER.MEMBGROUP_CODE, MBUCFPRENAME.PRENAME_SHORT, MBUCFMEMBGROUP.MEMBGROUP_DESC, MBMEMBMASTER.BIRTH_DATE, MBMEMBMASTER.MEMBER_DATE, MBMEMBMASTER.card_person FROM MBMEMBMASTER, MBUCFMEMBGROUP, MBUCFPRENAME WHERE ( MBUCFMEMBGROUP.MEMBGROUP_CODE = MBMEMBMASTER.MEMBGROUP_CODE ) and ( MBMEMBMASTER.PRENAME_CODE = MBUCFPRENAME.PRENAME_CODE ) and ( ( MBMEMBMASTER.MEMBER_NO = '" + memberNo + "' ) )"; Sdt dt = ta.Query(sql); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) dwMain.SetItemString(1, "full_name", dt.GetString("PRENAME_SHORT") + dt.GetString("memb_name") + " " + dt.GetString("memb_surname")); dwMain.SetItemString(1, "membgroup_code", dt.GetString("MEMBGROUP_CODE")); dwMain.SetItemDateTime(1, "birth_date", dt.GetDate("birth_date")); dwMain.SetItemString(1, "person_card", dt.GetString("card_person")); int year = DateTime.Today.Year - dt.GetDate("birth_date").Year; try { //3. ไป select ข้อมูลหุ้นแล้วยิงใส่ dwMain String sqlShare = @" select sum( shsharemaster.sharestk_amt * shsharetype.share_value ) as summy from shsharemaster, shsharetype where ( shsharetype.sharetype_code = shsharemaster.sharetype_code ) and ( ( shsharemaster.member_no = '" + memberNo + "' ) )"; Sdt dtSumShare = ta.Query(sqlShare); if (dtSumShare.Next()) { //3.1 ยิงค่าใส่ dwMain dwMain.SetItemDecimal(1, "share_amt", dtSumShare.GetDecimal(0)); } else throw new Exception(); } catch { dwMain.SetItemDecimal(1, "share_amt", 0m); } try { //4. สร้าง DataStore สำหรับข้อมูลเงินกู้ dwLoan เพื่อหายอด sum ของเงินกู้ และ export xml เพื่อส่งไปให้หน้า UI DataStore dwLoan = new DataStore(pbl, "d_as_loandetail"); DwTrans sqlca = new DwTrans(connectionString); sqlca.Connect(); try { dwLoan.SetTransaction(sqlca); dwLoan.Retrieve(memberNo); if (dwLoan.RowCount > 0) { //4.1 หายอด sum เพื่อยิงใส่ dwMain decimal loanAmt = Convert.ToDecimal(dwLoan.Describe("evaluate( 'sum( principal_balance for all )', " + dwLoan.RowCount + " )")); dwMain.SetItemDecimal(1, "loan_amt", loanAmt); //4.2 export xml ใส่ใน array ช่อง 1 เพื่อส่งกลับให้ UI resu[1] = dwLoan.Describe("DataWindow.Data.XML"); } else throw new Exception(); } catch (Exception exLoan) { sqlca.Disconnect(); throw exLoan; } sqlca.Disconnect(); } catch { dwMain.SetItemDecimal(1, "loan_amt", 0m); resu[1] = ""; } //5. เมื่อยิงค่าตั้งต้นของ dwMain ครบแล้วให้ export xml ของ dwMain ส่งไปให้หน้า UI resu[0] = dwMain.Describe("DataWindow.Data.XML"); ta.Close(); } else { throw new Exception("ไม่มีสมาชิก " + memberNo + " อยู่ในระบบ"); } } catch (Exception ex) { try { ta.Close(); } catch { } throw ex; } return resu; } // doy save. ใบสมัคร public int SaveInsuRequestNew(String pbl, DateTime workDate, String xmlInsuRequest) { Sta ta = new Sta(connectionString); try { ta.Transection(); DataStore dwMain = new DataStore(pbl, "d_as_insureqnew"); dwMain.ImportString(xmlInsuRequest, FileSaveAsType.Xml); string docNo = ""; docNo = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSAPPLDOCNO, workDate.Year + 543, ta); dwMain.SetItemString(1, "insreqdoc_no", docNo); String sqlInsert = new DwHandle(dwMain).SqlInsertSyntax("INSREQNEW", 1); String sqlUpdate = new DwHandle(dwMain).SqlUpdateSyntax("INSREQNEW", 1); ta.Exe(sqlInsert); ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } // a save.อนุมัติสมัครประกัน public int SaveAppinsnew(String member_no) { Sta ta = new Sta(connectionString); try { ta.Transection(); String sqlStr, instype_code, level_code, insgroupdoc_no, remark, insreqdoc_no, kpmembno, marrige_name, insgroupno_ref, person_card; DateTime insgroup_date, insreq_date, inswd_date, resign_date, process_date, mbdead_date, senddoc_date, compaccept_date, startsafe_date, endsafe_date; Decimal inscost_blance, insperod_payment, insstk_blance, last_period, insmemb_status, last_stm_no, inspayment_arrear, inspayment_status, loan_amt, share_amt, misspay_amt, afine_blance, loanreq_amt, first_period, inskpothers_status, insmemb_type, company_no, periodpay_amt, inspayment_type, insreturn_amt, inspayment_amt, insgroup_id; Sdt dt1 = new Sdt(); Sdt dt2 = new Sdt(); sqlStr = @" SELECT INSREQDOC_NO, MEMBER_NO, MEMBGROUP_CODE, INREQ_DATE, INSAPROVE_DATE, INSREQCOST_AMT, INSAPCOST_AMT, EX_STATUS1, EX_STATUS2, EX_STATUS3, EX_STATUS4, LOAN_AMT, SHARE_AMT, ENTRY_ID, ENTRY_DATE, INSREQ_STATUS, INSGROUPDOC_NO, APPROVE_ID, INSTYPE_CODE, INSPERIOD_PAYMENT, COOPBRANCH_ID, BIRTH_DATE, MEMBER_DATE, AGE, INSLEVEL_CODE, LOANREQ_AMT, MARRIGE_NAME, INSGROUPNO_REF, INSMEMB_TYPE, PERSON_CARD, INSPAYMENT_ARREAR, INSPAYMENT_AMT FROM INSREQNEW WHERE MEMBER_NO = '" + member_no + "' "; dt1 = ta.Query(sqlStr); dt1.Next(); try { insreqdoc_no = dt1.GetString("INSREQDOC_NO"); } catch { insreqdoc_no = "0000000"; } insgroupdoc_no = member_no;//dt1.GetString("INSGROUPDOC_NO"); try { instype_code = dt1.GetString("INSTYPE_CODE"); } catch { instype_code = "01"; }; try { level_code = dt1.GetString("INSLEVEL_CODE"); } catch { level_code = ""; } try { person_card = dt1.GetString("PERSON_CARD"); } catch { person_card = ""; } try { inscost_blance = dt1.GetDecimal("INSREQCOST_AMT"); } catch { inscost_blance = 0; } try { loan_amt = dt1.GetDecimal("LOAN_AMT"); } catch { loan_amt = 0; } try { share_amt = dt1.GetDecimal("SHARE_AMT"); } catch { share_amt = 0; } try { loanreq_amt = dt1.GetDecimal("LOANREQ_AMT"); } catch { loanreq_amt = 0; } try { inspayment_arrear = dt1.GetDecimal("INSPAYMENT_ARREAR"); } catch { inspayment_arrear = 0; } try { inspayment_amt = dt1.GetDecimal("INSPAYMENT_AMT"); } catch { inspayment_amt = 0; } try { periodpay_amt = dt1.GetDecimal("INSPERIOD_PAYMENT"); } catch { periodpay_amt = 0; } try { insreq_date = dt1.GetDate("INREQ_DATE"); } catch { insreq_date = DateTime.Now; } try { marrige_name = dt1.GetString("MARRIGE_NAME"); } catch { marrige_name = ""; } try { insmemb_type = dt1.GetDecimal("INSMEMB_TYPE"); } catch { insmemb_type = 1; } try { insgroup_date = dt1.GetDate("INSAPROVE_DATE"); } catch { insgroup_date = DateTime.Now; } sqlStr = "select max(insgroup_id)as insgroup_id from insgroupmaster"; dt2 = ta.Query(sqlStr); dt2.Next(); insgroup_id = dt2.GetDecimal("insgroup_id") + 1; sqlStr = @"insert into insgroupmaster (member_no, insreqdoc_no, insgroupdoc_no, instype_code, level_code , person_card , inscost_blance , loan_amt , share_amt , loanreq_amt, inspayment_arrear , inspayment_amt , periodpay_amt , insreq_date , marrige_name ,insmemb_type, insgroup_date ,insgroup_id) values( '" + member_no + @"', '" + insreqdoc_no + @"', '" + insgroupdoc_no + @"', '" + instype_code + @"', '" + level_code + @"', '" + person_card + @"', " + inscost_blance + @", " + loan_amt + @", " + share_amt + @", " + loanreq_amt + @", " + inspayment_arrear + @", " + inspayment_amt + @", " + periodpay_amt + @", to_date('" + insreq_date.ToString("dd/MM/yyyy") + @"', 'dd/mm/yyyy'), '" + marrige_name + @"', " + insmemb_type + @", to_date('" + insgroup_date.ToString("dd/MM/yyyy") + @"', 'dd/mm/yyyy'), " + insgroup_id + @")"; // sqlStr = @" INSERT INTO INSGROUPMASTER // ( MEMBER_NO, INSTYPE_CODE, LEVEL_CODE, INSGROUPDOC_NO, INSGROUP_DATE, INSREQ_DATE, INSWD_DATE, INSCOST_BLANCE, INSPEROD_PAYMENT, INSSTK_BLANCE, // LAST_PERIOD, INSMEMB_STATUS, RESIGN_DATE, LAST_STM_NO, INSPAYMENT_ARREAR, INSPAYMENT_STATUS, LOAN_AMT, SHARE_AMT, REMARK, PROCESS_DATE, // MISSPAY_AMT, INSREQDOC_NO, MBDEAD_DATE, SENDDOC_DATE, COMPACCEPT_DATE, AFINE_BLANCE, LOANREQ_AMT, FIRST_PERIOD, STARTSAFE_DATE, ENDSAFE_DATE, // INSKPOTHERS_STATUS, KPMEMBNO, MARRIGE_NAME, INSMEMB_TYPE, INSGROUPNO_REF, PERSON_CARD, COMPANY_NO, PERIODPAY_AMT, INSPAYMENT_TYPE, INSRETURN_AMT, // INSPAYMENT_AMT, INSGROUP_ID ) // VALUES ( 'member_no', 'instype_code', 'level_code', 'insgroupdoc_no', insgroup_date, insreq_date, inswd_date, // inscost_blance, insperod_payment, insstk_blance, last_period, insmemb_status, resign_date, last_stm_no, // inspayment_arrear, inspayment_status, loan_amt, share_amt,'remark', process_date, // misspay_amt, 'insreqdoc_no', mbdead_date, senddoc_date, compaccept_date, // afine_blance, // loanreq_amt, // first_period, // startsafe_date, //endsafe_date, // inskpothers_status, // 'kpmembno', // 'marrige_name', // insmemb_type, // 'insgroupno_ref', // 'person_card', // company_no, // periodpay_amt, // inspayment_type, //insreturn_amt, // inspayment_amt, // insgroup_id ) "; ta.Exe(sqlStr); ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } // Wu Save.ใบสมัคร และ แก้ไขข้อมูลประกัน public int SaveInsDetail(String pbl, String xmlInsMaster, String xmlInsStmt, String xmlInsGain, String new_status, String rowModify, Decimal oldInsPayment) { String sqlText; int li_row, li_rowcount; Sta ta = new Sta(connectionString); try { ta.Transection(); //Import DataWindow to DataStore DataStore dw_insmaster = new DataStore(pbl, "d_sk_prakunmaster"); dw_insmaster.ImportString(xmlInsMaster, FileSaveAsType.Xml); DataStore dw_insstmt = new DataStore(pbl, "d_sk_prakunstmt"); dw_insstmt.ImportString(xmlInsStmt, FileSaveAsType.Xml); DataStore dw_insgain = new DataStore(pbl, "d_sk_prakungain"); dw_insgain.ImportString(xmlInsGain, FileSaveAsType.Xml); //check save '0'=Update , '1'=Insert if (new_status == "0") { //---- UPDATE --------------- sqlText = new DwHandle(dw_insmaster).SqlUpdateSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); Decimal ldc_insgpid = dw_insmaster.GetItemDecimal(1, "insgroup_id"); // insgroupstatement :'true'= RowChange if (getBitVar(rowModify, 1)) { sqlText = "DELETE FROM INSGROUPSTATEMENT WHERE INSGROUP_ID = " + ldc_insgpid.ToString().Trim(); ta.Exe(sqlText); li_rowcount = dw_insstmt.RowCount; for (li_row = 1; li_row <= li_rowcount; li_row++) { sqlText = new DwHandle(dw_insstmt).SqlInsertSyntax("INSGROUPSTATEMENT", li_row); ta.Exe(sqlText); } } else //getBitVar(rowModify, 1) == false { li_rowcount = dw_insstmt.RowCount; for (li_row = 1; li_row <= li_rowcount; li_row++) { sqlText = new DwHandle(dw_insstmt).SqlUpdateSyntax("INSGROUPSTATEMENT", 1); ta.Exe(sqlText); } } // insgroupgain :'true'= RowChange if (getBitVar(rowModify, 2)) { sqlText = "DELETE FROM INSGROUPGAIN WHERE INSGROUP_ID = " + ldc_insgpid.ToString().Trim(); ta.Exe(sqlText); li_rowcount = dw_insgain.RowCount; for (li_row = 1; li_row <= li_rowcount; li_row++) { sqlText = new DwHandle(dw_insgain).SqlInsertSyntax("INSGROUPGAIN", li_row); ta.Exe(sqlText); } } else //getBitVar(rowModify, 2) == false { li_rowcount = dw_insgain.RowCount; for (li_row = 1; li_row <= li_rowcount; li_row++) { sqlText = new DwHandle(dw_insgain).SqlUpdateSyntax("INSGROUPGAIN", 1); ta.Exe(sqlText); } } // insreqchggroup :'true' = Insert if (getBitVar(rowModify, 3)) { //---- INSERT INSREQCHGGROUP----- Sdt dt; String ls_docno, ls_memberno, ls_instype, ls_olevel, ls_nlevel, ls_entryid, ls_insdoc; Decimal ldc_oBlance, ldc_nBlance, ldc_opay, ldc_npay; DateTime ldtm_operate, ldtm_safe; CultureInfo lci_machine = CultureInfo.CurrentCulture; ldtm_operate = getDateTimeCulture(DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year, lci_machine); try { ldtm_safe = dw_insmaster.GetItemDateTime(1, "startsafe_date"); } catch { ldtm_safe = Convert.ToDateTime("01/01/1900"); } ls_docno = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSCHGDOCNO, DateTime.Today.Year + 543, ta); ls_memberno = dw_insmaster.GetItemString(1, "member_no").Trim(); ls_instype = dw_insmaster.GetItemString(1, "instype_code").Trim(); try { ls_insdoc = dw_insmaster.GetItemString(1, "insgroupdoc_no").Trim(); } catch { ls_insdoc = "-"; } try { ls_nlevel = dw_insmaster.GetItemString(1, "level_code").Trim(); } catch { ls_nlevel = ""; } try { ldc_nBlance = dw_insmaster.GetItemDecimal(1, "inscost_blance"); } catch { ldc_nBlance = 0; } ldc_opay = oldInsPayment; try { ldc_npay = dw_insmaster.GetItemDecimal(1, "inspayment_amt"); } catch { ldc_npay = 0; } sqlText = "SELECT LEVEL_CODE,MAXINSCOST_AMT FROM INSLEVELCOST WHERE INSPERIOD_PAYMENT = " + ldc_opay.ToString().Trim() + " AND INSTYPE_CODE = '" + ls_instype + "'"; dt = ta.Query(sqlText); //if (dt.Rows.Count > 0) if (dt.Next()) { ls_olevel = dt.GetString("LEVEL_CODE"); ldc_oBlance = dt.GetDecimal("MAXINSCOST_AMT"); } else { ls_olevel = ""; ldc_oBlance = 0; } ls_entryid = "admin"; sqlText = "INSERT INTO INSREQCHGGROUP " + "( INSREQCHGDOC_NO, MEMBER_NO, INSTYPE_CODE, OPERATE_DATE, " + "OLD_LEVELGROUP, NEW_LEVELGROUP, ENTRY_DATE, ENTRY_ID, " + "COOPBRANCH_ID, INSCOST_OLD, INSCOST_NEW, INSGROUPDOC_NO, " + "OLD_PERIODPAY, NEW_PERIODPAY, APPROVE_PROMTLY, INSREQCHG_STATUS, " + "OLDSAFE_DATE, NEWSAFE_DATE, APPROVE_DATE, APPLTYPE_CODE, INSGROUP_ID ) VALUES (" + "'" + ls_docno + "','" + ls_memberno + "','" + ls_instype + "'," + "to_date('" + ldtm_operate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "'" + ls_olevel + "','" + ls_nlevel + "',sysdate,'" + ls_entryid + "'," + "null," + ldc_oBlance.ToString().Trim() + "," + ldc_nBlance.ToString().Trim() + "," + "'" + ls_insdoc + "'," + ldc_opay.ToString().Trim() + "," + ldc_npay.ToString().Trim() + "," + "null,1,to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_operate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy'),'02'," + ldc_insgpid + ")"; ta.Exe(sqlText); } //--------------------------- } else //new_status == "1" (Insert) { //---- INSERT --------------- //-- INSREQNEW String ls_memberno, ls_instype, ls_level, ls_marriggeName, ls_insdoc, ls_personcard; String ls_entyrid, ls_docNo, ls_applcode; Decimal ldc_insreqcost, ldc_insmemb, ldc_inspayment, ldc_insgpid; DateTime ldtm_insdate, ldtm_birth, ldtm_receive, ldtm_safe;//, ldtm_effective; ls_memberno = dw_insmaster.GetItemString(1, "member_no").Trim(); CultureInfo lci_machine = CultureInfo.CurrentCulture; ldtm_insdate = dw_insmaster.GetItemDateTime(1, "insgroup_date"); ldtm_insdate = getDateTimeCulture(ldtm_insdate.Day, ldtm_insdate.Month, ldtm_insdate.Year, lci_machine); try { ldc_insreqcost = dw_insmaster.GetItemDecimal(1, "inscost_blance"); } catch { ldc_insreqcost = 0; } try { ls_insdoc = dw_insmaster.GetItemString(1, "insgroupdoc_no").Trim(); } catch { ls_insdoc = "-"; } try { ls_applcode = dw_insmaster.GetItemString(1, "appltype_code").Trim(); } catch { ls_applcode = ""; } ls_instype = dw_insmaster.GetItemString(1, "instype_code").Trim(); try { ldtm_birth = dw_insmaster.GetItemDateTime(1, "birth_date"); ldtm_birth = getDateTimeCulture(ldtm_birth.Day, ldtm_birth.Month, ldtm_birth.Year, lci_machine); } catch { ldtm_birth = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } try { ldtm_receive = dw_insmaster.GetItemDateTime(1, "receive_date"); ldtm_receive = getDateTimeCulture(ldtm_receive.Day, ldtm_receive.Month, ldtm_receive.Year, lci_machine); } catch { ldtm_receive = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } try { ldtm_safe = dw_insmaster.GetItemDateTime(1, "startsafe_date"); ldtm_safe = getDateTimeCulture(ldtm_safe.Day, ldtm_safe.Month, ldtm_safe.Year, lci_machine); } catch { ldtm_safe = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } // สมัครใจไม่มี 180 วัน //try //{ // ldtm_effective = dw_insmaster.GetItemDateTime(1, "effective_date"); //} //catch { ldtm_effective = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } try { ls_level = dw_insmaster.GetItemString(1, "level_code").Trim(); } catch { ls_level = ""; } ls_marriggeName = dw_insmaster.GetItemString(1, "marrige_name").Trim(); ldc_insmemb = dw_insmaster.GetItemDecimal(1, "insmemb_type"); try { ls_personcard = dw_insmaster.GetItemString(1, "person_card").Trim(); } catch { ls_personcard = ""; } try { ldc_inspayment = dw_insmaster.GetItemDecimal(1, "inspayment_amt"); } catch { ldc_inspayment = 0; } ldc_insgpid = dw_insmaster.GetItemDecimal(1, "insgroup_id"); ls_docNo = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSAPPLDOCNO, DateTime.Today.Year + 543, ta); ls_entyrid = "admin"; sqlText = "INSERT INTO INSREQNEW " + "( INSREQDOC_NO, MEMBER_NO, INREQ_DATE, INSAPROVE_DATE, INSREQCOST_AMT, " + "INSAPCOST_AMT, EX_STATUS1, EX_STATUS2, EX_STATUS3, EX_STATUS4, ENTRY_ID, ENTRY_DATE, " + "INSREQ_STATUS, INSGROUPDOC_NO, APPROVE_ID, INSTYPE_CODE, INSPERIOD_PAYMENT, " + //"BIRTH_DATE, RECEIVE_DATE, SAFE_DATE, EFFECTIVE_DATE ,INSLEVEL_CODE, MARRIGE_NAME, " + "BIRTH_DATE, RECEIVE_DATE, SAFE_DATE ,INSLEVEL_CODE, MARRIGE_NAME, " + "INSGROUPNO_REF, INSMEMB_TYPE, PERSON_CARD, INSPAYMENT_AMT, APPLTYPE_CODE, INSGROUP_ID ) " + "VALUES ('" + ls_docNo + "','" + ls_memberno + "'," + "to_date('" + ldtm_insdate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_insdate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + ldc_insreqcost.ToString().Trim() + "," + ldc_insreqcost.ToString().Trim() + ",1,1,1,1," + "'" + ls_entyrid + "',sysdate,1,'" + ls_insdoc + "','" + ls_entyrid + "','" + ls_instype + "',null," + "to_date('" + ldtm_birth.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_receive.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + //"to_date('" + ldtm_effective.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "'" + ls_level + "','" + ls_marriggeName + "',null," + ldc_insmemb.ToString().Trim() + ",'" + ls_personcard + "'," + ldc_inspayment.ToString().Trim() + ",'" + ls_applcode + "'," + ldc_insgpid.ToString().Trim() + ")"; ta.Exe(sqlText); //-- INSGROUPMASTER sqlText = new DwHandle(dw_insmaster).SqlInsertSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); li_rowcount = dw_insgain.RowCount; if (getBitVar(rowModify, 2)) { for (li_row = 1; li_row <= li_rowcount; li_row++) { sqlText = new DwHandle(dw_insgain).SqlInsertSyntax("INSGROUPGAIN", li_row); ta.Exe(sqlText); } } //--------------------------- } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } public int SaveInsHealth(String pbl, String xmlInsMaster, String xmlInsStmt, String new_status, String rowModify, Decimal oldInsPayment) { String sqlText; int li_row, li_rowcount; Sta ta = new Sta(connectionString); try { ta.Transection(); //Import DataWindow to DataStore DataStore dw_insmaster = new DataStore(pbl, "d_health_prakunmaster"); dw_insmaster.ImportString(xmlInsMaster, FileSaveAsType.Xml); DataStore dw_insstmt = new DataStore(pbl, "d_health_prakunstmt"); dw_insstmt.ImportString(xmlInsStmt, FileSaveAsType.Xml); //DataStore dw_insgain = new DataStore(pbl, "d_sk_prakungain"); //dw_insgain.ImportString(xmlInsGain, FileSaveAsType.Xml); //check save '0'=Update , '1'=Insert if (new_status == "0") { //---- UPDATE --------------- sqlText = new DwHandle(dw_insmaster).SqlUpdateSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); Decimal ldc_insgpid = dw_insmaster.GetItemDecimal(1, "insgroup_id"); // insgroupstatement :'true'= RowChange if (getBitVar(rowModify, 1)) { sqlText = "DELETE FROM INSGROUPSTATEMENT WHERE INSGROUP_ID = " + ldc_insgpid.ToString().Trim(); ta.Exe(sqlText); li_rowcount = dw_insstmt.RowCount; for (li_row = 1; li_row <= li_rowcount; li_row++) { sqlText = new DwHandle(dw_insstmt).SqlInsertSyntax("INSGROUPSTATEMENT", li_row); ta.Exe(sqlText); } } else //getBitVar(rowModify, 1) == false { li_rowcount = dw_insstmt.RowCount; for (li_row = 1; li_row <= li_rowcount; li_row++) { sqlText = new DwHandle(dw_insstmt).SqlUpdateSyntax("INSGROUPSTATEMENT", 1); ta.Exe(sqlText); } } // insgroupgain :'true'= RowChange //if (getBitVar(rowModify, 2)) //{ // sqlText = "DELETE FROM INSGROUPGAIN WHERE INSGROUP_ID = " + ldc_insgpid.ToString().Trim(); // ta.Exe(sqlText); // li_rowcount = dw_insgain.RowCount; // for (li_row = 1; li_row <= li_rowcount; li_row++) // { // sqlText = new DwHandle(dw_insgain).SqlInsertSyntax("INSGROUPGAIN", li_row); // ta.Exe(sqlText); // } //} //else //getBitVar(rowModify, 2) == false //{ // li_rowcount = dw_insgain.RowCount; // for (li_row = 1; li_row <= li_rowcount; li_row++) // { // sqlText = new DwHandle(dw_insgain).SqlUpdateSyntax("INSGROUPGAIN", 1); // ta.Exe(sqlText); // } //} // insreqchggroup :'true' = Insert if (getBitVar(rowModify, 3)) { //---- INSERT INSREQCHGGROUP----- //Sdt dt; //String ls_docno, ls_memberno, ls_instype, ls_olevel, ls_nlevel, ls_entryid, ls_insdoc; //Decimal ldc_oBlance, ldc_nBlance, ldc_opay, ldc_npay; //DateTime ldtm_operate, ldtm_safe; //CultureInfo lci_machine = CultureInfo.CurrentCulture; //ldtm_operate = getDateTimeCulture(DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year, lci_machine); //try //{ // ldtm_safe = dw_insmaster.GetItemDateTime(1, "startsafe_date"); //} //catch { ldtm_safe = Convert.ToDateTime("01/01/1900"); } //ls_docno = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSCHGDOCNO, DateTime.Today.Year + 543, ta); //ls_memberno = dw_insmaster.GetItemString(1, "member_no").Trim(); //ls_instype = dw_insmaster.GetItemString(1, "instype_code").Trim(); //try //{ // ls_insdoc = dw_insmaster.GetItemString(1, "insgroupdoc_no").Trim(); //} //catch { ls_insdoc = "-"; } //try //{ // ls_nlevel = dw_insmaster.GetItemString(1, "level_code").Trim(); //} //catch { ls_nlevel = ""; } //try //{ // ldc_nBlance = dw_insmaster.GetItemDecimal(1, "inscost_blance"); //} //catch { ldc_nBlance = 0; } //ldc_opay = oldInsPayment; //try //{ // ldc_npay = dw_insmaster.GetItemDecimal(1, "inspayment_amt"); //} //catch { ldc_npay = 0; } //sqlText = "SELECT LEVEL_CODE,MAXINSCOST_AMT FROM INSLEVELCOST WHERE INSPERIOD_PAYMENT = " + ldc_opay.ToString().Trim() + // " AND INSTYPE_CODE = '" + ls_instype + "'"; //dt = ta.Query(sqlText); ////if (dt.Rows.Count > 0) //if (dt.Next()) //{ // ls_olevel = dt.GetString("LEVEL_CODE"); // ldc_oBlance = dt.GetDecimal("MAXINSCOST_AMT"); //} //else //{ // ls_olevel = ""; // ldc_oBlance = 0; //} //ls_entryid = "admin"; //sqlText = "INSERT INTO INSREQCHGGROUP " + // "( INSREQCHGDOC_NO, MEMBER_NO, INSTYPE_CODE, OPERATE_DATE, " + // "OLD_LEVELGROUP, NEW_LEVELGROUP, ENTRY_DATE, ENTRY_ID, " + // "COOPBRANCH_ID, INSCOST_OLD, INSCOST_NEW, INSGROUPDOC_NO, " + // "OLD_PERIODPAY, NEW_PERIODPAY, APPROVE_PROMTLY, INSREQCHG_STATUS, " + // "OLDSAFE_DATE, NEWSAFE_DATE, APPROVE_DATE, APPLTYPE_CODE, INSGROUP_ID ) VALUES (" + // "'" + ls_docno + "','" + ls_memberno + "','" + ls_instype + "'," + // "to_date('" + ldtm_operate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + // "'" + ls_olevel + "','" + ls_nlevel + "',sysdate,'" + ls_entryid + "'," + // "null," + ldc_oBlance.ToString().Trim() + "," + ldc_nBlance.ToString().Trim() + "," + // "'" + ls_insdoc + "'," + ldc_opay.ToString().Trim() + "," + ldc_npay.ToString().Trim() + "," + // "null,1,to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + // "to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + // "to_date('" + ldtm_operate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy'),'02'," + // ldc_insgpid + ")"; //ta.Exe(sqlText); } //--------------------------- } else //new_status == "1" (Insert) { //---- INSERT --------------- //-- INSREQNEW String ls_memberno, ls_instype, ls_level, ls_marriggeName, ls_insdoc, ls_personcard; String ls_entyrid, ls_docNo, ls_applcode; Decimal ldc_insreqcost, ldc_insmemb, ldc_inspayment, ldc_insgpid; DateTime ldtm_insdate, ldtm_birth, ldtm_receive, ldtm_safe;//, ldtm_effective; ls_memberno = dw_insmaster.GetItemString(1, "member_no").Trim(); CultureInfo lci_machine = CultureInfo.CurrentCulture; ldtm_insdate = dw_insmaster.GetItemDateTime(1, "insgroup_date"); ldtm_insdate = getDateTimeCulture(ldtm_insdate.Day, ldtm_insdate.Month, ldtm_insdate.Year, lci_machine); try { ldc_insreqcost = dw_insmaster.GetItemDecimal(1, "inscost_blance"); } catch { ldc_insreqcost = 0; } try { ls_insdoc = dw_insmaster.GetItemString(1, "insgroupdoc_no").Trim(); } catch { ls_insdoc = "-"; } try { ls_applcode = dw_insmaster.GetItemString(1, "appltype_code").Trim(); } catch { ls_applcode = ""; } ls_instype = dw_insmaster.GetItemString(1, "instype_code").Trim(); try { ldtm_birth = dw_insmaster.GetItemDateTime(1, "birth_date"); ldtm_birth = getDateTimeCulture(ldtm_birth.Day, ldtm_birth.Month, ldtm_birth.Year, lci_machine); } catch { ldtm_birth = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } try { ldtm_receive = dw_insmaster.GetItemDateTime(1, "receive_date"); ldtm_receive = getDateTimeCulture(ldtm_receive.Day, ldtm_receive.Month, ldtm_receive.Year, lci_machine); } catch { ldtm_receive = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } try { ldtm_safe = dw_insmaster.GetItemDateTime(1, "startsafe_date"); ldtm_safe = getDateTimeCulture(ldtm_safe.Day, ldtm_safe.Month, ldtm_safe.Year, lci_machine); } catch { ldtm_safe = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } // สมัครใจไม่มี 180 วัน //try //{ // ldtm_effective = dw_insmaster.GetItemDateTime(1, "effective_date"); //} //catch { ldtm_effective = new DateTime(); }//Convert.ToDateTime("01/01/1900"); } try { ls_level = dw_insmaster.GetItemString(1, "level_code").Trim(); } catch { ls_level = ""; } ls_marriggeName = dw_insmaster.GetItemString(1, "marrige_name").Trim(); ldc_insmemb = dw_insmaster.GetItemDecimal(1, "insmemb_type"); try { ls_personcard = dw_insmaster.GetItemString(1, "person_card").Trim(); } catch { ls_personcard = ""; } try { ldc_inspayment = dw_insmaster.GetItemDecimal(1, "inspayment_amt"); } catch { ldc_inspayment = 0; } ldc_insgpid = dw_insmaster.GetItemDecimal(1, "insgroup_id"); ls_docNo = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSAPPLDOCNO, DateTime.Today.Year + 543, ta); ls_entyrid = "admin"; sqlText = "INSERT INTO INSREQNEW " + "( INSREQDOC_NO, MEMBER_NO, INREQ_DATE, INSAPROVE_DATE, INSREQCOST_AMT, " + "INSAPCOST_AMT, EX_STATUS1, EX_STATUS2, EX_STATUS3, EX_STATUS4, ENTRY_ID, ENTRY_DATE, " + "INSREQ_STATUS, INSGROUPDOC_NO, APPROVE_ID, INSTYPE_CODE, INSPERIOD_PAYMENT, " + //"BIRTH_DATE, RECEIVE_DATE, SAFE_DATE, EFFECTIVE_DATE ,INSLEVEL_CODE, MARRIGE_NAME, " + "BIRTH_DATE, RECEIVE_DATE, SAFE_DATE ,INSLEVEL_CODE, MARRIGE_NAME, " + "INSGROUPNO_REF, INSMEMB_TYPE, PERSON_CARD, INSPAYMENT_AMT, APPLTYPE_CODE, INSGROUP_ID ) " + "VALUES ('" + ls_docNo + "','" + ls_memberno + "'," + "to_date('" + ldtm_insdate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_insdate.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + ldc_insreqcost.ToString().Trim() + "," + ldc_insreqcost.ToString().Trim() + ",1,1,1,1," + "'" + ls_entyrid + "',sysdate,1,'" + ls_insdoc + "','" + ls_entyrid + "','" + ls_instype + "',null," + "to_date('" + ldtm_birth.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_receive.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + //"to_date('" + ldtm_effective.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "'" + ls_level + "','" + ls_marriggeName + "',null," + ldc_insmemb.ToString().Trim() + ",'" + ls_personcard + "'," + ldc_inspayment.ToString().Trim() + ",'" + ls_applcode + "'," + ldc_insgpid.ToString().Trim() + ")"; ta.Exe(sqlText); //-- INSGROUPMASTER sqlText = new DwHandle(dw_insmaster).SqlInsertSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); //li_rowcount = dw_insgain.RowCount; //if (getBitVar(rowModify, 2)) //{ // for (li_row = 1; li_row <= li_rowcount; li_row++) // { // sqlText = new DwHandle(dw_insgain).SqlInsertSyntax("INSGROUPGAIN", li_row); // ta.Exe(sqlText); // } //} //--------------------------- } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } public int ForceIns(String pbl, String xmlInsLoan, String as_objectName, DateTime adtm_operate) { progress = new pbservice.str_progress(); String sqltext; Sdt dt; int li_row, li_rowcount; Decimal ldc_flag, ldc_ins, ldc_loanapp, ldc_loannorm, ldc_loanextra, ldc_insmemb, ldc_debt, ldc_insreqcost, ldc_inspayment, ldc_insgpid, ldc_loanamt, ldc_shareamt; String ls_memberno, ls_instype, ls_entryid, ls_insdoc, ls_pname, ls_name, ls_sname, ls_marriggename, ls_docno, ls_level, ls_personcard; DateTime ldtm_strcont, ldtm_birth, ldtm_safe; progress.status = 8; Sta ta = new Sta(connectionString); try { ta.Transection(); //Import DataWindow to DataStore DataStore dw_list = new DataStore(pbl, as_objectName); //DataStore dw_list = new DataStore(pbl, "d_ins_forcenew_data"); dw_list.ImportString(xmlInsLoan, FileSaveAsType.Xml); ls_entryid = "admin"; ls_insdoc = "-"; ls_instype = "01"; ldc_insmemb = 1; li_rowcount = dw_list.RowCount; progress.progress_max = li_rowcount; progress.subprogress_max = li_rowcount; for (li_row = 1; li_row <= li_rowcount; li_row++) { progress.progress_index = li_row; progress.subprogress_index = li_row; ldc_flag = dw_list.GetItemDecimal(li_row, "operate_flag"); if (ldc_flag == 1) { /// --- Get Data From DataWindow --------------------------- ls_memberno = dw_list.GetItemString(li_row, "member_no").Trim(); ldc_loanapp = dw_list.GetItemDecimal(li_row, "loanapprove_amt"); ldtm_strcont = dw_list.GetItemDateTime(li_row, "startcont_date"); //ldtm_strcont = adtm_operate; try { ldc_ins = dw_list.GetItemDecimal(li_row, "ins_amt"); } catch { ldc_ins = 0; } try { ldc_loannorm = dw_list.GetItemDecimal(li_row, "normloan_amt"); } catch { ldc_loannorm = 0; } try { ldc_loanextra = dw_list.GetItemDecimal(li_row, "extraloan_amt"); } catch { ldc_loanextra = 0; } //ldc_debt = ldc_loannorm + ldc_loanextra + ldc_loanapp; /// Get Loan Data------------------------------------ if (as_objectName == "d_ins_forcenew_data_extra") { ldc_loanamt = ldc_loannorm; } else { ldc_loanamt = ldc_loanapp; } ldc_shareamt = ldc_loanextra; /// Get Loan Data------------------------------------ try { ldc_debt = dw_list.GetItemDecimal(li_row, "debt_amt"); } catch { ldc_debt = 0; } try { ldtm_birth = dw_list.GetItemDateTime(li_row, "birth_date"); } catch { ldtm_birth = new DateTime(1900, 1, 1); } try { ls_personcard = dw_list.GetItemString(li_row, "card_person"); } catch { ls_personcard = ""; } try { ls_pname = dw_list.GetItemString(li_row, "prename_desc").Trim(); } catch { ls_pname = "นาย"; } try { ls_name = dw_list.GetItemString(li_row, "memb_name").Trim(); } catch { ls_name = " "; } try { ls_sname = dw_list.GetItemString(li_row, "memb_surname").Trim(); } catch { ls_sname = " "; } ls_marriggename = ls_pname + ls_name + " " + ls_sname; // Cover ldtm_safe = ldtm_strcont; sqltext = "SELECT MIN(MAXINSCOST_AMT) AS MAXINSCOST_AMT FROM INSLEVELCOST " + "WHERE INSTYPE_CODE = '" + ls_instype + "' " + "AND MAXINSCOST_AMT >= " + ldc_debt.ToString().Trim(); dt = ta.Query(sqltext); //1 //if (dt.Next()) //{ // ldc_insreqcost = dt.GetDecimal("MAXINSCOST_AMT"); // sqltext = "SELECT LEVEL_CODE,INSPERIOD_PAYMENT FROM INSLEVELCOST WHERE MAXINSCOST_AMT = " + // ldc_insreqcost.ToString().Trim(); // dt = ta.Query(sqltext); // if (dt.Next()) // { // ls_level = dt.GetString("LEVEL_CODE"); // ldc_inspayment = dt.GetDecimal("INSPERIOD_PAYMENT"); // } //} //2 dt.Next(); ldc_insreqcost = dt.GetDecimal("MAXINSCOST_AMT"); sqltext = "SELECT LEVEL_CODE,INSPERIOD_PAYMENT FROM INSLEVELCOST " + "WHERE INSTYPE_CODE = '" + ls_instype + "' " + "AND MAXINSCOST_AMT = " + ldc_insreqcost.ToString().Trim(); dt = ta.Query(sqltext); dt.Next(); ls_level = dt.GetString("LEVEL_CODE"); ldc_inspayment = dt.GetDecimal("INSPERIOD_PAYMENT"); /// -------------------------------------------------------- if (ldc_ins == 0) { sqltext = "SELECT MAX(INSGROUP_ID) AS INSGROUP_ID FROM INSGROUPMASTER"; dt = ta.Query(sqltext); dt.Next(); ldc_insgpid = dt.GetDecimal("INSGROUP_ID"); ldc_insgpid = ldc_insgpid + 1; ls_docno = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSAPPLDOCNO, ldtm_strcont.Year + 543, ta); sqltext = "INSERT INTO INSREQNEW " + "( INSREQDOC_NO, MEMBER_NO, INREQ_DATE, INSAPROVE_DATE, " + "INSREQCOST_AMT, INSAPCOST_AMT, EX_STATUS1, EX_STATUS2, EX_STATUS3, EX_STATUS4, " + "ENTRY_ID, ENTRY_DATE, INSREQ_STATUS, INSGROUPDOC_NO, APPROVE_ID, INSTYPE_CODE, " + "INSPERIOD_PAYMENT, BIRTH_DATE, INSLEVEL_CODE, MARRIGE_NAME, INSGROUPNO_REF, " + "INSMEMB_TYPE, PERSON_CARD, INSPAYMENT_AMT, APPLTYPE_CODE, INSGROUP_ID ) " + "VALUES ('" + ls_docno + "','" + ls_memberno + "'," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + ldc_insreqcost.ToString().Trim() + "," + ldc_insreqcost.ToString().Trim() + ",1,1,1,1," + "'" + ls_entryid + "',sysdate,1,'" + ls_insdoc + "','" + ls_entryid + "','" + ls_instype + "',null," + "to_date('" + ldtm_birth.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "'" + ls_level + "','" + ls_marriggename + "',null," + ldc_insmemb.ToString().Trim() + ",'" + ls_personcard + "'," + ldc_inspayment.ToString().Trim() + "," + "null," + ldc_insgpid.ToString().Trim() + ")"; ta.Exe(sqltext); sqltext = "INSERT INTO INSGROUPMASTER " + "( INSGROUP_ID, INSMEMBSEQ_NO, MEMBER_NO, INSTYPE_CODE, LEVEL_CODE, INSGROUPDOC_NO, " + "INSGROUP_DATE, INSREQ_DATE, INSCOST_BLANCE, INSPEROD_PAYMENT, INSMEMB_STATUS, " + "MARRIGE_NAME, INSMEMB_TYPE, INSPAYMENT_TYPE, INSPAYMENT_AMT, INSREQDOC_NO, " + "APPLTYPE_CODE, PERSON_CARD, LOAN_AMT, SHARE_AMT, " + "BIRTH_DATE, RECEIVE_DATE, EFFECTIVE_DATE, STARTSAFE_DATE) " + "VALUES (" + ldc_insgpid.ToString().Trim() + ",1,'" + ls_memberno + "','" + ls_instype + "','" + ls_level + "','-'," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + ldc_insreqcost.ToString().Trim() + "," + ldc_inspayment.ToString().Trim() + ",1,'" + ls_marriggename + "'," + ldc_insmemb.ToString().Trim() + ",1," + ldc_inspayment.ToString().Trim() + ",'" + ls_docno + "','03','" + ls_personcard + "'," + ldc_loanamt.ToString().Trim() + "," + ldc_shareamt.ToString().Trim() + "," + "to_date('" + ldtm_birth.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')" + ")"; ta.Exe(sqltext); } else { String ls_olevel; Decimal ldc_oBlance, ldc_opay; sqltext = "SELECT INSGROUP_ID, LEVEL_CODE, INSCOST_BLANCE, INSPAYMENT_AMT " + "FROM INSGROUPMASTER WHERE INSMEMB_TYPE = 1 AND MEMBER_NO = '" + ls_memberno + "' " + "AND INSTYPE_CODE = '" + ls_instype + "'"; dt = ta.Query(sqltext); dt.Next(); ldc_insgpid = dt.GetDecimal("INSGROUP_ID"); ldc_oBlance = dt.GetDecimal("INSCOST_BLANCE"); ldc_opay = dt.GetDecimal("INSPAYMENT_AMT"); ls_olevel = dt.GetString("LEVEL_CODE"); ls_docno = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSCHGDOCNO, ldtm_strcont.Year + 543, ta); sqltext = "INSERT INTO INSREQCHGGROUP " + "( INSREQCHGDOC_NO, MEMBER_NO, INSTYPE_CODE, OPERATE_DATE, " + "OLD_LEVELGROUP, NEW_LEVELGROUP, ENTRY_DATE, ENTRY_ID, " + "COOPBRANCH_ID, INSCOST_OLD, INSCOST_NEW, INSGROUPDOC_NO, " + "OLD_PERIODPAY, NEW_PERIODPAY, APPROVE_PROMTLY, INSREQCHG_STATUS, " + "OLDSAFE_DATE, NEWSAFE_DATE, APPROVE_DATE, INSGROUP_ID ) VALUES (" + "'" + ls_docno + "','" + ls_memberno + "','" + ls_instype + "'," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "'" + ls_olevel + "','" + ls_level + "',sysdate,'" + ls_entryid + "'," + "null," + ldc_oBlance.ToString().Trim() + "," + ldc_insreqcost.ToString().Trim() + "," + "'" + ls_insdoc + "'," + ldc_opay.ToString().Trim() + "," + ldc_inspayment.ToString().Trim() + "," + "null,1,to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_safe.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + ldtm_strcont.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + ldc_insgpid + ")"; ta.Exe(sqltext); sqltext = "UPDATE INSGROUPMASTER SET " + "LEVEL_CODE = '" + ls_level + "', " + "INSCOST_BLANCE = " + ldc_insreqcost.ToString().Trim() + ", " + "INSPAYMENT_AMT = " + ldc_inspayment.ToString().Trim() + ", " + "INSPEROD_PAYMENT = " + ldc_inspayment.ToString().Trim() + ", " + "LOAN_AMT = " + ldc_loanamt.ToString().Trim() + ", " + "SHARE_AMT = " + ldc_shareamt.ToString().Trim() + ", " + "APPLTYPE_CODE = '04' " + "WHERE INSGROUP_ID = " + ldc_insgpid.ToString().Trim(); ta.Exe(sqltext); } } } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } progress.status = -1; progress.error_text = ex.Message; progress.progress_text = ex.Message; throw ex; } return 1; } private Boolean getBitVar(String as_var, int ai_bit) { Boolean lb_return; int li_valueBit, li_var, li_temp; // ค่าที่จะหาหลักบิท li_var = Convert.ToInt32(as_var); // ค่าของหลักบิทที่จะหา li_valueBit = Convert.ToInt32(Square(2, ai_bit - 1)); li_temp = li_var / li_valueBit; li_var = li_temp; li_temp = li_var % 2; if (li_temp == 1) { lb_return = true; } else { lb_return = false; } return lb_return; } private Decimal Square(Decimal adc_x, int li_y) { Decimal ldc_return = adc_x; if (li_y == 0) ldc_return = 1; for (int i = 1; i < li_y; i++) { ldc_return = ldc_return * adc_x; } return ldc_return; } // a init.ใบคำขอปิดประกัน public String[] InitInsuReqResign(String pbl, String xmlInsuReqResign) { String[] resu = new String[1]; resu[0] = ""; // resu[1] = ""; Sta ta = new Sta(connectionString); try { //1. สร้าง DataStore ตั้งชื่อว่า dwMain นำ XML จาก argument มา import ใส่ DataStore dwMain = new DataStore(); dwMain.LibraryList = pbl; dwMain.DataWindowObject = "d_ins_mainresign"; dwMain.Reset(); dwMain.ImportString(xmlInsuReqResign, FileSaveAsType.Xml); String memberNo = dwMain.GetItemString(1, "member_no"); //2. ไป select ข้อมูลจากทะเบียนสมาชิกใส่ Sdt แล้วนำค่าต่างๆ ไปยิงใส่ dwMain String sqlStr = @" SELECT MBMEMBMASTER.MEMBER_NO, MBMEMBMASTER.MEMB_NAME, MBMEMBMASTER.MEMB_SURNAME, MBMEMBMASTER.MEMBGROUP_CODE, MBUCFPRENAME.PRENAME_SHORT, MBUCFMEMBGROUP.MEMBGROUP_DESC, MBMEMBMASTER.BIRTH_DATE, MBMEMBMASTER.MEMBER_DATE, MBMEMBMASTER.MEMBER_STATUS, MBMEMBMASTER.card_person, MBUCFMEMBTYPE.MEMBTYPE_CODE, MBUCFMEMBTYPE.MEMBTYPE_DESC FROM MBMEMBMASTER, MBUCFMEMBGROUP, MBUCFPRENAME ,MBUCFMEMBTYPE WHERE ( MBUCFMEMBGROUP.MEMBGROUP_CODE = MBMEMBMASTER.MEMBGROUP_CODE ) and ( MBMEMBMASTER.PRENAME_CODE = MBUCFPRENAME.PRENAME_CODE ) and ( MBMEMBMASTER.MEMBTYPE_CODE = MBUCFMEMBTYPE.MEMBTYPE_CODE ) and ( ( MBMEMBMASTER.MEMBER_NO = '" + memberNo + "' ) )"; Sdt dt = ta.Query(sqlStr); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) dwMain.SetItemString(1, "member_no", dt.GetString("MEMBER_NO")); dwMain.SetItemString(1, "memb_name", dt.GetString("MEMB_NAME")); dwMain.SetItemString(1, "memb_surname", dt.GetString("MEMB_SURNAME")); dwMain.SetItemDate(1, "member_date", dt.GetDate("MEMBER_DATE")); dwMain.SetItemString(1, "membgroup_code", dt.GetString("MEMBGROUP_CODE")); dwMain.SetItemString(1, "membgroup_desc", dt.GetString("MEMBGROUP_DESC")); dwMain.SetItemString(1, "membtype_code", dt.GetString("MEMBTYPE_CODE")); dwMain.SetItemString(1, "membtype_desc", dt.GetString("MEMBTYPE_DESC")); dwMain.SetItemDecimal(1, "member_status", dt.GetDecimal("MEMBER_STATUS")); //3. เมื่อยิงค่าตั้งต้นของ dwMain ครบแล้วให้ export xml ของ dwMain ส่งไปให้หน้า UI resu[0] = dwMain.Describe("DataWindow.Data.XML"); ta.Close(); } else { throw new Exception("ไม่มีสมาชิก " + memberNo + " อยู่ในระบบ"); } } catch (Exception ex) { try { ta.Close(); } catch { } throw ex; } return resu; } // a save.ใบคำขอปิดประกัน public int SaveInsuReqResign(String pbl, DateTime workDate, String xmlInsuReqResign, String xmlInsuReqResigndel) { Sta ta = new Sta(connectionString); String sqlUpdate = "", sqlInsert = ""; Decimal REQRESIGN_STATUS = 1, INSCOST_BALANCE; DateTime RESIGN_DATE; String INSTYPE_CODE, MEMBER_NO, INSGROUPDOC_NO, LEVEL_CODE, OPERATE_DATE, MBDEAD_DATE, SENDDOC_DATE, INSSTK_BLANCE, INSRESIGN_CASE, REMARK, ENTRY_DATE, ENTRY_ID, COOPBRANCH_ID, AFINE_BLANCE, CLOSEINS_DATE, CLOSEINS_ID, COMPACCEPT_DATE, APVIMMEDIATE_FLAG, INSGROUP_ID; try { ta.Transection(); DataStore dwMain = new DataStore(pbl, "d_ins_mainresign"); DataStore dwdetail = new DataStore(pbl, "d_ins_resign_det"); dwMain.ImportString(xmlInsuReqResign, FileSaveAsType.Xml); dwdetail.ImportString(xmlInsuReqResigndel, FileSaveAsType.Xml); //dwMain.SetItemString(1, "insreqresign_no", docNo); //sqlInsert = new DwHandle(dwMain).SqlInsertSyntax("INSREQRESIGN", 1); //ta.Exe(sqlInsert); int row = dwdetail.RowCount; for (int i = 1; i <= row; i++) { Decimal ldc_operateflag = dwdetail.GetItemDecimal(i, "operate_flag"); if (ldc_operateflag == 1) { String INSREQRESIGN_NO = ""; INSREQRESIGN_NO = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSCLDOCNO, DateTime.Today.Year + 543, ta); INSTYPE_CODE = dwdetail.GetItemString(i, "instype_code"); MEMBER_NO = dwdetail.GetItemString(i, "member_no"); INSGROUPDOC_NO = dwdetail.GetItemString(i, "insgroupdoc_no"); INSRESIGN_CASE = dwdetail.GetItemString(i, "insresign_case"); CultureInfo lci_machine = CultureInfo.CurrentCulture; RESIGN_DATE = dwdetail.GetItemDateTime(i, "resign_date"); RESIGN_DATE = getDateTimeCulture(RESIGN_DATE.Day, RESIGN_DATE.Month, RESIGN_DATE.Year, lci_machine); //----------------------- //System.Globalization.CultureInfo den = new System.Globalization.CultureInfo("en-US"); //String crrDate = DateTime.Now.ToString("dd/MM/yyyy"); //string[] str = crrDate.Split('/'); //DateTime d = Convert.ToDateTime(new DateTime(Convert.ToInt32(str[2]), Convert.ToInt32(str[1]), Convert.ToInt32(str[0])), den); //RESIGN_DATE = (RESIGN_DATE == workDate) ? d : RESIGN_DATE; //dwdetail.SetItemDateTime(i, "resign_date", RESIGN_DATE); //RESIGN_DATE = dwdetail.GetItemDateTime(i, "resign_tdate"); //----------------------- INSCOST_BALANCE = dwdetail.GetItemDecimal(i, "inscost_blance"); INSGROUP_ID = dwdetail.GetItemString(i, "insgroup_id"); Decimal operate_flag = dwdetail.GetItemDecimal(i, "operate_flag"); sqlInsert = @" INSERT INTO INSREQRESIGN ( INSREQRESIGN_NO, INSTYPE_CODE, MEMBER_NO, INSGROUPDOC_NO, LEVEL_CODE, OPERATE_DATE, MBDEAD_DATE, SENDDOC_DATE, INSCOST_BALANCE, INSSTK_BLANCE, INSRESIGN_CASE, REMARK, ENTRY_DATE, ENTRY_ID, REQRESIGN_STATUS, COOPBRANCH_ID, AFINE_BLANCE, CLOSEINS_DATE, CLOSEINS_ID, COMPACCEPT_DATE, APVIMMEDIATE_FLAG, INSGROUP_ID ) VALUES ( '" + INSREQRESIGN_NO + @"', '" + INSTYPE_CODE + @"', '" + MEMBER_NO + @"', '" + INSGROUPDOC_NO + @"', null, to_date('" + RESIGN_DATE.ToString("dd/MM/yyyy") + @"','dd/mm/yyyy'), null,null, " + INSCOST_BALANCE + @", null, '" + INSRESIGN_CASE + @"', null, sysdate, null, " + REQRESIGN_STATUS + @", null, null, null, null, null, null , " + INSGROUP_ID + ")"; ta.Exe(sqlInsert); dwdetail.SetItemDecimal(i, "insmemb_status", -1); sqlUpdate = new DwHandle(dwdetail).SqlUpdateSyntax("INSGROUPMASTER", i); ta.Exe(sqlUpdate); } } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } public String[] InitInsuSliDet(String pbl, String xmlInsuReqResign) { String[] resu = new String[1]; resu[0] = ""; // resu[1] = ""; Sta ta = new Sta(connectionString); try { //1. สร้าง DataStore ตั้งชื่อว่า dwMain นำ XML จาก argument มา import ใส่ DataStore dwMain = new DataStore(); dwMain.LibraryList = pbl; dwMain.DataWindowObject = "d_ins_slip_operate_etc"; dwMain.Reset(); dwMain.ImportString(xmlInsuReqResign, FileSaveAsType.Xml); String memberNo = dwMain.GetItemString(1, "member_no"); //2. ไป select ข้อมูลจากทะเบียนสมาชิกใส่ Sdt แล้วนำค่าต่างๆ ไปยิงใส่ dwMain String sql = @" SELECT MBMEMBMASTER.MEMBER_NO, MBMEMBMASTER.MEMB_NAME, MBMEMBMASTER.MEMB_SURNAME, MBMEMBMASTER.MEMBGROUP_CODE, MBUCFPRENAME.PRENAME_SHORT, MBUCFMEMBGROUP.MEMBGROUP_DESC, MBMEMBMASTER.BIRTH_DATE, MBMEMBMASTER.MEMBER_DATE, MBMEMBMASTER.card_person FROM MBMEMBMASTER, MBUCFMEMBGROUP, MBUCFPRENAME WHERE ( MBUCFMEMBGROUP.MEMBGROUP_CODE = MBMEMBMASTER.MEMBGROUP_CODE ) and ( MBMEMBMASTER.PRENAME_CODE = MBUCFPRENAME.PRENAME_CODE ) and ( ( MBMEMBMASTER.MEMBER_NO = '" + memberNo + "' ) )"; Sdt dt = ta.Query(sql); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) dwMain.SetItemString(1, "prename_desc", dt.GetString("PRENAME_SHORT")); dwMain.SetItemString(1, "memb_name", dt.GetString("MEMB_NAME")); dwMain.SetItemString(1, "memb_surname", dt.GetString("MEMB_SURNAME")); dwMain.SetItemString(1, "membgroup_code", dt.GetString("MEMBGROUP_CODE")); //3. เมื่อยิงค่าตั้งต้นของ dwMain ครบแล้วให้ export xml ของ dwMain ส่งไปให้หน้า UI resu[0] = dwMain.Describe("DataWindow.Data.XML"); ta.Close(); } else { throw new Exception("ไม่มีสมาชิก " + memberNo + " อยู่ในระบบ"); } } catch (Exception ex) { try { ta.Close(); } catch { } throw ex; } return resu; } //-- By AOI 01.04.2011 public String[] InitInsuSliReq(String pbl, String xmlInsuReqResign) { String[] resu = new String[2]; resu[0] = ""; resu[1] = ""; Sta ta = new Sta(connectionString); try { //1. สร้าง DataStore ตั้งชื่อว่า dwMain นำ XML จาก argument มา import ใส่ DataStore dwMain = new DataStore(); dwMain.LibraryList = pbl; dwMain.DataWindowObject = "d_ins_slip_operate_main"; dwMain.Reset(); dwMain.ImportString(xmlInsuReqResign, FileSaveAsType.Xml); String memberNo = dwMain.GetItemString(1, "member_no"); //2. ไป select ข้อมูลจากทะเบียนสมาชิกใส่ Sdt แล้วนำค่าต่างๆ ไปยิงใส่ dwMain String sql = @" SELECT MBMEMBMASTER.MEMBER_NO, MBMEMBMASTER.MEMB_NAME, MBMEMBMASTER.MEMB_SURNAME, MBMEMBMASTER.MEMBGROUP_CODE, MBUCFPRENAME.PRENAME_SHORT, MBUCFMEMBGROUP.MEMBGROUP_DESC, MBMEMBMASTER.BIRTH_DATE, MBMEMBMASTER.MEMBER_DATE, MBMEMBMASTER.card_person FROM MBMEMBMASTER, MBUCFMEMBGROUP, MBUCFPRENAME WHERE ( MBUCFMEMBGROUP.MEMBGROUP_CODE = MBMEMBMASTER.MEMBGROUP_CODE ) and ( MBMEMBMASTER.PRENAME_CODE = MBUCFPRENAME.PRENAME_CODE ) and ( ( MBMEMBMASTER.MEMBER_NO = '" + memberNo + "' ) )"; Sdt dt = ta.Query(sql); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) dwMain.SetItemString(1, "prename_desc", dt.GetString("PRENAME_SHORT")); dwMain.SetItemString(1, "memb_name", dt.GetString("MEMB_NAME")); dwMain.SetItemString(1, "memb_surname", dt.GetString("MEMB_SURNAME")); dwMain.SetItemString(1, "membgroup_code", dt.GetString("MEMBGROUP_CODE")); try { //4. สร้าง DataStore สำหรับข้อมูลเงินกู้ dwLoan เพื่อหายอด sum ของเงินกู้ และ export xml เพื่อส่งไปให้หน้า UI DataStore dwLoan = new DataStore(pbl, "d_ins_slip_operate_etc"); DwTrans sqlca = new DwTrans(connectionString); sqlca.Connect(); try { dwLoan.SetTransaction(sqlca); dwLoan.Retrieve(memberNo); if (dwLoan.RowCount > 0) { //4.1 หายอด sum เพื่อยิงใส่ dwMain //decimal loanAmt = Convert.ToDecimal(dwLoan.Describe("evaluate( 'sum( principal_balance for all )', " + dwLoan.RowCount + " )")); //dwMain.SetItemDecimal(1, "loan_amt", loanAmt); //4.2 export xml ใส่ใน array ช่อง 1 เพื่อส่งกลับให้ UI resu[1] = dwLoan.Describe("DataWindow.Data.XML"); //------- เพิ่มเติม ตัวเลขยอดเงินต้องรวมไว้เรียบร้อย 05.04.2011-09.52 Decimal cost = 0; for (int r = 0; r < dwLoan.RowCount; r++) { cost = (cost == 0) ? dwLoan.GetItemDecimal(r + 1, "insperod_payment") : cost + dwLoan.GetItemDecimal(r + 1, "insperod_payment"); } dwMain.SetItemDecimal(1, "slip_amt", cost); //----------------- End 05.04.2011-09.52 } else throw new Exception("ไม่พบข้อมูลหนี้ของสมาชิก " + memberNo + " ในระบบ"); } catch (Exception exLoan) { sqlca.Disconnect(); throw exLoan; } sqlca.Disconnect(); } catch { // dwMain.SetItemDecimal(1, "loan_amt", 0m); resu[1] = ""; } // ---- สร้างตัว Detail //3. เมื่อยิงค่าตั้งต้นของ dwMain ครบแล้วให้ export xml ของ dwMain ส่งไปให้หน้า UI resu[0] = dwMain.Describe("DataWindow.Data.XML"); ta.Close(); } else { throw new Exception("ไม่มีสมาชิก " + memberNo + " อยู่ในระบบ"); } } catch (Exception ex) { try { ta.Close(); } catch { } throw ex; } return resu; } // by aoi 01.04.2011 public int SaveInsuSliReq(String pbl, DateTime workDate, String xmlInsuReqResign, String xmlInsuSlipDet) { Sta ta = new Sta(connectionString); ta.Transection(); try { DataStore dwMain = new DataStore(pbl, "d_ins_slip_operate_main"); dwMain.ImportString(xmlInsuReqResign, FileSaveAsType.Xml); System.Globalization.CultureInfo den = new System.Globalization.CultureInfo("en-US"); String crrDate = DateTime.Now.ToString("dd/MM/yyyy"); string[] str = crrDate.Split('/'); DateTime d = Convert.ToDateTime(new DateTime(Convert.ToInt32(str[2]), Convert.ToInt32(str[1]), Convert.ToInt32(str[0])), den); string membno = dwMain.GetItemString(1, "member_no"); string entryid = dwMain.GetItemString(1, "entry_id"); string docNo = ""; string slipNo = ""; docNo = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSCLDOCNO, workDate.Year + 543, ta); dwMain.SetItemString(1, "document_no", docNo); dwMain.SetItemString(1, "slip_no", docNo); dwMain.SetItemDateTime(1, "entry_date", DateTime.Now); dwMain.SetItemDateTime(1, "slip_date", d); dwMain.SetItemDateTime(1, "operate_date", d); slipNo = docNo; String sqlInsert = new DwHandle(dwMain).SqlInsertSyntax("CMSHRLONSLIP", 1); ta.Exe(sqlInsert); DataStore dwDetail = new DataStore(pbl, "d_ins_slip_operate_etc"); dwDetail.ImportString(xmlInsuSlipDet, FileSaveAsType.Xml); int rw = dwDetail.RowCount; int[] k = new int[rw]; for (int m = 0; m < rw; m++) { Decimal chkBox = dwDetail.GetItemDecimal(m + 1, "totalcost"); if (chkBox == 1) { //-- แก้ไขเพิ่มเติม 03.04.2011-10.44 String typecode = dwDetail.GetItemString(m + 1, "instype_code"); String docCode = dwDetail.GetItemString(m + 1, "insgroupdoc_no"); String descrpt = dwDetail.GetItemString(m + 1, "inscompany_name"); Decimal pay = dwDetail.GetItemDecimal(m + 1, "insperod_payment"); Decimal remain = dwDetail.GetItemDecimal(m + 1, "inspayment_arrear"); Decimal insstk_balance = dwDetail.GetItemDecimal(m + 1, "insstk_blance"); Decimal stm_no = dwDetail.GetItemDecimal(m + 1, "last_stm_no"); Decimal priod_no = dwDetail.GetItemDecimal(m + 1, "last_period"); Decimal xRem = remain - pay; //--- ยอดคงเหลือค้างชำระ Decimal grpID = dwDetail.GetItemDecimal(m + 1, "insgroup_id"); Decimal ldk_balance = dwDetail.GetItemDecimal(m + 1, "insstk_blance"); ldk_balance = ldk_balance + pay; dwDetail.SetItemDecimal(m + 1, "inspayment_arrear", xRem); dwDetail.SetItemDecimal(m + 1, "insstk_blance", insstk_balance + pay); dwDetail.SetItemDecimal(m + 1, "last_period", priod_no); dwDetail.SetItemDecimal(m + 1, "last_stm_no", stm_no + 1); //============================================================================== // insgroupmaster String sqlUpdate = @"UPDATE insgroupmaster set inspayment_arrear = " + xRem + @", insgroup_date = to_date('" + crrDate + @"','dd/mm/yyyy'), insreq_date = to_date('" + crrDate + @"','dd/mm/yyyy'), insstk_blance = nvl(insstk_blance,0)+" + pay + @", last_period = nvl(last_period,0)+1, last_stm_no = nvl(last_stm_no,0) + 1 WHERE member_no = '" + membno + @"' and instype_code='" + typecode + @"' and insgroupdoc_no='" + docCode + "'"; ta.Exe(sqlUpdate); //============================================================================== // cmshrlonslipdet Decimal nxtNo = NextNo("cmshrlonslipdet", "slip_no", slipNo, ta); sqlInsert = @"insert into cmshrlonslipdet(slip_no,slipitemtype_code,seq_no,shrlontype_code, operate_flag,Slipitem_desc,item_payamt,item_balance) values('" + slipNo + @"', 'INA'," + nxtNo + @", '" + typecode + @"', 1,'" + descrpt + @"', " + pay + "," + xRem + ")"; ta.Exe(sqlInsert); //============================================================================== // insgroupstatement; decimal xseq_no = NextNo("insgroupstatement", "insgroup_id", grpID.ToString(), ta); String dsql = @"insert into insgroupstatement (member_no,instype_code,seq_no,insitemtype_code, insperiod_payment,insprince_balance,operate_date,insgroupslip_date,entry_date, entry_id,insgroupdoc_no,insgroup_id,refdoc_no) values('" + membno + "','" + typecode + "'," + xseq_no + ",'IPX'," + pay + @", " + ldk_balance + @", to_date('" + crrDate + @"','dd/mm/yyyy'), to_date('" + crrDate + @"','dd/mm/yyyy'), to_date('" + crrDate + @"','dd/mm/yyyy'), '" + entryid + @"', '" + docCode + "'," + grpID + ",'" + slipNo + "')"; ta.Exe(dsql); } } //===============================End Edit ta.Commit(); ta.Close(); //---- 01.04.2011 Save Detail } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } private Decimal NextNo(String tbl, String where, String vle, Sta ta) { String sql = @"select nvl(max(seq_no),0) +1 nextNo from " + tbl + " where " + where + " = '" + vle + "'"; Decimal seqNo = 0; Sdt dtDtl = ta.Query(sql); dtDtl.Next(); seqNo = dtDtl.GetDecimal("nextNo"); return seqNo; } // by AOI 20.04.2011.13.34 //---- 31.03.2011 Save Detail public int SaveSlipDet(String pbl, DateTime workDate, String xmlInsuReqRequest, String slipno) { Sta ta = new Sta(connectionString); try { ta.Transection(); DataStore dwDetail = new DataStore(pbl, "d_ins_slip_operate_etc"); dwDetail.ImportString(xmlInsuReqRequest, FileSaveAsType.Xml); string docNo = ""; docNo = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSCLDOCNO, workDate.Year + 543, ta); dwDetail.SetItemString(1, "seq_no", docNo); dwDetail.SetItemString(1, "slip_no", slipno); String sqlInsert = new DwHandle(dwDetail).SqlInsertSyntax("cmshrlonslipdet", 1); String sqlUpdate = new DwHandle(dwDetail).SqlUpdateSyntax("cmshrlonslipdet", 1); ta.Exe(sqlInsert); ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } //by kae ยกเลิกปิดประกัน public int SaveCancelresign(String pbl, DateTime workDate, String xmlInsuCancelResign) { Sta ta = new Sta(connectionString); try { ta.Transection(); DataStore dwMain = new DataStore(pbl, "d_ins_approve_listnew"); dwMain.ImportString(xmlInsuCancelResign, FileSaveAsType.Xml); String sqlUpdate = ""; //DwUtil.UpdateDateWindow(dw_search, "as_appinsresign.pbl", "INSREQRESIGN"); int row = dwMain.RowCount; for (int i = 1; i <= row; i++) { decimal status = dwMain.GetItemDecimal(i, "reqresign_status"); decimal ldc_insgpid = dwMain.GetItemDecimal(i, "insgroup_id"); if (status == -9) { String sql = "UPDATE insgroupmaster set insmemb_status= 1 " + "where INSGROUPMASTER.insgroup_id = " + ldc_insgpid.ToString().Trim(); ta.Exe(sql); sqlUpdate = new DwHandle(dwMain).SqlUpdateSyntax("INSREQRESIGN", i); ta.Exe(sqlUpdate); //sql = "UPDATE insreqresign set reqresign_status = -9 " + // " where INSGROUPMASTER.insgroup_id = " + ldc_insgpid.ToString().Trim(); //ta.Exe(sql); } } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } private DateTime getDateTimeCulture(int ai_day, int ai_month, int ai_year, CultureInfo aci_culture) { DateTime ldtm_output; String ls_dateformat, ls_day, ls_month, ls_year; ls_day = "0" + ai_day.ToString().Trim(); ls_day = ls_day.Substring(ls_day.Length - 2, 2); ls_month = "0" + ai_month.ToString().Trim(); ls_month = ls_month.Substring(ls_month.Length - 2, 2); ls_year = ai_year.ToString().Trim(); ls_dateformat = ls_day + ls_month + ls_year; ldtm_output = DateTime.ParseExact(ls_dateformat, "ddMMyyyy", aci_culture); return ldtm_output; } public pbservice.str_progress GetProgress() { return progress; } //พี่อ้อย*********** public int SaveInsVehicle(String pbl, String xmlInsMaster, String xmlInsStmt, String new_status) { String sqlText; decimal li_grpid; Sta ta = new Sta(connectionString); try { ta.Transection(); Sdt dt; //Import DataWindow to DataStore DataStore dw_insmaster = new DataStore(pbl, "d_md_car"); dw_insmaster.ImportString(xmlInsMaster, FileSaveAsType.Xml); DataStore dw_insstmt = new DataStore(pbl, "d_md_cardetail"); dw_insstmt.ImportString(xmlInsStmt, FileSaveAsType.Xml); Decimal ldc_cmpy; //check save '0'=Update , '1'=Insert if (new_status == "0") { sqlText = new DwHandle(dw_insmaster).SqlUpdateSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); sqlText = new DwHandle(dw_insstmt).SqlUpdateSyntax("INSGROUPCARDET", 1); ta.Exe(sqlText); String lsip_no, ls_membno; DateTime slp_dte; Decimal grpId; try { lsip_no = dw_insstmt.GetItemString(1, "slip_no"); } catch { lsip_no = ""; } try { slp_dte = dw_insstmt.GetItemDateTime(1, "slip_date"); } catch { slp_dte = new DateTime(1900, 1, 1); } try { grpId = dw_insstmt.GetItemDecimal(1, "INSGROUP_ID"); } catch { grpId = dw_insmaster.GetItemDecimal(1, "INSGROUP_ID"); } ls_membno = dw_insstmt.GetItemString(1, "MEMBER_NO"); try { ldc_cmpy = dw_insstmt.GetItemDecimal(1, "COMPANY_ID"); } catch { ldc_cmpy = 0; } sqlText = "SELECT SLIP_NO FROM INSSLIPPAYIN WHERE INSGROUP_ID =" + grpId; dt = ta.Query(sqlText); //if (lsip_no != "") //{ if (dt.Next()) { sqlText = "UPDATE INSSLIPPAYIN SET SLIP_NO='" + lsip_no + "',SLIP_DATE= to_date('" + slp_dte.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "','dd/mm/yyyy')" + ",COMPANY_ID=" + ldc_cmpy + " " + " WHERE INSGROUP_ID =" + grpId; ta.Exe(sqlText); } else { sqlText = "INSERT INTO INSSLIPPAYIN(SLIP_NO,SLIP_DATE,INSGROUP_ID,MEMBER_NO,COMPANY_ID)" + " VALUES('" + lsip_no + "',to_date('" + slp_dte.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "','dd/mm/yyyy')," + grpId + ",'" + ls_membno + "'," + ldc_cmpy + ")"; ta.Exe(sqlText); } //} } else //new_status == "1" (Insert) { //---- INSERT --------------- sqlText = "SELECT max(NVL(insgroup_id,0))+1 AS INSGROUP_ID FROM insgroupmaster"; dt = ta.Query(sqlText); //if (dt.Rows.Count > 0) if (dt.Next()) { li_grpid = dt.GetDecimal("INSGROUP_ID"); } else { li_grpid = 0; } //-- INSREQNEW //try //{ // ls_birth = dw_insmaster.GetItemString(1, "birth_tdate"); // ldtm_birth = getEnDate(ls_birth);//dw_insmaster.GetItemDateTime(1, "birth_date"); //} //catch { ldtm_birth = Convert.ToDateTime("01/01/1900"); } String ls_memberno, ls_instype, ls_level, ls_marriggeName, ls_insdoc, ls_personcard; String ls_entyrid, ls_docNo, lsd_slipno; Decimal ldc_insreqcost, ldc_insmemb, ldc_inspayment, ldc_insgpid; DateTime ldtm_insdate, ldtm_birth; ls_memberno = dw_insmaster.GetItemString(1, "member_no").Trim(); ldtm_insdate = dw_insmaster.GetItemDateTime(1, "insgroup_date"); try { ldc_insreqcost = dw_insmaster.GetItemDecimal(1, "inscost_blance"); } catch { ldc_insreqcost = 0; } try { ls_insdoc = dw_insmaster.GetItemString(1, "insgroupdoc_no").Trim(); } catch { ls_insdoc = dw_insstmt.GetItemString(1, "nummernschild"); } ls_instype = dw_insmaster.GetItemString(1, "instype_code").Trim(); try { ls_level = dw_insmaster.GetItemString(1, "level_code").Trim(); } catch { ls_level = ""; } ls_marriggeName = dw_insmaster.GetItemString(1, "marrige_name").Trim(); ldc_insmemb = dw_insmaster.GetItemDecimal(1, "insmemb_type"); try { ls_personcard = dw_insmaster.GetItemString(1, "person_card").Trim(); } catch { ls_personcard = ""; } try { ldc_inspayment = dw_insmaster.GetItemDecimal(1, "inspayment_amt"); } catch { ldc_inspayment = 0; } try { // ls_birth = dw_insmaster.GetItemString(1, "birth_tdate"); ldtm_birth = dw_insmaster.GetItemDateTime(1, "birth_date"); } catch { ldtm_birth = Convert.ToDateTime("01/01/1900"); } try { ldc_cmpy = dw_insstmt.GetItemDecimal(1, "COMPANY_ID"); } catch { ldc_cmpy = 0; } ldc_insgpid = li_grpid;//dw_insmaster.GetItemDecimal(1, "insgroup_id"); ls_docNo = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSAPPLDOCNO, ldtm_insdate.Year + 543, ta); ls_entyrid = "admin"; sqlText = "INSERT INTO INSREQNEW " + "( INSREQDOC_NO, MEMBER_NO, INREQ_DATE, INSAPROVE_DATE, " + "INSREQCOST_AMT, INSAPCOST_AMT, EX_STATUS1, EX_STATUS2, EX_STATUS3, EX_STATUS4, " + "ENTRY_ID, ENTRY_DATE, INSREQ_STATUS, INSGROUPDOC_NO, APPROVE_ID, INSTYPE_CODE, " + "INSPERIOD_PAYMENT, BIRTH_DATE, INSLEVEL_CODE, MARRIGE_NAME, INSGROUPNO_REF, " + "INSMEMB_TYPE, PERSON_CARD, INSPAYMENT_AMT, APPLTYPE_CODE, INSGROUP_ID ) " + "VALUES ('" + ls_docNo + "','" + ls_memberno + "'," + "to_date('" + DateTime.Now.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + DateTime.Now.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + ldc_insreqcost.ToString().Trim() + "," + ldc_insreqcost.ToString().Trim() + ",1,1,1,1," + "'" + ls_entyrid + "',sysdate,1,'" + ls_insdoc + "','" + ls_entyrid + "','" + ls_instype + "',null," + "to_date('" + ldtm_birth.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "', 'dd/mm/yyyy')," + "'" + ls_level + "','" + ls_marriggeName + "',null," + ldc_insmemb.ToString().Trim() + ",'" + ls_personcard + "'," + ldc_inspayment.ToString().Trim() + "," + "null," + ldc_insgpid.ToString().Trim() + ")"; ta.Exe(sqlText); //------------------------------------------------------------------------ //--------------- INSGROUPMASTER dw_insmaster.SetItemDecimal(1, "INSGROUP_ID", ldc_insgpid); //dw_insmaster.SetItemDecimal(1, "insmemb_status", 1); //dw_insmaster.SetItemString(1, "LOCATION_DESC", dw_insstmt.GetItemString(1, "location_desc")); sqlText = new DwHandle(dw_insmaster).SqlInsertSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); //sqlText = "UPDATE INSGROUPMASTER SET LOCATION_DESC ='" + dw_insstmt.GetItemString(1, "location_desc") + // "' WHERE INSGROUP_ID =" + ldc_insgpid; //ta.Exe(sqlText); //------------------------------------------------------------------------ /*--------------- INSGROUPCARDET---------------*/ try { lsd_slipno = dw_insstmt.GetItemString(1, "slip_no"); } catch { lsd_slipno = ""; } try { ldtm_birth = dw_insstmt.GetItemDateTime(1, "slip_date"); } catch { ldtm_birth = Convert.ToDateTime("01/01/1900"); } dw_insstmt.SetItemDecimal(1, "INSGROUP_ID", ldc_insgpid); sqlText = new DwHandle(dw_insstmt).SqlInsertSyntax("INSGROUPCARDET", 1); ta.Exe(sqlText); //------------------------------------------------------------------------ //----------------- INSSLIPPAYIN sqlText = "SELECT SLIP_NO FROM INSSLIPPAYIN WHERE INSGROUP_ID =" + ldc_insgpid; dt = ta.Query(sqlText); if (dt.Next()) { sqlText = "UPDATE INSSLIPPAYIN SET SLIP_NO='" + lsd_slipno + "',SLIP_DATE= to_date('" + ldtm_birth.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "','dd/mm/yyyy')" + ",COMPANY_ID=" + ldc_cmpy + " " + " WHERE INSGROUP_ID =" + ldc_insgpid; ta.Exe(sqlText); } //---------- กรณีที่ไม่มีข้อมูล else { sqlText = "INSERT INTO INSSLIPPAYIN (SLIP_NO,SLIP_DATE,INSGROUP_ID,MEMBER_NO,COMPANY_ID)" + " VALUES('" + lsd_slipno + "',to_date('" + ldtm_birth.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "','dd/mm/yyyy')," + ldc_insgpid + ",'" + ls_memberno + "'," + ldc_cmpy + ")"; ta.Exe(sqlText); } //if (lsd_slipno != "") //{ // //sqlText = "INSERT INTO INSSLIPPAYIN(SLIP_NO,SLIP_DATE,INSGROUP_ID,MEMBER_NO,COMPNAY_ID)" + // // " VALUES('" + lsd_slipno + "',to_date('" + ldtm_birth.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + // // "','dd/mm/yyyy')," + ldc_insgpid + ",'" + ls_memberno + "')"; // //ta.Exe(sqlText); // sqlText = "INSERT INTO INSSLIPPAYIN(SLIP_NO,SLIP_DATE,INSGROUP_ID,MEMBER_NO,COMPNAY_ID)" + // " VALUES('" + lsd_slipno + "',to_date('" + ldtm_birth.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + // "','dd/mm/yyyy')," + ldc_insgpid + ",'" + ls_memberno + "'," + ldc_cmpy + ")"; // ta.Exe(sqlText); //} } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } public int SaveInsBuilding(String pbl, String xmlInsMaster, String xmlInsDetail, String new_status) { String sqlText; //int li_row, li_rowcount; decimal li_grpid; Sta ta = new Sta(connectionString); try { ta.Transection(); Sdt dt; //Import DataWindow to DataStore DataStore dw_insmaster = new DataStore(pbl, "d_md_car"); DataStore dw_insDetail = new DataStore(pbl, "d_as_insurfire"); dw_insmaster.ImportString(xmlInsMaster, FileSaveAsType.Xml); dw_insDetail.ImportString(xmlInsDetail, FileSaveAsType.Xml); //check save '0'=Update , '1'=Insert String ls_memberno, ownhmename, exterwall, roof, roofbeam, upperfl, postcode, grpno_ref; String road, tambo, amphur, city, bdingno, bdingarea, bookno, bookarea, ls_personcard, ls_instype, ls_level, soy, addrno, ls_ownerhme, ls_insdoc, ls_marriggeName, ls_docNo, ls_entyrid, lsd_slipno, ls_remark, ls_buildid, ls_levelno, internalwll, noofbding, ls_companyname; decimal noofstorey, moo, ldc_insreqcost, ldc_insmemb, ldc_inspayment, ldc_cmpy; DateTime ld_slipdate; try { ls_ownerhme = dw_insDetail.GetItemString(1, "owner_home"); } catch { ls_ownerhme = ""; } try { ownhmename = dw_insDetail.GetItemString(1, "owner_homename"); } catch { ownhmename = ""; } try { exterwall = dw_insDetail.GetItemString(1, "EXTERNALWALL"); } catch { exterwall = ""; } try { internalwll = dw_insDetail.GetItemString(1, "INTERNALAREA"); } catch { internalwll = ""; } try { roof = dw_insDetail.GetItemString(1, "ROOF"); } catch { roof = ""; } try { roofbeam = dw_insDetail.GetItemString(1, "ROOFBEAM"); } catch { roofbeam = ""; } try { noofbding = dw_insDetail.GetItemString(1, "NOOFBUILDING"); } catch { noofbding = ""; } try { upperfl = dw_insDetail.GetItemString(1, "UPPERFLOOR"); } catch { upperfl = ""; } try { road = dw_insDetail.GetItemString(1, "ROAD"); } catch { road = ""; } try { tambo = dw_insDetail.GetItemString(1, "TAMBOL"); } catch { tambo = ""; } try { amphur = dw_insDetail.GetItemString(1, "AMPHUR"); } catch { amphur = ""; } try { city = dw_insDetail.GetItemString(1, "CITY"); } catch { city = ""; } try { bdingno = dw_insDetail.GetItemString(1, "buildingname"); } catch { bdingno = ""; } try { bdingarea = dw_insDetail.GetItemString(1, "buildingno"); } catch { bdingarea = ""; } try { bookno = dw_insDetail.GetItemString(1, "bookareano"); } catch { bookno = ""; } try { bookarea = dw_insDetail.GetItemString(1, "bookarea"); } catch { bookarea = ""; } try { moo = dw_insDetail.GetItemDecimal(1, "MOO"); } catch { moo = 0; } try { soy = dw_insDetail.GetItemString(1, "soy"); } catch { soy = ""; } try { addrno = dw_insDetail.GetItemString(1, "addressno"); } catch { addrno = ""; } try { postcode = dw_insDetail.GetItemString(1, "postcode"); } catch { postcode = ""; } try { noofstorey = dw_insDetail.GetItemDecimal(1, "NOOFSTOREY"); } catch { noofstorey = 0; } try { grpno_ref = dw_insDetail.GetItemString(1, "insgroupno_ref"); } catch { grpno_ref = ""; } try { ls_buildid = dw_insDetail.GetItemString(1, "building_id"); } catch { ls_buildid = ""; } try { ls_levelno = dw_insDetail.GetItemString(1, "level_no"); } catch { ls_levelno = ""; } try { ls_remark = dw_insDetail.GetItemString(1, "remark"); } catch { ls_remark = ""; } try { lsd_slipno = dw_insDetail.GetItemString(1, "slip_no"); } catch { lsd_slipno = ""; } try { ld_slipdate = dw_insDetail.GetItemDateTime(1, "slip_date"); } catch { ld_slipdate = Convert.ToDateTime("01/01/1900"); } try { ldc_cmpy = dw_insDetail.GetItemDecimal(1, "COMPANY_ID"); } catch { ldc_cmpy = 0; } try { ls_companyname = dw_insDetail.GetItemString(1, "COMPANYNAME"); } catch { ls_companyname = ""; } ls_memberno = dw_insmaster.GetItemString(1, "member_no").Trim(); String ls_desc = ""; ls_desc += (bdingno != "") ? "อาคารชุดชื่อ " + bdingno : ""; ls_desc += (ls_levelno != "") ? " ชั้น " + ls_levelno : ""; if (ls_buildid != "") { ls_desc += " อาคารเลขที่ " + ls_buildid; } if (bookarea != "") { ls_desc += " โฉนดเลขที่ " + bookarea; } if (bdingarea != "") { ls_desc += " ห้องชุดที่ " + bdingarea; } if (ls_remark != "") { ls_desc += " ลักษณะสิ่งปลูกสร้าง " + ls_remark; } if (addrno != "") { ls_desc += " " + addrno; } if (road != "") { ls_desc += " ถนน" + road; } if (moo != 0) { ls_desc += " หมู่ที่ " + moo; } if (soy != "") { ls_desc += " ซอย, หมู่บ้าน" + soy; } if (tambo != "") { ls_desc += " ตำบล" + tambo; } if (amphur != "") { ls_desc += " อำเภอ" + amphur; } if (city != "") { ls_desc += " " + city; } if (postcode != "") { ls_desc += " " + postcode; } if (new_status == "0") { sqlText = new DwHandle(dw_insmaster).SqlUpdateSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); try { li_grpid = dw_insmaster.GetItemDecimal(1, "INSGROUP_ID"); } catch { li_grpid = 0; } //--------------------------- dw_insDetail.SetItemDecimal(1, "INSGROUP_ID", li_grpid); sqlText = new DwHandle(dw_insDetail).SqlUpdateSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); if (ls_desc != "") { sqlText = "UPDATE INSGROUPMASTER SET LOCATION_DESC ='" + ls_desc + "' WHERE INSGROUP_ID = " + li_grpid; ta.Exe(sqlText); } } else //new_status == "1" (Insert) { //---- INSERT --------------- sqlText = "SELECT max(NVL(insgroup_id,0))+1 AS INSGROUP_ID FROM INSGROUPMASTER"; dt = ta.Query(sqlText); if (dt.Next()) { li_grpid = dt.GetDecimal("INSGROUP_ID"); } else { li_grpid = 0; } //-- INSREQNEW DateTime ldtm_insdate, ldtm_birth; //ls_memberno = dw_insmaster.GetItemString(1, "member_no").Trim(); ldtm_insdate = dw_insmaster.GetItemDateTime(1, "insgroup_date"); ls_instype = dw_insmaster.GetItemString(1, "instype_code").Trim(); ls_marriggeName = dw_insmaster.GetItemString(1, "marrige_name").Trim(); ldc_insmemb = dw_insmaster.GetItemDecimal(1, "insmemb_type"); try { ldc_insreqcost = dw_insmaster.GetItemDecimal(1, "inscost_blance"); } catch { ldc_insreqcost = 0; } try { ls_insdoc = dw_insmaster.GetItemString(1, "insgroupdoc_no").Trim(); } catch { ls_insdoc = grpno_ref; dw_insmaster.SetItemString(1, "insgroupdoc_no", grpno_ref); } try { ldtm_birth = dw_insmaster.GetItemDateTime(1, "birth_date"); } catch { ldtm_birth = Convert.ToDateTime("01/01/1900"); } try { ls_level = dw_insmaster.GetItemString(1, "level_code").Trim(); } catch { ls_level = ""; } try { ls_personcard = dw_insmaster.GetItemString(1, "person_card").Trim(); } catch { ls_personcard = ""; } try { ldc_inspayment = dw_insmaster.GetItemDecimal(1, "inspayment_amt"); } catch { ldc_inspayment = 0; } //ldc_insgpid = li_grpid;//dw_insmaster.GetItemDecimal(1, "insgroup_id"); ls_docNo = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSAPPLDOCNO, ldtm_insdate.Year + 543, ta); ls_entyrid = "admin"; //-------------------------- INSREQNEW sqlText = "INSERT INTO INSREQNEW " + "( INSREQDOC_NO, MEMBER_NO, INREQ_DATE, INSAPROVE_DATE, " + "INSREQCOST_AMT, INSAPCOST_AMT, EX_STATUS1, EX_STATUS2, EX_STATUS3, EX_STATUS4, " + "ENTRY_ID, ENTRY_DATE, INSREQ_STATUS, INSGROUPDOC_NO, APPROVE_ID, INSTYPE_CODE, " + "INSPERIOD_PAYMENT, BIRTH_DATE, INSLEVEL_CODE, MARRIGE_NAME, INSGROUPNO_REF, " + "INSMEMB_TYPE, PERSON_CARD, INSPAYMENT_AMT, APPLTYPE_CODE, INSGROUP_ID ) " + "VALUES ('" + ls_docNo.Trim() + "','" + ls_memberno + "'," + "to_date('" + DateTime.Now.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + "to_date('" + DateTime.Now.ToString("dd/MM/yyyy") + "', 'dd/mm/yyyy')," + ldc_insreqcost.ToString().Trim() + "," + ldc_insreqcost.ToString().Trim() + ",1,1,1,1," + "'" + ls_entyrid + "',sysdate,1,'" + ls_insdoc + "','" + ls_entyrid + "','" + ls_instype + "',null," + "to_date('" + ldtm_birth.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "', 'dd/mm/yyyy')," + "'" + ls_level + "','" + ls_marriggeName + "',null," + ldc_insmemb.ToString().Trim() + ",'" + ls_personcard + "'," + ldc_inspayment.ToString().Trim() + "," + "null," + li_grpid.ToString().Trim() + ")"; ta.Exe(sqlText); //--------------------------- INSGROUPMASTER dw_insmaster.SetItemDecimal(1, "INSGROUP_ID", li_grpid); sqlText = new DwHandle(dw_insmaster).SqlInsertSyntax("INSGROUPMASTER", 1); ta.Exe(sqlText); //--------------------------- if (li_grpid != 0) { sqlText = "UPDATE INSGROUPMASTER SET OWNER_HOME ='" + ls_ownerhme + "',OWNER_HOMENAME ='" + ownhmename + "',NOOFSTOREY =" + noofstorey + ",EXTERNALWALL ='" + exterwall + "',INTERNALAREA ='" + internalwll + "',ROOFBEAM ='" + roofbeam + "',ROOF ='" + roof + "',NOOFBUILDING ='" + noofbding + "',UPPERFLOOR ='" + upperfl + "',ROAD ='" + road + "',TAMBOL ='" + tambo + "',AMPHUR ='" + amphur + "',CITY ='" + city + "',buildingname ='" + bdingno + "',buildingno ='" + bdingarea + "',bookareano ='" + bookno + "',bookarea ='" + bookarea + "',MOO =" + moo + ",soy ='" + soy + "',insgroupno_ref='" + grpno_ref.Trim() + "',postcode ='" + postcode + "',addressno ='" + addrno + "',building_id='" + ls_buildid + "',level_no ='" + ls_levelno + "',remark ='" + ls_remark + "',location_desc = '" + ls_desc + "' WHERE INSGROUP_ID =" + li_grpid; ta.Exe(sqlText); } } //---------------------------- sqlText = "SELECT SLIP_NO FROM INSSLIPPAYIN WHERE INSGROUP_ID =" + li_grpid; dt = ta.Query(sqlText); if (dt.Next()) { sqlText = "UPDATE INSSLIPPAYIN SET SLIP_NO='" + lsd_slipno + "',SLIP_DATE= to_date('" + ld_slipdate.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "','dd/mm/yyyy')" + ",COMPANY_ID=" + ldc_cmpy + " " + " WHERE INSGROUP_ID =" + li_grpid; ta.Exe(sqlText); } else { sqlText = "INSERT INTO INSSLIPPAYIN(SLIP_NO,SLIP_DATE,INSGROUP_ID,MEMBER_NO,COMPANY_ID)" + " VALUES('" + lsd_slipno + "',to_date('" + ld_slipdate.ToString("dd/MM/yyyy", new CultureInfo("en-US")) + "','dd/mm/yyyy')," + li_grpid + ",'" + ls_memberno + "'," + ldc_cmpy + ")"; ta.Exe(sqlText); } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } public int SaveInsPasion(String pbl, String xmlDetail, String rowID, String new_status) { String sqlText; decimal li_grpid; Sta ta = new Sta(connectionString); try { ta.Transection(); Sdt dt; //Import DataWindow to DataStore // DataStore dw_insmaster = new DataStore(pbl, "d_as_member_person_x"); DataStore dw_detail = new DataStore(pbl, "d_as_ins_pasion_x"); // dw_insmaster.ImportString(xmlInsMaster, FileSaveAsType.Xml); dw_detail.ImportString(xmlDetail, FileSaveAsType.Xml); //check save '0'=Update , '1'=Insert if (new_status == "0") { int m = 0; String[] x = rowID.Split(','); //x.Length; for (m = 0; m < x.Length; m++) { int k = Convert.ToInt32(x[m]); sqlText = new DwHandle(dw_detail).SqlUpdateSyntax("INSGROUPMASTER", k); ta.Exe(sqlText); } } else //new_status == "1" (Insert) { //---- INSERT --------------- sqlText = "SELECT max(NVL(insgroup_id,0))+1 AS INSGROUP_ID FROM INSGROUPMASTER"; dt = ta.Query(sqlText); if (dt.Next()) { li_grpid = dt.GetDecimal("INSGROUP_ID"); } else { li_grpid = 0; } //-- INSREQNEW //--------------------------- } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } public int SaveInsCommission(String pbl, String xmlMain) { Sta ta = new Sta(connectionString); Sdt dt; try { DataStore dw = new DataStore(pbl, "d_ins_commission"); dw.ImportString(xmlMain, FileSaveAsType.Xml); //String tbl = "INSCOMMISSION"; DateTime mth = dw.GetItemDateTime(1, "recorddate"); String cmp = dw.GetItemString(1, "company_id"); //---- หาจำนวน loop String strdte = dw.GetItemString(1, "end_tdate"); DateTime dte = getEnDate(strdte); DateTime xdte = dw.GetItemDateTime(1, "recorddate"); System.TimeSpan dif = dte.Subtract(xdte); Double xst = dif.TotalDays; // จำนวน loop ที่จะวนทั้งหมด int rw = 1; //dte = dte.AddDays(1); //---------------------------- for (int m = 0; m <= xst; m++) { //==================== sum ta.Transection(); String sql = @" SELECT sum(a.insamount_amt) amt,c.percent FROM insgroupmaster a ,insslippayin b,inscompany c WHERE a.instype_code ='07' and a.insgroup_id = b.insgroup_id and b.company_id = c.company_id and c.company_id = '" + cmp.Trim() + "' AND b.Slip_date = to_date('" + mth.ToString("ddMMyyyy", new CultureInfo("en-US")) + "','ddmmyyyy')" + @" group by c.percent"; dt = ta.Query(sql); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) Decimal tlcost = (dt.GetDecimal("AMT") * dt.GetDecimal("PERCENT")) + dt.GetDecimal("AMT"); decimal tlpct = (dt.GetDecimal("AMT") * dt.GetDecimal("PERCENT")); dw.SetItemDecimal(1, "COST", dt.GetDecimal("AMT")); dw.SetItemDecimal(1, "PERCENT", dt.GetDecimal("PERCENT")); dw.SetItemDecimal(1, "total_receive", tlcost); dw.SetItemDecimal(1, "total_cst", tlpct); dw.SetItemDateTime(1, "recorddate", mth); String yrs = Convert.ToString(mth.Year + 543); yrs = yrs + mth.Month.ToString("00"); dw.SetItemString(1, "yearmonth", yrs); String sqlTxt = "SELECT * FROM INSCOMMISSION WHERE RECORDDATE = to_date('" + mth.ToString("ddMMyyyy", new CultureInfo("en-US")) + "','ddmmyyyy') AND COMPANY_ID =" + cmp.Trim() + ""; dt = ta.Query(sqlTxt); //----------- update if (dt.Next()) { sqlTxt = new DwHandle(dw).SqlUpdateSyntax("INSCOMMISSION", 1); } //----------- Insert else { sqlTxt = new DwHandle(dw).SqlInsertSyntax("INSCOMMISSION", 1); } ta.Exe(sqlTxt); rw += 1; //ta.Close(); } mth = xdte.AddDays(1); xdte = mth; } ta.Commit(); ta.Close(); } catch { ta.RollBack(); ta.Close(); } return 1; } public int SaveInsPercent(String pbl, String xmlMain) { Sta ta = new Sta(connectionString); Sdt dt; try { DataStore dw = new DataStore(pbl, "d_ins_percentcomadd"); dw.ImportString(xmlMain, FileSaveAsType.Xml); //---------------------------- //==================== sum ta.Transection(); String sql = @"SELECT MAX(NVL(COMPANY_ID,0)) +1 AS CMPID FROM INSCOMPANY"; dt = ta.Query(sql); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) dw.SetItemDecimal(1, "", dt.GetDecimal("CMPID")); //String sqlTxt = "SELECT * FROM INSCOMMISSION WHERE RECORDDATE = to_date('" + mth.ToString("ddMMyyyy", new CultureInfo("en-US")) + "','ddmmyyyy') AND COMPANY_ID =" + cmp.Trim() + ""; //dt = ta.Query(sqlTxt); ////----------- update //if (dt.Next()) //{ // sqlTxt = new DwHandle(dw).SqlUpdateSyntax("INSCOMMISSION", 1); //} ////----------- Insert //else //{ // sqlTxt = new DwHandle(dw).SqlInsertSyntax("INSCOMMISSION", 1); //} //ta.Exe(sqlTxt); } ta.Commit(); ta.Close(); } catch { ta.RollBack(); ta.Close(); } return 1; } public String[] InitCommission(String pbl, String xmlMain) { String[] resu = new String[1]; resu[0] = ""; Sta ta = new Sta(connectionString); try { DataStore dwMain = new DataStore(); dwMain.LibraryList = pbl; dwMain.DataWindowObject = "d_ins_commission"; dwMain.Reset(); dwMain.ImportString(xmlMain, FileSaveAsType.Xml); String cmpny = dwMain.GetItemString(1, "company_id"); DateTime mth = dwMain.GetItemDateTime(1, "recorddate"); //---- หาจำนวน loop String strdte = dwMain.GetItemString(1, "end_tdate"); DateTime dte = getEnDate(strdte); //DateTime xdte = dwMain.GetItemDateTime(1, "recorddate"); //System.TimeSpan dif = dte.Subtract(xdte); //dte = dte.AddDays(1); //Double xst = dif.TotalDays; //---------------------------- String sql = @" SELECT sum(a.insamount_amt) amt,c.percent FROM insgroupmaster a ,insslippayin b,inscompany c WHERE a.instype_code ='07' and a.insgroup_id = b.insgroup_id and b.company_id = c.company_id and c.company_id = '" + cmpny.Trim() + "' AND b.Slip_date between to_date('" + mth.ToString("ddMMyyyy", new CultureInfo("en-US")) + "','ddmmyyyy') AND " + @" to_date('" + dte.ToString("ddMMyyyy", new CultureInfo("en-US")) + @"','ddmmyyyy') group by c.percent"; Sdt dt = ta.Query(sql); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) dwMain.SetItemDecimal(1, "COST", dt.GetDecimal("AMT")); dwMain.SetItemDecimal(1, "PERCENT", dt.GetDecimal("PERCENT")); resu[0] = dwMain.Describe("DataWindow.Data.XML"); } else { resu[0] = ""; } ta.Close(); } catch (Exception ex) { try { ta.Close(); } catch { } throw ex; } return resu; } public DateTime getEnDate(string as_input) { DateTime ldtm_output; int li_year; li_year = Convert.ToInt32(as_input.Substring(4, 4)); li_year -= 543; // Convert = "MM/dd/yyyy" //ldtm_output = Convert.ToDateTime(as_input.Substring(2, 2) + '/' + as_input.Substring(0, 2) + '/' + li_year.ToString()); ldtm_output = DateTime.ParseExact(as_input, "ddMMyyyy", new CultureInfo("en-US")); int dd = ldtm_output.Day; int mm = ldtm_output.Month; int yy = (Convert.ToInt32(ldtm_output.Year.ToString()) - 543); ldtm_output = new DateTime(yy, mm, dd); return ldtm_output; } public String[] InitInsPasion(String pbl, String xmlInsuRequest) { String[] resu = new String[1]; resu[0] = ""; //resu[1] = ""; Sta ta = new Sta(connectionString); try { //1. สร้าง DataStore ตั้งชื่อว่า dwMain นำ XML จาก argument มา import ใส่ DataStore dwMain = new DataStore(); dwMain.LibraryList = pbl; dwMain.DataWindowObject = "d_as_member_person_x"; dwMain.Reset(); dwMain.ImportString(xmlInsuRequest, FileSaveAsType.Xml); String memberNo = dwMain.GetItemString(1, "member_no"); //2. ไป select ข้อมูลจากทะเบียนสมาชิกใส่ Sdt แล้วนำค่าต่างๆ ไปยิงใส่ dwMain String sql = @" SELECT MBMEMBMASTER.MEMBER_NO, MBMEMBMASTER.MEMB_NAME, MBMEMBMASTER.MEMB_SURNAME, MBMEMBMASTER.MEMBGROUP_CODE, MBUCFPRENAME.PRENAME_SHORT, MBUCFMEMBGROUP.MEMBGROUP_DESC, MBMEMBMASTER.BIRTH_DATE, MBMEMBMASTER.MEMBER_DATE, MBMEMBMASTER.card_person,trunc((months_between(sysdate,MBMEMBMASTER.BIRTH_DATE))/12) as ageofemp FROM MBMEMBMASTER, MBUCFMEMBGROUP, MBUCFPRENAME WHERE ( MBUCFMEMBGROUP.MEMBGROUP_CODE = MBMEMBMASTER.MEMBGROUP_CODE ) and ( MBMEMBMASTER.PRENAME_CODE = MBUCFPRENAME.PRENAME_CODE ) and ( ( MBMEMBMASTER.MEMBER_NO = '" + memberNo + "' ) )"; Sdt dt = ta.Query(sql); if (dt.Next()) { // 2.1 เริ่มนำจาก Sdt dt มายิงให้กับ dwMain (*Sdt inherit มาจาก DataTable) dwMain.SetItemString(1, "full_name", dt.GetString("PRENAME_SHORT") + dt.GetString("memb_name") + " " + dt.GetString("memb_surname")); //dwMain.SetItemString(1, "membgroup_code", dt.GetString("MEMBGROUP_CODE")); int year = DateTime.Today.Year - dt.GetDate("birth_date").Year; try { //3. ไป select ข้อมูลหุ้นแล้วยิงใส่ dwMain String sqlShare = @" select insgroupdoc_no,startsafe_date,marrige_name,inspayment_amt,birth_date,insmemb_type, trunc((months_between(sysdate,insgroupmaster.BIRTH_DATE))/12) as ageofemp from insgroupmaster where member_no = '" + memberNo + "' and instype_code = '06'"; Sdt dtSumShare = ta.Query(sqlShare); if (dtSumShare.Next()) { //3.1 ยิงค่าใส่ dwMain dwMain.SetItemString(1, "insgroupdoc_no", dtSumShare.GetString("insgroupdoc_no")); dwMain.SetItemDateTime(1, "startsafe_date", dtSumShare.GetDate("startsafe_date")); dwMain.SetItemString(1, "marrige_name", dtSumShare.GetString("marrige_name")); dwMain.SetItemDecimal(1, "inspayment_amt", dtSumShare.GetDecimal("inspayment_amt")); dwMain.SetItemDateTime(1, "birth_date", dtSumShare.GetDate("birth_date")); dwMain.SetItemDecimal(1, "ageofemp", dtSumShare.GetDecimal("ageofemp")); dwMain.SetItemDecimal(1, "insmemb_type", dt.GetDecimal("insmemb_type")); } else throw new Exception(); } catch { dwMain.SetItemDecimal(1, "inspayment_amt", 0m); dwMain.SetItemString(1, "insgroupdoc_no", ""); //dwMain.SetItemDateTime(1, "startsafe_date", DateTime.Now); dwMain.SetItemString(1, "marrige_name", ""); dwMain.SetItemDateTime(1, "birth_date", dt.GetDate("birth_date")); dwMain.SetItemDecimal(1, "ageofemp", dt.GetDecimal("ageofemp")); dwMain.SetItemDecimal(1, "insmemb_type", 1); } //5. เมื่อยิงค่าตั้งต้นของ dwMain ครบแล้วให้ export xml ของ dwMain ส่งไปให้หน้า UI resu[0] = dwMain.Describe("DataWindow.Data.XML"); ta.Close(); } else { throw new Exception("ไม่มีสมาชิก " + memberNo + " อยู่ในระบบ"); } } catch (Exception ex) { try { ta.Close(); } catch { } throw ex; } return resu; } //********* // Wu ปิดประกันตามวาระ public int MbResign(String pbl, String xmlData) { String sqlText; int li_row, li_rowcount; Sta ta = new Sta(connectionString); try { ta.Transection(); DataStore dw_data = new DataStore(pbl, "d_ins_mbresign_data"); dw_data.ImportString(xmlData, FileSaveAsType.Xml); Decimal REQRESIGN_STATUS = 1; Decimal ldc_flag, ldc_mbtype, INSCOST_BALANCE, INSGROUP_ID; String ls_memberno, INSREQRESIGN_NO, INSTYPE_CODE, INSGROUPDOC_NO, INSRESIGN_CASE; DateTime RESIGN_DATE; li_rowcount = dw_data.RowCount; for (li_row = 1; li_row <= li_rowcount; li_row++) { ldc_flag = dw_data.GetItemDecimal(li_row, "item_flag"); if (ldc_flag == 1) { ls_memberno = dw_data.GetItemString(li_row, "member_no"); ldc_mbtype = dw_data.GetItemDecimal(li_row, "insmemb_type"); INSREQRESIGN_NO = ""; INSREQRESIGN_NO = new DocumentControl().NewDocumentNo(DocumentTypeCode.INSCLDOCNO, DateTime.Today.Year + 543, ta); INSTYPE_CODE = dw_data.GetItemString(li_row, "instype_code"); INSGROUPDOC_NO = dw_data.GetItemString(li_row, "insgroupdoc_no"); INSRESIGN_CASE = dw_data.GetItemString(li_row, "insresign_case"); CultureInfo lci_machine = CultureInfo.CurrentCulture; RESIGN_DATE = dw_data.GetItemDateTime(li_row, "resign_date"); RESIGN_DATE = getDateTimeCulture(RESIGN_DATE.Day, RESIGN_DATE.Month, RESIGN_DATE.Year, lci_machine); INSCOST_BALANCE = dw_data.GetItemDecimal(li_row, "inscost_blance"); INSGROUP_ID = dw_data.GetItemDecimal(li_row, "insgroup_id"); sqlText = @" INSERT INTO INSREQRESIGN ( INSREQRESIGN_NO, INSTYPE_CODE, MEMBER_NO, INSGROUPDOC_NO, LEVEL_CODE, OPERATE_DATE, MBDEAD_DATE, SENDDOC_DATE, INSCOST_BALANCE, INSSTK_BLANCE, INSRESIGN_CASE, REMARK, ENTRY_DATE, ENTRY_ID, REQRESIGN_STATUS, COOPBRANCH_ID, AFINE_BLANCE, CLOSEINS_DATE, CLOSEINS_ID, COMPACCEPT_DATE, APVIMMEDIATE_FLAG, INSGROUP_ID ) VALUES ( '" + INSREQRESIGN_NO + @"', '" + INSTYPE_CODE + @"', '" + ls_memberno + @"', '" + INSGROUPDOC_NO + @"', null, to_date('" + RESIGN_DATE.ToString("dd/MM/yyyy") + @"','dd/mm/yyyy'), null,null, " + INSCOST_BALANCE + @", null, '" + INSRESIGN_CASE + @"', null, sysdate, null, " + REQRESIGN_STATUS + @", null, null, null, null, null, null , " + INSGROUP_ID.ToString() + ")"; ta.Exe(sqlText); sqlText = "UPDATE INSGROUPMASTER SET INSMEMB_STATUS = 0 WHERE INSGROUP_ID = " + INSGROUP_ID.ToString(); ta.Exe(sqlText); } } ta.Commit(); ta.Close(); } catch (Exception ex) { try { ta.RollBack(); } catch { } try { ta.Close(); } catch { } throw ex; } return 1; } } }