public ActionResult LoadAllTransferType(SecurityTransferLogModel objSecurityTransferLogModel)
        {
            LoginUserDetails objLoginUserDetails = (LoginUserDetails)InsiderTrading.Common.Common.GetSessionValue((string)ConstEnum.SessionValue.UserDetails);

            try
            {
                ViewBag.SecurityTypeList = FillComboValues(ConstEnum.ComboType.ListOfCode, InsiderTrading.Common.ConstEnum.CodeGroup.SecurityType, null, null, null, null, true);
                if (objSecurityTransferLogModel.TransferFor == InsiderTrading.Common.ConstEnum.Code.PreclearanceRequestForRelative)
                {
                    objSecurityTransferLogModel.UserInfoId    = objLoginUserDetails.LoggedInUserID;
                    objSecurityTransferLogModel.ForUserInfoId = objSecurityTransferLogModel.ForUserInfoId;
                    ViewBag.ToDEMATAcountList = FillComboValues(ConstEnum.ComboType.UserDMATList, objSecurityTransferLogModel.ForUserInfoId.ToString(), null, null, null, null, true);
                }
                else
                {
                    objSecurityTransferLogModel.UserInfoId    = objLoginUserDetails.LoggedInUserID;
                    objSecurityTransferLogModel.ForUserInfoId = objLoginUserDetails.LoggedInUserID;
                    ViewBag.ToDEMATAcountList = FillComboValues(ConstEnum.ComboType.UserDMATList, objLoginUserDetails.LoggedInUserID.ToString(), null, null, null, null, true);
                }
                ModelState.Clear();
                // objSecurityTransferLogModel.ForUserInfoId = objLoginUserDetails.LoggedInUserID;
                return(PartialView("_AllAccountTransfer", objSecurityTransferLogModel));
            }
            catch (Exception exp)
            {
                ModelState.AddModelError("Error", Common.Common.GetErrorMessage(exp));
                return(View("TransferView", objSecurityTransferLogModel));
            }
            finally
            {
                objLoginUserDetails = null;
            }
        }
        public JsonResult TransferBalance(SecurityTransferLogModel objSecurityTransferLogModel)
        {
            LoginUserDetails    objLoginUserDetails    = (LoginUserDetails)InsiderTrading.Common.Common.GetSessionValue((string)ConstEnum.SessionValue.UserDetails);
            SecurityTransferDTO objSecurityTransferDTO = new SecurityTransferDTO();

            try
            {
                Common.Common.CopyObjectPropertyByName(objSecurityTransferLogModel, objSecurityTransferDTO);

                using (var objSecurityTransferSL = new SecurityTransferSL())
                {
                    objSecurityTransferSL.TransferBalance(objLoginUserDetails.CompanyDBConnectionString, objSecurityTransferDTO);
                }
                return(Json(new
                {
                    status = true,
                    msg = Common.Common.getResource("usr_msg_11471")
                }));
            }
            catch (Exception exp)
            {
                if (ModelState.ContainsKey("TransferQuantity"))
                {
                    ModelState["TransferQuantity"].Errors.Clear();
                }
                ModelState.AddModelError("Error", Common.Common.GetErrorMessage(exp));
                return(Json(new { status = false, error = ModelState.ToSerializedDictionary() }));
            }
            finally
            {
                objLoginUserDetails = null;
            }
        }
        public ActionResult Transfer(int acid)
        {
            SecurityTransferLogModel objSecurityTransferLogModel = new SecurityTransferLogModel();
            LoginUserDetails         objLoginUserDetails         = (LoginUserDetails)InsiderTrading.Common.Common.GetSessionValue((string)ConstEnum.SessionValue.UserDetails);
            int PendingPeriodEndCount       = 0;
            int PendingTransactionsCountPNT = 0;
            int PendingTransactionsCountPCL = 0;

            try{
                objSecurityTransferLogModel.TransferFor            = InsiderTrading.Common.ConstEnum.Code.PreclearanceRequestForSelf;
                objSecurityTransferLogModel.UserInfoId             = objLoginUserDetails.LoggedInUserID;
                objSecurityTransferLogModel.ForUserInfoId          = objLoginUserDetails.LoggedInUserID;
                objSecurityTransferLogModel.SecurityTransferOption = InsiderTrading.Common.ConstEnum.Code.SecurityTransferfromselectedDemataccount;
                //objSecurityTransferLogModel.TransferQuantity = null;

                using (var objSecurityTransferSL = new SecurityTransferSL())
                {
                    objSecurityTransferSL.GetPendingTransactionforSecurityTransfer(objLoginUserDetails.CompanyDBConnectionString,
                                                                                   objSecurityTransferLogModel.UserInfoId, out PendingPeriodEndCount, out PendingTransactionsCountPNT, out PendingTransactionsCountPCL);
                }
            }catch (Exception) {
            }
            finally{
                objLoginUserDetails = null;
            }

            if (PendingPeriodEndCount > 0)
            {
                acid = ConstEnum.UserActions.Security_Transfer_Holding_List;
                return(RedirectToAction("Index", "SecurityTransfer", new { acid, PendingPeriodEndCount, PendingTransactionsCountPNT, PendingTransactionsCountPCL }));
            }
            else if (PendingTransactionsCountPNT > 0 || PendingTransactionsCountPCL > 0)
            {
                acid = ConstEnum.UserActions.Security_Transfer_Holding_List;
                return(RedirectToAction("Index", "SecurityTransfer", new { acid, PendingPeriodEndCount, PendingTransactionsCountPNT, PendingTransactionsCountPCL }));
            }
            else
            {
                return(View("TransferView", objSecurityTransferLogModel));
            }
        }
        public JsonResult GetAvailableQuantityForIndividualDematOrAllDemat(SecurityTransferLogModel objSecurityTransferLogModel)
        {
            LoginUserDetails objLoginUserDetails    = (LoginUserDetails)InsiderTrading.Common.Common.GetSessionValue((string)ConstEnum.SessionValue.UserDetails);
            decimal          out_dAvailableQty      = 0;
            decimal          out_dAvailableESOPQty  = 0;
            decimal          out_dAvailableOtherQty = 0;
            string           sMessage        = "";
            string           EsopQtyMessage  = "";
            string           OtherQtyMessage = "";

            try{
                using (var objSecurityTransferSL = new SecurityTransferSL())
                {
                    if (objSecurityTransferLogModel.TransferFor == InsiderTrading.Common.ConstEnum.Code.PreclearanceRequestForSelf)
                    {
                        if (objSecurityTransferLogModel.SecurityTransferOption == InsiderTrading.Common.ConstEnum.Code.SecurityTransferfromselectedDemataccount)
                        {
                            objSecurityTransferSL.GetAvailableQuantityForIndividualDematOrAllDemat(objLoginUserDetails.CompanyDBConnectionString,
                                                                                                   objSecurityTransferLogModel.UserInfoId, objSecurityTransferLogModel.UserInfoId, objSecurityTransferLogModel.SecurityTypeCodeID, objSecurityTransferLogModel.FromDEMATAcountID,
                                                                                                   objSecurityTransferLogModel.SecurityTransferOption, out out_dAvailableQty, out out_dAvailableESOPQty, out out_dAvailableOtherQty);
                            sMessage        = InsiderTrading.Common.Common.getResource("usr_lbl_11453") + Convert.ToInt64(out_dAvailableQty).ToString();
                            EsopQtyMessage  = InsiderTrading.Common.Common.getResource("usr_lbl_50651") + Convert.ToInt64(out_dAvailableESOPQty).ToString();
                            OtherQtyMessage = InsiderTrading.Common.Common.getResource("usr_lbl_50652") + Convert.ToInt64(out_dAvailableOtherQty).ToString();
                        }
                        else if (objSecurityTransferLogModel.SecurityTransferOption == InsiderTrading.Common.ConstEnum.Code.SecurityTransferfromAllDemataccount)
                        {
                            objSecurityTransferSL.GetAvailableQuantityForIndividualDematOrAllDemat(objLoginUserDetails.CompanyDBConnectionString,
                                                                                                   objSecurityTransferLogModel.UserInfoId, objSecurityTransferLogModel.UserInfoId, objSecurityTransferLogModel.SecurityTypeCodeID, objSecurityTransferLogModel.ToDEMATAcountID,
                                                                                                   objSecurityTransferLogModel.SecurityTransferOption, out out_dAvailableQty, out out_dAvailableESOPQty, out out_dAvailableOtherQty);

                            ArrayList lstQty = new ArrayList();
                            lstQty.Add(Convert.ToInt64(out_dAvailableQty).ToString());
                            sMessage = Common.Common.getResource("usr_lbl_11454", lstQty);
                            //sMessage = "<b>Total Available Quantity for transfer of all demat accounts : " + Convert.ToInt64(out_dAvailableQty).ToString() +
                            // "<br/>  (Excluding the demat account to which the quantity is to be transferred)</b>";
                        }
                    }
                    else if (objSecurityTransferLogModel.TransferFor == InsiderTrading.Common.ConstEnum.Code.PreclearanceRequestForRelative)
                    {
                        if (objSecurityTransferLogModel.SecurityTransferOption == InsiderTrading.Common.ConstEnum.Code.SecurityTransferfromselectedDemataccount)
                        {
                            objSecurityTransferSL.GetAvailableQuantityForIndividualDematOrAllDemat(objLoginUserDetails.CompanyDBConnectionString,
                                                                                                   objSecurityTransferLogModel.UserInfoId, objSecurityTransferLogModel.ForUserInfoId, objSecurityTransferLogModel.SecurityTypeCodeID, objSecurityTransferLogModel.FromDEMATAcountID,
                                                                                                   objSecurityTransferLogModel.SecurityTransferOption, out out_dAvailableQty, out out_dAvailableESOPQty, out out_dAvailableOtherQty);
                            sMessage        = InsiderTrading.Common.Common.getResource("usr_lbl_11453") + Convert.ToInt64(out_dAvailableQty).ToString();
                            EsopQtyMessage  = InsiderTrading.Common.Common.getResource("usr_lbl_50651") + Convert.ToInt64(out_dAvailableESOPQty).ToString();
                            OtherQtyMessage = InsiderTrading.Common.Common.getResource("usr_lbl_50652") + Convert.ToInt64(out_dAvailableOtherQty).ToString();
                        }
                        else if (objSecurityTransferLogModel.SecurityTransferOption == InsiderTrading.Common.ConstEnum.Code.SecurityTransferfromAllDemataccount)
                        {
                            objSecurityTransferSL.GetAvailableQuantityForIndividualDematOrAllDemat(objLoginUserDetails.CompanyDBConnectionString,
                                                                                                   objSecurityTransferLogModel.UserInfoId, objSecurityTransferLogModel.ForUserInfoId, objSecurityTransferLogModel.SecurityTypeCodeID, objSecurityTransferLogModel.ToDEMATAcountID,
                                                                                                   objSecurityTransferLogModel.SecurityTransferOption, out out_dAvailableQty, out out_dAvailableESOPQty, out out_dAvailableOtherQty);
                            // sMessage = "<b>Total Available Quantity for transfer of all demat accounts : " + Convert.ToInt64(out_dAvailableQty).ToString() +
                            //   " <br/>(Excluding the demat account to which the quantity is to be transferred)</b>";
                            ArrayList lstQty = new ArrayList();
                            lstQty.Add(Convert.ToInt64(out_dAvailableQty).ToString());
                            sMessage = Common.Common.getResource("usr_lbl_11454", lstQty);
                        }
                    }
                }
                ModelState.Clear();
            }catch (Exception exp) {
                ModelState.AddModelError("Error", Common.Common.GetErrorMessage(exp));
                return(Json(new { status = false, error = ModelState.ToSerializedDictionary() }));
            }
            finally
            {
            }

            return(Json(new
            {
                status = true,
                Message = sMessage,
                ESOP_Qty_Message = EsopQtyMessage,
                Other_Qty_Message = OtherQtyMessage,
                Other_Than_Esop_Qty = out_dAvailableOtherQty,
                Esop_Qty = out_dAvailableESOPQty,
                ESOP_Other_TotalQty = out_dAvailableQty
            }, JsonRequestBehavior.AllowGet));
        }