Exemple #1
0
        private bool AddSignatory(MemoSetup memoSetup)
        {
            bool   flag = true;
            string ApproverStaffName   = memoSetup.SignerDetails.ApproverStaffName;
            string ApproverStaffNumber = memoSetup.SignerDetails.ApproverStaffNumber;
            string ApproverGrade       = memoSetup.SignerDetails.ApproverGrade;
            string ApproverDept        = memoSetup.SignerDetails.ApproverDept;
            int?   GradeID             = memoSetup.SignerDetails.GradeID;
            int?   PayGroup_ID         = memoSetup.SignerDetails.PayGroup_ID;

            /**Check for null values**/
            if (String.IsNullOrEmpty(ApproverStaffName) || String.IsNullOrEmpty(ApproverStaffNumber) ||
                String.IsNullOrEmpty(ApproverGrade) || String.IsNullOrEmpty(ApproverDept) || GradeID == null ||
                PayGroup_ID == null)
            {
                TempData["ErrorMessage"] = "Please select a valid staff";
                flag = false;
            }
            else
            {
                /**Check if the staff already exists in the list**/
                if (memoSetup.SignerDetailsList != null && memoSetup.SignerDetailsList.Count > 0)
                {
                    bool dupStaff = memoSetup.SignerDetailsList.Exists(x => x.ApproverStaffNumber.ToUpper().Contains(ApproverStaffNumber));
                    if (dupStaff)
                    {
                        TempData["ErrorMessage"] = "Staff already exists in the list";
                        flag = false;
                    }
                }

                try {
                    SignerDetails signerDetails = new SignerDetails();
                    signerDetails.ApproverStaffName   = ApproverStaffName;
                    signerDetails.ApproverStaffNumber = ApproverStaffNumber;
                    signerDetails.ApproverGrade       = ApproverGrade;
                    signerDetails.ApproverDept        = ApproverDept;
                    signerDetails.GradeID             = GradeID;
                    signerDetails.PayGroup_ID         = PayGroup_ID;

                    TempData["newSignatory"] = signerDetails;
                } catch (Exception ex) {
                    TempData["ErrorMessage"] = ex.Message;
                    flag = false;
                }
            }
            return(flag);
        }
Exemple #2
0
        private string getSigners(MemoSetup mSetup)
        {
            RegexOptions options = RegexOptions.None;
            Regex        regex   = new Regex("[ ]{2,}", options);
            //tempo = regex.Replace(tempo, " ");

            List <SignerDetails> signerDetailsList = mSetup.SignerDetailsList;
            string signers = String.Empty;

            if (signerDetailsList != null && signerDetailsList.Count > 0)
            {
                foreach (var signer in signerDetailsList)
                {
                    signers += signer.ApproverStaffNumber + "$" + regex.Replace(signer.ApproverStaffName, " ") + "$" + signer.GradeID + "$" + signer.PayGroup_ID + "$" + signer.ApproverGrade + "$" + signer.ApproverDept + "|";
                }
                signers = signers.Remove(signers.Length - 1);
            }

            return(signers);
        }
Exemple #3
0
        public List <SignerDetails> GetApprovers(MemoSetup memoSetup)
        {
            List <SignerDetails> signerDetails = new List <SignerDetails>();
            SignerDetails        _signerDetails;

            string[] approvers_ = memoSetup.Signers.Split('|');
            foreach (string str in approvers_)
            {
                _signerDetails = new SignerDetails();
                string[] appr_ = str.Split('$');

                _signerDetails.ApproverStaffNumber = appr_[0];
                _signerDetails.ApproverStaffName   = appr_[1];
                _signerDetails.GradeID             = Int32.Parse(appr_[2]);
                _signerDetails.PayGroup_ID         = Int32.Parse(appr_[3]);
                _signerDetails.ApproverGrade       = appr_[4];
                _signerDetails.ApproverDept        = appr_[5];
                signerDetails.Add(_signerDetails);
            }

            return(signerDetails);
        }
Exemple #4
0
        private bool DeleteSignatory(MemoSetup memoSetup, string StaffNumber)
        {
            bool flag = true;

            /**Check for null values**/
            if (String.IsNullOrEmpty(StaffNumber))
            {
                TempData["ErrorMessage"] = "Please select an entry to delete";
                flag = false;
            }
            else
            {
                /**delete the staff from the list**/
                try {
                    List <SignerDetails> signerDetails = memoSetup.SignerDetailsList;
                    signerDetails.Remove(signerDetails.Single(s => s.ApproverStaffNumber.Equals(StaffNumber)));
                    TempData["signerDetails"] = signerDetails;
                } catch (Exception ex) {
                    TempData["ErrorMessage"] = ex.Message;
                    flag = false;
                }
            }
            return(flag);
        }
Exemple #5
0
        //[ValidateInput(false)]
        public ActionResult NewMemo()
        {
            _UserName           = User.Identity.Name;
            Session["UserName"] = User.Identity.Name;

            if (_UserName == null || _UserName.Equals(String.Empty))
            {
                ViewBag.ErrorMessage = "You must be logged in to continue.";
                return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval"));
            }

            MemoSetup memoSetup;

            if (TempData["memoSetup"] != null)
            {
                memoSetup = TempData["memoSetup"] as MemoSetup;
            }
            else
            {
                //now resolve the user profile from AD and Xceed
                StaffADProfile staffADProfile = new StaffADProfile();
                staffADProfile.user_logon_name = _UserName;

                //AD
                ActiveDirectoryQuery activeDirectoryQuery = new ActiveDirectoryQuery(staffADProfile);
                staffADProfile = activeDirectoryQuery.GetStaffProfile();
                if (staffADProfile == null)
                {
                    ViewBag.ErrorMessage = "Your profile is not properly setup on the system. Please contact InfoTech.";
                    return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval", new { UserName = Session["UserName"] as string }));
                }

                staffADProfile.grade = new LINQCalls().getStaffGrade(staffADProfile.employee_number);

                memoSetup = new MemoSetup();
                memoSetup.OriginatorName   = staffADProfile.user_logon_name;
                memoSetup.OriginatorNumber = staffADProfile.employee_number;

                memoSetup.WorkflowID        = Guid.NewGuid().ToString().ToUpper();
                memoSetup.EntryKey          = staffADProfile.employee_number + "_" + DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond + "_" + staffADProfile.branch_code;
                memoSetup.RequestStageId    = 0;
                memoSetup.RequestStage      = INIT_STAGE;
                memoSetup.StaffADProfile    = staffADProfile;
                memoSetup.SignerDetailsList = new List <SignerDetails>();
                memoSetup.SignerDetails     = new SignerDetails();
                memoSetup.Branch            = staffADProfile.branch_name;
                memoSetup.BranchCode        = staffADProfile.branch_code;

                memoSetup.Signers  = String.Empty;
                memoSetup.CCFields = String.Empty;

                memoSetup.DeptName = staffADProfile.branch_name;
                memoSetup.DeptCode = staffADProfile.branch_code;

                memoSetup.StaffADProfile = staffADProfile;

                DateTime dt = DateTime.Today;
                memoSetup.DateOfMemo = dt.ToString("dddd MMMM d, yyyy", CultureInfo.CreateSpecificCulture("en-US"));
            }

            memoSetup.SignerDetailsList = memoSetup.SignerDetailsList.OrderBy(x => x.PayGroup_ID).ToList() ?? memoSetup.SignerDetailsList;

            /**
             * //sort the list
             * if ( memoSetup.SignerDetailsList!=null ) {
             *  var d = from x in memoSetup.SignerDetailsList orderby x.PayGroup_ID select x;
             *  memoSetup.SignerDetailsList = d.ToList();
             * }**/

            Session["signerDetailsList"] = memoSetup.SignerDetailsList;
            ViewBag.editMode             = TempData["editMode"] ?? true;

            if (TempData["ErrorMessage"] != null)
            {
                ViewBag.ErrorMessage = TempData["ErrorMessage"] as string;
            }

            return(View(memoSetup));
        }
Exemple #6
0
        public ActionResult EditMemo(string WorkflowID, bool editMode, bool?myEntries)
        {
            _UserName           = User.Identity.Name;
            Session["UserName"] = User.Identity.Name;

            if (_UserName == null || _UserName.Equals(String.Empty))
            {
                ViewBag.ErrorMessage = "You must be logged in to continue.";
                return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval"));
            }

            //now resolve the user profile from AD and Xceed
            StaffADProfile staffADProfile = new StaffADProfile();

            staffADProfile.user_logon_name = _UserName;

            //staffADProfile.user_logon_name = "adebisi.olumoto";

            //AD
            ActiveDirectoryQuery activeDirectoryQuery = new ActiveDirectoryQuery(staffADProfile);

            staffADProfile       = activeDirectoryQuery.GetStaffProfile();
            staffADProfile.grade = new LINQCalls().getStaffGrade(staffADProfile.employee_number);

            if (staffADProfile == null)
            {
                ViewBag.ErrorMessage = "Your profile is not properly setup on the system. Please contact InfoTech.";
                return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval", new { UserName = Session["UserName"] as string }));
            }

            //Get the request identified by the Workflow ID
            MemoSetup memoSetup = new MemoSetup();

            memoSetup           = new LINQCalls().getWorkflowEntry(WorkflowID);
            ViewBag.StaffBranch = memoSetup.Branch;
            int      requeststageid  = memoSetup.RequestStageId;
            string   requeststage    = memoSetup.RequestStage;
            DateTime requestdate     = memoSetup.DateSubmitted;
            string   initiatornumber = new LINQCalls().getInitiatorNumber(WorkflowID) ?? staffADProfile.employee_number;

            string cansave = (requeststage.Equals(INIT_STAGE) || requeststage.Equals(DENIED)) && initiatornumber.Equals(staffADProfile.employee_number)
                                            ? this.CANSAVE : "false";

            XElement  ApprovalHistory = new LINQCalls().getApprovalHistory(WorkflowID);
            XDocument xDocument       = DataHandlers.ToXDocument(ApprovalHistory);

            List <ApprovalDetails> approvalHistory = xDocument.Descendants("Approvals")
                                                     .Select(det => new ApprovalDetails {
                ApproverNames        = det.Element("ApproverName").Value,
                ApproverStaffNumbers = det.Element("ApproverStaffNumber").Value,
                ApprovedStages       = det.Element("ApprovedStage").Value,
                ApproverAction       = det.Element("ApproverAction").Value,
                ApprovalDateTime     = det.Element("ApprovalDateTime").Value,
                ApproverComments     = det.Element("ApproverComment").Value
            }).ToList();

            memoSetup.SignerDetailsList = GetApprovers(memoSetup);

            editMode = editMode && memoSetup.RequestStageId.Equals(1);

            TempData["editMode"] = editMode;    //( editMode==true ) ? null : "false";
            ViewBag.editMode     = editMode;

            if (TempData["ErrorMessage"] != null)
            {
                ViewBag.ErrorMessage = TempData["ErrorMessage"] as string;
            }

            TempData["memoSetup"] = memoSetup;
            return(RedirectToAction("NewMemo", new { UserName = Session["UserName"] as string }));
        }
Exemple #7
0
        public ActionResult NewMemo(MemoSetup memoSetup, string MemoAction, string StaffNumber)
        {
            List <SignerDetails> signerDetails = memoSetup.SignerDetailsList ?? new List <SignerDetails>();

            //IEnumerable<RequestDetails> requestdetails = memoSetup.RequestDetails;
            //DataTable dataTable = DataHandlers.ToDataTable(requestdetails);
            string retVal = "";

            switch (MemoAction)
            {
            case "AddSignatory":
                //ADD the new Staff from the list
                if (AddSignatory(memoSetup))
                {
                    signerDetails.Add(TempData["newSignatory"] as SignerDetails);
                }
                break;

            case "DeleteSignatory":
                //DELETE the selected Staff from the list
                if (DeleteSignatory(memoSetup, StaffNumber))
                {
                    signerDetails = TempData["signerDetails"] as List <SignerDetails>;
                }
                break;

            case "Reset":
                // RESET all entries
                memoSetup     = null;
                signerDetails = null;
                break;

            case "Save":
                memoSetup.Action       = SAVED_STATUS;
                memoSetup.UploadStatus = SAVED_STATUS;

                retVal = new AppDatabase().saveMemo(memoSetup, "AppraisalDbConnectionString", SAVED_STATUS);

                if (retVal != null)
                {
                    TempData["SaveComplete"] = "false";
                    TempData["ErrorMessage"] = retVal;
                }
                break;

            /*case "Deny":
             *  // Good. let's send this f@*ker back
             *  requestDetails.Select( c => { c.entry_key = c.employee_number+"_"+superInputTargetModel.StaffADProfile.appperiod +"_"+superInputTargetModel.StaffADProfile.branch_code; return c; } ).ToList();
             *  requestDetails.Select( c => { c.workflowid = superInputTargetModel.WorkflowID; return c; } ).ToList();
             *
             *  // SAVE the value to the DATABASE
             *  requestdetails = superInputTargetModel.RequestDetails;
             *  dataTable = DataHandlers.ToDataTable(requestdetails);
             *
             *  retVal = new AppDatabase().inputTargetEntries( dataTable , superInputTargetModel , "AppraisalDbConnectionString" , DENIED_STATUS );
             *  Debug.WriteLine(retVal);
             *
             *  if( retVal!=null ){
             *      TempData["UploadComplete"] = "false";
             *      TempData["ErrorMessage"] = retVal;
             *      TempData["superInputTargetModel"] = superInputTargetModel;
             *  }else {
             *      //String.format(SUMBMITTEDMSG)--add the approvers
             *      var approvers = new LINQCalls().getApproverNames(superInputTargetModel.WorkflowID,-1);
             *      TempData["PostBackMessage"] = DENIEDMSG;
             *      TempData["Approvers"] = string.Join("\\n", approvers.ToArray());
             *      return RedirectToAction( "AwaitingMyApproval","AwaitingApproval",new { UserName = Session["UserName"] as string } );
             *  }
             *  break;*/
            case "Submit":
                //LET'S SUBMIT THIS SHIT

                //Remove the current approver from the approver list
                if (memoSetup.RequestStageId != 0)
                {
                    memoSetup.SignerDetailsList.Remove(signerDetails.Single(s => s.ApproverStaffNumber.Equals(memoSetup.StaffADProfile.employee_number)));
                    memoSetup.RequestStageId = 1;
                    if (memoSetup.SignerDetailsList.Count <= 0)
                    {
                        memoSetup.RequestStageId = 2;
                    }
                }

                memoSetup.Signers      = getSigners(memoSetup);
                memoSetup.Action       = SUBMIT_STATUS;
                memoSetup.UploadStatus = SUBMIT_STATUS;

                retVal = new AppDatabase().saveMemo(memoSetup, "AppraisalDbConnectionString", SUBMIT_STATUS);
                string[] retVals = retVal.Split('_');

                if (retVals.Length > 2 && retVals[2] != null)
                {
                    TempData["UploadComplete"] = "false";
                    TempData["ErrorMessage"]   = retVal;
                    TempData["memoSetup"]      = memoSetup;
                }
                else
                {
                    //Show the approvers
                    var approvers = memoSetup.SignerDetailsList.Select(approver => approver.ApproverStaffName).ToArray();
                    TempData["PostBackMessage"] = SUMBMITTEDMSG;
                    TempData["Approvers"]       = string.Join("\\n", approvers);

                    return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval", new { UserName = Session["UserName"] as string }));
                }
                break;
            }

            memoSetup.SignerDetailsList = signerDetails;
            TempData["memoSetup"]       = memoSetup;
            return(RedirectToAction("NewMemo", new { UserName = Session["UserName"] as string }));
        }
Exemple #8
0
        internal string saveMemo(MemoSetup memoSetup, string ConnString, string Status)
        {
            string retVal     = String.Empty;
            string connString = getConnectionString(ConnString);

            SqlConnection conn = new SqlConnection(connString);
            SqlCommand    cmnd = new SqlCommand();

            cmnd.Connection  = conn;
            cmnd.CommandType = CommandType.StoredProcedure;
            cmnd.CommandText = "zsp_insert_memo";

            cmnd.Parameters.Add("@entry_key", SqlDbType.VarChar).Value  = memoSetup.EntryKey;
            cmnd.Parameters.Add("@workflowid", SqlDbType.VarChar).Value = memoSetup.WorkflowID;

            cmnd.Parameters.Add("@requeststageid", SqlDbType.SmallInt).Value   = memoSetup.RequestStageId;
            cmnd.Parameters.Add("@requeststage", SqlDbType.VarChar).Value      = memoSetup.RequestStage;
            cmnd.Parameters.Add("@originator_number", SqlDbType.VarChar).Value = memoSetup.OriginatorNumber;
            cmnd.Parameters.Add("@originator_name", SqlDbType.VarChar).Value   = memoSetup.OriginatorName;
            cmnd.Parameters.Add("@grade", SqlDbType.VarChar).Value             = memoSetup.StaffADProfile.grade;
            cmnd.Parameters.Add("@deptname", SqlDbType.VarChar).Value          = memoSetup.DeptName;
            cmnd.Parameters.Add("@deptcode", SqlDbType.VarChar).Value          = memoSetup.DeptCode;
            cmnd.Parameters.Add("@branchname", SqlDbType.VarChar).Value        = memoSetup.Branch;
            cmnd.Parameters.Add("@branchcode", SqlDbType.VarChar).Value        = memoSetup.BranchCode;
            cmnd.Parameters.Add("@unitname", SqlDbType.VarChar).Value          = memoSetup.UnitName;
            cmnd.Parameters.Add("@unitcode", SqlDbType.VarChar).Value          = memoSetup.UnitCode;

            cmnd.Parameters.Add("@from", SqlDbType.VarChar).Value = memoSetup.From.ToUpper();
            cmnd.Parameters.Add("@to", SqlDbType.VarChar).Value   = memoSetup.To.ToUpper();
            cmnd.Parameters.Add("@attn", SqlDbType.VarChar).Value = memoSetup.Attn.ToUpper();

            Debug.WriteLine(DateTime.ParseExact(memoSetup.DateOfMemo, "dddd MMMM d, yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd HH:mm:ss.mm"));
            cmnd.Parameters.Add("@dateofmemo", SqlDbType.DateTime).Value = DateTime.ParseExact(memoSetup.DateOfMemo, "dddd MMMM d, yyyy", CultureInfo.InvariantCulture).ToString("s");

            /*
             * DateTime myDateTime = DateTime.ParseExact(memoSetup.DateOfMemo,"dddd MMMM d, yyyy",CultureInfo.InvariantCulture);
             * Debug.WriteLine(myDateTime);
             * myDateTime = DateTime.Now;
             * Debug.WriteLine(myDateTime);
             * string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");
             * Debug.WriteLine(sqlFormattedDate);
             * cmnd.Parameters.Add("@dateofmemo"       , SqlDbType.DateTime).Value = sqlFormattedDate;
             */

            cmnd.Parameters.Add("@subject", SqlDbType.VarChar).Value      = memoSetup.Subject.ToUpper();
            cmnd.Parameters.Add("@memobody", SqlDbType.NVarChar).Value    = memoSetup.MemoBody;
            cmnd.Parameters.Add("@uploadstatus", SqlDbType.VarChar).Value = memoSetup.UploadStatus;

            cmnd.Parameters.Add("@approvers", SqlDbType.VarChar).Value = memoSetup.Signers.ToUpper() ?? "";

            string CCFields = memoSetup.CCFields ?? "";

            cmnd.Parameters.Add("@ccfields", SqlDbType.VarChar).Value = CCFields.ToUpper();
            //cmnd.Parameters.Add("@ccfields"         , SqlDbType.VarChar).Value  = "";
            cmnd.Parameters.Add("@comments", SqlDbType.VarChar).Value = memoSetup.Comments ?? "";

            cmnd.Parameters.Add("@appid", SqlDbType.VarChar).Value = DataHandlers.APP_ID;

            cmnd.Parameters.Add("@rErrorCode", SqlDbType.Int, 2).Direction      = ParameterDirection.Output;
            cmnd.Parameters.Add("@rErrorMsg", SqlDbType.VarChar, 255).Direction = ParameterDirection.Output;

            Debug.WriteLine(memoSetup);

            SqlDataReader dr;

            try {
                // Open the data connection
                cmnd.Connection = conn;
                conn.Open();

                dr = cmnd.ExecuteReader();

                int retCode = int.Parse(cmnd.Parameters["@rErrorCode"].Value.ToString());
                if (retCode != 0)
                {
                    retVal = retCode + "_" + cmnd.Parameters["@rErrorMsg"].Value.ToString();
                }
            } catch (SqlException ex) {
                if (ex.Number != 0)
                {
                    //retVal = ex.Number+"|"+ex.Message;
                    retVal += "_true";
                    logWriter.WriteErrorLog(string.Format("saveMemo : Exception!!! / {0}", retVal));
                }
            } finally {
                conn.Close();
                cmnd.Dispose();
                dr = null;
            }
            return(retVal);
        }