/// <summary>
    /// 取得執勤、個人、公司班表
    /// </summary>
    /// <returns></returns>
    private bool getReport(string regStr, out PunchModel viewData)
    {
        bool   result  = false;
        string NowTime = DateTime.Now.ToString("HH:mm:ss.fff");
        var    msg     = "";
        var    datas   = new PunchBean();

        viewData = new PunchModel()
        {
            CompID      = UserInfo.getUserInfo().CompID,
            EmpID       = UserInfo.getUserInfo().UserID,
            EmpName     = UserInfo.getUserInfo().UserName,
            DeptID      = UserInfo.getUserInfo().DeptID,
            DeptName    = UserInfo.getUserInfo().DeptName,
            OrganID     = UserInfo.getUserInfo().OrganID,
            OrganName   = UserInfo.getUserInfo().OrganName,
            WorkTypeID  = UserInfo.getUserInfo().WorkTypeID,
            WorkType    = UserInfo.getUserInfo().WorkTypeName,
            Sex         = UserInfo.getUserInfo().Sex,
            PunchFlag   = "0",
            MAFT10_FLAG = "0",
            PunchDate   = DateTime.Now.ToString("yyyy/MM/dd"),
            //PunchDate = "2017/05/02",
            PunchTime       = NowTime,
            PunchTime4Count = NowTime.Replace(":", "").Substring(0, 4),
            LastChgComp     = UserInfo.getUserInfo().CompID,
            LastChgID       = UserInfo.getUserInfo().UserID
        };

        switch (regStr)
        {
        case "Duty":
        {
            result = Punch.GetDutyReport(viewData, out datas, out msg);
            break;
        }

        case "EmpWork":
        {
            result = Punch.GetEmpWorkReport(viewData, out datas, out msg);
            break;
        }

        case "PersonOther":
        {
            result = Punch.GetPersonalOtherReport(viewData, out datas, out msg);
            break;
        }
        }

        if (result && datas != null)
        {
            viewData.BeginTime     = datas.BeginTime;
            viewData.EndTime       = datas.EndTime;
            viewData.RestBeginTime = datas.RestBeginTime;
            viewData.RestEndTime   = datas.RestEndTime;
        }

        return(result);
    }
    /// <summary>
    /// 取得個人FlowOrganID
    /// </summary>
    /// <returns></returns>
    private bool getEmpFlowOrgan(ref PunchModel viewData)
    {
        bool result = false;
        var  msg    = "";
        var  datas  = new PunchBean();

        result = Punch.SelectEmpFlowOrgan(viewData, out datas, out msg);
        if (result && datas != null)
        {
            viewData.FlowOrganID   = datas.FlowOrganID;
            viewData.FlowOrganName = datas.FlowOrganName;
        }
        else
        {
            throw new Exception("".Equals(msg) ? "查無資料" : msg);
        }
        return(result);
    }
Example #3
0
    /// <summary>
    /// 查詢最大PunchSeq
    /// </summary>
    private static string QueryMaxSeq(PunchModel viewData)
    {
        var result    = "";
        var isSuccess = false;
        var msg       = "";
        var datas     = new PunchBean();

        isSuccess = GetMaxFormSeq(viewData, out datas, out msg);
        if (isSuccess && datas != null)
        {
            var seq = Int32.Parse(datas.PunchSeq) + 1;
            result = seq.ToString();
        }
        else
        {
            result = "1";
        }
        return(result);
    }
Example #4
0
    /// <summary>
    /// 取得DB資料
    /// 特殊單位
    /// </summary>
    /// <param name="model">畫面model</param>
    /// <param name="datas">回傳資料</param>
    /// <param name="msg">回傳訊息</param>
    /// <returns>bool</returns>
    public static bool GetPunchSpecial(PunchModel model, out PunchBean datas, out string msg)
    {
        bool result = false;

        msg   = "";
        datas = new PunchBean();
        try
        {
            using (var conn = new SqlConnection()
            {
                ConnectionString = DbHelper.getConnectionStrings(_attendantDBName).ConnectionString
            })
            {
                PunchBean dataBean = new PunchBean()
                {
                    CompID  = model.CompID,
                    DeptID  = model.DeptID,
                    OrganID = model.OrganID
                };
                StringBuilder sb = new StringBuilder();
                SqlCommand.SelectPunchSpecialUnitDefine(ref sb);
                try
                {
                    datas = conn.Query <PunchBean>(sb.ToString(), dataBean).FirstOrDefault();
                }
                catch (Exception)
                {
                    throw;
                }
                if (datas == null)
                {
                    throw new Exception("查無資料!");
                }
            }
            result = true;
        }
        catch (Exception ex)
        {
            msg = ex.Message;
        }
        return(result);
    }
Example #5
0
    /// <summary>
    /// 取得FlowOrgan資料
    /// </summary>
    /// <param name="model">畫面model</param>
    /// <param name="datas">回傳資料</param>
    /// <param name="msg">回傳訊息</param>
    /// <returns>bool</returns>
    public static bool SelectEmpFlowOrgan(PunchModel model, out PunchBean datas, out string msg)
    {
        bool result = false;

        msg   = "";
        datas = new PunchBean();
        try
        {
            using (var conn = new SqlConnection()
            {
                ConnectionString = DbHelper.getConnectionStrings(_eHRMSDB_ITRD).ConnectionString
            })
            {
                PunchBean dataBean = new PunchBean()
                {
                    CompID = model.CompID,
                    EmpID  = model.EmpID,
                };
                StringBuilder sb = new StringBuilder();
                SqlCommand.SelectEmpFlowOrganSql(ref sb);
                try
                {
                    datas = conn.Query <PunchBean>(sb.ToString(), dataBean).FirstOrDefault();
                }
                catch (Exception)
                {
                    throw;
                }
                if (datas == null)
                {
                    throw new Exception("查無資料!");
                }
            }
            result = true;
        }
        catch (Exception ex)
        {
            msg = ex.Message;
        }
        return(result);
    }
    /// <summary>
    /// 取得執勤、個人、公司班表
    /// </summary>
    /// <returns></returns>
    private bool QueryReport(string regStr, out PunchModel viewData)
    {
        bool   result  = false;
        string NowTime = DateTime.Now.ToString("HH:mm:ss");
        var    msg     = "";
        var    datas   = new PunchBean();

        viewData = new PunchModel()
        {
            CompID    = UserInfo.getUserInfo().CompID,
            EmpID     = StringIIF(txtEmpID.Text),
            PunchDate = StringIIF(txtVisitBeginDate.ucSelectedDate)
        };

        switch (regStr)
        {
        case "Duty":
        {
            result = Punch.GetDutyReport(viewData, out datas, out msg);
            break;
        }

        case "EmpWork":
        {
            result = Punch.GetEmpWorkReport(viewData, out datas, out msg);
            break;
        }
        }
        if (result && datas != null)
        {
            viewData.BeginTime     = datas.BeginTime;
            viewData.EndTime       = datas.EndTime;
            viewData.RestBeginTime = datas.RestBeginTime;
            viewData.RestEndTime   = datas.RestEndTime;
        }

        return(result);
    }
    //-------------------------------------------------------------方法

    /// <summary>
    /// 特殊單位
    /// </summary>
    /// <returns></returns>
    private bool getPunchSpecial()
    {
        bool       result    = false;
        bool       isSuccess = false;
        var        msg       = "";
        var        datas     = new PunchBean();
        PunchModel viewData  = new PunchModel()
        {
            CompID  = UserInfo.getUserInfo().CompID,
            DeptID  = UserInfo.getUserInfo().DeptID,
            OrganID = UserInfo.getUserInfo().OrganID,
        };

        isSuccess = Punch.GetPunchSpecial(viewData, out datas, out msg);
        if (isSuccess && datas != null)
        {
            if ("1".Equals(datas.SpecialFlag))
            {
                result = true;
            }
        }

        return(result);
    }
Example #8
0
    /// <summary>
    /// 新增DB資料
    /// </summary>
    /// <param name="model">畫面model</param>
    /// <param name="seccessCount">新增筆數</param>
    /// <param name="msg">回傳訊息</param>
    /// <returns>bool</returns>
    public static bool InsertPunchLog(PunchModel model, out long seccessCount, out string msg)
    {
        bool result = false;

        seccessCount = 0;
        msg          = "";
        try
        {
            PunchBean databean = new PunchBean()
            {
                CompID           = StringIIF(model.CompID),
                EmpID            = StringIIF(model.EmpID),
                EmpName          = StringIIF(model.EmpName),
                PunchDate        = StringIIF(model.PunchDate),
                PunchTime        = StringIIF(model.PunchTime),
                PunchSeq         = StringIIF(QueryMaxSeq(model)),
                DeptID           = StringIIF(model.DeptID),
                DeptName         = StringIIF(model.DeptName),
                OrganID          = StringIIF(model.OrganID),
                OrganName        = StringIIF(model.OrganName),
                FlowOrganID      = StringIIF(model.FlowOrganID),
                FlowOrganName    = StringIIF(model.FlowOrganName),
                Sex              = StringIIF(model.Sex),
                PunchFlag        = StringIIF(model.PunchFlag),
                WorkTypeID       = StringIIF(model.WorkTypeID),
                WorkType         = StringIIF(model.WorkType),
                MAFT10_FLAG      = StringIIF(model.MAFT10_FLAG),
                AbnormalFlag     = StringIIF(model.AbnormalFlag),
                AbnormalReasonID = StringIIF(model.AbnormalReasonID),
                AbnormalReasonCN = StringIIF(model.AbnormalReasonCN),
                AbnormalDesc     = StringIIF(model.AbnormalDesc),
                BatchFlag        = StringIIF("0"),
                Source           = StringIIF("B"),
                PunchUserIP      = StringIIF(""),
                RotateFlag       = StringIIF(""),
                APPContent       = StringIIF(""),
                Lat              = StringIIF(decimal.Zero),
                Lon              = StringIIF(decimal.Zero),
                GPSType          = StringIIF(""),
                OS          = StringIIF(""),
                DeviceID    = StringIIF(""),
                LastChgComp = StringIIF(model.LastChgComp),
                LastChgID   = StringIIF(model.LastChgID)
            };

            using (var conn = new SqlConnection()
            {
                ConnectionString = DbHelper.getConnectionStrings(_attendantDBName).ConnectionString
            })
            {
                conn.Open();
                StringBuilder sb = new StringBuilder();
                SqlCommand.SelectPunchLogSql(ref sb); //建立查詢SqlCommand
                List <PunchBean> newDataBean = new List <PunchBean>();
                //新增前檢查資料庫是否有重複PK,沒有放進待新增容器
                try
                {
                    var count = conn.Query <PunchBean>(sb.ToString(), databean).Count(); //執行查詢,結果回傳至TestBean物件
                    if (count == 0)
                    {
                        newDataBean.Add(databean);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                if (newDataBean.Count > 0)
                {
                    SqlCommand.InsertPunchLogSql(ref sb, true); //建立新增SqlCommand
                    using (var trans = conn.BeginTransaction())
                    {
                        try
                        {
                            seccessCount = conn.Execute(sb.ToString(), newDataBean, trans); //執行新增,成功筆數回傳,並做Transaction機制
                            trans.Commit();                                                 //成功Transaction直接Commit
                        }
                        catch (Exception)
                        {
                            trans.Rollback(); //失敗Transaction Rollback
                            throw;
                        }
                    }
                }
            }
            result = true;
        }
        catch (Exception ex)
        {
            msg = ex.Message;
        }
        return(result);
    }