/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }