public static bool InsertMBASEExpress(ISession session, double trxid, string fitur, ExpressProcess exprocess, out String OutMsg, out int idexpress) { bool result = true; OutMsg = ""; idexpress = 0; try { #region Check is transaction valid string theQuery = "select id from expressprocess where trxid = '" + trxid.ToString() + "' and status not in (" + ParameterHelper.SCH_MBASE_FAILED + "," + ParameterHelper.SCH_MBASE_SUCCESS + ") limit 1;"; string theId = ""; string msg = ""; if (!ExecuteQueryValue(session, theQuery, out theId, out msg)) { result = false; OutMsg = "Exception on checking duplicate trx - Message: " + msg; return(result); } else { if (!String.IsNullOrEmpty(theId)) { result = false; idexpress = int.Parse(theId); OutMsg = "Transaction already exist: " + idexpress; return(result); } } #endregion } catch (Exception ex) { } try { #region Mandatory /*Trx ID*/ if (string.IsNullOrEmpty(trxid.ToString())) { OutMsg = "trx id is null or empty"; result = false; return(result); } else { exprocess.TrxID = trxid.ToString(); } /*Trx Type*/ if (string.IsNullOrEmpty(fitur)) { OutMsg = "trx type is null or empty"; result = false; return(result); } else { exprocess.TrxType = fitur; } /*Tanggal Transaksi*/ if (exprocess.Tanggal_Transaksi == DateTime.MinValue) { OutMsg = "tanggal transaksi is null or empty"; result = false; return(result); } /*Sarana Transaksi*/ if (string.IsNullOrEmpty(exprocess.Sarana_Transaksi)) { OutMsg = "sarana transaksi is null or empty"; result = false; return(result); } /*Kode Transaksi*/ if (string.IsNullOrEmpty(exprocess.Kode_Transaksi)) { OutMsg = "kode transaksi is null or empty"; result = false; return(result); } /*Peserta Pengirim Asal*/ if (string.IsNullOrEmpty(exprocess.Peserta_Pengirim_Asal)) { OutMsg = "peserta pengirim asal is null or empty"; result = false; return(result); } /*Sandi Kota Asal*/ if (string.IsNullOrEmpty(exprocess.Sandi_Kota_Asal)) { OutMsg = "sandi kota asal is null or empty"; result = false; return(result); } /*Peserta Pengirim Penerus*/ if (string.IsNullOrEmpty(exprocess.Peserta_Pengirim_Penerus)) { OutMsg = "peserta pengirim penerus is null or empty"; result = false; return(result); } /*Peserta Penerima Akhir*/ if (string.IsNullOrEmpty(exprocess.Peserta_Penerima_Akhir)) { OutMsg = "peserta penerima akhir is null or empty"; result = false; return(result); } /*Sandi Kota Tujuan*/ if (string.IsNullOrEmpty(exprocess.Sandi_Kota_Tujuan)) { OutMsg = "sandi kota tujuan is null or empty"; result = false; return(result); } /*Peserta Penerima Penerus*/ if (string.IsNullOrEmpty(exprocess.Peserta_Penerima_Penerus)) { OutMsg = "peserta penerima penerus is null or empty"; result = false; return(result); } /*Jenis Nasabah*/ if (string.IsNullOrEmpty(exprocess.Jenis_Nasabah)) { OutMsg = "jenis nasabah is null or empty"; result = false; return(result); } /*No Rekening Pengirim*/ if (string.IsNullOrEmpty(exprocess.No_Rekening_Pengirim)) { OutMsg = "no rekening pengirim is null or empty"; result = false; return(result); } /*Nama Pengirim*/ if (string.IsNullOrEmpty(exprocess.Nama_Pengirim)) { OutMsg = "nama pengirim is null or empty"; result = false; return(result); } /*No Identitas Pengirim*/ if (string.IsNullOrEmpty(exprocess.No_Identitas_Pengirim)) { OutMsg = "no identitas pengirim is null or empty"; result = false; return(result); } /*Jenis Nasabah Pengirim*/ if (string.IsNullOrEmpty(exprocess.Jenis_Nasabah_Pengirim)) { OutMsg = "jenis nasabah pengirim is null or empty"; result = false; return(result); } /*Status Kependudukan Pengirim*/ if (string.IsNullOrEmpty(exprocess.Status_Kependudukan_Pengirim)) { OutMsg = "Status Kependudukan Pengirim is null or empty"; result = false; return(result); } /*Alamat Pengirim*/ if (string.IsNullOrEmpty(exprocess.Alamat_Pengirim)) { OutMsg = "alamat pengirim is null or empty"; result = false; return(result); } /*No Rekening Tujuan*/ if (string.IsNullOrEmpty(exprocess.No_Rekening_Tujuan)) { OutMsg = "no rekening tujuan is null or empty"; result = false; return(result); } /*Nama Penerima*/ if (string.IsNullOrEmpty(exprocess.Nama_Penerima)) { OutMsg = "nama penerima is null or empty"; result = false; return(result); } /*Jenis Nasabah Penerima*/ if (string.IsNullOrEmpty(exprocess.Jenis_Nasabah_Penerima)) { OutMsg = "jenis nasabah penerima is null or empty"; result = false; return(result); } /*Status Kependudukan Penerima*/ if (string.IsNullOrEmpty(exprocess.Status_Kependudukan_Penerima)) { OutMsg = "status kependudukan penerima is null or empty"; result = false; return(result); } /*Alamat Penerima*/ if (string.IsNullOrEmpty(exprocess.Alamat_Penerima)) { OutMsg = "alamat penerima is null or empty"; result = false; return(result); } /*Cara Penyetoran*/ if (string.IsNullOrEmpty(exprocess.Cara_Penyetoran)) { OutMsg = "cara penyetoran is null or empty"; result = false; return(result); } /*No Rekening Asal*/ if (string.IsNullOrEmpty(exprocess.No_Rekening_Asal)) { OutMsg = "no rekening asal is null or empty"; result = false; return(result); } /*Nama*/ if (string.IsNullOrEmpty(exprocess.Nama)) { OutMsg = "nama transaksi is null or empty"; result = false; return(result); } /*Jumlah Dikirim*/ if (string.IsNullOrEmpty(exprocess.Jumlah_Dikirim)) { OutMsg = "jumlah dikirim is null or empty"; result = false; return(result); } /*Currency Dikirim*/ if (string.IsNullOrEmpty(exprocess.Currency_Dikirim)) { if (exprocess.Currency_Dikirim != "IDR") { OutMsg = "currency dikirim is not IDR"; } else { OutMsg = "currency dikirim is null or empty"; } result = false; return(result); } /*Kode Transaksi*/ if (string.IsNullOrEmpty(exprocess.Kode_Transaksi)) { OutMsg = "kode transaksi is null or empty"; result = false; return(result); } /*Biaya*/ if (string.IsNullOrEmpty(exprocess.Biaya)) { OutMsg = "biaya is null or empty"; result = false; return(result); } /*Total*/ if (string.IsNullOrEmpty(exprocess.Total)) { OutMsg = "total transaksi is null or empty"; result = false; return(result); } /*Currency Total*/ if (string.IsNullOrEmpty(exprocess.Currency_Total)) { if (exprocess.Currency_Total != "IDR") { OutMsg = "currency total is not IDR"; } else { OutMsg = "currency total is null or empty"; } result = false; return(result); } /*Kanca Asal*/ if (string.IsNullOrEmpty(exprocess.Kanca_Asal)) { OutMsg = "kanca asal is null or empty"; result = false; return(result); } /*User Approve*/ if (string.IsNullOrEmpty(exprocess.User_Approve)) { OutMsg = "user approve is null or empty"; result = false; return(result); } /*Cabang*/ if (string.IsNullOrEmpty(exprocess.Cabang)) { OutMsg = "cabang is null or empty"; result = false; return(result); } /*No Remittance*/ if (string.IsNullOrEmpty(exprocess.No_Remitance)) { OutMsg = "no remittance is null or empty"; result = false; return(result); } /*Jurnal Seq*/ if (string.IsNullOrEmpty(exprocess.Jurnal_Seq)) { OutMsg = "jurnal seq is null or empty"; result = false; return(result); } /*Nama Bank Penerima*/ if (string.IsNullOrEmpty(exprocess.Nama_Bank_Penerima)) { OutMsg = "nama bank penerima is null or empty"; result = false; return(result); } /*Provinsi Penerima*/ if (string.IsNullOrEmpty(exprocess.Provinsi_Penerima)) { OutMsg = "provinsi penerima is null or empty"; result = false; return(result); } /*Jenis Badan Usaha*/ if (string.IsNullOrEmpty(exprocess.Jenis_Badan_Usaha)) { OutMsg = "jenis badan usaha is null or empty"; result = false; return(result); } /*Kode Bank Brinets Penerima*/ if (string.IsNullOrEmpty(exprocess.Kode_Bank_Brinets_Penerima)) { OutMsg = "kode bank brinets penerima is null or empty"; result = false; return(result); } /*Channel*/ if (string.IsNullOrEmpty(exprocess.Channel)) { OutMsg = "channel is null or empty"; result = false; return(result); } #endregion exprocess.CreatedTime = DateTime.Now; session.Save(exprocess); idexpress = exprocess.Id; session.Flush(); result = true; } catch (Exception e) { OutMsg = "Exception " + e.Message + "||" + e.InnerException + "||" + e.StackTrace; result = false; } return(result); }
private void Commitjob_transaction(ILog log) { IList <TrxPayrollDetail> txList = session.CreateSQLQuery("select * from trxpayrolldetails where status = ? and instructioncode in ('" + TotalOBHelper.RTGS + "','" + TotalOBHelper.LLG + "') and lastupdate < now()") .AddEntity(typeof(TrxPayrollDetail)) .SetInt32(0, ParameterHelper.TRXSTATUS_PAYROLLNEW_CHECK_MBASEANDWS_RTGSANDLLG) .List <TrxPayrollDetail>(); if (txList.Count > 0) { foreach (TrxPayrollDetail pd in txList) { Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " - " + SchCode + " === Start Check TrxId: " + pd.Id); try { /*Modified by Mettaw : 1 Oct 2019 * * Terjadi perubahan Flow MBASE pada Payroll LLG (Kliring) namun tidak pada Payroll RTGS * Code Sedikit dirombak , bila RTGS pakai flow Lama, yaitu Check ke tbl MBASEandWS * * * Sedangkan LLG di Check ke tbl baru ExpressProcess. * * */ if (pd.InstructionCode == TotalOBHelper.RTGS) { #region Check MBASEandWS // proses update Mbaseandws mw = session.Load <Mbaseandws>(pd.IdMBASEAndWS); if (mw.Status == ParameterHelper.SCH_BOOKSUCCESS) { log.Info(SchCode + " === (TrxID " + pd.Id + ") === MBASEANDWS SUCCESS"); pd.Status = ParameterHelper.TRXSTATUS_SUCCESS; pd.Description = mw.Description; pd.LastUpdate = DateTime.Now; session.Update(pd); session.Flush(); } else if (mw.Status == ParameterHelper.SCH_BOOKFAILED) { Booking book = session.Load <Booking>(pd.IdBooking); if (book.Status == ParameterHelper.SCH_BOOKSUCCESS) { if (book.StatusEC == ParameterHelper.SCH_ECSUCCESS) { // transaksi berhasil dan sudah sukses EC pd.Status = ParameterHelper.TRXSTATUS_REJECT; pd.Description = mw.Description; pd.LastUpdate = DateTime.Now; session.Update(pd); session.Flush(); } else if (book.StatusEC == 0) { book.StatusEC = ParameterHelper.SCH_ECWAITING; session.Update(book); session.Flush(); } } else { pd.Status = ParameterHelper.TRXSTATUS_REJECT; pd.Description = mw.Description; pd.LastUpdate = DateTime.Now; session.Update(pd); session.Flush(); } } else { Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " - " + SchCode + " === TrxId: " + pd.Id + " Not Finished Yet"); } #endregion } else if (pd.InstructionCode == TotalOBHelper.LLG) { #region Check ExpressProcess ExpressProcess exprocess = session.CreateCriteria(typeof(ExpressProcess)) .Add(Expression.Eq("TrxID", pd.Id.ToString())) .UniqueResult <ExpressProcess>(); if (exprocess != null) { log.Info(SchCode + " === (TrxID " + pd.Id + " ) Begin Check MBASE Process"); if (exprocess.Status == ParameterHelper.SCH_MBASE_PROCESS) /*2: PROCESS MBASE*/ { #region COMPLETE /*Trx Payroll*/ pd.Status = ParameterHelper.TRXSTATUS_SUCCESS; pd.Description = exprocess.Description; pd.LastUpdate = DateTime.Now; /*Express Process*/ exprocess.Status = ParameterHelper.SCH_MBASE_SUCCESS; /*3: Success*/ exprocess.Description = ParameterHelper.MBASEDESC_SUCCESSMBASE; session.Update(exprocess); session.Update(pd); session.Flush(); log.Info(SchCode + " === (TrxID " + pd.Id + ") === Check MBASE Express SUCCESS"); #endregion } else if (exprocess.Status == ParameterHelper.SCH_MBASE_FAILED) /*4: FAILED MBASE*/ { #region REVERSAL Booking book = session.Load <Booking>(pd.IdBooking); if (book.Status == ParameterHelper.SCH_BOOKSUCCESS) { if (book.StatusEC == ParameterHelper.SCH_ECSUCCESS) { #region COMPLETE // transaksi berhasil dan sudah sukses EC pd.Status = ParameterHelper.TRXSTATUS_REJECT; pd.Description = exprocess.Description; pd.LastUpdate = DateTime.Now; session.Update(pd); session.Flush(); #endregion } else if (book.StatusEC == 0) { #region UPDATE EC book.StatusEC = ParameterHelper.SCH_ECWAITING; session.Update(book); session.Flush(); #endregion } else { #region ROLLBACK pd.Status = ParameterHelper.TRXSTATUS_PAYROLLNEW_CHECK_MBASEANDWS_RTGSANDLLG; pd.Description = "proses express".ToUpper(); pd.LastUpdate = DateTime.Now; session.Update(pd); session.Flush(); #endregion } } else { pd.Status = ParameterHelper.TRXSTATUS_REJECT; pd.Description = exprocess.Description; pd.LastUpdate = DateTime.Now; session.Update(pd); session.Flush(); } #endregion } else { log.Error(SchCode + " === " + SchName + " Transaksi menunggu diproses "); } } else { log.Error(SchCode + " === " + SchName + " Data ExpressPrcess tidak ditemukan "); } #endregion } else { log.Error(SchCode + " === " + SchName + " InstructionCode tidak valid "); } Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " - " + SchCode + " === Finish Check TrxId: " + pd.Id); } catch (Exception ex) { Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " - " + SchCode + " === Exception Check TrxId: " + pd.Id); Console.WriteLine("Exception Message: " + ex.Message); Console.WriteLine("Exception StackTrace: " + ex.StackTrace); } } } else { Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " - " + SchCode + " === Tidak ada Trx yang diproses"); } }
private void Commitjob_transaction(ILog log) { IList <TrxPayrollDetail> txList = session.CreateSQLQuery("select * from trxpayrolldetails where status = ? and instructioncode in ('" + TotalOBHelper.RTGS + "','" + TotalOBHelper.LLG + "') and lastupdate < now()") .AddEntity(typeof(TrxPayrollDetail)) .SetInt32(0, ParameterHelper.TRXSTATUS_PAYROLLNEW_POST_MBASEANDWS_RTGSANDLLG) .List <TrxPayrollDetail>(); if (txList.Count > 0) { foreach (TrxPayrollDetail o in txList) { try { #region PARAMETERS int outid = 0; string outmsg = ""; Double _amt = 0; TrxPayroll p = o.Parent; ClientAccount clientAcc = new ClientAccount(); Booking b = session.Load <Booking>(o.IdBooking); ClientMatrix cm = session.Load <ClientMatrix>(p.ClientID); Client client = session.Load <Client>(p.ClientID); AuthorityHelper ah = new AuthorityHelper(cm.Matrix); if (o.InstructionCode.Equals(TotalOBHelper.RTGS)) { _amt = Double.Parse(ah.GetTransactionFee(session, 100, 2).ToString()); } else if (o.InstructionCode.Equals(TotalOBHelper.LLG)) { _amt = Double.Parse(ah.GetTransactionFee(session, 100, 3).ToString()); } int fid = 100; string fitur = TotalOBHelper.Payroll; string debitAcc = ""; string debitAccName = ""; string creditAcc = o.Account; string creditAccName = o.Name; string benAddress = o.BenAddress; string remark = o.TrxRemark.Trim(); string bucketAmt = b.Bucket; string chargeType = "OUR"; if (b.FeeBen > 0) { chargeType = "BEN"; } string debitAccAddress = client.Address1; try { IList <ClientAccount> clAccs = session.CreateCriteria(typeof(ClientAccount)) .Add(Expression.Eq("Number", p.DebitAccount)) .Add(Expression.Eq("Pid", p.ClientID)) .Add(Expression.Eq("StatusDel", 0)) .SetMaxResults(1) .List <ClientAccount>(); clientAcc = clAccs[0]; debitAcc = p.DebitAccount; debitAccName = clientAcc.Name; } catch { } #endregion #region PROCESS INSERT /*Modified by Mettaw : 1 Oct 2019 * * Terjadi perubahan Flow MBASE pada Payroll LLG (Kliring) namun tidak pada Payroll RTGS * Code Sedikit dirombak , bila RTGS pakai flow Lama, yaitu Insert ke tbl MBASEandWS * dan dimakan sama Sch MBASEAndWS * * Sedangkan LLG di insert ke tbl baru ExpressProcess. * dan dimakan sama ExpressProcessSch * */ if (o.InstructionCode.Equals(TotalOBHelper.RTGS)) { #region Insert to MBASEandWS log.Info(SchCode + " === (TrxID " + o.Id + ") === Begin Posting to MBASEANDWS"); if (MBASEAndWSHelper.insertMbaseandws(session, int.Parse(o.Id.ToString()), fid, fitur, p.ClientID, o.InstructionCode, debitAcc, debitAccName, creditAcc, creditAccName, benAddress, remark, bucketAmt, o.IdBooking, o.RemittanceNumber, o.BankCode.Trim(), b.JournalSeq.Trim(), chargeType, _amt, debitAccAddress, out outid, out outmsg)) { o.Status = ParameterHelper.TRXSTATUS_PAYROLLNEW_CHECK_MBASEANDWS_RTGSANDLLG; o.IdMBASEAndWS = outid; o.Description = "proses mbaseandws".ToUpper(); log.Info(SchCode + " === (TrxID " + o.Id + ") === Posting to MBASEANDWS SUCCESS"); } else { if (outid > 0) { o.Status = ParameterHelper.TRXSTATUS_PAYROLLNEW_CHECK_MBASEANDWS_RTGSANDLLG; o.IdMBASEAndWS = outid; o.Description = "proses mbaseandws".ToUpper(); log.Info(SchCode + " === (TrxID " + o.Id + ") === Already Exist, Posting to MBASEANDWS SUCCESS"); } else { //gagal insert Mbaseandws o.LastUpdate = DateTime.Now.AddMinutes(2); log.Error(SchCode + " === (TrxID " + o.Id + ") === Posting to MBASEANDWS FAILED: " + outmsg); } } session.Update(o); session.Flush(); log.Info(SchCode + " === (TrxID " + o.Id + ") === End Posting to MBASEANDWS"); #endregion } else if (o.InstructionCode.Equals(TotalOBHelper.LLG)) { #region Insert to ExpressProcess log.Info(SchCode + " === (TrxID " + o.Id + ") === Begin Posting to ExpressProcess"); #region PARAMETERS FOR ExpressProcess ExpressProcess exprocess = new ExpressProcess(); String _fitur = "PAYROLL LLG"; BankKliring bank = session.CreateCriteria(typeof(BankKliring)) .Add(Expression.Eq("BankCode", o.Account)) .UniqueResult <BankKliring>(); double _instamount = o.Amount; string _instcur = SchHelper._Currency(o.RemittanceNumber); string _benbankname = bank.Nama; #endregion #region ADD ExpressProcess /*New added by Mettaw : * tampung data disini... untuk parameter WS Express * dan insert ke tbl expressprocess * 9 september 2019*/ /*DATA MANDATORY*/ exprocess.Tanggal_Transaksi = DateTime.Now; exprocess.Sarana_Transaksi = "2"; exprocess.Kode_Transaksi = "50"; exprocess.Peserta_Pengirim_Asal = "BRINIDJA"; exprocess.Sandi_Kota_Asal = "0391"; exprocess.Peserta_Pengirim_Penerus = "BRINIDJA"; exprocess.Peserta_Penerima_Akhir = bank.BankCode; exprocess.Sandi_Kota_Tujuan = bank.SandiKota; exprocess.Peserta_Penerima_Penerus = bank.BankCode; exprocess.Jenis_Nasabah = "1"; exprocess.No_Rekening_Pengirim = debitAcc; exprocess.Nama_Pengirim = debitAccName; exprocess.No_Identitas_Pengirim = "NIKPENGRMCMS"; exprocess.Jenis_Nasabah_Pengirim = "1"; exprocess.Status_Kependudukan_Pengirim = "1"; exprocess.Alamat_Pengirim = client.Address1; exprocess.No_Rekening_Tujuan = creditAcc; exprocess.Nama_Penerima = creditAccName; exprocess.Jenis_Nasabah_Penerima = "1"; exprocess.Status_Kependudukan_Penerima = "1"; exprocess.Alamat_Penerima = benAddress; exprocess.Cara_Penyetoran = "DEBET_REK"; exprocess.No_Rekening_Asal = debitAcc; exprocess.Nama = debitAccName; exprocess.Jumlah_Dikirim = _instamount.ToString("0.00"); exprocess.Currency_Dikirim = _instcur; exprocess.Biaya = _amt.ToString("0.00"); exprocess.Total = (double.Parse(_instamount.ToString()) + _amt).ToString("0.00"); exprocess.Currency_Total = _instcur; exprocess.Kanca_Asal = "CMS"; exprocess.User_Approve = "0374891"; exprocess.Cabang = "0374"; exprocess.No_Remitance = o.RemittanceNumber; exprocess.Jurnal_Seq = o.IdBooking.ToString(); exprocess.Nama_Bank_Penerima = _benbankname; exprocess.Provinsi_Penerima = bank.SandiPropinsi; exprocess.Jenis_Badan_Usaha = bank.JenisUsaha.Trim(); exprocess.Kode_Bank_Brinets_Penerima = bank.Code; exprocess.Channel = "CMS"; exprocess.Booking_Id = o.IdBooking.ToString(); /*DATA TIDAK MANDATORY*/ exprocess.Telepon_Pengirim = "TELPPNGRMCMS"; exprocess.No_Identitas_Penerima = "NIKPENRMMCMS"; exprocess.Telepon_Penerima = "TELPPNRMCMS"; exprocess.NoCekBG = ""; exprocess.Berita = o.TrxRemark; exprocess.Sumber_Dana = ""; exprocess.Keperluan = ""; exprocess.Pekerjaan = ""; exprocess.Jabatan = ""; exprocess.Ttl = ""; exprocess.User_Id = ""; exprocess.Cif = ""; exprocess.Kode_Pos_Pengirim = ""; exprocess.Kode_Pos_Penerima = ""; exprocess.Remark = remark; #endregion #region PROCESS log.Info(SchCode + " === (TrxID " + o.Id + ") === DO INSERT TO ExpressProcess"); if (MBASEHelper.InsertMBASEExpress(session, o.Id, _fitur, exprocess, out outmsg, out outid)) { #region COMPLETE /*Express Process*/ exprocess.Status = ParameterHelper.SCH_MBASE_WAITING; /*1: Waiting*/ exprocess.Description = ParameterHelper.MBASEDESC_WAITINGMBASE; exprocess.LastUpdate = DateTime.Now; session.Update(exprocess); /*Trx Payroll*/ o.Status = ParameterHelper.TRXSTATUS_PAYROLLNEW_CHECK_MBASEANDWS_RTGSANDLLG; o.Description = "proses express".ToUpper(); log.Info(SchCode + " === (TrxID " + o.Id + ") === Posting to ExpressProcess SUCCESS"); #endregion } else { if (outid > 0) { #region COMPLETE /*bila gagal validasi insert, tapi id sudah terbuat, update aja coy */ /*Express Process*/ ExpressProcess ex = session.Load <ExpressProcess>(outid); ex.Status = ParameterHelper.SCH_MBASE_WAITING; /*1: Waiting MBASE*/ ex.Description = ParameterHelper.MBASEDESC_WAITINGMBASE; ex.LastUpdate = DateTime.Now; session.Update(ex); /*Trx Payroll*/ o.Status = ParameterHelper.TRXSTATUS_PAYROLLNEW_CHECK_MBASEANDWS_RTGSANDLLG; o.Description = "proses express".ToUpper(); log.Info(SchCode + " === (TrxID " + o.Id + ") === Already Exist, Posting to ExpressProcess SUCCESS"); #endregion } else { #region REVERSAL PROCESS /*Gagal Insert to ExpressProcess, do Reversal.*/ /*Booking*/ Booking book = session.Load <Booking>(o.IdBooking); book.StatusEC = ParameterHelper.SCH_ECWAITING; /*Trx Payroll*/ o.Status = ParameterHelper.TRXSTATUS_REJECT; o.Description = "REJECTED"; o.LastUpdate = DateTime.Now; session.Update(book); session.Flush(); log.Info(SchCode + " === (TrxID " + o.Id + " ) Insert to ExpressProcess FAILED: " + outmsg + ". DO Reject & REVERSAL"); #endregion } } session.Update(o); session.Flush(); log.Info(SchCode + " === (TrxID " + o.Id + ") === End Posting to ExpressProcess"); #endregion #endregion } else { log.Error(SchCode + " === " + SchName + " IntructionCode tidak terdefenisi "); } #endregion } catch (Exception ex) { log.Error(SchCode + " === (TrxID " + o.Id + ") === Exception: " + ex.Message + " >>> " + ex.InnerException + " >>> " + ex.StackTrace); } } } else { Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " - " + SchCode + " === Tidak ada Trx yang diproses"); } }