....
This commit is contained in:
		
							
								
								
									
										262
									
								
								SubProject/FBS0000/Holiday/fErrorChk.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										262
									
								
								SubProject/FBS0000/Holiday/fErrorChk.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,262 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.ComponentModel; | ||||
| using System.Data; | ||||
| using System.Drawing; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Threading.Tasks; | ||||
| using System.Windows.Forms; | ||||
|  | ||||
| namespace FBS0000.Holiday | ||||
| { | ||||
|     public partial class fErrorChk : Form | ||||
|     { | ||||
|         public fErrorChk() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|  | ||||
|             dtSD.KeyDown += dtSD_KeyDown; | ||||
|             dtED.KeyDown += dtSD_KeyDown; | ||||
|         } | ||||
|         private void fErrorChk_Load(object sender, EventArgs e) | ||||
|         { | ||||
|             dtSD.Text = DateTime.Now.ToString("yyyy-MM") + "-01"; | ||||
|             dtED.Text = DateTime.Now.ToShortDateString(); | ||||
|         } | ||||
|  | ||||
|         void dtSD_KeyDown(object sender, KeyEventArgs e) | ||||
|         { | ||||
|             if (e.KeyCode != Keys.Enter) return; | ||||
|             var tb = sender as TextBox; | ||||
|             var input = tb.Text.Trim(); | ||||
|             if (input == "") tb.Text = DateTime.Now.ToShortDateString(); | ||||
|             else | ||||
|             { | ||||
|                 string dt = string.Empty; | ||||
|                 if (!FCOMMON.Util.MakeDateString(input, out dt)) | ||||
|                 { | ||||
|                     FCOMMON.Util.MsgE("입력값이 올바르지 않습니다."); | ||||
|                     tb.SelectAll(); | ||||
|                     tb.Focus(); | ||||
|                     return; | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     tb.Text = dt; | ||||
|                 } | ||||
|             } | ||||
|             if (tb == dtSD) | ||||
|             { | ||||
|                 dtED.Focus(); | ||||
|                 dtED.SelectAll(); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 // btSearch.PerformClick(); | ||||
|                 tb.SelectAll(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private void listView1_SelectedIndexChanged(object sender, EventArgs e) | ||||
|         { | ||||
|  | ||||
|         } | ||||
|         private void button1_Click(object sender, EventArgs e) | ||||
|         { | ||||
|             //검사버튼 | ||||
|             this.listView1.CheckBoxes = true; | ||||
|             var sd = DateTime.Parse(dtSD.Text); | ||||
|             var ed = DateTime.Parse(dtED.Text); | ||||
|             var idx = 0; | ||||
|  | ||||
|             var gcode = FCOMMON.info.Login.gcode; | ||||
|             var id = FCOMMON.info.Login.no; | ||||
|  | ||||
|             var cn = FCOMMON.DBM.getCn(); | ||||
|             cn.Open(); | ||||
|             var cmd = new System.Data.SqlClient.SqlCommand("", cn); | ||||
|             cmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = gcode; | ||||
|             cmd.Parameters.Add("uid", SqlDbType.VarChar).Value = id; | ||||
|  | ||||
|             listView1.Items.Clear(); | ||||
|             listView1.FullRowSelect = true; | ||||
|             while (true) | ||||
|             { | ||||
|                 var CD = sd.AddDays(idx++); | ||||
|                 if (CD > ed) break; | ||||
|                 var pdate = CD.ToShortDateString(); | ||||
|                 tbDate.Text = pdate; | ||||
|                 Application.DoEvents(); | ||||
|  | ||||
|                 //이날짜의 업무일지 발생데이터를 확인 | ||||
|                 cmd.CommandText = "select sum(isnull(ot2,0)) from jobreport where gcode = @gcode and pdate='{0}' and isnull(ot,0) >0 and isnull(ot2,0) > 0"; | ||||
|                 cmd.CommandText = string.Format(cmd.CommandText, pdate); | ||||
|  | ||||
|  | ||||
|                 var obj_jobreport = cmd.ExecuteScalar().ToString(); | ||||
|                 double val_jobreport = 0.0; | ||||
|                 if (string.IsNullOrEmpty(obj_jobreport) == false) val_jobreport = double.Parse(obj_jobreport); | ||||
|                 textBox2.Tag = val_jobreport;// db_jobreport.Sum(t => t.kisulamt); | ||||
|                 textBox2.Text = textBox2.Tag.ToString(); | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|                 //휴가신청확인 | ||||
|                 cmd.CommandText = "select sum(HolyDays),sum(HolyTimes) from EETGW_HolydayRequest where gcode = @gcode and sdate = '{0}' and isnull(conf,0) = 1"; | ||||
|                 cmd.CommandText = string.Format(cmd.CommandText, pdate); | ||||
|                 var dar = cmd.ExecuteReader(); | ||||
|                 double val_day = 0; | ||||
|                 double val_time = 0; | ||||
|                 while (dar.Read()) | ||||
|                 { | ||||
|                     var str_day = dar[0].ToString(); | ||||
|                     var str_time = dar[1].ToString(); | ||||
|                     if (string.IsNullOrEmpty(str_day) == false) val_day = double.Parse(str_day); | ||||
|                     if (string.IsNullOrEmpty(str_time) == false) val_time = double.Parse(str_time); | ||||
|                 } | ||||
|                 textBox3.Tag = val_day;// db_jobreport.Sum(t => t.kisulamt); | ||||
|                 textBox3.Text = textBox3.Tag.ToString(); | ||||
|                 textBox4.Tag = val_time;// db_jobreport.Sum(t => t.kisulamt); | ||||
|                 textBox4.Text = textBox4.Tag.ToString(); | ||||
|                 dar.Close(); | ||||
|  | ||||
|  | ||||
|                 //근태입력자료확인 | ||||
|                 cmd.CommandText = "select sum(term)  ,sum(crtime),sum(termdr),sum(drtime)" + | ||||
|                     " from Holyday " + | ||||
|                     " where gcode = @gcode and sdate = '{0}'  and isnull(extidx,-1) <> -1"; | ||||
|  | ||||
|                 cmd.CommandText = string.Format(cmd.CommandText, pdate); | ||||
|                 dar = cmd.ExecuteReader(); | ||||
|                 val_day = 0; | ||||
|                 val_time = 0; | ||||
|                 double val_day_dr = 0; | ||||
|                 double val_time_dr = 0; | ||||
|                 while (dar.Read()) | ||||
|                 { | ||||
|                     var str_day_cr = dar[0].ToString(); | ||||
|                     var str_time_cr = dar[1].ToString(); | ||||
|                     var str_day_dr = dar[2].ToString(); | ||||
|                     var str_time_dr = dar[3].ToString(); | ||||
|  | ||||
|                     if (string.IsNullOrEmpty(str_day_cr) == false) val_day = double.Parse(str_day_cr); | ||||
|                     if (string.IsNullOrEmpty(str_time_cr) == false) val_time = double.Parse(str_time_cr); | ||||
|  | ||||
|                     if (string.IsNullOrEmpty(str_day_dr) == false) val_day_dr = double.Parse(str_day_dr); | ||||
|                     if (string.IsNullOrEmpty(str_time_dr) == false) val_time_dr = double.Parse(str_time_dr); | ||||
|                 } | ||||
|                 dar.Close(); | ||||
|                 textBox6.Tag = val_day;// db_jobreport.Sum(t => t.kisulamt); | ||||
|                 textBox6.Text = textBox6.Tag.ToString(); | ||||
|                 textBox5.Tag = val_time;// db_jobreport.Sum(t => t.kisulamt); | ||||
|                 textBox5.Text = textBox5.Tag.ToString(); | ||||
|  | ||||
|                 textBox8.Tag = val_day_dr;// db_jobreport.Sum(t => t.kisulamt); | ||||
|                 textBox8.Text = textBox8.Tag.ToString(); | ||||
|                 textBox7.Tag = val_time_dr;// db_jobreport.Sum(t => t.kisulamt); | ||||
|                 textBox7.Text = textBox7.Tag.ToString(); | ||||
|  | ||||
|                 var lv = this.listView1.Items.Add(pdate); | ||||
|                 lv.SubItems.Add("입력/생성"); | ||||
|                 lv.SubItems.Add($"--/{textBox8.Text}"); | ||||
|                 lv.SubItems.Add($"{textBox2.Text}/{textBox7.Text}"); | ||||
|                 lv.SubItems.Add($"{textBox3.Text}/{textBox6.Text}"); | ||||
|                 lv.SubItems.Add($"{textBox4.Text}/{textBox5.Text}"); | ||||
|  | ||||
|                 if (textBox2.Text.Equals(textBox7.Text) == false) lv.ForeColor = Color.Tomato; | ||||
|                 if (textBox3.Text.Equals(textBox6.Text) == false) lv.ForeColor = Color.Tomato; | ||||
|                 if (textBox4.Text.Equals(textBox5.Text) == false) lv.ForeColor = Color.Tomato; | ||||
|  | ||||
|                 if (lv.ForeColor == Color.Tomato) lv.Checked = true; | ||||
|  | ||||
|                 //if (val_jobreport > 0) break; | ||||
|             } | ||||
|             cn.Dispose(); | ||||
|  | ||||
|         } | ||||
|  | ||||
|         private void button2_Click(object sender, EventArgs e) | ||||
|         { | ||||
|             //오류수정버튼 | ||||
|  | ||||
|             if (listView1.CheckedItems.Count < 1) | ||||
|             { | ||||
|                 FCOMMON.Util.MsgE("정정할 자료가 선택되지 않았습니다"); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             if (FCOMMON.Util.MsgQ("재 생성 할까요?") != DialogResult.Yes) return; | ||||
|  | ||||
|  | ||||
|             //검사버튼 | ||||
|             var sd = DateTime.Parse(dtSD.Text); | ||||
|             var ed = DateTime.Parse(dtED.Text); | ||||
|      //       var idx = 0; | ||||
|  | ||||
|             var gcode = FCOMMON.info.Login.gcode; | ||||
|             var id = FCOMMON.info.Login.no; | ||||
|  | ||||
|             var cn = FCOMMON.DBM.getCn(); | ||||
|             cn.Open(); | ||||
|             var cmd = new System.Data.SqlClient.SqlCommand("", cn); | ||||
|             cmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = gcode; | ||||
|             cmd.Parameters.Add("uid", SqlDbType.VarChar).Value = id; | ||||
|             cmd.Parameters.Add("pdate", SqlDbType.VarChar).Value = "1982-11-23"; | ||||
|  | ||||
|              | ||||
|             listView1.FullRowSelect = true; | ||||
|             foreach (ListViewItem lv in listView1.CheckedItems) | ||||
|             { | ||||
|                 var CD = DateTime.Parse(lv.SubItems[0].Text); | ||||
|  | ||||
|                 //if (CD > ed) break; | ||||
|                 var pdate = CD.ToShortDateString(); | ||||
|                 cmd.Parameters["pdate"].Value = pdate; | ||||
|                 tbDate.Text = pdate; | ||||
|                 Application.DoEvents(); | ||||
|  | ||||
|  | ||||
|                 if (FCOMMON.Util.MsgQ(pdate + "를 재생성 할까요?") != DialogResult.Yes) break; | ||||
|  | ||||
|                 //근태-업무일지자료삭제 | ||||
|                 cmd.CommandText = "delete from Holyday where gcode = @gcode and extcate = 'HO' and sdate=@pdate and isnull(extidx,-1) <> -1"; | ||||
|                 cmd.CommandText = string.Format(cmd.CommandText, pdate); | ||||
|                 var cnt1 = cmd.ExecuteNonQuery(); | ||||
|                 Console.WriteLine($"{cnt1}건의 근태자료가 삭제 되었습니다"); | ||||
|  | ||||
|                 //근태-업무일지자료생성 | ||||
|                 cmd.CommandText = "insert into Holyday(gcode, cate, sdate, edate, term, crtime, termdr, DrTime, contents, [uid], wdate, wuid, extcate, extidx) "; | ||||
|                 cmd.CommandText += "select gcode,'대체',pdate,pdate,0,0,0,isnull(ot2,0),projectname,uid,GETDATE(),@uid + '-ERR','HO',idx from jobreport where gcode = @gcode and pdate = @pdate and isnull(ot2,0) > 0 and isnull(ot,0) > 0"; | ||||
|                 cmd.CommandText = string.Format(cmd.CommandText, pdate); | ||||
|                 var cnt2 = cmd.ExecuteNonQuery(); | ||||
|                 Console.WriteLine($"{cnt2}건의 근태자료가 생성 되었습니다"); | ||||
|  | ||||
|  | ||||
|  | ||||
|                 //근태-휴가신청자료삭제 | ||||
|                 cmd.CommandText = "delete from Holyday where gcode = @gcode and extcate = '휴가' and sdate=@pdate and isnull(extidx,-1) <> -1"; | ||||
|                 cmd.CommandText = string.Format(cmd.CommandText, pdate); | ||||
|                 cnt1 = cmd.ExecuteNonQuery(); | ||||
|                 Console.WriteLine($"{cnt1}건의 근태자료가 삭제 되었습니다"); | ||||
|  | ||||
|                 //근태-휴가신청자료생성(승인완료된자료대상) | ||||
|                 cmd.CommandText = "insert into Holyday(gcode, cate, sdate, edate, term, crtime, termdr, DrTime, contents, [uid], wdate, wuid, extcate, extidx) "; | ||||
|                 cmd.CommandText += "select gcode,cate,sdate,edate,isnull(holydays,0),isnull(holytimes,0),0,0,HolyReason,uid,GETDATE(),@uid + '-ERR','휴가',idx " + | ||||
|                     " from EETGW_HolydayRequest " + | ||||
|                     " where gcode = @gcode and sdate = @pdate and isnull(conf,0)  = 1"; | ||||
|  | ||||
|                 cmd.CommandText = string.Format(cmd.CommandText, pdate); | ||||
|                 cnt2 = cmd.ExecuteNonQuery(); | ||||
|                 Console.WriteLine($"{cnt2}건의 근태자료가 생성 되었습니다"); | ||||
|  | ||||
|             } | ||||
|             cn.Dispose(); | ||||
|  | ||||
|         } | ||||
|  | ||||
|  | ||||
|  | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 chi
					chi