コード例 #1
0
    private void ddlRemedy_AbnormalReasonID_Data()
    {
        var isSuccess = false;
        var msg       = "";
        var datas     = new List <AT_CodeMap_Bean>();
        var viewData  = new AT_CodeMap_Model()
        {
            TabName = "Punch",
            FldName = "PunchSeason"
        };

        ddlRemedy_AbnormalReasonID.Items.Clear();
        isSuccess = PunchUpdate.Select_AT_CodeMap(viewData, out datas, out msg);
        if (isSuccess && datas != null && datas.Count > 0)
        {
            viewData.SelectDDLDataList = PunchUpdate.GridDataFormat(datas); //Format Data
        }
        try
        {
            ddlRemedy_AbnormalReasonID.DataSource     = viewData.SelectDDLDataList;
            ddlRemedy_AbnormalReasonID.DataTextField  = "CodeCName";
            ddlRemedy_AbnormalReasonID.DataValueField = "Code";
            ddlRemedy_AbnormalReasonID.DataBind();
        }
        catch (Exception)
        {
            Util.MsgBox("非公務-補登原因撈取資料失敗,請通知相關設定人員!!");
        }
        ddlRemedy_AbnormalReasonID.Items.Insert(0, new ListItem("---請選擇---", ""));
    }
コード例 #2
0
 private void DoClear()
 {
     PunchUpdate.SelectValueDDL(ddlConfirmStatus, "");
     PunchUpdate.SelectValueDDL(ddlConfirmPunchFlag, "");
     PunchUpdate.SelectValueDDL(ddlAbnormalFlag, "");
     ucStartPunchDate.ucSelectedDate = "";
     ucEndPunchDate.ucSelectedDate   = "";
     gvMain.Visible = false;
 }
コード例 #3
0
 protected void gvMain_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName.Equals("Detail"))
     {
         GridViewRow clickedRow          = ((LinkButton)e.CommandSource).NamingContainer as GridViewRow;
         Dictionary <string, string> dic = new Dictionary <string, string>();
         PunchUpdate.GridViewToDictionary(gvMain, out dic, clickedRow.RowIndex, strDataKeyNames);
         Session["Punch_Confirm_Remedy_Bean"] = dic;
         Response.Redirect("PunchUpdateModify.aspx");
     }
 }
コード例 #4
0
    private void DoClear()
    {
        if (!string.IsNullOrEmpty(Quire_to_Modify.EmpID))
        {
            lblEmpName.Text          = Quire_to_Modify.EmpName;
            lblPunchDate.Text        = Quire_to_Modify.PunchDate;
            lblPunchTime.Text        = Quire_to_Modify.PunchTime;
            lblConfirmPunchFlag.Text = Quire_to_Modify.ConfirmPunchFlagGCN;
            ucRemedyPunchTime.ucDefaultSelectedHH = Quire_to_Modify.PunchTime.Split(":")[0];
            ucRemedyPunchTime.ucDefaultSelectedMM = Quire_to_Modify.PunchTime.Split(":")[1];

            //補登理由-下拉塞值
            ddlRemedyReasonID_Data();
            //非公務-下拉塞值
            ddlRemedy_AbnormalReasonID_Data();

            //修改前原因
            if (Quire_to_Modify.AbnormalFlag.Trim() == "2")
            {
                rdoAbnormalFlag2.Checked = true;
                lblAbnormalReasonCN.Text = Quire_to_Modify.AbnormalReasonCN.Trim();
                lbl_.Visible             = true;
            }
            else
            {
                rdoAbnormalFlag1.Checked    = true;
                lblAbnormalReasonCN.Visible = false;
            }

            //補登原因
            if (Quire_to_Modify.Remedy_AbnormalFlag.Trim() == "2")
            {
                rdoRemedy_AbnormalFlag2.Checked = true;
                PunchUpdate.SelectValueDDL(ddlRemedy_AbnormalReasonID, Quire_to_Modify.Remedy_AbnormalReasonID.Trim());
                ddlRemedy_AbnormalReasonID.Enabled = true;
            }
            else
            {
                rdoRemedy_AbnormalFlag1.Checked    = true;
                ddlRemedy_AbnormalReasonID.Enabled = false;
            }

            //其他說明
            lblAbnormalDesc.Text        = Quire_to_Modify.AbnormalDesc.Trim();
            txtRemedy_AbnormalDesc.Text = Quire_to_Modify.AbnormalDesc.Trim();
        }
        else
        {
            //Response.Redirect("PunchUpdateInquire.aspx");
        }
    }
コード例 #5
0
 private void subGetData()
 {
     if (Session["Punch_Confirm_Remedy_Bean"] == null)
     {
         //Response.Redirect("PunchUpdateInquire.aspx");
     }
     else
     {
         Dictionary <string, string> dic = (Dictionary <string, string>)Session["Punch_Confirm_Remedy_Bean"];
         ViewState["Punch_Confirm_Remedy_Bean"] = Session["Punch_Confirm_Remedy_Bean"];
         Quire_to_Modify = PunchUpdate.Punch_Confirm_Remedy_DicToBean(dic);
         DoClear();
         //Session["Quire_to_Modify"] = null;
     }
 }
コード例 #6
0
    protected void LoadData()
    {
        gvMain.Visible = true;
        var isSuccess = false;
        var msg       = "";
        var datas     = new List <Punch_Confirm_Remedy_Bean>();
        var viewData  = new Punch_Confirm_Remedy_Model()
        {
            ValidCompID   = StringIIF(UserInfo.getUserInfo().CompID),
            ValidID       = StringIIF(UserInfo.getUserInfo().UserID),
            ConfirmStatus = "2"
        };

        isSuccess = PunchUpdate.PunchAppdOperation_DoQuery(viewData, out datas, out msg);
        if (isSuccess && datas != null && datas.Count > 0)
        {
            viewData.SelectGridDataList = PunchUpdate.GridDataFormat(datas); //Format Data
        }
        gvMain.DataSource = viewData.SelectGridDataList;
        gvMain.DataBind();
    }
コード例 #7
0
    private void DoQuery()
    {
        var isSuccess = false;
        var msg       = "";
        var datas     = new List <Punch_Confirm_Remedy_Bean>();
        var viewData  = new Punch_Confirm_Remedy_Model()
        {
            //CompID = StringIIF(UserInfo.getUserInfo().CompID),
            EmpID            = StringIIF(UserInfo.getUserInfo().UserID),
            StartPunchDate   = StringIIF(ucStartPunchDate.ucSelectedDate),
            EndPunchDate     = StringIIF(ucEndPunchDate.ucSelectedDate),
            ConfirmPunchFlag = StringIIF(ddlConfirmPunchFlag.SelectedValue),
            ConfirmStatus    = StringIIF(ddlConfirmStatus.SelectedValue),
            AbnormalFlag     = StringIIF(ddlAbnormalFlag.SelectedValue)
        };

        isSuccess = PunchUpdate.PunchUpdateInquire_DoQuery(viewData, out datas, out msg);
        if (isSuccess && datas != null && datas.Count > 0)
        {
            viewData.SelectGridDataList = PunchUpdate.GridDataFormat(datas); //Format Data
        }
        gvMain.DataSource = viewData.SelectGridDataList;
        gvMain.DataBind();
    }
コード例 #8
0
 protected void rdoRemedy_AbnormalFlag1_CheckedChanged(object sender, EventArgs e)
 {
     PunchUpdate.SelectValueDDL(ddlRemedy_AbnormalReasonID, "");
     ddlRemedy_AbnormalReasonID.Enabled = false;
 }
コード例 #9
0
    private bool SaveData()
    {
        Dictionary <string, string> dic = (Dictionary <string, string>)ViewState["Punch_Confirm_Remedy_Bean"];

        Quire_to_Modify = PunchUpdate.Punch_Confirm_Remedy_DicToBean(dic);
        int    Seq          = 0;
        bool   result       = false;
        long   seccessCount = 0;
        string msg          = ""; //因為Exception用ShowMsg會不能顯示,所以取得msg後不使用(這就是沒用的變數)
        int    PunchTimeHH  = 0;

        if (!int.TryParse(ucRemedyPunchTime.ucDefaultSelectedHH, out PunchTimeHH))
        {
            PunchTimeHH = 0;
        }

        Punch_Confirm_Remedy_Bean model = new Punch_Confirm_Remedy_Bean()
        {
            //跟Confirm一樣的內容,不修改
            FlowCaseID       = "",
            CompID           = Quire_to_Modify.CompID.Trim(),
            EmpID            = Quire_to_Modify.EmpID.Trim(),
            EmpName          = Quire_to_Modify.EmpName.Trim(),
            DutyDate         = Quire_to_Modify.DutyDate.Trim(),
            DutyTime         = Quire_to_Modify.DutyTime.Replace(":", "").Trim(),
            PunchDate        = Quire_to_Modify.PunchDate.Trim(),
            PunchTime        = Quire_to_Modify.PunchTime.Trim(),
            PunchConfirmSeq  = Quire_to_Modify.PunchConfirmSeq.Trim(),
            DeptID           = Quire_to_Modify.DeptID.Trim(),
            DeptName         = Quire_to_Modify.DeptName.Trim(),
            OrganID          = Quire_to_Modify.OrganID.Trim(),
            OrganName        = Quire_to_Modify.OrganName.Trim(),
            FlowOrganID      = Quire_to_Modify.FlowOrganID.Trim(),
            FlowOrganName    = Quire_to_Modify.FlowOrganName.Trim(),
            MAFT10_FLAG      = Quire_to_Modify.MAFT10_FLAG.Trim(),
            AbnormalFlag     = Quire_to_Modify.AbnormalFlag.Trim(),
            AbnormalReasonID = Quire_to_Modify.AbnormalReasonID.Trim(),
            AbnormalReasonCN = Quire_to_Modify.AbnormalReasonCN.Trim(),
            AbnormalDesc     = Quire_to_Modify.AbnormalDesc.Trim(),

            //Remedy修改項目
            PunchRemedySeq = (int.TryParse(Quire_to_Modify.PunchRemedySeq, out Seq) ? Seq + 1 : 1).ToString().Trim(),

            RemedyReasonID  = ddlRemedyReasonID.SelectedValue.Trim(),
            RemedyReasonCN  = ddlRemedyReasonID.SelectedValue.Trim() == "" ? "" : ddlRemedyReasonID.SelectedItem.Text.Trim(),
            RemedyPunchTime = ucRemedyPunchTime.ucSelectedTime.Trim(),

            Remedy_MAFT10_FLAG      = (Quire_to_Modify.Sex.Trim() == "2" && (PunchTimeHH >= 22)) ? "1" : "0",
            Remedy_AbnormalFlag     = rdoRemedy_AbnormalFlag1.Checked ? "1" : "2", //待John檢核公用
            Remedy_AbnormalReasonID = ddlRemedy_AbnormalReasonID.SelectedValue.Trim(),
            Remedy_AbnormalReasonCN = ddlRemedy_AbnormalReasonID.SelectedValue.Trim() == "" ? "" : ddlRemedy_AbnormalReasonID.SelectedItem.Text.Trim(),
            Remedy_AbnormalDesc     = txtRemedy_AbnormalDesc.Text.Trim(),

            LastChgComp = UserInfo.getUserInfo().CompID.Trim(),
            LastChgID   = UserInfo.getUserInfo().UserID.Trim(),
            LastChgDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),

            //Remedy特有
            RemedyPunchFlag = Quire_to_Modify.ConfirmPunchFlag.Trim(), //補登檔RemedyPunchFlag=確認檔ConfirmPunchFlag=紀錄檔PunchFlag
            BatchFlag       = Quire_to_Modify.BatchFlag.Trim(),        //批次更新確認檔處理註記,0:未處理,1:已處理。(保留暫定)
            PORemedyStatus  = "2",
            RejectReason    = "",
            RejectReasonCN  = "",
            ValidDateTime   = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
            //ValidTime = "",
            ValidCompID = UserInfo.getUserInfo().CompID.Trim(),
            ValidID     = UserInfo.getUserInfo().UserID.Trim(),
            ValidName   = UserInfo.getUserInfo().UserName.Trim()
        };

        result = PunchUpdate.PunchUpdateModify_SaveData(model, out seccessCount, out msg);
        if (!result)
        {
            msg = "送簽失敗!!-" + msg;
            return(false);
        }
        if (seccessCount == 0)
        {
            msg = "送簽失敗!!";
            return(false);
        }
        msg = "送簽成功!!";
        return(true);
    }
コード例 #10
0
    private void DoSubmit()
    {
        if (Session["FlowVerifyInfo"] != null)
        {
            Dictionary <string, string> oVerifyInfo = (Dictionary <string, string>)Session["FlowVerifyInfo"];
            Dictionary <string, string> dic         = (Dictionary <string, string>)Session["PunchAppdOperation_GridView"];
            Dictionary <string, string> toUserData  = (Dictionary <string, string>)Session["PunchAppdOperation_toUserData"];
            Util.setJSContent(oVerifyInfo["FlowVerifyJS"]);
            Session["FlowVerifyInfo"] = null;
            Punch_Confirm_Remedy_Bean model = new Punch_Confirm_Remedy_Bean()
            {
                //跟共用條件
                CompID      = dic["CompID"],
                EmpID       = dic["EmpID"],
                EmpName     = dic["EmpName"],
                LastChgComp = UserInfo.getUserInfo().CompID.Trim(),
                LastChgID   = UserInfo.getUserInfo().UserID.Trim(),
                LastChgDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),

                //預存所需資料
                PunchTime        = dic["PunchTime"],
                ConfirmPunchFlag = dic["ConfirmPunchFlag"],
                DutyTime         = dic["DutyTime"],
                RestBeginTime    = dic["RestBeginTime"],
                RestEndTime      = dic["RestEndTime"],

                //Remedy所需資料
                PunchDate      = dic["PunchDate"],
                PunchRemedySeq = dic["PunchRemedySeq"],
                FlowCaseID     = dic["FlowCaseID"],
                ValidDateTime  = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
                ValidCompID    = UserInfo.getUserInfo().CompID.Trim(),
                ValidID        = UserInfo.getUserInfo().UserID.Trim(),
                ValidName      = UserInfo.getUserInfo().UserName.Trim(),

                //Confirm所需資料
                DutyDate                = dic["DutyDate"],
                PunchConfirmSeq         = dic["PunchConfirmSeq"],
                RemedyReasonID          = dic["RemedyReasonID"],
                RemedyReasonCN          = dic["RemedyReasonCN"],
                RemedyPunchTime         = dic["RemedyPunchTime"],
                Remedy_MAFT10_FLAG      = dic["Remedy_MAFT10_FLAG"],
                Remedy_AbnormalFlag     = dic["Remedy_AbnormalFlag"],
                Remedy_AbnormalReasonID = dic["Remedy_AbnormalReasonID"],
                Remedy_AbnormalReasonCN = dic["Remedy_AbnormalReasonCN"],
                Remedy_AbnormalDesc     = dic["Remedy_AbnormalDesc"]
            };

            switch (oVerifyInfo["FlowStepBtnID"].ToString())
            {
            //PORemedyStatus。0:未處理,1:未送簽,2:送簽中,3:核准,4:駁回
            //ConfirmStatus。0:正常,1:異常,2:送簽中,3:異常不控管
            case "btnClose":
                model.PORemedyStatus = "3";
                string strConfirmStatus = "", strAbnormalType = "";
                if (!PunchUpdate.PunchAppdOperation_EXEC_PunchCheckData(model, out strConfirmStatus, out strAbnormalType))
                {
                    Util.MsgBox("打卡異常檢核失敗!!");
                    return;
                }
                model.ConfirmStatus = strConfirmStatus;     //0 or 1記得用John的TSQL
                model.AbnormalType  = strAbnormalType;
                break;

            case "btnApprove":
            case "btnReApprove":
                model.PORemedyStatus = "2";
                model.ConfirmStatus  = "2";
                break;

            case "btnReject":
                model.PORemedyStatus = "4";
                model.ConfirmStatus  = "1";
                break;
            }
            Dictionary <string, string> oAssDic = CustVerify.getEmpID_Name_Dictionary(toUserData["SignID"], toUserData["SignIDComp"]);
            DataTable LastHROtherFlowLog        = PunchUpdate.HROtherFlowLog(model.FlowCaseID, true);
            long      seccessCount = 0;
            string    msg          = "";
            bool      result       = false;
            result = PunchUpdate.PunchAppdOperation_SaveData(model, oAssDic, oVerifyInfo["FlowStepBtnID"].ToString(), oVerifyInfo["FlowStepOpinion"].ToString().Replace("'", "''"), out seccessCount, out msg, LastHROtherFlowLog.Rows[0]["FlowCode"].ToString(), LastHROtherFlowLog.Rows[0]["FlowSN"].ToString(), LastHROtherFlowLog.Rows[0]["FlowSeq"].ToString(), LastHROtherFlowLog.Rows[0]["FlowLogBatNo"].ToString(), LastHROtherFlowLog.Rows[0]["FlowLogID"].ToString(), toUserData);

            if (result)
            {
                labMsg.Text = Util.getHtmlMessage(Util.HtmlMessageKind.Succeed, "審核成功!");
            }
            else
            {
                labMsg.Text       = Util.getHtmlMessage(Util.HtmlMessageKind.Error, "審核失敗");
                txtErrMsg.Text    = msg;
                txtErrMsg.Visible = true;
            }
        }
    }
コード例 #11
0
    private bool nextFlowBtn(Punch_Confirm_Remedy_Bean Bean, out string flowCode, out string flowSN, ref string btnName, out Dictionary <string, string> toUserData, out string msg)
    {
        flowCode   = ""; flowSN = ""; msg = "";
        toUserData = new Dictionary <string, string>();
        string OTEmpID    = Bean.EmpID,
               AssignTo   = Bean.ValidID,
               CompID     = Bean.CompID,
               PunchDate  = Bean.PunchDate,
               FlowCaseID = Bean.FlowCaseID;

        bool IsUpValidRankID = true;
        bool IsUpEmpRankID   = false;

        bool   isLastFlow, nextIsLastFlow;
        string signLineDefine = "", meassge = "";
        string SignOrganID = "", SignID = "", SignIDComp = "";

        string        FlowStepID = "";
        DbHelper      db         = new DbHelper(Aattendant._AattendantDBName);
        CommandHelper sb         = db.CreateCommandHelper();

        sb.Reset();
        sb.Append("SELECT FlowStepID from " + FlowCustDB + "FlowOpenLog ");
        sb.Append(" where FlowCaseID=").AppendParameter("FlowCaseID", FlowCaseID);
        try
        {
            FlowStepID = db.ExecuteScalar(sb.BuildCommand()).ToString();
        }
        catch (Exception)
        {
            FlowStepID = "";
            msg        = "永豐流程查無資料";
            return(false);
        }
        //讀取現在關卡與下一關相關資料,因為不論回傳是否,我還是要資料,所以沒檢核return與meassge
        OBFlowUtility.QueryFlowDataAndToUserData(CompID, AssignTo, PunchDate, FlowCaseID, "P",
                                                 out toUserData, out flowCode, out flowSN, out signLineDefine, out isLastFlow, out nextIsLastFlow, out meassge, "PO");

        //如果QueryFlowDataAndToUserData出錯(HR關與改派容易出現沒有下一關卻無法判定現在是最後一關的狀況),會找不到現在是否為最後一關,這裡單獨再找一次
        isLastFlow = isLastFlowNow(Bean.CompID, FlowCaseID, "P", "PO");

        //如果沒有下一關資料,則用現在關卡資料取代(對應上述QueryFlowDataAndToUserData問題 )
        if (toUserData.Count == 0)
        {
            //取[最近的行政or功能]資料 取代 [現在關卡]資料
            DataTable dtHROtherFlowLog_toUD = PunchUpdate.HROtherFlowLog(FlowCaseID, true);
            toUserData.Add("SignLine", dtHROtherFlowLog_toUD.Rows[0]["SignLine"].ToString());
            toUserData.Add("SignIDComp", dtHROtherFlowLog_toUD.Rows[0]["SignIDComp"].ToString());
            toUserData.Add("SignID", AssignTo);
            toUserData.Add("SignOrganID", dtHROtherFlowLog_toUD.Rows[0]["SignOrganID"].ToString());
            toUserData.Add("SignFlowOrganID", dtHROtherFlowLog_toUD.Rows[0]["SignFlowOrganID"].ToString());
        }

        //如果下一關主管與現在主管相同,則再往上階找下一關主管資料
        if (toUserData["SignID"] == AssignTo && signLineDefine != "3")
        {
            switch (toUserData["SignLine"])
            {
            //HR線 或 行政線
            case "4":
            case "1":
                if (EmpInfo.QueryOrganData(Bean.CompID, toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                {
                    toUserData["SignID"]          = SignID;
                    toUserData["SignIDComp"]      = SignIDComp;
                    toUserData["SignOrganID"]     = SignOrganID;
                    toUserData["SignFlowOrganID"] = "";
                }
                break;

            //功能線
            case "2":
                if (EmpInfo.QueryFlowOrganData(toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                {
                    toUserData["SignID"]          = SignID;
                    toUserData["SignIDComp"]      = SignIDComp;
                    toUserData["SignOrganID"]     = "";
                    toUserData["SignFlowOrganID"] = SignOrganID;
                }
                break;

            //原本switch的是signLineDefine,現在改成toUserData["SignLine"]後,
            //case "3"裏頭的if基本只會用到else[非功能線一律走行政線],以防萬一先保留。
            //改派
            case "3":
                if (toUserData["SignLine"] == "2")
                {
                    if (EmpInfo.QueryFlowOrganData(toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                    {
                        toUserData["SignID"]          = SignID;
                        toUserData["SignIDComp"]      = SignIDComp;
                        toUserData["SignOrganID"]     = "";
                        toUserData["SignFlowOrganID"] = SignOrganID;
                    }
                }
                else
                {
                    if (EmpInfo.QueryOrganData(Bean.CompID, toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                    {
                        toUserData["SignID"]          = SignID;
                        toUserData["SignIDComp"]      = SignIDComp;
                        toUserData["SignOrganID"]     = SignOrganID;
                        toUserData["SignFlowOrganID"] = "";
                    }
                }
                break;
            }
        }

        RankIDCheck(CompID, FlowCaseID, out IsUpValidRankID, out IsUpEmpRankID);
        if (signLineDefine == "4")           //HR特別關(後台沒有送簽功能的話,這裡不會用到)
        {
            if (IsUpValidRankID)             //大於Rank16
            {
                Session["btnVisible"] = "2"; //給永豐流程按鈕隱藏判斷
                btnName = "btnClose";        //回傳按鈕名稱,給多筆審核組進DataTable傳給審核畫面
            }
            else
            {
                if (FlowStepID == "A10") //預防HR送錯關,本來資料上HR關是只有A20或A40等最後一關
                {
                    Session["btnVisible"] = "0";
                    btnName = "btnApprove";
                }
                else
                {
                    Session["btnVisible"] = "1";
                    btnName = "btnReApprove";
                }
            }
        }
        else if (!isLastFlowNow(CompID, FlowCaseID, "P", "PO")) //非最後一關
        {
            if (IsUpEmpRankID)                                  //大於Rank19
            {
                Session["btnVisible"] = "2";
                btnName = "btnClose";
            }
            else
            {
                if (nextIsLastFlow) //下一關是否進入A40最後一關
                {
                    Session["btnVisible"] = "0";
                    btnName = "btnApprove";
                }
                else
                {
                    Session["btnVisible"] = "1";
                    btnName = "btnReApprove";
                }
            }
        }
        else//最後一關
        {
            if (OTEmpID.Trim().Equals(UserInfo.getUserInfo().UserID.Trim()))//當加班人是自己主管的代理人並審自己的加班單
            {
                if (IsUpEmpRankID)//加班人RankID>19
                {
                    Session["btnVisible"] = "2";
                    btnName = "btnClose";
                }
                else
                {
                    Session["btnVisible"] = "1";
                    btnName = "btnReApprove";
                }
            }
            else if (IsUpValidRankID)//大於Rank16
            {
                Session["btnVisible"] = "2";
                btnName = "btnClose";
            }
            else
            {
                Session["btnVisible"] = "1";
                btnName = "btnReApprove";
            }
        }

        //如果找不到下一關主管資料,彈跳視窗並且return false
        if (toUserData["SignID"] == "")
        {
            toUserData["SignIDComp"] = UserInfo.getUserInfo().CompID.Trim();
            toUserData["SignID"]     = UserInfo.getUserInfo().UserID.Trim();
            //Util.MsgBox("查無下一關主管資料");
            if (isLastFlow) //最後一關不用找下一關主管
            {
                return(true);
            }
            else
            {
                msg = "查無下一關主管資料";
                return(false);
            }
        }
        return(true);
    }
コード例 #12
0
    protected void gvMain_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        GridViewRow clickedRow = ((ImageButton)e.CommandSource).NamingContainer as GridViewRow;

        switch (e.CommandName)
        {
        case "Detail":
            string flowCode = "", flowSN = "", msg = "", btnName = "";
            Dictionary <string, string> dic = new Dictionary <string, string>();
            Dictionary <string, string> toUserData;
            PunchUpdate.GridViewToDictionary(gvMain, out dic, clickedRow.RowIndex, strDataKeyNames);
            FlowExpress oFlow = new FlowExpress(FlowCustDB, dic["FlowCaseID"], false);
            Punch_Confirm_Remedy_Bean model = new Punch_Confirm_Remedy_Bean()
            {
                //跟共用條件
                CompID      = dic["CompID"],
                EmpID       = dic["EmpID"],
                EmpName     = dic["EmpName"],
                LastChgComp = UserInfo.getUserInfo().CompID.Trim(),
                LastChgID   = UserInfo.getUserInfo().UserID.Trim(),
                LastChgDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),

                //預存所需資料
                PunchTime        = dic["PunchTime"],
                ConfirmPunchFlag = dic["ConfirmPunchFlag"],
                DutyTime         = dic["DutyTime"],
                RestBeginTime    = dic["RestBeginTime"],
                RestEndTime      = dic["RestEndTime"],
                //Remedy所需資料
                PunchDate      = dic["PunchDate"],
                PunchRemedySeq = dic["PunchRemedySeq"],
                FlowCaseID     = dic["FlowCaseID"],
                ValidDateTime  = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
                ValidCompID    = UserInfo.getUserInfo().CompID.Trim(),
                ValidID        = UserInfo.getUserInfo().UserID.Trim(),
                ValidName      = UserInfo.getUserInfo().UserName.Trim(),

                //Confirm所需資料
                DutyDate                = dic["DutyDate"],
                PunchConfirmSeq         = dic["PunchConfirmSeq"],
                RemedyReasonID          = dic["RemedyReasonID"],
                RemedyReasonCN          = dic["RemedyReasonCN"],
                RemedyPunchTime         = dic["RemedyPunchTime"],
                Remedy_MAFT10_FLAG      = dic["Remedy_MAFT10_FLAG"],
                Remedy_AbnormalFlag     = dic["Remedy_AbnormalFlag"],
                Remedy_AbnormalReasonID = dic["Remedy_AbnormalReasonID"],
                Remedy_AbnormalReasonCN = dic["Remedy_AbnormalReasonCN"],
                Remedy_AbnormalDesc     = dic["Remedy_AbnormalDesc"]
            };
            //按鈕清單
            ClearBtn(model.FlowCaseID);

            //下一關邏輯判斷,產生審核按鈕資訊,給出Ken流程相關資訊
            if (!nextFlowBtn(model, out flowCode, out flowSN, ref btnName, out toUserData, out msg))       //判斷審核按鈕
            {
                Util.MsgBox(msg);
                return;
            }
            CustVerify.setFlowSignID_CompID(toUserData["SignID"].ToString() + "," + toUserData["SignIDComp"].ToString());
            //傳給審核畫面-單筆審核使用
            Session["PunchAppdOperation_toUserData"] = toUserData;
            Session["PunchAppdOperation_GridView"]   = dic;
            //產生審核按鈕
            FlowExpress.getFlowTodoList(FlowExpress.TodoListAssignKind.All, model.ValidID.Trim(), FlowCustDB.Split(','), "".Split(','), false, "", "");
            //跳轉畫面
            Response.Redirect(string.Format(FlowExpress._FlowPageVerifyURL + "?FlowID={0}&FlowLogID={1}&ProxyType={2}&IsShowBtnComplete={3}&IsShowCheckBoxList={4}&ChkMaxKeyLen={5}", oFlow.FlowID, oFlow.FlowCurrLastLogID, "Self", "N", "N", ""));
            break;
        }
    }
コード例 #13
0
    private void SaveData()
    {
        string ErrorIndex = "";

        for (int index = 0; index < gvMain.Rows.Count; index++)
        {
            CheckBox objchk = (CheckBox)gvMain.Rows[index].FindControl("chkChoiced");
            if (objchk.Checked == true)
            {
                bool   result = false;
                long   seccessCount = 0;
                string msg = "", flowCode = "", flowSN = "";
                string btnName = "";

                RadioButton rdoApp    = (RadioButton)gvMain.Rows[index].FindControl("rbnApproved");
                RadioButton rdoRej    = (RadioButton)gvMain.Rows[index].FindControl("rbnReject");
                TextBox     txtReason = (TextBox)gvMain.Rows[index].FindControl("txtReason");

                Dictionary <string, string> dic        = new Dictionary <string, string>();
                Dictionary <string, string> toUserData = new Dictionary <string, string>();
                PunchUpdate.GridViewToDictionary(gvMain, out dic, index, strDataKeyNames);
                Punch_Confirm_Remedy_Bean model = new Punch_Confirm_Remedy_Bean()
                {
                    //跟共用條件
                    CompID      = dic["CompID"],
                    EmpID       = dic["EmpID"],
                    EmpName     = dic["EmpName"],
                    LastChgComp = UserInfo.getUserInfo().CompID.Trim(),
                    LastChgID   = UserInfo.getUserInfo().UserID.Trim(),
                    LastChgDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),

                    //預存所需資料
                    PunchTime        = dic["PunchTime"],
                    ConfirmPunchFlag = dic["ConfirmPunchFlag"],
                    DutyTime         = dic["DutyTime"],
                    RestBeginTime    = dic["RestBeginTime"],
                    RestEndTime      = dic["RestEndTime"],
                    //Remedy所需資料
                    PunchDate      = dic["PunchDate"],
                    PunchRemedySeq = dic["PunchRemedySeq"],
                    FlowCaseID     = dic["FlowCaseID"],
                    ValidDateTime  = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
                    ValidCompID    = UserInfo.getUserInfo().CompID.Trim(),
                    ValidID        = UserInfo.getUserInfo().UserID.Trim(),
                    ValidName      = UserInfo.getUserInfo().UserName.Trim(),

                    //Confirm所需資料
                    DutyDate                = dic["DutyDate"],
                    PunchConfirmSeq         = dic["PunchConfirmSeq"],
                    RemedyReasonID          = dic["RemedyReasonID"],
                    RemedyReasonCN          = dic["RemedyReasonCN"],
                    RemedyPunchTime         = dic["RemedyPunchTime"],
                    Remedy_MAFT10_FLAG      = dic["Remedy_MAFT10_FLAG"],
                    Remedy_AbnormalFlag     = dic["Remedy_AbnormalFlag"],
                    Remedy_AbnormalReasonID = dic["Remedy_AbnormalReasonID"],
                    Remedy_AbnormalReasonCN = dic["Remedy_AbnormalReasonCN"],
                    Remedy_AbnormalDesc     = dic["Remedy_AbnormalDesc"]
                };

                if (rdoApp.Checked == true)                                                                  //核准
                {
                    if (!nextFlowBtn(model, out flowCode, out flowSN, ref btnName, out toUserData, out msg)) //判斷審核按鈕
                    {
                        Util.MsgBox(msg);
                        return;
                    }
                    switch (btnName)
                    {
                    //PORemedyStatus。0:未處理,1:未送簽,2:送簽中,3:核准,4:駁回
                    //ConfirmStatus。0:正常,1:異常,2:送簽中,3:異常不控管
                    case "btnClose":
                        model.PORemedyStatus = "3";
                        string strConfirmStatus = "", strAbnormalType = "";
                        if (!PunchUpdate.PunchAppdOperation_EXEC_PunchCheckData(model, out strConfirmStatus, out strAbnormalType))
                        {
                            Util.MsgBox("打卡異常檢核失敗!!");
                            return;
                        }
                        model.ConfirmStatus = strConfirmStatus;     //0 or 1記得用John的TSQL
                        model.AbnormalType  = strAbnormalType;
                        break;

                    case "btnApprove":
                    case "btnReApprove":
                        model.PORemedyStatus = "2";
                        model.ConfirmStatus  = "2";
                        break;
                    }
                }
                else if (rdoRej.Checked == true)//駁回
                {
                    btnName = "btnReject";
                    model.PORemedyStatus = "4";
                    model.ConfirmStatus  = "1";
                }

                DataTable LastHROtherFlowLog        = PunchUpdate.HROtherFlowLog(model.FlowCaseID, true);
                Dictionary <string, string> oAssDic = CustVerify.getEmpID_Name_Dictionary(toUserData["SignID"], toUserData["SignIDComp"]);

                if (!string.IsNullOrEmpty(btnName))
                {
                    //審核動作
                    result = PunchUpdate.PunchAppdOperation_SaveData(model, oAssDic, btnName, txtReason.Text, out seccessCount, out msg, flowCode, flowSN, LastHROtherFlowLog.Rows[0]["FlowSeq"].ToString(), LastHROtherFlowLog.Rows[0]["FlowLogBatNo"].ToString(), LastHROtherFlowLog.Rows[0]["FlowLogID"].ToString(), toUserData);
                }
                else
                {
                    result = false;
                }

                if (!result)
                {
                    //Util.MsgBox(msg);
                    ErrorIndex += (index + 1).ToString() + ",";
                    continue;
                }
                if (seccessCount == 0)
                {
                    ErrorIndex += (index + 1).ToString() + ",";
                    continue;
                }
            }
        }
        if (ErrorIndex.Length > 0)
        {
            ErrorIndex = ErrorIndex.Substring(0, ErrorIndex.Length - 1);
            Util.MsgBox("第" + ErrorIndex + "筆審核失敗");
        }
        else
        {
            Util.MsgBox("審核成功");
        }
    }
コード例 #14
0
    /// <summary>
    /// 檢核所有東西,並將下一關相關資訊回傳
    /// </summary>
    public static bool nextAssignTo(Punch_Confirm_Remedy_Bean Bean, out Dictionary <string, string> toUserData)
    {
        string
            CompID      = Bean.CompID,
            AssignTo    = Bean.ValidID,
            OTStartDate = Bean.PunchDate,
            FlowCaseID  = Bean.FlowCaseID;

        bool   isLastFlow, nextIsLastFlow;
        string flowCode = "", flowSN = "", signLineDefine = "", meassge = "";

        string SignOrganID = "", SignID = "", SignIDComp = "";

        //讀取現在關卡與下一關相關資料,因為不論回傳是否,我還是要資料,所以沒檢核回傳值與錯誤訊息
        OBFlowUtility.QueryFlowDataAndToUserData(CompID, AssignTo, OTStartDate, FlowCaseID, "P",
                                                 out toUserData, out flowCode, out flowSN, out signLineDefine, out isLastFlow, out nextIsLastFlow, out meassge, "PO");

        //若是後台HR送簽依照填單人公司,否則用加班人公司
        //string HRLogCompID = signLineDefine == "4" || flowCode.Trim() == "" ?Bean.CompID :Bean.CompID;
        string HRLogCompID = Bean.CompID;

        //如果沒有下一關資料,則用現在關卡資料取代
        if (toUserData.Count == 0)
        {
            //取[最近的行政or功能]資料 取代 [現在關卡]資料
            DataTable dtHROtherFlowLog_toUD = PunchUpdate.HROtherFlowLog(FlowCaseID, true);
            toUserData.Add("SignLine", dtHROtherFlowLog_toUD.Rows[0]["SignLine"].ToString());
            toUserData.Add("SignIDComp", dtHROtherFlowLog_toUD.Rows[0]["SignIDComp"].ToString());
            toUserData.Add("SignID", AssignTo);
            toUserData.Add("SignOrganID", dtHROtherFlowLog_toUD.Rows[0]["SignOrganID"].ToString());
            toUserData.Add("SignFlowOrganID", dtHROtherFlowLog_toUD.Rows[0]["SignFlowOrganID"].ToString());
        }

        //如果下一關主管與現在主管相同,則再往上階找下一關主管資料
        if (toUserData["SignID"] == AssignTo && signLineDefine != "3")
        {
            switch (toUserData["SignLine"])
            {
            //HR線 或 行政線
            case "4":
            case "1":
                if (EmpInfo.QueryOrganData(HRLogCompID, toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                {
                    toUserData["SignID"]          = SignID;
                    toUserData["SignIDComp"]      = SignIDComp;
                    toUserData["SignOrganID"]     = SignOrganID;
                    toUserData["SignFlowOrganID"] = "";
                }
                break;

            //功能線
            case "2":
                if (EmpInfo.QueryFlowOrganData(toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                {
                    toUserData["SignID"]          = SignID;
                    toUserData["SignIDComp"]      = SignIDComp;
                    toUserData["SignOrganID"]     = "";
                    toUserData["SignFlowOrganID"] = SignOrganID;
                }
                break;

            //原本switch的是signLineDefine,現在改成toUserData["SignLine"]後,
            //case "3"裏頭的if基本只會用到else[非功能線一律走行政線],以防萬一先保留。
            //改派
            case "3":
                if (toUserData["SignLine"] == "2")
                {
                    if (EmpInfo.QueryFlowOrganData(toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                    {
                        toUserData["SignID"]          = SignID;
                        toUserData["SignIDComp"]      = SignIDComp;
                        toUserData["SignOrganID"]     = "";
                        toUserData["SignFlowOrganID"] = SignOrganID;
                    }
                }
                else
                {
                    if (EmpInfo.QueryOrganData(HRLogCompID, toUserData["SignOrganID"], Bean.PunchDate, out SignOrganID, out SignID, out SignIDComp))
                    {
                        toUserData["SignID"]          = SignID;
                        toUserData["SignIDComp"]      = SignIDComp;
                        toUserData["SignOrganID"]     = SignOrganID;
                        toUserData["SignFlowOrganID"] = "";
                    }
                }
                break;
            }
        }

        //如果找不到下一關主管資料,彈跳視窗並且return false
        if (toUserData["SignID"] == "")
        {
            toUserData["SignIDComp"] = UserInfo.getUserInfo().CompID.Trim();
            toUserData["SignID"]     = UserInfo.getUserInfo().UserID.Trim();
            //Util.MsgBox("查無下一關主管資料");
            if (isLastFlow) //最後一關不用找下一關主管
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        return(true);
    }