public ActionResult DetailAuth(string a_i, string m)
        {
            try
            {
                int menuId;
                var mid = SmartObj.Decrypt(m);
                var ai  = SmartObj.Decrypt(a_i);
                if (int.TryParse(mid, out menuId) && decimal.TryParse(ai, out authId))
                {
                    var obj = new AuthViewObj();
                    var det = repoAuth.Find(authId);
                    //var d = _repo.GetSession(0, true);

                    ViewBag.HeaderTitle = "Authorize Detail for Country";
                    //ViewBag.StatusVisible = true;
                    if (det != null)
                    {
                        obj.AuthId      = authId;
                        obj.RecordId    = det.RECORDID.GetValueOrDefault();
                        obj.BatchId     = det.BATCHID;
                        obj.PostType    = det.POSTTYPE;
                        obj.MenuId      = det.MENUID.GetValueOrDefault();
                        ViewBag.Message = TempData["msg"];
                        var stat = ViewBag.Message != null ? null : "open";

                        var rec = _repo.GetCountry((int)det.RECORDID, false, status: stat, isTemp: true);      //repoSession.FindAsync(id);
                        if (rec != null && rec.Count > 0)
                        {
                            BindCombo();
                            var model = rec.FirstOrDefault();
                            obj.Status           = det.STATUS;
                            obj.EventType        = det.EVENTTYPE;
                            obj.DateCreated      = det.CREATEDATE.GetValueOrDefault().ToString("dd-MMM-yyyy");
                            obj.User             = model.CREATED_BY;
                            ViewBag.Auth         = obj;
                            ViewBag.DisplayAuth  = det.STATUS == open && !(model.USERID == User.Identity.Name);
                            ViewBag.RecordStatus = new SelectList(SmartObj.GetStatus(), "Code", "Description");
                            // return null;

                            return(View("DetailAuth", model));
                        }
                        //  return Json(rec, JsonRequestBehavior.AllowGet);
                        //var obj1 = new { model = rec.FirstOrDefault(), RespCode = 0, RespMessage = "Success" };
                        // return Json(obj1, JsonRequestBehavior.AllowGet);
                    }


                    return(View("DetailAuth"));
                }
                else
                {
                    return(View("Error", "Home"));
                }
            }
            catch (Exception ex)
            {
                return(View("DetailAuth"));
            }
        }
        public ActionResult Approve(decimal AuthId, int?m)
        {
            try
            {
                var obj  = new AuthViewObj();
                var rec2 = repoAuth.Find(AuthId);
                if (rec2 == null)
                {
                    respMsg = "Problem processing request. Try again or contact Administrator.";
                    //TempData["msg"] = respMsg;
                    //return RedirectToAction("DetailAuth", new { a_i = SmartObj.Encrypt(rec2.ITBID.ToString()), m = SmartObj.Encrypt(rec2.MENUID.GetValueOrDefault().ToString()) });
                    return(Json(new { RespCode = 1, RespMessage = respMsg }));
                }
                else if (rec2.STATUS.ToLower() != "open")
                {
                    respMsg = "This request has already been processed by an authorizer.";
                    //TempData["msg"] = respMsg;
                    //return RedirectToAction("DetailAuth", new { a_i = SmartObj.Encrypt(AuthId.ToString()), m = SmartObj.Encrypt(m.GetValueOrDefault().ToString()) });
                    return(Json(new { RespCode = 1, RespMessage = respMsg }));
                }
                int  recordId = 0;
                bool suc      = false;
                //using (var txscope = new TransactionScope(TransactionScopeOption.RequiresNew))
                //{
                var d = new AuthListUtil();
                //menuId = 5;
                var dd = d.GetCheckerRecord(m.GetValueOrDefault(), AuthId, 0, institutionId);
                if (dd.authListObj.Count < checkerNo)
                {
                    var chk = new SM_AUTHCHECKER()
                    {
                        AUTHLIST_ITBID = authId,
                        CREATEDATE     = DateTime.Now,
                        NARRATION      = null,
                        STATUS         = approve,
                        USERID         = User.Identity.Name,
                    };
                    repoAuthChecker.Insert(chk);
                    var rst = uow.Save(User.Identity.Name);
                    if (rst > 0)
                    {
                        var noA = dd.authListObj.Where(f => f.CHECKERSTATUS == approve).Count();
                        noA += 1;
                        if (noA == checkerNo)
                        {
                            recordId = (int)rec2.RECORDID;
                            menuId   = rec2.MENUID.GetValueOrDefault();
                            switch (rec2.EVENTTYPE)
                            {
                            case "New":
                            {
                                suc = CreateMainRecord(recordId);
                                break;
                            }

                            case "Modify":
                            {
                                suc = ModifyMainRecord(recordId);
                                break;
                            }

                            case "CLOSE":
                            {
                                suc = CloseMainRecord(recordId);
                                break;
                            }

                            default:
                            {
                                break;
                            }
                            }
                            // rec2.STATUS = close;

                            if (suc)
                            {
                                rec2.STATUS = approve;
                                var t = uow.Save(rec2.USERID, User.Identity.Name);
                                if (t > 0)
                                {
                                    sucNew = true;
                                    //txscope.Complete();
                                }
                            }
                            else
                            {
                                //return Json(new { RespCode = 99, RespMessage = "Problem processing request. Try again or contact Administrator." });
                                respMsg = "Problem processing request. Try again or contact Administrator.";

                                return(Json(new { RespCode = 1, RespMessage = respMsg }));
                            }
                        }
                    }
                }

                // }
                if (sucNew)
                {
                    EmailerNotification.SendApprovalRejectionMail(rec2.USERID, rec2.EVENTTYPE, approve, "Frequency Approval", null, fullName);
                    respMsg = "Record Authorized Successfully. A mail has been sent to the user.";
                    return(Json(new { RespCode = 0, RespMessage = respMsg, status = approve }));
                }
                // return Json(new { RespCode = 99, RespMessage = "This request has already been processed by an authorizer." });
                respMsg = "This request has already been processed by an authorizer.";
                return(Json(new { RespCode = 1, RespMessage = respMsg }));
            }
            catch (Exception ex)
            {
                //return Json(new { RespCode = 99, RespMessage = "Problem processing request. Try again or contact Administrator." });
                respMsg = "Problem processing request. Try again or contact Administrator.";
                // TempData["msg"] = respMsg;
                // return RedirectToAction("DetailAuth", new {  a_i = SmartObj.Encrypt(AuthId.ToString()) , m = SmartObj.Encrypt(m.GetValueOrDefault().ToString()) });
                return(Json(new { RespCode = 1, RespMessage = respMsg }));
            }
        }
Пример #3
0
        public async Task <ActionResult> DetailAuth(string a_i, string m)
        {
            try
            {
                int menuId;
                var mid = SmartObj.Decrypt(m);
                var ai  = SmartObj.Decrypt(a_i);
                if (int.TryParse(mid, out menuId) && decimal.TryParse(ai, out authId))
                {
                    var obj = new AuthViewObj();
                    var det = repoAuth.Find(authId);
                    //var d = _repo.GetSession(0, true);

                    ViewBag.HeaderTitle = "Authorize Detail for Company Profile";
                    //ViewBag.StatusVisible = true;
                    if (det != null)
                    {
                        //ViewBag.AuthId = authId;
                        //ViewBag.RecordId = det.RECORDID;
                        //ViewBag.BatchId = det.BATCHID;
                        //ViewBag.PostType = det.POSTTYPE;
                        //ViewBag.MenuId = det.MENUID;
                        obj.AuthId      = authId;
                        obj.BatchId     = det.BATCHID;
                        obj.RecordId    = det.RECORDID.GetValueOrDefault();
                        obj.PostType    = det.POSTTYPE;
                        obj.MenuId      = det.MENUID.GetValueOrDefault();
                        ViewBag.Message = TempData["msg"];
                        var stat = ViewBag.Message != null ? null : "open";
                        var rec  = await _repo.GetCompanyProfileAsync((int)det.RECORDID, true, status : stat);   //repoSession.FindAsync(id);

                        if (rec != null)
                        {
                            var model   = rec;
                            var country = await _repo.GetCountryAsync(0, true, "Active");

                            ViewBag.Country = new SelectList(country, "COUNTRY_CODE", "COUNTRY_NAME");
                            var state = await _repo.GetStateAsync(0, true, "Active", countryCode : rec.COMPANY_COUNTRY);

                            ViewBag.State = new SelectList(state, "STATECODE", "STATENAME");
                            var banks = await _repo.GetInstitutionAsync(0, true, "Active");

                            ViewBag.BankList = new SelectList(banks.Where(d => d.IS_BANK != null && d.IS_BANK.ToLower() == "y").ToList(), "CBN_CODE", "INSTITUTION_NAME");
                            BindCity(rec.COMPANY_COUNTRY, rec.COMPANY_CITY);
                            ViewBag.DisplayAuth = det.STATUS == open && !(model.USERID == User.Identity.Name);
                            obj.EventType       = det.EVENTTYPE;
                            obj.DateCreated     = det.CREATEDATE.GetValueOrDefault().ToString("dd-MMM-yyyy");
                            obj.User            = model.CREATED_BY;
                            obj.Status          = det.STATUS;
                            ViewBag.Auth        = obj;
                            if (det.TABLENAME != null)
                            {
                                return(View("DetailAuth", model));
                            }
                            else
                            {
                                ViewBag.HeaderTitle = "Authorize Detail for Srcurity Policy";

                                return(View("DetailAuthPL", model));
                            }
                        }
                        //  return Json(rec, JsonRequestBehavior.AllowGet);
                        //var obj1 = new { model = rec.FirstOrDefault(), RespCode = 0, RespMessage = "Success" };
                        // return Json(obj1, JsonRequestBehavior.AllowGet);
                    }


                    return(View("DetailAuth"));
                }
                else
                {
                    return(View("Error", "Home"));
                }
            }
            catch (Exception ex)
            {
                return(View("DetailAuth"));
            }
        }