167 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using FCOMMON;
 | |
| using NetOffice.Extensions.Invoker;
 | |
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Runtime.InteropServices;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using System.Windows.Forms;
 | |
| using AR;
 | |
| using NetOffice.OutlookApi;
 | |
| 
 | |
| namespace FBS0000.Holiday
 | |
| {
 | |
|     public partial class fTimeTransfer : fBase
 | |
|     {
 | |
|         public fTimeTransfer()
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             Properties.Settings.Default["gwcs"] = FCOMMON.info.CS;
 | |
| 
 | |
|             //dtSD.KeyDown += dtSD_KeyDown;
 | |
|             //dtED.KeyDown += dtSD_KeyDown;
 | |
|         }
 | |
|         private void fErrorChk_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             //기본 이번달 설정한다
 | |
|             dtSD.Value = DateTime.Now.AddMonths(-1);
 | |
|             dateTimePicker1.Value = new DateTime(DateTime.Now.Year, 1, 1);
 | |
|             EnsureVisibleAndUsableSize();
 | |
|         }
 | |
| 
 | |
|         private void button1_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             //검사버튼
 | |
|             var sd = DateTime.Parse(dtSD.Text);
 | |
|             var stime = new DateTime(sd.Year, 1, 1);
 | |
|             var etime = new DateTime(sd.Year, sd.Month, 1).AddMonths(1).AddDays(-1);
 | |
| 
 | |
|             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("sd", SqlDbType.VarChar).Value = stime.ToShortDateString();
 | |
|             cmd.Parameters.Add("ed", SqlDbType.VarChar).Value = etime.ToShortDateString();
 | |
| 
 | |
|             //근태입력자료확인
 | |
|             cmd.CommandText = "SELECT  holyday.uid, Users.name,\r\nsum( Holyday.DrTime) AS Dr," +
 | |
|                 " sum(Holyday.CrTime) AS Cr, sum( Holyday.DrTime) - sum(holyday.crtime) as jan" +
 | |
|                 " FROM     Holyday WITH (NOLOCK)" +
 | |
|                 " LEFT OUTER JOIN EETGW_GroupUser WITH (NOLOCK) " +
 | |
|                 " ON Holyday.gcode = EETGW_GroupUser.gcode AND Holyday.uid = EETGW_GroupUser.uid " +
 | |
|                 " LEFT OUTER JOIN Users WITH (NOLOCK) ON Holyday.uid = Users.id" +
 | |
|                 " WHERE  (Holyday.gcode = @gcode) AND  (Holyday.sdate BETWEEN @sd AND @ed) and  EETGW_GroupUser.useUserState = 1 " +
 | |
|                 " AND (ISNULL(Holyday.DrTime, 0) + ISNULL(Holyday.CrTime, 0) <> 0)" +
 | |
|                 " group by holyday.uid,Users.name" +
 | |
|                 " having sum( Holyday.DrTime) - sum(holyday.crtime) <> 0" +
 | |
|                 " order by Users.name";
 | |
| 
 | |
|             var dar = cmd.ExecuteReader();
 | |
|             this.listView1.Items.Clear();
 | |
|             double sum_dr, sum_cr, sum_jan;
 | |
|             sum_dr = sum_cr = sum_jan = 0.0;
 | |
|             while (dar.Read())
 | |
|             {
 | |
|                 var str_uid = dar[0].ToString();
 | |
|                 var str_name = dar[1].ToString();
 | |
|                 var str_dr = (double)dar[2];
 | |
|                 var str_cr = (double)dar[3];
 | |
|                 var str_jan = (double)dar[4];
 | |
| 
 | |
|                 sum_dr += str_dr;
 | |
|                 sum_cr += str_cr;
 | |
|                 sum_jan += str_jan;
 | |
| 
 | |
|                 var lv = this.listView1.Items.Add(str_uid);
 | |
|                 lv.SubItems.Add(str_name);
 | |
|                 lv.SubItems.Add(str_dr.ToString());
 | |
|                 lv.SubItems.Add(str_cr.ToString());
 | |
|                 lv.SubItems.Add(str_jan.ToString());
 | |
|                 lv.Tag = $"{str_uid}|{str_jan}";
 | |
|                 lv.Checked = true;
 | |
|             }
 | |
| 
 | |
|             var lvsum = this.listView1.Items.Add("Total");
 | |
|             lvsum.SubItems.Add("");
 | |
|             lvsum.SubItems.Add(sum_dr.ToString());
 | |
|             lvsum.SubItems.Add(sum_cr.ToString());
 | |
|             lvsum.SubItems.Add(sum_jan.ToString());
 | |
|             lvsum.Checked = false;
 | |
|             lvsum.BackColor = Color.Gray;
 | |
| 
 | |
|             dar.Close();
 | |
|             cn.Dispose();
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void button2_Click_1(object sender, EventArgs e)
 | |
|         {
 | |
|             dtSD.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01");
 | |
|         }
 | |
| 
 | |
|         private void button3_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var 시작달 = DateTime.Parse(dtSD.Value.ToString("yyyy-MM") + "-01");
 | |
|             dtSD.Value = 시작달.AddMonths(-1);
 | |
|         }
 | |
| 
 | |
|         private void button1_Click_1(object sender, EventArgs e)
 | |
|         {
 | |
|             var 다음달 = DateTime.Parse(dtSD.Value.ToString("yyyy-MM") + "-01");
 | |
|             dtSD.Value = 다음달.AddMonths(1);
 | |
|         }
 | |
| 
 | |
|         private void button4_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var chkitems = this.listView1.CheckedItems;
 | |
|             if (chkitems.Count < 1)
 | |
|             {
 | |
|                 UTIL.MsgE("등록 가능한 아이템이 없습니다");
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             var ed = dateTimePicker1.Value;
 | |
|             if (UTIL.MsgQ($"{chkitems.Count}건의 자료를 {ed.ToShortDateString()}일자로 등록할까요?\n구분은 '대체'로 입력됩니다") != DialogResult.Yes)
 | |
|                 return;
 | |
| 
 | |
|             var sumjan = 0.0;
 | |
|             var ta = new dsMSSQLTableAdapters.HolydayTableAdapter();
 | |
|             var dt = new dsMSSQL.HolydayDataTable();
 | |
|             foreach (ListViewItem lv in chkitems)
 | |
|             {
 | |
|                 if (lv.Tag == null) continue;
 | |
|                 var buf = lv.Tag.ToString().Split('|');
 | |
|                 var uid = buf[0];
 | |
|                 var jan = double.Parse(buf[1]);
 | |
|                 sumjan += jan;
 | |
| 
 | |
|                 var dr = dt.NewHolydayRow();
 | |
|                 dr.DrTime = jan;
 | |
|                 dr.sdate = ed;
 | |
|                 dr.edate = ed;
 | |
|                 dr.uid = uid;   
 | |
|                 dr.title = "대체이월";
 | |
|                 dr.contents = "대체이월";
 | |
|                 dr.tag = "iwol";
 | |
|                 dr.wuid = FCOMMON.info.Login.no;
 | |
|                 dr.wdate = DateTime.Now;
 | |
|                 dr.cate = "대체";
 | |
|                 dr.iwol = true;
 | |
|                 dr.gcode = FCOMMON.info.Login.gcode;
 | |
|                 dt.AddHolydayRow(dr);
 | |
|             }
 | |
|             var cnt = ta.Update(dt);
 | |
|             if (cnt > 0)
 | |
|                 UTIL.MsgI($"{cnt}건의 자료가 추가 되었습니다");
 | |
|             else UTIL.MsgE("저장된 자료가 없습니다");
 | |
|         }
 | |
|     }
 | |
| }
 | 
