コード例 #1
0
    void Start()
    {
        BtnSprites = new List <UISprite> ();
        BtnSprites.Add(Btn_VideoCruise);
        BtnSprites.Add(Btn_PersonalManage);
        BtnSprites.Add(Btn_SystemManage);
        BtnSprites.Add(Btn_AccountManage);

        DicBtnShade = new Dictionary <UISprite, GameObject>();
        DicBtnShade.Add(Btn_VideoCruise, GetBtnShadeSprite(Btn_VideoCruise));
        DicBtnShade.Add(Btn_PersonalManage, GetBtnShadeSprite(Btn_PersonalManage));
        DicBtnShade.Add(Btn_SystemManage, GetBtnShadeSprite(Btn_SystemManage));
        DicBtnShade.Add(Btn_AccountManage, GetBtnShadeSprite(Btn_AccountManage));

        Panels = new List <GameObject> ();
        Panels.Add(Panel_VideoCruise);
        Panels.Add(Panel_PersonalManage);
        Panels.Add(Panel_SystemManage);
        Panels.Add(Panel_AccountManage);
        if (AuthorityHelper.NotAuthority(AuthorityHelper.DEVICE_MANAGEMENT) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.PATROL_PLAN_MANAGEMENT) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.EVACUATE_AREA_MANAGEMENT) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.EVACUATE_PLAN_MANAGEMENT))
        {
            Btn_SystemManage.enabled = false;
        }
        if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_BROWSE) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.USER_GROUP_INFO_BROWSE) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.HISTORY_MANAGEMENT))
        {
            Btn_AccountManage.enabled = false;
        }
    }
コード例 #2
0
    public void Initialize()
    {
        ClearSelect();
        GroupSelect(false, false);
        AccountSelect(false, false);
        LogSelect(false, false);

        if (AuthorityHelper.HasAuthority(AuthorityHelper.HISTORY_MANAGEMENT))
        {
            Click(logBtn);
            logBtn.GetComponent <BoxCollider>().enabled = true;
            logBtn.GetComponent <UIButton>().enabled    = true;
        }
        if (AuthorityHelper.HasAuthority(AuthorityHelper.USER_INFO_BROWSE))
        {
            Click(accountBtn);
            accountBtn.GetComponent <BoxCollider>().enabled = true;
            accountBtn.GetComponent <UIButton>().enabled    = true;
        }
        if (AuthorityHelper.HasAuthority(AuthorityHelper.USER_GROUP_INFO_BROWSE))
        {
            Click(groupBtn);
            groupBtn.GetComponent <BoxCollider>().enabled = true;
            groupBtn.GetComponent <UIButton>().enabled    = true;
        }
    }
コード例 #3
0
    /// <summary>
    /// 判断用户是否有相应的操作权限,如果没有则将相应的按钮禁用掉
    /// </summary>
    void OnEnable()
    {
        if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_BROWSE) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_MANAGEMENT))
        {
            BtnUserManage.SetActive(false);
        }

        if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_GROUP_INFO_BROWSE) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.USER_GROUP_MANAGEMENT))
        {
            BtnGroupManage.SetActive(false);
        }

        if (AuthorityHelper.NotAuthority(AuthorityHelper.EVACUATE_PLAN_MANAGEMENT))
        {
            BtnCruiseManage.SetActive(false);
        }

        if (AuthorityHelper.NotAuthority(AuthorityHelper.DEVICE_MANAGEMENT))
        {
            BtnDeviceMange.SetActive(false);
        }


        if (AuthorityHelper.NotAuthority(AuthorityHelper.HISTORY_MANAGEMENT))
        {
            BtnLogManage.SetActive(false);
        }
    }
コード例 #4
0
 void Start()
 {
     //如果用户没有管理用的权限则把相应的输入框禁用掉
     if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_MANAGEMENT))
     {
         ForbiddenModify();
     }
 }
コード例 #5
0
 void Start()
 {
     if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_MANAGEMENT))
     {
         newBtn.SetActive(false);
     }
     Instance = this;
     LoadUserRecord(1000, 1);
 }
コード例 #6
0
        public ActionResult test()
        {
            //var userInfo = this.CurrentUser;
            var path            = Server.MapPath("~/authority.xml");
            var authorityHelper = new AuthorityHelper();
            var menulist        = authorityHelper.ReadAuthorityAll();
            var userId          = "0505";
            var currentUrl      = Request.Url.AbsolutePath;
            var list            = authorityHelper.AuthorityFilterByUser(menulist, userId, currentUrl);

            return(View());
        }
コード例 #7
0
        /// <summary>
        /// 导航 权限加载
        /// </summary>
        /// <returns></returns>
        public ActionResult Menu()
        {
            var userId     = this.CurrentUser.Userid;
            var controller = Request.RequestContext.RouteData.Values["controller"].ToString();
            var action     = Request.RequestContext.RouteData.Values["action"].ToString();
            var url        = string.Format("/{0}/{1}", controller, action);

            var authorityHelper = new AuthorityHelper();
            var menulist        = authorityHelper.ReadAuthorityAll();
            var list            = authorityHelper.AuthorityFilterByUser(menulist, userId, url);

            return(View(list));
        }
コード例 #8
0
 void Start()
 {
     if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_GROUP_MANAGEMENT))
     {
         BtnNewGroup.SetActive(false);
     }
     Instance = this;
     groupUI  = gameObject.GetComponent <GroupManageUIPanelControl>();
     if (groupUI == null)
     {
         Debug.LogError("当前对象缺失 GroupManageUIPanelControl 脚本;对象名:" + gameObject.name);
     }
     LoadGroupRecord();
 }
コード例 #9
0
    //dipake payroll
    private static Boolean CekAuthority(ISession session, int fid, UserMap umap, String trxCode, String valuedate, double trxAmount, String currtrx, out String error)
    {
        bool result = true;

        error = "";
        AuthorityHelper ah = null;

        try
        {
            ClientMatrix cm = session.Load <ClientMatrix>(umap.ClientEntity);
            UserMatrix   um = session.Load <UserMatrix>(umap.UserEntity);

            if (!currtrx.Trim().Equals("IDR"))
            {
                Currency curr = session.CreateCriteria(typeof(Currency))
                                .Add(Expression.Like("Code", "%" + currtrx.Trim() + "%"))
                                .UniqueResult <Currency>();

                trxAmount = double.Parse((trxAmount * (double)curr.BookingRate).ToString());
            }

            //Limit Korporasi
            ah = new AuthorityHelper(cm.Matrix);
            if (!ah.OnUserLimit(fid.ToString(), trxAmount))
            {
                error += "Melewati limit per transaksi corporate*";
            }

            //Limit User
            ah = new AuthorityHelper(um.Matrix);
            if (!ah.OnUserLimit(fid.ToString(), trxAmount))
            {
                error += "Melewati limit per transaksi user*";
            }

            //Total Limit Harian
            String resultLimit = TotalOBHelper.onTotalHarianLimit(session, umap.ClientEntity, trxCode, valuedate, currtrx.Trim(), trxAmount);
            if (!resultLimit.Contains("[VALID]"))
            {
                error += resultLimit + "*";
            }
        }
        catch (Exception he)
        {
            error  = he.Message + "||" + he.StackTrace + "||" + he.InnerException;
            result = false;
        }

        return(result);
    }
コード例 #10
0
        protected bool HasActionPower(bool isShowMsg, string msg = "您没有权限访问该页面!", int width = 260, int height = 100)
        {
            string userId     = this.CurrentUser.Userid;
            string controller = Request.RequestContext.RouteData.Values["controller"].ToString();
            string action     = Request.RequestContext.RouteData.Values["action"].ToString();

            var autHelper = new AuthorityHelper();
            var isPower   = autHelper.HasActionPower(userId, controller, action);

            if (!isPower)
            {
                this.ShowMessage(msg, "系统提示", width: width, height: height);
            }

            return(isPower);
        }
コード例 #11
0
    /// <summary>
    /// 将给定的数据进行相关设置
    /// </summary>
    /// <param name="AuthInfo">Auth info.</param>
    public void SetValue(GroupInfo groupInfo)
    {
        Logger.Instance.WriteLog("初始化用户组信息");
        bool notGroupManageAuth = AuthorityHelper.NotAuthority(AuthorityHelper.USER_GROUP_MANAGEMENT);

        this.groupInfo = groupInfo;
        //LBLGroupName.text = groupInfo.Name;

        //检索当前组的权限信息
        Logger.Instance.WriteLog("检索当前组的权限信息");
        GroupAuthorityDao gaDao = new GroupAuthorityDao();

        gaDao.Select001(groupInfo.Id);
        GroupAuthorityInfos = gaDao.Result;

        //检索所有权限信息
        Logger.Instance.WriteLog("检索所有权限信息");
        AuthorityDao authDao = new AuthorityDao();

        authDao.Select001();
        AuthorityInfos = authDao.Result;

        //生成权限的信息
        foreach (AuthorityInfo aInfo in AuthorityInfos)
        {
            Logger.Instance.WriteLog("生成用户组权限的信息");
            bool b = false;

            ////选中当前组已有的权限
            foreach (GroupAuthorityInfo gaInfo in GroupAuthorityInfos)
            {
                if (aInfo.Id == gaInfo.AuthorityId)
                {
                    b = true;
                    break;
                }
            }

            groupUI.AddAuthority(aInfo, b);

            ////如果当前组已经禁用或者没有管理权限,则禁用权限选中功能
            //if (notGroupManageAuth)
            //{
            //    go.GetComponent<AuthorityItem>().Disable();
            //}
        }
    }
コード例 #12
0
        /// <summary>
        /// 验证是否有权限访问该页面
        /// </summary>
        protected void HasActionPower(string msg = "您没有权限访问该页面!")
        {
            string userId     = this.CurrentUser.Userid;
            string controller = Request.RequestContext.RouteData.Values["controller"].ToString();
            string action     = Request.RequestContext.RouteData.Values["action"].ToString();

            var autHelper = new AuthorityHelper();
            var isPower   = autHelper.HasActionPower(userId, controller, action);

            if (!isPower)
            {
                var       msgT = Server.UrlEncode(msg);
                var       msgD = Server.UrlEncode(string.Empty);
                UrlHelper url  = new UrlHelper(this.Request.RequestContext);
                this.Response.Redirect(url.Action("Index", "Error", new { msgTitle = msgT, msgDetail = msgD }));
            }
        }
コード例 #13
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            string controller = httpContext.Request.RequestContext.RouteData.Values["controller"].ToString();
            string action     = httpContext.Request.RequestContext.RouteData.Values["action"].ToString();

            if (CookieHelper.GetCookie("systemUserAccount", "") == "hrAdmin")
            {
                return(true);
            }

            if (AuthorityHelper.GetPageAuthority((int)AuthorityType.查看, string.Format("/{0}/{1}", controller, action)))
            {
                return(true);
            }

            return(false);
        }
コード例 #14
0
        /// <summary>
        /// 清除用户登录Cookie信息
        /// </summary>
        private void ClearLoginCookie()
        {
            FormsAuthentication.SignOut();

            #region 清除tcid

            HttpCookie aCookie = new HttpCookie("tcid");
            aCookie.Expires = DateTime.Now.AddDays(-1);
            Response.Cookies.Add(aCookie);

            #endregion

            var adminId = AuthorityHelper.GetId();
            if (adminId.HasValue)
            {
                CacheAccess.ClearPermissionCache(adminId.Value);
            }
        }
コード例 #15
0
//	public void Enable(bool isEnable)
//	{
//		if(isEnable)
//		{
//			foreach(UISprite sprite in BtnSprites)
//			{
//				sprite.GetComponent<BoxCollider>().enabled = true;
//			}
//
//		}
//		else
//		{
//			foreach(UISprite sprite in BtnSprites)
//			{
//				sprite.GetComponent<BoxCollider>().enabled = false;
//			}
//		}
//	}
//
    public void UpdateInfo()
    {
        SwitchToVideoCruisePanel();
        Btn_SystemManage.enabled  = true;
        Btn_AccountManage.enabled = true;
        if (AuthorityHelper.NotAuthority(AuthorityHelper.DEVICE_MANAGEMENT) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.PATROL_PLAN_MANAGEMENT) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.EVACUATE_AREA_MANAGEMENT) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.EVACUATE_PLAN_MANAGEMENT))
        {
            Btn_SystemManage.enabled = false;
        }

        if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_BROWSE) &&
            AuthorityHelper.NotAuthority(AuthorityHelper.USER_GROUP_INFO_BROWSE))
        {
            Btn_AccountManage.enabled = false;
        }
    }
コード例 #16
0
 public void UpdateAuthority()
 {
     foreach (UIButton button in DicWindows.Keys)
     {
         button.enabled = true;
         button.GetComponent <BoxCollider>().enabled = true;
     }
     if (AuthorityHelper.NotAuthority(AuthorityHelper.DEVICE_MANAGEMENT))
     {
         DeviceManageButton.enabled = false;
     }
     if (AuthorityHelper.NotAuthority(AuthorityHelper.PATROL_PLAN_MANAGEMENT))
     {
         CruiseManageButton.enabled = false;
     }
     if (AuthorityHelper.NotAuthority(AuthorityHelper.EVACUATE_AREA_MANAGEMENT))
     {
         EvacuateAreaManageButton.enabled = false;
     }
     if (AuthorityHelper.NotAuthority(AuthorityHelper.EVACUATE_PLAN_MANAGEMENT))
     {
         EvacuatePlanManageButton.enabled = false;
     }
 }
コード例 #17
0
    public void ShowUserInfo(UserInfoRecord record)
    {
        if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_BROWSE))
        {
            Debug.Log("无操作权限");
            return;
        }

        Logger.Instance.WriteLog("显示用户相关信息");
        UIRecord = record;
        if (UIRecord.GInfo.Name == "超级管理员" || UIRecord.UBInfo.UserName == DataStore.UserInfo.UserName)
        {
            ForbiddenModify(false);
        }
        else
        {
            if (AuthorityHelper.NotAuthority(AuthorityHelper.USER_INFO_MANAGEMENT))
            {
                ForbiddenModify(false);
            }
            else
            {
                ForbiddenModify(true);
            }
        }

        GroupDao gpDao = new GroupDao();

        gpDao.Select003();
        List <GroupInfo> gpInfos = gpDao.Result;

        foreach (UILabel lb in groups)
        {
            lb.text = string.Empty;
            lb.transform.parent.GetComponent <userGroupItem>().selectToggle.value = false;
        }

        for (int i = 0; i < gpInfos.Count; i++)
        {
            if (i < groups.Length)
            {
                groups[i].text = gpInfos[i].Name;
                groups[i].transform.parent.GetComponent <userGroupItem>().info = gpInfos[i];
                groups[i].transform.parent.GetComponent <userGroupItem>().backGround.SetActive(false);
                groups[i].transform.parent.GetComponent <userGroupItem>().selectGround.SetActive(false);
                if (record.GInfo.Name == gpInfos[i].Name)
                {
                    groups[i].transform.parent.GetComponent <userGroupItem>().selectToggle.value = true;
                }
                else
                {
                    groups[i].transform.parent.GetComponent <userGroupItem>().selectToggle.value = false;
                }
            }
            else
            {
                Logger.Instance.WriteLog("组长度超出目前UI限定数量");
                break;
            }
        }

        accountName.value = UIRecord.UBInfo.UserName;
        createTime.text   = System.DateTime.Parse(UIRecord.UBInfo.CreateTime).ToString("yyyy年MM月dd日");
        accountPsw.value  = "**********";
        userName.value    = UIRecord.UBInfo.RealName;
        userAdd.value     = UIRecord.UBInfo.Address;
        remark.value      = UIRecord.UBInfo.Memo;
        userMobile.value  = UIRecord.UBInfo.Telphone;
    }
コード例 #18
0
        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");
            }
        }
コード例 #19
0
        void IJob.Execute(JobExecutionContext context)
        {
            cfg = new Configuration();
            cfg.AddAssembly("BRIChannelSchedulerNew");
            ILog log = LogManager.GetLogger(typeof(UploadFileResponse));

            Console.WriteLine(schInfo + SchCode + "STARTING SCHEDULLER COPY FILE RESPONSE PAYROLL TO SHARED FOLDER ==");

            try
            {
                if (factory == null)
                {
                    cfg = new Configuration();
                    cfg.AddAssembly("BRIChannelSchedulerNew");
                    factory = cfg.BuildSessionFactory();
                }
                ISession  session     = factory.OpenSession();
                Parameter paramReport = session.Load <Parameter>("FOLDER_PAYROLL_OUTPUT");
                String    pathReport  = paramReport.Data;


                Parameter paramClientId = session.Load <Parameter>("CLIENT_SHARED_FOLDER_PAYROLL");
                String[]  CId           = paramClientId.Data.Split(new String[] { "," }, StringSplitOptions.RemoveEmptyEntries);

                IList <ClientMatrix> cm = session.CreateCriteria(typeof(ClientMatrix))
                                          .Add(Expression.In("Id", CId))
                                          .List <ClientMatrix>();

                foreach (ClientMatrix cm1 in cm)
                {
                    #region ger URL and kawan2
                    log.Info(schInfo + SchCode + "ClientID : " + cm1.Id + " - Start Checking URL");
                    AuthorityHelper ah = new AuthorityHelper(cm1.Matrix);
                    url   = ah.GetTransactionURL(100); //log.Info(url);
                    uid   = ah.GetTransactionUID(100);
                    pass  = ah.GetTransactionPASS(100);
                    pid   = ah.GetTransactionMAKER(100); //log.Info(maker);
                    Email = ah.GetTransactionEmail(100);


                    //get input url
                    if (url.Contains("|"))
                    {
                        string[] url_temp = url.Split('|');
                        url = url_temp[1];
                    }

                    IList <User> us = session.CreateCriteria(typeof(User))
                                      .Add(Expression.Eq("Id", Convert.ToInt32(pid)))
                                      .List <User>();
                    foreach (User u in us)
                    {
                        maker = u.Handle;
                    }
                    log.Info(schInfo + SchCode + "ClientID : " + cm1.Id + " URL found : " + url + " for user : "******"ClientID", cm1.Id))
                                              .Add(Expression.Eq("SharedFolderStatus", "YES|"))
                                              .Add(Expression.Like("FileDescription", maker, MatchMode.Anywhere))
                                              .Add(Expression.Eq("Status", ParameterHelper.TRXSTATUS_REJECT))
                                              .List <TrxPayroll>();

                    if (ohno.Count > 0)
                    {
                        #region Inquiry NACK
                        log.Info(schInfo + SchCode + "Client Id = " + cm1.Id + ". Total File Error = " + ohno.Count.ToString());

                        foreach (TrxPayroll ppp in ohno)
                        {
                            compareTime = DateTime.Compare(ppp.LastUpdate.AddMinutes(5), DateTime.Now);

                            if (compareTime < 0) //lASTUPDATE + 5 < NOW
                            {
                                FileInfo fi             = new FileInfo(ppp.FilePath);
                                string   filename_error = fi.Name;
                                localFile = pathReport + filename_error.Substring(0, filename_error.Length - 4) + ".nack";
                                TextWriter tw1 = new StreamWriter(pathReport + filename_error.Substring(0, filename_error.Length - 4) + ".nack");


                                //generate NACK
                                int counter = 0;
                                IList <TrxPayrollDetail> listPayDetail = ppp.TrxPayrollDetail;

                                foreach (TrxPayrollDetail detail in listPayDetail)
                                {
                                    string a           = "";
                                    string text_status = "";

                                    //handling Exception (,) - Denny
                                    if (detail.Status == ParameterHelper.TRXSTATUS_SUCCESS)
                                    {
                                        if (text_status.Contains(","))
                                        {
                                            text_status = "SUCCESS - " + detail.Description.Replace(",", " ");
                                        }
                                        else
                                        {
                                            text_status = "SUCCESS - " + detail.Description;
                                        }
                                    }
                                    else
                                    {
                                        if (text_status.Contains(","))
                                        {
                                            text_status = "REJECTED - " + detail.Description.Replace(",", " ");
                                        }
                                        else
                                        {
                                            text_status = "REJECTED - " + detail.Description;
                                        }
                                    }

                                    if (counter == 0)
                                    {
                                        a = "NO,NAMA,ACCOUNT,AMOUNT,EMAIL,CUSTOMERREFF,STATUS";
                                        tw1.WriteLine(a);
                                    }

                                    int no_urut = counter + 1;
                                    a = no_urut.ToString() + "," + detail.Name + "," + detail.Account + "," + detail.Amount + "," + detail.Email + "," + detail.CustomerReff + "," + text_status;
                                    tw1.WriteLine(a);

                                    counter++;
                                }
                                string[] batch_desc = ppp.Description.Split('|');//get batch desc
                                tw1.WriteLine(batch_desc[0]);
                                tw1.Close();
                                log.Info(schInfo + SchCode + "Client Id = " + cm1.Id + " File name : " + ppp.FileName + "Generate NACK Success");
                                Ext = ".nack";
                                string outUpload = "";
                                if (UploadToSharedFolder("3", filename_error.Substring(0, filename_error.Length - 4) + ".nack", pathReport, log, session, cm1, ppp.Id, SchCode, schInfo, url, uid, pass, localFile, ppp.SeqNumber, out outUpload))
                                {
                                    ppp.SharedFolderStatus += "1:NOT|";//a.k.a NACK
                                }
                                else
                                {
                                    ppp.SharedFolderStatus += "Exception on NACK||";
                                    ppp.ErrorDescription    = "Exception on NACK||" + outUpload;
                                }
                                //update database
                                session.Update(ppp);
                                session.Flush();
                            }
                            else
                            {
                                log.Info(schInfo + SchCode + "ClientID : " + cm1.Id + " Waiting DateTime to Retry NACK File (5 minutes)");
                            }
                        }
                        #endregion
                    }
                    else
                    {
                        #region Inquiry Exception NACK
                        IList <TrxPayroll> ohnoex = session.CreateCriteria(typeof(TrxPayroll))
                                                    .Add(Expression.Eq("ClientID", cm1.Id))
                                                    .Add(Expression.Eq("SharedFolderStatus", "YES|Exception on NACK||"))
                                                    .Add(Expression.Like("FileDescription", maker, MatchMode.Anywhere))
                                                    .Add(Expression.Eq("Status", ParameterHelper.TRXSTATUS_REJECT))
                                                    .List <TrxPayroll>();
                        if (ohnoex.Count > 0)
                        {
                            //Update status to retry sent response NACK
                            foreach (TrxPayroll ohnoex2 in ohnoex)
                            {
                                ohnoex2.SharedFolderStatus = "YES|";
                                session.Update(ohnoex2);
                                log.Info(schInfo + SchCode + "ClientID  = " + cm1.Id + " Update Exception NACK to Retry again, SUCCESS ");
                            }
                        }
                        #endregion end of Inquiry Exception NACK
                        else
                        {
                            Console.WriteLine(schInfo + SchCode + "ClientID  = " + cm1.Id + " Tidak ada data untuk NACK file ");
                        }
                    }



                    //ACK FILE
                    IList <TrxPayroll> ohyes = session.CreateCriteria(typeof(TrxPayroll))
                                               .Add(Expression.Eq("ClientID", cm1.Id))
                                               .Add(Expression.Eq("SharedFolderStatus", "YES|"))
                                               .Add(Expression.Like("FileDescription", maker, MatchMode.Anywhere))
                                               .Add(Expression.Eq("Status", ParameterHelper.TRXSTATUS_COMPLETE))
                                               .List <TrxPayroll>();
                    if (ohyes.Count > 0)
                    {
                        #region Inquiry ACk
                        log.Info(schInfo + SchCode + "Client Id = " + cm1.Id + ". Total File Sukses = " + ohyes.Count.ToString());

                        foreach (TrxPayroll ppp in ohyes)
                        {
                            compareTime = DateTime.Compare(ppp.LastUpdate.AddMinutes(5), DateTime.Now);

                            if (compareTime < 0) //lASTUPDATE + 5 < NOW
                            {
                                FileInfo   fi             = new FileInfo(ppp.FilePath);
                                string     filename_error = fi.Name;
                                TextWriter tw1            = new StreamWriter(pathReport + filename_error.Substring(0, filename_error.Length - 4) + ".ack");
                                localFile = pathReport + filename_error.Substring(0, filename_error.Length - 4) + ".ack";


                                int counter = 0;
                                IList <TrxPayrollDetail> listPayDetail = ppp.TrxPayrollDetail;
                                totalRecord = listPayDetail.Count();

                                foreach (TrxPayrollDetail detail in listPayDetail)
                                {
                                    string a           = "";
                                    string text_status = "";

                                    //handling Exception (,) - Denny
                                    if (detail.Status == ParameterHelper.TRXSTATUS_SUCCESS)
                                    {
                                        if (text_status.Contains(","))
                                        {
                                            text_status = "SUCCESS - " + detail.Description.Replace(",", " ");
                                            recordAck++;
                                        }
                                        else
                                        {
                                            text_status = "SUCCESS - " + detail.Description;
                                            recordAck++;
                                        }
                                    }
                                    else
                                    {
                                        if (text_status.Contains(","))
                                        {
                                            text_status = "REJECTED - " + detail.Description.Replace(",", " ");
                                            recordNAPR++;
                                        }
                                        else
                                        {
                                            text_status = "REJECTED - " + detail.Description;
                                            recordNAPR++;
                                        }
                                    }


                                    if (counter == 0)
                                    {
                                        a = "NO,NAMA,ACCOUNT,AMOUNT,EMAIL,CUSTOMERREFF,STATUS";
                                        tw1.WriteLine(a);
                                    }

                                    int no_urut = counter + 1;
                                    a = no_urut.ToString() + "," + detail.Name + "," + detail.Account + "," + detail.Amount + "," + detail.Email + "," + detail.CustomerReff + "," + text_status;
                                    tw1.WriteLine(a);
                                    counter++;
                                }
                                tw1.Close();
                                log.Info(schInfo + SchCode + "ClientID  = " + cm1.Id + " File name : " + ppp.FileName + "Generate ACK Success");
                                Ext = ".ack";
                                string outUpload = "";
                                if (UploadToSharedFolder("", filename_error.Substring(0, filename_error.Length - 4) + ".ack", pathReport, log, session, cm1, ppp.Id, SchCode, schInfo, url, uid, pass, localFile, ppp.SeqNumber, out outUpload))
                                {
                                    ppp.SharedFolderStatus += "1:ACK|";//a.k.a NACK
                                }
                                else
                                {
                                    ppp.SharedFolderStatus += "Exception on ACK||";
                                    ppp.ErrorDescription    = "Exception on ACK||" + outUpload;
                                }
                                //update database
                                session.Update(ppp);
                                session.Flush();
                            }
                            else
                            {
                                log.Info(schInfo + SchCode + "ClientID : " + cm1.Id + " Waiting DateTime to Retry ACK File (5 minutes)");
                            }
                        }
                    }

                    #endregion Inquiry ACK

                    else
                    {
                        #region Inquiry Exception ACK
                        IList <TrxPayroll> ohyesex = session.CreateCriteria(typeof(TrxPayroll))
                                                     .Add(Expression.Eq("ClientID", cm1.Id))
                                                     .Add(Expression.Eq("SharedFolderStatus", "YES|Exception on ACK||"))
                                                     .Add(Expression.Like("FileDescription", maker, MatchMode.Anywhere))
                                                     .Add(Expression.Eq("Status", ParameterHelper.TRXSTATUS_COMPLETE))
                                                     .List <TrxPayroll>();
                        if (ohyesex.Count > 0)
                        {
                            //Update status to retry sent response ACK
                            foreach (TrxPayroll ohyesex2 in ohyesex)
                            {
                                ohyesex2.SharedFolderStatus = "YES|";
                                session.Update(ohyesex2);
                                log.Info(schInfo + SchCode + "ClientID  = " + cm1.Id + " Update Exception ACk to Retry again, SUCCESS ");
                            }
                        }
                        #endregion end of Inquiry Exception ACK

                        else
                        {
                            Console.WriteLine(schInfo + SchCode + "ClientID  = " + cm1.Id + " Tidak ada data untuk ACK file ");
                        }
                    }
                }

                /* Absensi SCHManager - Denny 20190207
                 * Absen dengan Message : RUNNING
                 * SCHCODE harus sama dg SCHCODE di DB, sbg key
                 *
                 * Ketika absen UPDATE data dengan cek lastRun VS Jeda:
                 * - Update schlast run = Date now
                 * - Last update = Date Now
                 * - Set message
                 *
                 * Ketika autorestart,
                 * - melakukan rstart di semua job dalam 1 server
                 * - Cek semua job support autorestart / tdk, jika tdk keluarkan message.
                 */
                #region Absensi job 1
                try
                {
                    Boolean absenSch    = false;
                    String  outMsgAbsen = "Belum dilakukan absen";
                    absenSch = SchManagerHelper.AbsensiSch(session, SchCode, "RUNNING", out outMsgAbsen);
                    Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " - " + SchCode + " === Absensi " + " :: " + outMsgAbsen);
                }
                catch (Exception ex)
                {
                    //Cetak log kalo gagal Absen
                    log.Error(SchCode + " === Gagal Absen Exception : " + ex.Message);
                    log.Error(SchCode + " === Gagal Absen Inner Exception : " + ex.InnerException);
                    log.Error(SchCode + " === Gagal Absen Stack Trace : " + ex.StackTrace);
                }

                #endregion Absensi job 1
            }
            catch (Exception ex)
            {
                log.Error(ex.Message + " = " + ex.InnerException + " = " + ex.StackTrace);
                factory.Close();
                factory.Dispose();
                factory = null;
                cfg     = null;
                GC.Collect();
            }
            Console.WriteLine(schInfo + SchCode + "END OF SCHEDULLER FILE RESPONSE PAYROLL SHARED FOLDER ==");
        }
コード例 #20
0
    public static Boolean workflowCheckerPayroll(ISession session, Transaction trx, ILog log)
    {
        //get trxpayrolls object
        XmlDocument   doc = new XmlDocument();
        XmlSerializer ser = new XmlSerializer(typeof(TrxPayroll));

        doc.LoadXml(trx.TObject);
        XmlNodeReader reader = new XmlNodeReader(doc.DocumentElement);
        object        obj    = ser.Deserialize(reader);

        TrxPayroll ObjPayroll = (TrxPayroll)obj;
        TrxPayroll payroll    = session.Load <TrxPayroll>(ObjPayroll.Id);

        bool   result         = true;
        string HeaderErrorMsg = "||" + DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss") + " ";

        //invalid authority setting status
        string StatusInvalidAuth = "";

        try
        {
            int    user_id  = 0;
            string clientID = trx.ClientId.ToString();

            //sayedzul add - 20161108
            #region cek rek debet notpool or not
            string debAcc             = payroll.DebitAccount.Trim().PadLeft(15, '0');
            NotionalPoolingMember npm = session.CreateCriteria(typeof(NotionalPoolingMember))
                                        .Add(Expression.Eq("AccountNumber", debAcc))
                                        .Add(Expression.Eq("Status", "A"))
                                        .UniqueResult <NotionalPoolingMember>();
            if (npm != null)
            {
                String[] desc = payroll.Description.Split(new String[] { "||" }, StringSplitOptions.None);
                payroll.Status            = ParameterHelper.TRXSTATUS_REJECT;
                payroll.StatusEmail       = ParameterHelper.PAYROLL_NEEDEMAIL;
                payroll.Description       = ParameterHelper.TRXDESCRIPTION_REJECT + " - Notional pooling account not permitted for payroll transaction||" + desc[1];
                payroll.ErrorDescription += HeaderErrorMsg + "Notional pooling account not permitted for payroll transaction";

                session.Update(payroll);

                //reject child
                string outRejectChild = "";
                if (rejectAllChild(session, payroll, out outRejectChild, log))
                {
                    log.Info("Success Update All Child.");
                    payroll.ErrorDescription += HeaderErrorMsg + " Success reject child";
                    //delete transactions
                    session.Delete(trx);
                }
                else
                {
                    payroll.Status           = ParameterHelper.PAYROLL_EXCEPTION;
                    payroll.ErrorDescription = HeaderErrorMsg + outRejectChild;
                }

                session.Update(payroll);
                session.Flush();
                return(true);
            }
            #endregion
            //end sayedzul

            #region get usermaps/user_id
            UserMap umap = null;
            try
            {
                if (!string.IsNullOrEmpty(trx.Approver))
                {
                    String[] tempmaker = trx.Approver.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (String makinfo in tempmaker)
                    {
                        String[] detmake = makinfo.Split(new String[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
                        umap = session.CreateCriteria(typeof(UserMap))
                               .Add(Expression.Like("UserHandle", detmake[0].Trim()))
                               .Add(Expression.Like("ClientEntity", int.Parse(clientID)))
                               .UniqueResult <UserMap>();
                        user_id = umap.UserEntity;
                    }
                }
                else if (!string.IsNullOrEmpty(trx.Checker))
                {
                    String[] tempmaker = trx.Checker.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (String makinfo in tempmaker)
                    {
                        String[] detmake = makinfo.Split(new String[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
                        umap = session.CreateCriteria(typeof(UserMap))
                               .Add(Expression.Like("UserHandle", detmake[0].Trim()))
                               .Add(Expression.Like("ClientEntity", int.Parse(clientID)))
                               .UniqueResult <UserMap>();
                        user_id = umap.UserEntity;
                    }
                }
                else//maker
                {
                    String[] tempmaker = trx.Maker.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (String makinfo in tempmaker)
                    {
                        String[] detmake = makinfo.Split(new String[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
                        umap = session.CreateCriteria(typeof(UserMap))
                               .Add(Expression.Like("UserHandle", detmake[0].Trim()))
                               .Add(Expression.Like("ClientEntity", int.Parse(clientID)))
                               .UniqueResult <UserMap>();
                        user_id = umap.UserEntity;
                    }
                }
            }
            catch (Exception ex)
            {
                payroll.ErrorDescription = "Exception on Scheduller Payroll Get Auth :: " + ex.Message + " => " + ex.StackTrace + " => " + ex.InnerException;
                payroll.Status           = ParameterHelper.PAYROLL_EXCEPTION;
                session.Update(payroll);
                session.Flush();

                log.Error("Exception on Scheduller Payroll Get Auth :: " + ex.Message + " => " + ex.StackTrace + " => " + ex.InnerException);
                //EvtLogger.Write("Exception on Scheduller Payroll Get Auth :: " + ex.Message + " => " + ex.StackTrace, System.Diagnostics.EventLogEntryType.Error);
                result = false;
            }
            log.Info("User Id : " + user_id);
            #endregion

            //get total TRX
            //|susccess|fail|total| ==> |1:200|:|2:300|
            //string[] total = payroll.TotalTrx.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
            //string[] pecahan = total[2].Split(':');
            //string counttrx = pecahan[0];
            //string totalamount = pecahan[1];

            //trx.TotalTrx = "|" + feeIFT + "|" + reject + "|" + totalTrx + "|" + feeRTG + "|" + feeLLG + "|";
            if (payroll.TotalTrx.Equals("|0:0|0:0|0:0|0:0|0:0|"))
            {
                //countift : sumift| countrejectAll : sumrejectAll | countAll : sumAll | countRTG : sumRTG | countLLG : sumLLG|
                //ga dipake pun, ga usah lah

                int    _countSuccess = payroll.TrxPayrollDetail.Where(x => x.Status != ParameterHelper.TRXSTATUS_REJECT).Count();
                double _sumSuccess   = payroll.TrxPayrollDetail.Where(x => x.Status != ParameterHelper.TRXSTATUS_REJECT).Sum(x => x.Amount / 100);
                int    _countInvalid = payroll.TrxPayrollDetail.Where(x => x.Status == ParameterHelper.TRXSTATUS_REJECT).Count();
                double _sumInvalid   = payroll.TrxPayrollDetail.Where(x => x.Status == ParameterHelper.TRXSTATUS_REJECT).Sum(x => x.Amount / 100);
                int    _countTotal   = payroll.TrxPayrollDetail.Count();
                double _sumTotal     = payroll.TrxPayrollDetail.Sum(x => x.Amount / 100);
                payroll.TotalTrx = "|" + _countSuccess.ToString() + ":" + _sumSuccess.ToString() + "|" + _countInvalid.ToString() + ":" + _sumInvalid.ToString() + "|" + _countTotal.ToString() + ":" + _sumTotal.ToString() + "|";
                //log.Info("Trx Id = " + payroll.Id + ", Total Trx : " + payroll.TotalTrx);
                //session.Update(trx);
                //session.Flush();


                //Denny coba
                //string TotalTrxNew = "|0:0|0:0|0:0|0:0|0:0|";
                //TotalTrxNew = "|" + _countSuccess.ToString() + ":" + _sumSuccess.ToString() + "|" + _countInvalid.ToString() + ":" + _sumInvalid.ToString() + "|" + _countTotal.ToString() + ":" + _sumTotal.ToString() + "|";

                #region Native update Parent payroll
                //string temp_query2 = "";
                //string msg2 = "";
                //int count2 = 0;
                //string dbResult2 = "";
                //temp_query2 = @"update trxpayrolls set totaltrx = '" + TotalTrxNew + "' where id = '" + payroll.Id + "';";

                //if (!PayrollHelper.ExecuteQueryValue(session, temp_query2, out dbResult2, out msg2))
                //{
                //    log.Error("(TrxID " + payroll.Id + ") Failed Query: " + temp_query2 + " " + msg2);

                //}
                #endregion native update
            }
            string counttrx    = payroll.TrxPayrollDetail.Where(x => x.Status != ParameterHelper.TRXSTATUS_REJECT).Count().ToString();
            double totalamount = payroll.TrxPayrollDetail.Where(x => x.Status != ParameterHelper.TRXSTATUS_REJECT).Sum(x => x.Amount / 100);

            //get debit acc
            string[]      debAccArr  = payroll.Description.Split(new String[] { "||" }, StringSplitOptions.RemoveEmptyEntries);
            string        debitAccId = debAccArr[1];
            ClientAccount ClientAcc  = session.Load <ClientAccount>(int.Parse(debitAccId));
            string        debitAcc   = ClientAcc.Number;

            string valueDate = payroll.ProcessTime.ToString("yyMMdd");
            if (valueDate.Equals("010101"))
            {
                valueDate = "991231";
            }

            #region cek limit-limit
            if (trx.CheckWork == 0 && trx.ApproveWork == 0)
            {
                string outMsgAuthorityError = "";
                if (CekAuthority(session, 100, umap, "PAYROLL", valueDate, totalamount, "IDR", out outMsgAuthorityError))
                {
                    if (!outMsgAuthorityError.Equals(""))
                    {
                        StatusInvalidAuth = "[LIMIT]" + outMsgAuthorityError;
                    }
                }
                else
                {
                    StatusInvalidAuth = "[EXCEPTION]" + outMsgAuthorityError;
                }
            }
            #endregion


            #region cek Authority Setting
            //Pengecekkan bypass transaksi di Settingan LIsence - Denny
            bool isWithAuthority    = true;
            IList <ClientMatrix> cm = session.CreateCriteria(typeof(ClientMatrix))
                                      .Add(Expression.Eq("Id", trx.ClientId))
                                      .List <ClientMatrix>();
            foreach (ClientMatrix cm1 in cm)
            {
                AuthorityHelper ah = null;
                ah = new AuthorityHelper(cm1.Matrix);
                isWithAuthority = ah.isDirectTransaction(100);

                //Kondisi menggunakan Direct Transactions
                if (trx.CheckTotal == 0 && trx.ApproveTotal == 0 && isWithAuthority)
                {
                    StatusInvalidAuth = "";
                }

                if (trx.CheckWork == 0 && trx.ApproveWork == 0 && isWithAuthority == false)
                {
                    log.Error("debit Account : " + debitAcc);
                    log.Error("total Account : " + totalamount);
                    log.Error("umap Client Entity : " + umap.ClientEntity);
                    //string nextProcessor = UserGroupHelper.getNextAppTemp(session, 100, umap, trx.Approver, "Payroll", debitAcc, "IDR", double.Parse(totalamount));


                    string nextProcessorChecker  = "GAK PAKE CHECKER";
                    string nextProcessorApprover = "GAK PAKE APPROVER";
                    if (trx.CheckTotal != 0)
                    {
                        nextProcessorChecker = UserGroupHelper.getNextCheTemp(session, 100, umap, "", "Payroll", debitAcc, "IDR", totalamount);
                    }
                    if (trx.ApproveTotal != 0)
                    {
                        nextProcessorApprover = UserGroupHelper.getNextAppTemp(session, 100, umap, "", "Payroll", debitAcc, "IDR", totalamount);
                    }

                    log.Error("Checker : " + nextProcessorChecker);
                    log.Error("Approver : " + nextProcessorApprover);

                    nextProcessorChecker  = nextProcessorChecker.Replace("|", "");
                    nextProcessorApprover = nextProcessorApprover.Replace("|", "");

                    if (string.IsNullOrEmpty(nextProcessorChecker))
                    {
                        StatusInvalidAuth += "CHECKER";
                    }
                    if (string.IsNullOrEmpty(nextProcessorApprover))
                    {
                        StatusInvalidAuth += " and APPROVER";
                    }
                }
            }

            #endregion


            if (StatusInvalidAuth.Equals(""))//authority valid
            {
                //transaction complete
                if (trx.CheckWork >= trx.CheckTotal)
                {
                    if (trx.ApproveWork >= trx.ApproveTotal)//FINAL, transactions ready to process
                    {
                        //update trxpayroll
                        String[] des = payroll.Description.Split(new String[] { "||" }, StringSplitOptions.None);
                        if (payroll.ProcessTime.ToString("yyyy-MM-dd").Equals("0001-01-01"))
                        {
                            payroll.ProcessTime = DateTime.Now;
                        }

                        //20170423 sayedzul add handler payroll processtime
                        if (payroll.IsPayrollBankLain == 1)
                        {
                            payroll.ProcessTime = PayrollHelper.GetRealProcessTime(session, payroll.ProcessTime);
                        }

                        payroll.Maker       = trx.Maker;
                        payroll.Checker     = trx.Checker;
                        payroll.Approver    = trx.Approver;
                        payroll.Status      = ParameterHelper.TRXSTATUS_RUNNING_AFTERCHECKACCOUNT;//19
                        payroll.Description = "PROCESSED" + "||" + des[1];
                        session.Update(payroll);
                        session.Flush();

                        //delete transactions
                        session.Delete(trx);
                        session.Flush();

                        log.Info("Finish. Data deleteled from table transactions");
                    }
                    else
                    {
                        //Masih Butuh Approval
                        log.Info("Total Amount" + totalamount);
                        string nextProcessor = UserGroupHelper.getNextAppTemp(session, 100, umap, trx.Approver, "Payroll", debitAcc, "IDR", totalamount);

                        trx.NextProcessor = nextProcessor;
                        trx.Status        = short.Parse(ParameterHelper.TRXSTATUS_APPROVE.ToString());
                        session.Update(trx);
                        log.Info("Masih Butuh Approver");

                        session.Flush();

                        #region Send Notification
                        if (!nextProcessor.Trim().Replace("|", "").Equals(""))
                        {
                            String[] uid_np = nextProcessor.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (String idnp in uid_np)
                            {
                                UserMatrix      umx = session.Load <UserMatrix>(int.Parse(idnp));
                                AuthorityHelper ahe = new AuthorityHelper(umx.Matrix);
                                if (ahe.isNeedPendingEmail(100))
                                {
                                    User uid = session.Load <User>(int.Parse(idnp));
                                    //state=0->inProcess verify; state=1->inProc Approve; state=2->Succed; state=3->reject
                                    EmailNotificationHelper.MassNotification(session, uid.Email, trx.ClientId, trx.Id, "Payroll", 1, payroll.FileDescription, counttrx, totalamount.ToString(), payroll.CreatedTime, trx.Maker, payroll.ProcessTime, "Need Approve");
                                }
                            }
                        }
                        #endregion
                    }
                }
                else
                {
                    //Masih Butuh Checker
                    Console.Write("===User Handle : " + umap.UserHandle);

                    string nextProcessor = UserGroupHelper.getNextCheTemp(session, 100, umap, trx.Checker, "Payroll", debitAcc, "IDR", totalamount);

                    trx.NextProcessor = nextProcessor;
                    trx.Status        = short.Parse(ParameterHelper.TRXSTATUS_VERIFY.ToString());
                    session.Update(trx);

                    session.Flush();
                    log.Info("Next Processor : " + nextProcessor);
                    log.Info("Masih Butuh Checker");

                    #region Send Notification
                    if (!nextProcessor.Trim().Replace("|", "").Equals(""))
                    {
                        String[] uid_np = nextProcessor.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                        foreach (String idnp in uid_np)
                        {
                            UserMatrix      umx = session.Load <UserMatrix>(int.Parse(idnp));
                            AuthorityHelper ahe = new AuthorityHelper(umx.Matrix);
                            if (ahe.isNeedPendingEmail(100))
                            {
                                User uid = session.Load <User>(int.Parse(idnp));
                                //state=0->inProcess verify; state=1->inProc Approve; state=2->Succed; state=3->reject
                                EmailNotificationHelper.MassNotification(session, uid.Email, trx.ClientId, trx.Id, "Payroll", 0, payroll.FileDescription, counttrx, totalamount.ToString(), payroll.CreatedTime, trx.Maker, payroll.ProcessTime, "Need Verify");
                            }
                        }
                    }
                    #endregion
                }
            }
            else//invalid authority setting
            {
                string invalidMsg = "";
                if (StatusInvalidAuth.Equals(" and APPROVER"))
                {
                    invalidMsg = "APPROVER";
                }
                else
                {
                    invalidMsg = StatusInvalidAuth;
                }

                String[] desc = payroll.Description.Split(new String[] { "||" }, StringSplitOptions.None);
                payroll.Status      = ParameterHelper.TRXSTATUS_REJECT;
                payroll.StatusEmail = ParameterHelper.PAYROLL_NEEDEMAIL;
                if (invalidMsg.Contains("[LIMIT]"))
                {
                    payroll.Description       = ParameterHelper.TRXDESCRIPTION_REJECT + " - " + invalidMsg.Replace("[LIMIT]", "") + "||" + desc[1];
                    payroll.ErrorDescription += HeaderErrorMsg + "Invalid Authority Settting on " + invalidMsg;
                }
                else if (invalidMsg.Contains("[EXCEPTION]"))
                {
                    payroll.Status           = ParameterHelper.PAYROLL_EXCEPTION;
                    payroll.ErrorDescription = HeaderErrorMsg + invalidMsg.Replace("[EXCEPTION]", "");
                }
                else
                {
                    payroll.Description       = ParameterHelper.TRXDESCRIPTION_REJECT + " - Invalid Authority Setting on " + invalidMsg + "||" + desc[1];
                    payroll.ErrorDescription += HeaderErrorMsg + "Invalid Authority Settting on " + invalidMsg;
                }
                session.Update(payroll);

                //reject child
                string outRejectChild = "";
                if (rejectAllChild(session, payroll, out outRejectChild, log))
                {
                    log.Info("Success Update All Child.");
                    payroll.ErrorDescription += HeaderErrorMsg + " Success reject child";
                    //delete transactions
                    session.Delete(trx);
                }
                else
                {
                    payroll.Status           = ParameterHelper.PAYROLL_EXCEPTION;
                    payroll.ErrorDescription = HeaderErrorMsg + outRejectChild;
                }
            }


            session.Update(payroll);
            session.Flush();



            result = true;
        }
        catch (Exception ex)
        {
            log.Error("Exception on Scheduller Workflow Check Payroll :: " + ex.Message + " => " + ex.StackTrace + " => " + ex.InnerException);
            //EvtLogger.Write("Exception on Scheduller FT Workflow Check :: " + ex.Message + " => " + ex.StackTrace, System.Diagnostics.EventLogEntryType.Error);
            payroll.ErrorDescription += HeaderErrorMsg + "|Exception on Scheduller Workflow Check Payroll :: " + ex.Message + " => " + ex.StackTrace + " => " + ex.InnerException;
            payroll.Status            = ParameterHelper.PAYROLL_EXCEPTION;
            session.Update(payroll);
            session.Flush();
            result = false;
        }
        return(result);
    }
コード例 #21
0
        private void Commitjob_transaction(ILog log)
        {
            IList <TrxPayroll> trxList = session.CreateCriteria(typeof(TrxPayroll))
                                         .Add(Expression.Eq("Status", ParameterHelper.PAYROLL_DECRYPT_PROCESS))
                                         .Add(Expression.Lt("LastUpdate", DateTime.Now))
                                         .AddOrder(Order.Asc("CreatedTime"))
                                         .List <TrxPayroll>();

            log.Info("Jumlah transaksi menunggu decript : " + trxList.Count);

            //we've found some data
            foreach (TrxPayroll payroll in trxList)
            {
                //get file
                //FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
                string          file = payroll.FileName;
                FileInfo        fi   = new FileInfo(file);                            //create,edit file
                ClientMatrix    cm   = session.Load <ClientMatrix>(payroll.ClientID); //lisensi client
                AuthorityHelper ah   = new AuthorityHelper(cm.Matrix);                //wewenang client

                FileStream fs = null;                                                 // read write file
                string     cms_encrypt_key = ParameterHelper.GetString("CMS_ENCRYPT_KEY", session);
                log.Info("isi encrypt key :: " + cms_encrypt_key);

                try
                {
                    log.Info(":: Opening gpg file :: ");
                    string file_hasil_decript = DecryptFile(session, payroll, fi, cms_encrypt_key, log);

                    if (!file_hasil_decript.Equals(""))
                    {
                        fs = new FileStream(fi.DirectoryName + "\\" + file_hasil_decript, FileMode.Open, FileAccess.Read);
                        log.Info("filename :: " + fs.Name);
                        payroll.Status       = ParameterHelper.PAYROLL_WAITINGSEQNUM;
                        payroll.LastUpdate   = DateTime.Now;
                        payroll.Description += "||";
                        payroll.FileName     = fs.Name;
                    }
                    else
                    {
                        payroll.LastUpdate        = DateTime.Now.AddMinutes(5);
                        payroll.ErrorDescription += "Decript gagal. Coba lagi nanti Gan!!!";

                        //sudah terlalu lama menunggu
                        if (DateTime.Now > payroll.CreatedTime.AddHours(6))
                        {
                            payroll.ErrorDescription += "Reject Gan, sudah terlalu lama menunggu!!!";
                            payroll.Status            = ParameterHelper.TRXSTATUS_REJECT;
                            payroll.StatusEmail       = ParameterHelper.PAYROLL_NEEDEMAIL;
                            payroll.Description       = ParameterHelper.TRXDESCRIPTION_REJECT + "-" + "Decript failed, encription key not valid.";
                        }
                    }
                    session.Update(payroll);
                    session.Flush();
                }
                catch (Exception exce)
                {
                    log.Error(":: Opening file error : " + exce.Message + "||" + exce.InnerException + "||" + exce.StackTrace);
                    payroll.LastUpdate        = DateTime.Now;
                    payroll.ErrorDescription += ":: Opening file error : " + exce.Message + "||" + exce.InnerException + "||" + exce.StackTrace;
                    session.Update(payroll);
                    session.Flush();
                }
            }
        }
コード例 #22
0
        private void Commitjob_transaction(ILog log)
        {
            try
            {
                IList <TrxPayroll> trxList = session.CreateCriteria(typeof(TrxPayroll))
                                             .Add(Expression.Eq("StatusEmail", ParameterHelper.PAYROLL_NEEDEMAIL))
                                             .Add(Expression.Or(Expression.Eq("Status", ParameterHelper.TRXSTATUS_COMPLETE), Expression.Eq("Status", ParameterHelper.TRXSTATUS_REJECT)))
                                             .AddOrder(Order.Asc("CreatedTime"))
                                             .List <TrxPayroll>();
                log.Info("Jumlah transaksi butuh email : " + trxList.Count);
                //we've found some data
                foreach (TrxPayroll trx in trxList)
                {
                    try
                    {
                        //update status running
                        trx.StatusEmail = ParameterHelper.PAYROLL_PROCESSEMAIL;
                        session.Update(trx);
                        session.Flush();


                        string user_id  = "";
                        int    clientID = trx.ClientID;

                        #region get user id
                        UserMap umap = null;
                        if (!string.IsNullOrEmpty(trx.Approver))
                        {
                            String[] tempmaker = trx.Approver.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (String makinfo in tempmaker)
                            {
                                String[] detmake = makinfo.Split(new String[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
                                umap = session.CreateCriteria(typeof(UserMap))
                                       .Add(Expression.Like("UserHandle", detmake[0].Trim()))
                                       .Add(Expression.Like("ClientEntity", clientID))
                                       .UniqueResult <UserMap>();
                                user_id = umap.UserEntity.ToString();
                            }
                        }

                        if (!string.IsNullOrEmpty(trx.Checker))
                        {
                            String[] tempmaker = trx.Checker.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (String makinfo in tempmaker)
                            {
                                String[] detmake = makinfo.Split(new String[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
                                umap = session.CreateCriteria(typeof(UserMap))
                                       .Add(Expression.Like("UserHandle", detmake[0].Trim()))
                                       .Add(Expression.Like("ClientEntity", clientID))
                                       .UniqueResult <UserMap>();
                                user_id += "|" + umap.UserEntity.ToString();
                            }
                        }

                        if (!string.IsNullOrEmpty(trx.Maker))
                        {
                            String[] tempmaker = trx.Maker.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (String makinfo in tempmaker)
                            {
                                String[] detmake = makinfo.Split(new String[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
                                umap = session.CreateCriteria(typeof(UserMap))
                                       .Add(Expression.Like("UserHandle", detmake[0].Trim()))
                                       .Add(Expression.Like("ClientEntity", clientID))
                                       .UniqueResult <UserMap>();
                                user_id += "|" + umap.UserEntity.ToString();
                            }
                        }
                        log.Info("User ID will send email = " + user_id);
                        #endregion


                        #region counttrx
                        ////trx.TrxPayrollDetail.
                        string _theTotalTrx = "";
                        IList <TrxPayrollDetail> ListSuccess = trx.TrxPayrollDetail;
                        int    countSuccess = 0;
                        int    countFail    = 0;
                        int    countTotal   = ListSuccess.Count;
                        double sumSuccess   = 0;
                        double sumFail      = 0;
                        double sumTotal     = 0;
                        foreach (TrxPayrollDetail a in ListSuccess)
                        {
                            if (a.Status == ParameterHelper.TRXSTATUS_SUCCESS)
                            {
                                countSuccess++;
                                sumSuccess += a.Amount;
                            }
                            else if (a.Status == ParameterHelper.TRXSTATUS_REJECT)
                            {
                                countFail++;
                                sumFail += a.Amount;
                            }
                            sumTotal += a.Amount;
                        }

                        //real amount
                        sumSuccess = sumSuccess / 100;
                        sumFail    = sumFail / 100;
                        sumTotal   = sumTotal / 100;
                        string _countSuccess = countSuccess.ToString();
                        string _sumSuccess   = sumSuccess.ToString();
                        string _countFail    = countFail.ToString();
                        string _sumFail      = sumFail.ToString();
                        string _countTotal   = countTotal.ToString();
                        string _sumTotal     = sumTotal.ToString();
                        //|berhasil|gagal|total|
                        //|17:56000|:|3:25612541|
                        trx.LastUpdate = DateTime.Now;
                        trx.TotalTrx   = "|" + _countSuccess + ":" + _sumSuccess + "|" + _countFail + ":" + _sumFail + "|" + _countTotal + ":" + _sumTotal + "|";
                        _theTotalTrx   = "|" + _countSuccess + ":" + _sumSuccess + "|" + _countFail + ":" + _sumFail + "|" + _countTotal + ":" + _sumTotal + "|";
                        log.Info("Trx Id = " + trx.Id + ", Total Trx : " + trx.TotalTrx);
                        session.Update(trx);
                        session.Flush();
                        #endregion



                        #region send email
                        String[] uid_np = user_id.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                        foreach (String idnp in uid_np)
                        {
                            UserMatrix      umx = session.Load <UserMatrix>(int.Parse(idnp));
                            AuthorityHelper ahe = new AuthorityHelper(umx.Matrix);
                            if (ahe.isNeedPendingEmail(100))
                            {
                                User uid = session.Load <User>(int.Parse(idnp));
                                //state=0->inProcess verify; state=1->inProc Approve; state=2->Succed; state=3->reject
                                if (trx.Status == ParameterHelper.TRXSTATUS_COMPLETE)
                                {
                                    EmailNotificationHelper.MassNotification(session, uid.Email, clientID, trx.SeqNumber, "Payroll", 2, trx.FileDescription, _theTotalTrx, "", trx.CreatedTime, trx.Maker, trx.ProcessTime, "Done");
                                }
                                else if (trx.Status == ParameterHelper.TRXSTATUS_REJECT)
                                {
                                    string rejectDesc = "";
                                    if (!string.IsNullOrEmpty(trx.Rejecter))
                                    {
                                        rejectDesc = "Rejected by " + trx.Rejecter;
                                    }
                                    else
                                    {
                                        string[] desc = trx.Description.Split(new String[] { "||" }, StringSplitOptions.RemoveEmptyEntries);
                                        rejectDesc = desc[0];
                                    }
                                    EmailNotificationHelper.MassNotification(session, uid.Email, clientID, trx.SeqNumber, "Payroll", 3, trx.FileDescription, _countTotal, _sumTotal, trx.CreatedTime, trx.Maker, trx.ProcessTime, "Reject (" + rejectDesc + ")");
                                }
                            }
                        }
                        log.Info("Email Send Successfully");
                        trx.StatusEmail = ParameterHelper.PAYROLL_DONEMAIL;
                        session.Update(trx);
                        session.Flush();



                        //if (trx.Status == ParameterHelper.TRXSTATUS_COMPLETE)
                        //{
                        //    String[] uid_np = nextProcessor.Split(new String[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
                        //    foreach (String idnp in uid_np)
                        //    {
                        //        UserMatrix umx = session.Load<UserMatrix>(int.Parse(idnp));
                        //        AuthorityHelper ahe = new AuthorityHelper(umx.Matrix);
                        //        if (ahe.isNeedPendingEmail(3600))
                        //        {
                        //            User uid = session.Load<User>(int.Parse(idnp));
                        //            //state=0->inProcess verify; state=1->inProc Approve; state=2->Succed; state=3->reject
                        //            EmailNotificationHelper.MassNotification(session, uid.Email, o.ClientId, massSWIFfile.Id, "Mass SWIFT", 0, massSWIFfile.FileDescription, counttrx, totalamount, massSWIFfile.CreatedTime, massSWIFfile.Maker, massSWIFfile.Valuedate, "Need Verify");
                        //        }
                        //    }

                        //}
                        //else if(trx.Status == ParameterHelper.TRXSTATUS_REJECT)
                        //{

                        //}
                        #endregion
                    }
                    catch (Exception e)
                    {
                        log.Error("Exception >>" + e.Message + ">>" + e.InnerException + ">>" + e.StackTrace);
                        trx.ErrorDescription = "Send Email Exception >>" + e.Message + ">>" + e.InnerException + ">>" + e.StackTrace;
                        trx.StatusEmail      = ParameterHelper.PAYROLL_EXCEPTIONEMAIL;
                        session.Update(trx);
                        session.Flush();
                    }
                }
            }
            catch (Exception e)
            {
                log.Error("Exception Send Email >>" + e.Message + ">>" + e.InnerException + ">>" + e.StackTrace);
            }
        }