Files
Groupware/SubProject/FBS0000/Holiday/fHolyday.cs
chikyun.kim 43841e6c52 ..
2018-12-08 15:12:15 +09:00

207 lines
6.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NetOffice;
using Outlook = NetOffice.OutlookApi;
using NetOffice.OutlookApi.Enums;
namespace FBS0000
{
public partial class fHolyday : FCOMMON.fBase
{
public fHolyday()
{
InitializeComponent();
this.dsMSSQL.Holyday.TableNewRow += Holyday_TableNewRow;
}
private void __Load(object sender, EventArgs e)
{
tbSD.Text = DateTime.Now.Year.ToString("0000") + "-01-01";
tbED.Text = DateTime.Now.AddDays(10).ToShortDateString();
var userlist = FCOMMON.DBM.getUserTable();
dvc_user.DataSource = userlist;
dvc_user.ValueMember = "Key";
dvc_user.DisplayMember = "Value";
var cateList = FCOMMON.DBM.getCodeTable("02");
this.dvc_cate.DataSource = cateList;
dvc_cate.ValueMember = "Key";
dvc_cate.DisplayMember = "Value";
var rrltList = FCOMMON.DBM.getCodeTable("03");
this.dvc_result.DataSource = rrltList;
dvc_result.ValueMember = "Key";
dvc_result.DisplayMember = "Value";
//udpate user list
var userList = FCOMMON.DBM.getUserList();
this.cmbUser.Items.Clear();
this.cmbUser.Items.Add("-- ALL --");
int curuserindex = -1;
foreach (var user in userList)
{
this.cmbUser.Items.Add(string.Format("[{0}] {1}", user.Key, user.Value));
if (user.Key == FCOMMON.info.Login.no) curuserindex = cmbUser.Items.Count - 1;
}
this.cmbUser.SelectedIndex = curuserindex;
//일반사용자의경우에는 상태를 변경하지 못한다.
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAutoType.holyday));
if (curLevel >= 5)
{
//권한이 잇으므로 모든 사용자로 한다.
}
else
{
this.cmbUser.Enabled = false; //사용자를 고칠수 없게 한다.
}
RefreshData();
}
void Holyday_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["uid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
e.Row["cate"] = "10"; //기본 신청
e.Row["sdate"] = DateTime.Now.ToShortDateString();
e.Row["edate"] = DateTime.Now.ToShortDateString();
e.Row["term"] = 1.0f;
e.Row["Result"] = "00";
}
void RefreshData()
{
//update data
string uid = "%";
if (cmbUser.SelectedIndex > 0)
{
uid = cmbUser.Text.Substring(1, cmbUser.Text.IndexOf(']') - 1);
}
this.ta.Fill(this.dsMSSQL.Holyday, tbSD.Text, tbED.Text, uid);
//잔량계산
double sumdr = 0;
double sumcr = 0;
double jan = 0;
foreach( dsMSSQL.HolydayRow dr in this.dsMSSQL.Holyday.Rows)
{
if (dr.RowState == DataRowState.Deleted || dr.RowState == DataRowState.Detached) continue;
sumdr += dr.termDr;
sumcr += dr.term;
}
jan = sumdr - sumcr;
sbGen.Text = sumdr.ToString("N0");
sbUse.Text = sumcr.ToString("N0");
sbJan.Text = jan.ToString("N0");
if (jan < 0) sbJan.ForeColor = Color.Red;
else sbJan.ForeColor = Color.Blue;
}
private void boardBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.bs.EndEdit();
var dlg = FCOMMON.Util.MsgQ("변경된 내용을 저장하시겠습니까?");
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
try
{
this.tam.UpdateAll(this.dsMSSQL);
} catch (Exception ex)
{
FCOMMON.Util.MsgE(ex.Message);
}
}
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
var newdr = this.dsMSSQL.Holyday.NewHolydayRow();
var f = new fHolyday_Add(newdr);
if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
newdr.Delete();
}
else
{
newdr.EndEdit();
this.dsMSSQL.Holyday.AddHolydayRow(newdr);
}
}
private void autoResizeComlumnsToolStripMenuItem_Click(object sender, EventArgs e)
{
dv1.AutoResizeColumns();
}
private void dv1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
}
private void dv1_DoubleClick(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsMSSQL.HolydayRow;
var f = new fHolyday_Add(dr);
if(f.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
dr.RejectChanges();
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
RefreshData();
}
private void tbSD_KeyDown(object sender, KeyEventArgs e)
{
var tb = sender as ToolStripTextBox;
if(e.KeyCode == Keys.Enter)
{
string datestring ;
if(FCOMMON.Util.MakeDateString(tb.Text,out datestring))
{
tb.Text = datestring;
SendKeys.Send("{TAB}");
}
}
}
private void sendToMailToolStripMenuItem_Click(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsMSSQL.HolydayRow;
//string to = dr.tolist;
//string body = "<html><body>test 2<strong>sfd</strong>nice to meet</body></html>";
//string bcc = string.Empty;
//string cc = string.Empty;
//string subject = "etst mail";
Outlook.Application outlookApplication = new Outlook.Application();
Outlook.MailItem newTask = outlookApplication.CreateItem(OlItemType.olMailItem) as Outlook.MailItem;
newTask.Subject="mail test";
newTask.To = "Chikyun.Kim@amkor.co.kr";
newTask.HTMLBody = "<i><b>this is test mail</b></i>";
newTask.BodyFormat = OlBodyFormat.olFormatHTML;
newTask.Display();
//FCOMMON.Util.RunDefaultMail(to, subject, body, cc, bcc);
}
}
}