Exemple #1
0
        private void 负责人toolStripButton_Click(object sender, EventArgs e)
        {
            if (txtStatus.Text.Trim() != OverTimeBillStatus.等待部门负责人审核.ToString())
            {
                MessageDialog.ShowPromptMessage("请确认单据状态");
                return;
            }

            HR_WorkScheduling workSchedule = new HR_WorkScheduling();

            workSchedule.ID           = Convert.ToInt32(txtBillNo.Text);
            workSchedule.DeptDirector = BasicInfo.LoginID;
            workSchedule.DeptDirectorSignatureDate = ServerTime.Time;
            workSchedule.BillStatus = OverTimeBillStatus.已完成.ToString();

            if (!m_workSchedulingServer.UpdateAuditingWorkScheduling(workSchedule, "负责人", out error))
            {
                MessageDialog.ShowPromptMessage(error);
                return;
            }
            else
            {
                MessageDialog.ShowPromptMessage("部门负责人确认成功!");
                txtStatus.Text = workSchedule.BillStatus;

                List <string> noticeRoles = new List <string>();
                List <string> noticeUser  = new List <string>();

                noticeUser.Add(txtCreaterWorkID.Tag.ToString());
                m_billMessageServer.EndFlowMessage(txtBillNo.Text, string.Format("{0} 号排班信息已经处理完毕", txtBillNo.Text), noticeRoles, noticeUser);
                this.Close();
            }
        }
        /// <summary>
        /// 领导审核修改排班信息
        /// </summary>
        /// <param name="schedule">排班信息</param>
        /// <param name="role">角色(主管或负责人)</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True失败返回False</returns>
        public bool UpdateAuditingWorkScheduling(HR_WorkScheduling schedule, string role, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var resultMain = from a in dataContxt.HR_WorkScheduling
                                 where a.ID == schedule.ID
                                 select a;

                if (resultMain.Count() != 1)
                {
                    error = "信息有误,请查证后再操作!";
                    return(false);
                }
                else
                {
                    HR_WorkScheduling bill = resultMain.Single();

                    switch (role)
                    {
                    case "主管":
                        bill.BillStatus   = schedule.BillStatus;
                        bill.DeptDirector = schedule.DeptDirector;
                        bill.DeptDirectorSignatureDate = schedule.DeptDirectorSignatureDate;
                        bill.CompletionDate            = schedule.DeptPrincipalSignatureDate;
                        break;

                    case "负责人":
                        bill.BillStatus    = schedule.BillStatus;
                        bill.DeptPrincipal = schedule.DeptPrincipal;
                        bill.DeptPrincipalSignatureDate = schedule.DeptPrincipalSignatureDate;
                        break;

                    default:
                        break;
                    }
                }

                dataContxt.SubmitChanges();
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Exemple #3
0
        private void 主管toolStripButton_Click(object sender, EventArgs e)
        {
            if (txtStatus.Text.Trim() != OverTimeBillStatus.等待主管审核.ToString())
            {
                MessageDialog.ShowPromptMessage("请确认单据状态");
                return;
            }

            HR_WorkScheduling workSchedule = new HR_WorkScheduling();

            workSchedule.ID           = Convert.ToInt32(txtBillNo.Text);
            workSchedule.DeptDirector = BasicInfo.LoginID;
            workSchedule.DeptDirectorSignatureDate = ServerTime.Time;
            workSchedule.CompletionDate            = Convert.ToDateTime(dateTimePendingDate.Value.ToShortDateString());

            if (Convert.ToDateTime(dateTimePendingDate.Value.ToShortDateString()) < Convert.ToDateTime(dtpEnd.Value.ToShortDateString()))
            {
                workSchedule.BillStatus = "等待下次排班";
            }
            else
            {
                workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString();
            }

            if (!m_workSchedulingServer.UpdateAuditingWorkScheduling(workSchedule, "主管", out error))
            {
                MessageDialog.ShowPromptMessage(error);
                return;
            }
            else
            {
                MessageDialog.ShowPromptMessage("部门主管审核成功!");
                txtStatus.Text = workSchedule.BillStatus;

                if (workSchedule.BillStatus.Equals("等待下次排班"))
                {
                    string msg = string.Format("{0} 号排班信息部门主管审批成功,排班人员可以进行下次排班", txtBillNo.Text);
                    m_billMessageServer.PassFlowMessage(txtBillNo.Text, msg, BillFlowMessage_ReceivedUserType.用户, txtCreaterWorkID.Tag.ToString());
                }
                else
                {
                    string msg = string.Format("{0} 号排班信息部门主管审核成功,请部门负责人审批", txtBillNo.Text);
                    m_billMessageServer.PassFlowMessage(txtBillNo.Text, msg, BillFlowMessage_ReceivedUserType.角色,
                                                        m_billMessageServer.GetDeptPrincipalRoleName(m_personnerServer.GetPersonnelViewInfo(txtCreaterWorkID.Tag.ToString()).部门编号).ToList());
                }

                this.Close();
            }
        }
        /// <summary>
        /// 新增排班信息
        /// </summary>
        /// <param name="schedule">排班信息主信息</param>
        /// <param name="personnel">排班人员</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回新增的单据编号,失败返回-1</returns>
        public int AddWorkScheduling(HR_WorkScheduling schedule, List <HR_WorkSchedulingDetail> personnel, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                dataContxt.HR_WorkScheduling.InsertOnSubmit(schedule);
                dataContxt.SubmitChanges();

                int billID = -1;

                var result = from a in dataContxt.HR_WorkScheduling
                             where a.CreaterWorkID == schedule.CreaterWorkID && a.Year == schedule.Year &&
                             a.CreateDate == schedule.CreateDate
                             select a;

                if (result.Count() == 1)
                {
                    billID = result.Single().ID;

                    foreach (var item in personnel)
                    {
                        HR_WorkSchedulingDetail personnleList = item;

                        personnleList.ParentID = billID;
                        personnleList.WorkID   = item.WorkID;
                        personnleList.Code     = item.Code;
                        personnleList.Date     = item.Date;
                        personnleList.Remark   = "";

                        dataContxt.HR_WorkSchedulingDetail.InsertOnSubmit(personnleList);
                    }
                }

                dataContxt.SubmitChanges();
                return(billID);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(-1);
            }
        }
Exemple #5
0
        private void 提交toolStripButton_Click(object sender, EventArgs e)
        {
            if (txtStatus.Text.Trim() != "新建单据")
            {
                MessageDialog.ShowPromptMessage("请确认单据状态");
                return;
            }

            if (m_workSchedulingServer.IsExise(BasicInfo.LoginID, Convert.ToInt32(numMonth.Value.ToString())))
            {
                MessageDialog.ShowPromptMessage(numMonth.Value + "月已经存在排班!");
                return;
            }

            if (!CheckControl())
            {
                return;
            }

            List <HR_WorkSchedulingDetail> lstPersonnel = new List <HR_WorkSchedulingDetail>();

            int day1 = GlobalObject.Year.GetDays(dtpBegin.Value);
            int days = 0;

            for (int i = dtpBegin.Value.Day; i <= day1; i++)
            {
                days++;
            }

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                DataGridViewCellCollection cells = dataGridView1.Rows[i].Cells;

                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    HR_WorkSchedulingDetail    personnel         = new HR_WorkSchedulingDetail();
                    DataGridViewComboBoxColumn dgvComboBoxColumn = dataGridView1.Columns[j] as DataGridViewComboBoxColumn;

                    if (dataGridView1.Columns[j].CellType.Name == "DataGridViewComboBoxCell" && cells[j].Value != null)
                    {
                        personnel.WorkID = dataGridView1.Rows[i].Cells["工号"].Value.ToString();

                        if (dtpBegin.Value.Month == dtpEnd.Value.Month)
                        {
                            //personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText);
                            if (j - 1 <= days)
                            {
                                personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText);
                            }
                            else
                            {
                                break;
                            }
                        }
                        else
                        {
                            if (j - 1 <= days)
                            {
                                personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText);
                            }
                            else
                            {
                                personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpEnd.Value.Month + "-" + dataGridView1.Columns[j].HeaderText);
                            }
                        }

                        personnel.Code = cells[j].Value == DBNull.Value ? "" : cells[j].Value.ToString();
                        lstPersonnel.Add(personnel);
                    }
                }
            }

            HR_WorkScheduling workSchedule = new HR_WorkScheduling();
            bool isDeptDirector            = false;

            IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "0");
            bool flag = false;

            if (directorGroup != null && directorGroup.Count() > 0)
            {
                isDeptDirector = true;

                foreach (var item in directorGroup)
                {
                    if (BasicInfo.LoginID == item.员工编号)
                    {
                        flag = true;

                        break;
                    }
                }
            }

            IQueryable <View_HR_PersonnelArchive> directorGroup1 = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "1");
            bool flagPri = false;

            if (directorGroup1 != null && directorGroup1.Count() > 0)
            {
                foreach (var item in directorGroup1)
                {
                    if (BasicInfo.LoginID == item.员工编号)
                    {
                        flagPri = true;

                        break;
                    }
                }
            }

            if (!flag && !flagPri)
            {
                if (isDeptDirector)
                {
                    workSchedule.BillStatus = OverTimeBillStatus.等待主管审核.ToString();
                }
                else
                {
                    workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString();
                }
            }
            else if (flag && !flagPri)
            {
                workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString();
            }

            workSchedule.ScheduleName  = txtScheduleName.Text;
            workSchedule.CreateDate    = dtpCreateDate.Value;
            workSchedule.CreaterWorkID = txtCreaterWorkID.Tag.ToString();
            workSchedule.BeginDate     = dtpBegin.Value;
            workSchedule.EndDate       = dtpEnd.Value;
            workSchedule.Remark        = txtRemark.Text;
            workSchedule.Year          = Convert.ToInt32(numYear.Value);
            workSchedule.Month         = Convert.ToInt32(numMonth.Value);
            workSchedule.PendingDate   = Convert.ToDateTime(dateTimePendingDate.Value.ToShortDateString());

            txtBillNo.Text = m_workSchedulingServer.AddWorkScheduling(workSchedule, lstPersonnel, out error).ToString();

            if (Convert.ToInt32(txtBillNo.Text) < 0)
            {
                MessageDialog.ShowPromptMessage(error);
                return;
            }
            else
            {
                MessageDialog.ShowPromptMessage("新增成功!");
                m_billMessageServer.DestroyMessage(txtBillNo.Text);

                if (workSchedule.BillStatus.Equals(OverTimeBillStatus.等待主管审核.ToString()))
                {
                    m_billMessageServer.SendNewFlowMessage(txtBillNo.Text, string.Format("{0}号请假申请单,请主管审核", txtBillNo.Text),
                                                           BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptDirectorRoleName(
                                                               m_personnerServer.GetPersonnelViewInfo(txtCreaterWorkID.Tag.ToString()).部门编号).ToList());
                }
                else if (workSchedule.BillStatus == OverTimeBillStatus.等待部门负责人审核.ToString())
                {
                    m_billMessageServer.SendNewFlowMessage(txtBillNo.Text, string.Format("{0}号请假申请单,请部门负责人审核", m_billNo),
                                                           BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptPrincipalRoleName(
                                                               m_personnerServer.GetPersonnelViewInfo(txtCreaterWorkID.Tag.ToString()).部门编号).ToList());
                }
            }

            this.Close();
        }
Exemple #6
0
        private void 修改toolStripButton_Click(object sender, EventArgs e)
        {
            if (txtStatus.Text.Trim() == "已完成" || txtStatus.Text.Trim() == "等待下次排班")
            {
                MessageDialog.ShowPromptMessage("单据已经完成,不能修改");
                return;
            }

            if (!CheckControl())
            {
                return;
            }

            List <HR_WorkSchedulingDetail> lstPersonnel = new List <HR_WorkSchedulingDetail>();

            int day1 = GlobalObject.Year.GetDays(dtpBegin.Value);
            int days = 0;

            for (int i = dtpBegin.Value.Day; i <= day1; i++)
            {
                days++;
            }

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                DataGridViewCellCollection cells = dataGridView1.Rows[i].Cells;

                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    HR_WorkSchedulingDetail    personnel         = new HR_WorkSchedulingDetail();
                    DataGridViewComboBoxColumn dgvComboBoxColumn = dataGridView1.Columns[j] as DataGridViewComboBoxColumn;

                    if (dataGridView1.Columns[j].CellType.Name == "DataGridViewComboBoxCell" && cells[j].Value != null)
                    {
                        personnel.WorkID = dataGridView1.Rows[i].Cells["工号"].Value.ToString();
                        personnel.Code   = cells[j].Value.ToString();

                        if (dtpBegin.Value.Month == dtpEnd.Value.Month)
                        {
                            if (j - 1 <= days)
                            {
                                personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText);
                            }
                            else
                            {
                                break;
                            }
                        }
                        else
                        {
                            if (j - 1 <= days)
                            {
                                personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText);
                            }
                            else
                            {
                                personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpEnd.Value.Month + "-" + dataGridView1.Columns[j].HeaderText);
                            }
                        }

                        lstPersonnel.Add(personnel);
                    }
                }
            }

            HR_WorkScheduling workSchedule = new HR_WorkScheduling();
            bool isDeptDirector            = false;

            IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "0");
            bool flag = false;

            if (directorGroup != null && directorGroup.Count() > 0)
            {
                isDeptDirector = true;
                foreach (var item in directorGroup)
                {
                    if (BasicInfo.LoginID == item.员工编号)
                    {
                        flag = true;
                        break;
                    }
                }
            }

            IQueryable <View_HR_PersonnelArchive> directorGroup1 = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "1");
            bool flagPri = false;

            if (directorGroup1 != null && directorGroup1.Count() > 0)
            {
                foreach (var item in directorGroup1)
                {
                    if (BasicInfo.LoginID == item.员工编号)
                    {
                        flagPri = true;
                        break;
                    }
                }
            }

            if (!flag && !flagPri)
            {
                if (isDeptDirector)
                {
                    workSchedule.BillStatus = OverTimeBillStatus.等待主管审核.ToString();
                }
                else
                {
                    workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString();
                }
            }
            else if (flag && !flagPri)
            {
                workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString();
            }
            else
            {
                workSchedule.BillStatus = OverTimeBillStatus.已完成.ToString();
            }

            workSchedule.ScheduleName  = txtScheduleName.Text;
            workSchedule.CreateDate    = dtpCreateDate.Value;
            workSchedule.CreaterWorkID = txtCreaterWorkID.Tag.ToString();
            workSchedule.BeginDate     = dtpBegin.Value;
            workSchedule.EndDate       = dtpEnd.Value;
            workSchedule.Remark        = txtRemark.Text;
            workSchedule.Year          = Convert.ToInt32(numYear.Value);
            workSchedule.Month         = Convert.ToInt32(numMonth.Value);
            workSchedule.PendingDate   = Convert.ToDateTime(dateTimePendingDate.Value.ToShortDateString());

            if (!m_workSchedulingServer.UpdateWorkScheduling(workSchedule, lstPersonnel, Convert.ToInt32(txtBillNo.Text), out error))
            {
                MessageDialog.ShowPromptMessage(error);
                return;
            }
            else
            {
                MessageDialog.ShowPromptMessage("修改成功!");
            }

            this.Close();
        }
        /// <summary>
        /// 编制人修改排班信息
        /// </summary>
        /// <param name="schedule">排班信息</param>
        /// <param name="personnel">排班人员</param>
        /// <param name="billID">单据号</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True失败返回False</returns>
        public bool UpdateWorkScheduling(HR_WorkScheduling schedule, List <HR_WorkSchedulingDetail> personnel, int billID, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var resultMain = from a in dataContxt.HR_WorkScheduling
                                 where a.ID == billID
                                 select a;

                if (resultMain.Count() != 1)
                {
                    error = "信息有误,请查证后再操作!";
                    return(false);
                }
                else
                {
                    HR_WorkScheduling bill = resultMain.Single();

                    bill.BillStatus     = schedule.BillStatus;
                    bill.CreateDate     = schedule.CreateDate;
                    bill.BeginDate      = schedule.BeginDate;
                    bill.EndDate        = schedule.EndDate;
                    bill.ScheduleName   = schedule.ScheduleName;
                    bill.CompletionDate = schedule.CompletionDate;
                    bill.Year           = schedule.Year;
                    bill.Remark         = schedule.Remark;
                    bill.CompletionDate = schedule.CompletionDate;
                    bill.Month          = schedule.Month;
                    bill.PendingDate    = schedule.PendingDate;
                }

                var result = from c in dataContxt.HR_WorkSchedulingDetail
                             where c.ParentID == billID
                             select c;

                dataContxt.HR_WorkSchedulingDetail.DeleteAllOnSubmit(result);

                foreach (var item in personnel)
                {
                    HR_WorkSchedulingDetail personnleList = item;

                    personnleList.ParentID = billID;
                    personnleList.Code     = item.Code;
                    personnleList.WorkID   = item.WorkID;
                    personnleList.Date     = item.Date;
                    personnleList.Remark   = "";

                    dataContxt.HR_WorkSchedulingDetail.InsertOnSubmit(personnleList);
                }

                dataContxt.SubmitChanges();
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }