diff --git a/ManagementSystem/App.config b/ManagementSystem/App.config index d21211e..e22c84e 100644 --- a/ManagementSystem/App.config +++ b/ManagementSystem/App.config @@ -5,12 +5,12 @@ - - + - + + diff --git a/ManagementSystem/HRDataCorrect.Designer.cs b/ManagementSystem/HRDataCorrect.Designer.cs index d294e5c..2fc7dd9 100644 --- a/ManagementSystem/HRDataCorrect.Designer.cs +++ b/ManagementSystem/HRDataCorrect.Designer.cs @@ -78,6 +78,18 @@ this.cMemberIDDetail = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.cSignTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.cSignOutTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tbPage3 = new System.Windows.Forms.TabPage(); + this.dgvDetail2 = new System.Windows.Forms.DataGridView(); + this.btnUpdate2 = new System.Windows.Forms.Button(); + this.dtPickerSignIn = new System.Windows.Forms.DateTimePicker(); + this.dtPickerSignOut = new System.Windows.Forms.DateTimePicker(); + this.cbSignIn1 = new System.Windows.Forms.CheckBox(); + this.cbSignOut1 = new System.Windows.Forms.CheckBox(); + this.clSignID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.clMemberID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.clMemberName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.clSignIn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.clSignOut = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.dgvHRItem)).BeginInit(); this.tsButtons.SuspendLayout(); this.tbPage.SuspendLayout(); @@ -85,6 +97,8 @@ ((System.ComponentModel.ISupportInitialize)(this.dgvDetail)).BeginInit(); this.tbPage2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dgvDetail1)).BeginInit(); + this.tbPage3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvDetail2)).BeginInit(); this.SuspendLayout(); // // dgvHRItem @@ -282,6 +296,7 @@ | System.Windows.Forms.AnchorStyles.Right))); this.tbPage.Controls.Add(this.tbPage1); this.tbPage.Controls.Add(this.tbPage2); + this.tbPage.Controls.Add(this.tbPage3); this.tbPage.Location = new System.Drawing.Point(353, 78); this.tbPage.Name = "tbPage"; this.tbPage.SelectedIndex = 0; @@ -616,6 +631,132 @@ this.cSignOutTime.ReadOnly = true; this.cSignOutTime.Width = 250; // + // tbPage3 + // + this.tbPage3.Controls.Add(this.cbSignOut1); + this.tbPage3.Controls.Add(this.cbSignIn1); + this.tbPage3.Controls.Add(this.dtPickerSignOut); + this.tbPage3.Controls.Add(this.dtPickerSignIn); + this.tbPage3.Controls.Add(this.btnUpdate2); + this.tbPage3.Controls.Add(this.dgvDetail2); + this.tbPage3.Location = new System.Drawing.Point(4, 29); + this.tbPage3.Name = "tbPage3"; + this.tbPage3.Size = new System.Drawing.Size(1546, 648); + this.tbPage3.TabIndex = 2; + this.tbPage3.Text = "打卡時間修正"; + this.tbPage3.UseVisualStyleBackColor = true; + // + // dgvDetail2 + // + this.dgvDetail2.AllowUserToAddRows = false; + this.dgvDetail2.AllowUserToDeleteRows = false; + this.dgvDetail2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvDetail2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvDetail2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.clSignID, + this.clMemberID, + this.clMemberName, + this.clSignIn, + this.clSignOut}); + this.dgvDetail2.Location = new System.Drawing.Point(3, 3); + this.dgvDetail2.Name = "dgvDetail2"; + this.dgvDetail2.RowTemplate.Height = 24; + this.dgvDetail2.Size = new System.Drawing.Size(1540, 548); + this.dgvDetail2.TabIndex = 0; + this.dgvDetail2.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDetail2_CellClick); + // + // btnUpdate2 + // + this.btnUpdate2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnUpdate2.Location = new System.Drawing.Point(3, 611); + this.btnUpdate2.Name = "btnUpdate2"; + this.btnUpdate2.Size = new System.Drawing.Size(92, 32); + this.btnUpdate2.TabIndex = 1; + this.btnUpdate2.Text = "更正"; + this.btnUpdate2.UseVisualStyleBackColor = true; + this.btnUpdate2.Click += new System.EventHandler(this.btnUpdate2_Click); + // + // dtPickerSignIn + // + this.dtPickerSignIn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.dtPickerSignIn.CustomFormat = "yyyy-MM-dd HH:mm:ss"; + this.dtPickerSignIn.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtPickerSignIn.Location = new System.Drawing.Point(134, 567); + this.dtPickerSignIn.Name = "dtPickerSignIn"; + this.dtPickerSignIn.Size = new System.Drawing.Size(192, 29); + this.dtPickerSignIn.TabIndex = 14; + // + // dtPickerSignOut + // + this.dtPickerSignOut.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.dtPickerSignOut.CustomFormat = "yyyy-MM-dd HH:mm:ss"; + this.dtPickerSignOut.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtPickerSignOut.Location = new System.Drawing.Point(485, 567); + this.dtPickerSignOut.Name = "dtPickerSignOut"; + this.dtPickerSignOut.Size = new System.Drawing.Size(192, 29); + this.dtPickerSignOut.TabIndex = 16; + // + // cbSignIn1 + // + this.cbSignIn1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.cbSignIn1.AutoSize = true; + this.cbSignIn1.Location = new System.Drawing.Point(20, 572); + this.cbSignIn1.Name = "cbSignIn1"; + this.cbSignIn1.Size = new System.Drawing.Size(108, 24); + this.cbSignIn1.TabIndex = 17; + this.cbSignIn1.Text = "簽到時間:"; + this.cbSignIn1.UseVisualStyleBackColor = true; + // + // cbSignOut1 + // + this.cbSignOut1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.cbSignOut1.AutoSize = true; + this.cbSignOut1.Location = new System.Drawing.Point(371, 572); + this.cbSignOut1.Name = "cbSignOut1"; + this.cbSignOut1.Size = new System.Drawing.Size(108, 24); + this.cbSignOut1.TabIndex = 18; + this.cbSignOut1.Text = "簽退時間:"; + this.cbSignOut1.UseVisualStyleBackColor = true; + // + // clSignID + // + this.clSignID.DataPropertyName = "SignID"; + this.clSignID.HeaderText = "簽署日期"; + this.clSignID.Name = "clSignID"; + this.clSignID.ReadOnly = true; + // + // clMemberID + // + this.clMemberID.DataPropertyName = "MemberID"; + this.clMemberID.HeaderText = "人員帳號"; + this.clMemberID.Name = "clMemberID"; + this.clMemberID.ReadOnly = true; + this.clMemberID.Width = 150; + // + // clMemberName + // + this.clMemberName.DataPropertyName = "MemberName"; + this.clMemberName.HeaderText = "人員名稱"; + this.clMemberName.Name = "clMemberName"; + this.clMemberName.ReadOnly = true; + this.clMemberName.Width = 150; + // + // clSignIn + // + this.clSignIn.DataPropertyName = "SignTime"; + this.clSignIn.HeaderText = "簽到時間"; + this.clSignIn.Name = "clSignIn"; + this.clSignIn.Width = 200; + // + // clSignOut + // + this.clSignOut.DataPropertyName = "SignOutTime"; + this.clSignOut.HeaderText = "簽退時間"; + this.clSignOut.Name = "clSignOut"; + this.clSignOut.Width = 200; + // // HRDataCorrect // this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 20F); @@ -642,6 +783,9 @@ ((System.ComponentModel.ISupportInitialize)(this.dgvDetail)).EndInit(); this.tbPage2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dgvDetail1)).EndInit(); + this.tbPage3.ResumeLayout(false); + this.tbPage3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvDetail2)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -698,5 +842,17 @@ private System.Windows.Forms.Button btnPickProject; private System.Windows.Forms.DateTimePicker dtPickStart; private System.Windows.Forms.Button btnDEL; + private System.Windows.Forms.TabPage tbPage3; + private System.Windows.Forms.DataGridView dgvDetail2; + private System.Windows.Forms.Button btnUpdate2; + private System.Windows.Forms.DateTimePicker dtPickerSignOut; + private System.Windows.Forms.DateTimePicker dtPickerSignIn; + private System.Windows.Forms.CheckBox cbSignOut1; + private System.Windows.Forms.CheckBox cbSignIn1; + private System.Windows.Forms.DataGridViewTextBoxColumn clSignID; + private System.Windows.Forms.DataGridViewTextBoxColumn clMemberID; + private System.Windows.Forms.DataGridViewTextBoxColumn clMemberName; + private System.Windows.Forms.DataGridViewTextBoxColumn clSignIn; + private System.Windows.Forms.DataGridViewTextBoxColumn clSignOut; } } \ No newline at end of file diff --git a/ManagementSystem/HRDataCorrect.cs b/ManagementSystem/HRDataCorrect.cs index 6af5f2f..56e765c 100644 --- a/ManagementSystem/HRDataCorrect.cs +++ b/ManagementSystem/HRDataCorrect.cs @@ -215,6 +215,16 @@ namespace ManagementSystem } } break; + case "tbPage3": //更正簽到資料 + if(cbSignIn1.Checked) + { + sbSQL.AppendLine("Update OTB_HR_CheckAttendance Set SignTime = '" + dtPickerSignIn.Text.Trim() + "' Where SignID ='" + dgvDetail2.CurrentRow.Cells["clSignID"].Value.ToString() +"' And MemberID = '" + dgvDetail2.CurrentRow.Cells["clMemberID"].Value.ToString() + "';"); + } + if (cbSignOut1.Checked) + { + sbSQL.AppendLine("Update OTB_HR_CheckAttendance Set SignOutTime = '" + dtPickerSignOut.Text.Trim() + "' Where SignID ='" + dgvDetail2.CurrentRow.Cells["clSignID"].Value.ToString() + "' And MemberID = '" + dgvDetail2.CurrentRow.Cells["clMemberID"].Value.ToString() + "';"); + } + break; } using (SqlDataAdapter sqlAdapter = new SqlDataAdapter()) @@ -468,6 +478,19 @@ namespace ManagementSystem dgvDetail1.DataSource = UtilityClass.GetSQLResult(strSQL.ToString()).Tables["Result"]; Application.DoEvents(); + break; + case "tbPage3": + //更正打卡資料 + strSQL.Append(" Select B.SignID,A.MemberID, A.MemberName, B.SignTime, B.SignOutTime From OTB_SYS_Members A left Join OTB_HR_CheckAttendance B on A.MemberID = B.MemberID "); + strSQL.Append(" Where 1 = 1 "); + strSQL.Append(" and A.Effective = 'Y' "); + strSQL.Append(" and A.AskLeaveGuid in ('28fec832-43bc-4a80-9d90-0036f0afb979', '2b312d72-ea6b-4a31-b94f-a506349558e2', '86C99B29-90B5-44EB-A7A8-172D319EAB66', '9e6e5f9f-fdb3-4da5-81d5-f5aba85acafd') "); + strSQL.Append(" and SignID Between '" + dpStart.Text.ToString().Replace("-","") + "' and '" + dpEnd.Text.ToString().Replace("-", "") + "'"); + strSQL.Append(" And A.MemberID = '" + (string)dgvHRItem.CurrentRow.Cells["cMemberID"].Value + "'"); + strSQL.Append(" Order by SignID DESC"); + + dgvDetail2.DataSource = UtilityClass.GetSQLResult(strSQL.ToString()).Tables["Result"]; + Application.DoEvents(); break; } } @@ -546,5 +569,27 @@ namespace ManagementSystem txtEventID.Text = ""; GetCurrentData(); } + + private void btnUpdate2_Click(object sender, EventArgs e) + { + SaveEven(); + int intNowRow = dgvDetail2.Rows.IndexOf(dgvDetail2.CurrentRow); + CleanForm(); + GetCurrentData(); + dgvDetail2.Rows[intNowRow].Selected = true; + } + + private void dgvDetail2_CellClick(object sender, DataGridViewCellEventArgs e) + { + dtPickerSignIn.Value = (DateTime)dgvDetail2.CurrentRow.Cells["clSignIn"].Value; + if (dgvDetail2.CurrentRow.Cells["clSignOut"].Value.GetType().ToString() != "System.DBNull") + { + dtPickerSignOut.Value = (DateTime)dgvDetail2.CurrentRow.Cells["clSignOut"].Value; + } + else + { + dtPickerSignOut.Value = (DateTime)dgvDetail2.CurrentRow.Cells["clSignIn"].Value; + } + } } } diff --git a/ManagementSystem/HRDataCorrect.resx b/ManagementSystem/HRDataCorrect.resx index 7f6ede3..1af7e5d 100644 --- a/ManagementSystem/HRDataCorrect.resx +++ b/ManagementSystem/HRDataCorrect.resx @@ -157,12 +157,12 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE0SURBVDhPrZI9TsQwEIWNqEArio29QoKLAA1wAURBDeIG - i1YIlrVDw78Q4iQU3IEKpeACVJQ0gQjFIxzGZrwK2N5qnzRyYr/vZeyYTUWLx0ZwpU+EhNN2ZTmsd4dm - iWxpOVhBE5QNUlCIvOmQ1ambmwV6/BUZUwE41o9sp5llrJkRUh/iB3McB4SnA7iEc6Gqkt7vse64givH - KDhb7pu5iQHi6OsdgQu7zqV+6Em9Ikb1Hq7dYhd9B1slA8ZVlRa2XjzYTduZA70mB+AWcr1qfZmEDYQv - HdRWOgBhqdesh+BrB/xXLGB+8PkxhvE+dA7KypljCgK2i2/fqoftvDPHFOngmY/qffwDNx62RfZQQcBQ - v2UKXoQqTHue7KHSh/i3yB6qJ2FL7L5CDPKF23ki+zTF2A8WdlpZmqw56gAAAABJRU5ErkJggg== + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE0SURBVDhPrZI/TsMwFMaNmEAVQ2NXSHARYAEuAAsziBsU + VaiU2mbhvxDiJAzcgYkycAEmRpZAhOInHJ7NSxWw3amf9OTE/n5fnh2zqWjxyAquzLGQcNKsTMN6e2CX + yJaWhxVUQbkgBc9CVy2yerW1XaDHX5ExFYBj+cB2qlnGqhkhzSF+UOPYIzwdwCWcCVXk9H6HdcsVXHpG + wely185NDBD9r3cEzt06l+a+I82KGJZ7uHaDXXQ97JQMGFeRO9h58WA3XWcerDU5ALegzarzZRI2EL7w + UFPpAISlWXMegq888F+xgPne58cYxvvQOsgLb44pCNgefdet1rCb9+aYIh088WG5j3/guoZdkT1UEDAw + b5mCF6FGtjlP9lDpQ/xbZA/VkbAldl8hBtWF23kk+zTF2A8SslpWH0fCAwAAAABJRU5ErkJggg== @@ -182,11 +182,11 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD6SURBVDhPYxg8wGTGrYUm9Sv+5Sw/8//MpSv/D588A8Zv + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD6SURBVDhPYxg8wGTGrYUm9cv/5Sw/8//MpSv/D588A8Zv PnyE48ylp/8bT7/dANWCCkCaTWbc/g8yYNPeff+nLl0GxugGgNRgNQQkAcKB04/8P3vt+v/N+/f/33Ps OFzzq/cf/vtOPQxWA8JQbQgAk9DtPPbfD6gQZBsyBmnW7TpG2ABiMVQbAmBThA9DtSEATMJ94b3/xdse /S/ejoqLgGJuQDmCBlx5+g4l5JHxpcfvCBsAUnj9zr3/5y5dRcHX794HyxFtACgxIWOQGF4DjKdcgxuA - D4PUGE25immATsveFbr1E/4t2n3qPz4MUqPRtGcJVNuAAwYGAHi5rr9VRdxzAAAAAElFTkSuQmCC + D4PUGE25immATsveFbr1/f8W7T71Hx8GqdFo2rMEqm3AAQMDAHC0rrsKssgcAAAAAElFTkSuQmCC @@ -221,15 +221,15 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIwSURBVDhPYwCBbbkM7Msy2OYvz+AoBwuQChalsyccnBH2 - f0m97b81hRLBUGHiwfQYVv3d9RqvDjdJ/N9ULb+rPpSBDSpFPFhbLF24L0327/p8/u/T41msT63mN/z/ + f3G97b81hRLBUGHiwfQYVv3d9RqvDjdJ/N9ULb+rPpSBDSpFPFhbLF24L1X27/p8/u/T41msT63mN/z/ n4ERKk0cWJotuGFDrcj/S5sd7j+9GHb+/HwGAagUYXB+PYPApU0i015etf/5+lz2/x0RZj8nCDKdh0oT - BsdWMggdXym4aWaM+L+j5tr/z+pr/VmTqPTuxgG1+VdWMfBAleEHjUwMWfNZGX6v9eD//vxM9v/fz/z+ + BsdWMggdXym4aUaM+L+j5tr/z+pp/VmTqPTuxgG1+VdWMfBAleEHjUwMWfNZGX6v9eD//vxM9v/fz/z+ v7qm+//6fqUTh1cxyEGV4QahDAzMK7OZ8j/cdgNqDv3/+bbL//fXNf7fPCz0/9YZt5sXNovrQJXiBmfX Mxg/OWf0/8ttg/+/Hjv8f3RS9v+9k2L/bx6S/v/wXNCzSzs1Y6BKsYOD8xhkrxzRevXsrOT/D9c0/j8/ o/b/zmHZ/3ePyf+/dVjt/6Nz/t8vbhFfCFWOAThEuBgkT21WOn7nsMz/B8fk/r+4ZPb/3lGV/1d38/9/ - dN7h/8X95h/XTBNMA6rFCFhuIJYGYu2p9fwNB1cb/rt9WPX/3SPS/+8eN/1/ZL/934OLhe64WjKEWOoy + dN7h/8X95h/XTBNMA6rFCFhuIJYGYu2p9fwNB1YZ/rt9WPX/3SPS/+8eN/1/eL/934OLhe64WjKEWOoy 2AHVyQMxPxDDAcwALSC2PLBc5czNg4b/9++3/LlvseSdKTU8Kzg5Gfz4uRkcgfJ6QIxhAAiA8oAoECuI - iTHoTatlqEoOYohSkADbaATEoFhQBmIJIOYCYryACYhZgZgDikGGMwMxEmBgAADmct9J8i9l/gAAAABJ + iTHoTatlqEoOYohSkADbaATEoFhQBmIJIOYCYryACYhZgZgDikGGMwMxEmBgAADX2N9CI/UuaAAAAABJ RU5ErkJggg== @@ -243,6 +243,21 @@ CaTgwF0eFjADuKEMMjCDGAA8oeSBTJU/ZwAAAABJRU5ErkJggg== + + True + + + True + + + True + + + True + + + True + True @@ -310,6 +325,6 @@ True - 53 + 46 \ No newline at end of file