284 lines
9.6 KiB
C#
284 lines
9.6 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Configuration;
|
|
using System.Collections;
|
|
using System.Web;
|
|
using System.Web.Security;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Web.UI.HtmlControls;
|
|
using System.Data.Common;
|
|
using Wellan.Data;
|
|
using Wellan.Common;
|
|
using System.Text;
|
|
using System.IO;
|
|
|
|
/// <summary>
|
|
/// 加班匯總輸入
|
|
/// </summary>
|
|
public partial class forms_worker_fmRowk : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
protected string _ROPYN = "";
|
|
private string _ROENO = "";
|
|
private string _ROYMM = "";
|
|
private int _YY = 0;
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
_ROENO = ViewState["ROENO"] != null ? ViewState["ROENO"].ToString() : "";
|
|
_ROYMM = ViewState["ROYMM"] != null ? ViewState["ROYMM"].ToString() : "";
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
dsROWKForm.ConnectionString = ConnectionString;
|
|
dsROWKGrid.ConnectionString = ConnectionString;
|
|
|
|
SELECT_SQL = @"SELECT TRDAT, TRMOD, TRUSR, ROENO, ROYMM, ROPYN,
|
|
ROT01 / 60 AS ROT01, ROT02 / 60 AS ROT02, ROT03 / 60 AS ROT03, ROT04 / 60 AS ROT04, ROT05 / 60 AS ROT05,
|
|
ROA01, ROA02, ROA03, ROA05, APPNO ";
|
|
FROM_SQL = " FROM ROWK ";
|
|
WHERE_SQL = " WHERE 1=1 ";
|
|
ORDER_SQL = " ORDER BY ROYMM, ROENO";
|
|
|
|
this.Form_View = fvROWK;
|
|
this.Grid_View = gvROWK;
|
|
this.FormView_DataSource = dsROWKForm;
|
|
this.GridView_DataSource = dsROWKGrid;
|
|
this.Multi_View = MultiView1;
|
|
|
|
if (ForwardSource != "")
|
|
_ROPYN = GetStringParam("ROPYN");
|
|
_YY = GetIntParam("YY");
|
|
|
|
if (_YY > 0)
|
|
{
|
|
txtYY.Text = _YY.ToString();
|
|
ddlROPYN.DataSource = new BpaaDAC().GetBpaaWithTY(_YY + WGuard1.CY11);
|
|
ddlROPYN.DataBind();
|
|
ListItem item = ddlROPYN.Items.FindByValue(_ROPYN);
|
|
if (item != null)
|
|
item.Selected = true;
|
|
}
|
|
else
|
|
{
|
|
txtYY.Focus();
|
|
}
|
|
|
|
MultiView1.Visible = _ROPYN != "";
|
|
|
|
GetGridViewRowColor(gvROWK);
|
|
|
|
switch (MultiView1.ActiveViewIndex)
|
|
{
|
|
case 0:
|
|
{
|
|
break;
|
|
}
|
|
case 1:
|
|
{
|
|
Search();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 查詢按鈕
|
|
protected void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
ViewState["ROENO"] = txtROENO.Text;
|
|
ViewState["ROYMM"] = txtROYMM.Text;
|
|
|
|
_ROENO = txtROENO.Text;
|
|
_ROYMM = txtROYMM.Text;
|
|
|
|
if (_ROENO.Length == 0 &&
|
|
_ROYMM.Length == 0)
|
|
{
|
|
cvMessage.ErrorMessage = GetString("NOSRHCOND");
|
|
cvMessage.IsValid = false;
|
|
}
|
|
else
|
|
{
|
|
MultiView1.ActiveViewIndex = 1;
|
|
|
|
Search();
|
|
|
|
gvROWK.PageIndex = 0;
|
|
gvROWK.SelectedIndex = 0;
|
|
gvROWK.DataBind();
|
|
}
|
|
}
|
|
|
|
// 取消查詢按鈕
|
|
protected void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
MultiView1.ActiveViewIndex = 1;
|
|
}
|
|
|
|
protected void btnInsert_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
// 查詢動作
|
|
protected override void Search()
|
|
{
|
|
base.Search();
|
|
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.Append(SELECT_SQL);
|
|
sql.Append(FROM_SQL);
|
|
sql.Append(WHERE_SQL);
|
|
dsROWKGrid.SelectParameters.Clear();
|
|
AddSearch(sql, dsROWKGrid, "ROPYN", _ROPYN, "", true);
|
|
AddSearch(sql, dsROWKGrid, "ROENO", _ROENO, "", true);
|
|
DateTime aYYMM;
|
|
if (CheckDate(_ROYMM + "01", out aYYMM))
|
|
AddSearch(sql, dsROWKGrid, "ROYMM", aYYMM.ToString(WGuard1.InvariantCulture), "", false);
|
|
sql.Append(ORDER_SQL);
|
|
dsROWKGrid.SelectCommand = sql.ToString();
|
|
dsROWKForm.SelectCommand = SELECT_SQL + FROM_SQL + " WHERE ROENO=@ROENO AND ROYMM=@ROYMM ";
|
|
}
|
|
|
|
protected void cvROENO_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
BPSN_DAC bpsn = new BPSN_DAC(WConfig.GetConnectionConfig(), WConfig.GetConnectionConfigName());
|
|
args.IsValid = args.Value != "" && bpsn.IsExist(args.Value, true);
|
|
}
|
|
|
|
protected void cvROYMM_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
DateTime aYYMM;
|
|
args.IsValid = args.Value != "" && CheckDate(args.Value + "01", out aYYMM) && aYYMM.Year == _YY + WGuard1.CY11;
|
|
}
|
|
|
|
protected void cvROT01_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
int i;
|
|
args.IsValid = args.Value != "" && Int32.TryParse(args.Value, out i) && i >= 0;
|
|
}
|
|
|
|
protected override void FormView_InsertDataBound(object sender, EventArgs e)
|
|
{
|
|
base.FormView_InsertDataBound(sender, e);
|
|
|
|
if (_ROPYN == "000000001")
|
|
RegisterLookupEvent(fvROWK, "btnROWK_ROENO_WQRY", "txtROWK_ROENO", "txtROWK_ROENO,lbROWK_ROENOX", "BPSN1", "NOT EXISTS (SELECT RANUM FROM RASN WHERE RANUM=BPENO AND RAEDT IS NULL)");
|
|
else
|
|
RegisterLookupEvent(fvROWK, "btnROWK_ROENO_WQRY", "txtROWK_ROENO", "txtROWK_ROENO,lbROWK_ROENOX", "BPSN1", "BPENO IN (SELECT RANUM FROM RASN WHERE RAPYN='" + _ROPYN + "')");
|
|
(fvROWK.FindControl("txtROWK_ROYMM") as ITextControl).Text = DateTime.UtcNow.AddHours(8).ToString("yyyyMM");
|
|
(fvROWK.FindControl("txtROWK_ROT01") as ITextControl).Text = "0";
|
|
(fvROWK.FindControl("txtROWK_ROT02") as ITextControl).Text = "0";
|
|
(fvROWK.FindControl("txtROWK_ROT03") as ITextControl).Text = "0";
|
|
(fvROWK.FindControl("txtROWK_ROT04") as ITextControl).Text = "0";
|
|
(fvROWK.FindControl("txtROWK_ROT05") as ITextControl).Text = "0";
|
|
SetClientFocus(fvROWK, "txtROWK_ROENO");
|
|
}
|
|
|
|
protected override void FormView_EditDataBound(object sender, EventArgs e)
|
|
{
|
|
base.FormView_EditDataBound(sender, e);
|
|
|
|
if (_ROPYN == "000000001")
|
|
RegisterLookupEvent(fvROWK, "btnROWK_ROENO_WQRY", "txtROWK_ROENO", "txtROWK_ROENO,lbROWK_ROENOX", "BPSN1", "NOT EXISTS (SELECT RANUM FROM RASN WHERE RANUM=BPENO AND RAEDT IS NULL)");
|
|
else
|
|
RegisterLookupEvent(fvROWK, "btnROWK_ROENO_WQRY", "txtROWK_ROENO", "txtROWK_ROENO,lbROWK_ROENOX", "BPSN1", "BPENO IN (SELECT RANUM FROM RASN WHERE RAPYN='" + _ROPYN + "')");
|
|
SetClientFocus(fvROWK, "txtROWK_ROENO");
|
|
}
|
|
|
|
protected override void FormView_ItemCommand(object sender, FormViewCommandEventArgs e)
|
|
{
|
|
base.FormView_ItemCommand(sender, e);
|
|
|
|
switch (e.CommandName)
|
|
{
|
|
case "Search":
|
|
SetClientFocus(txtROENO);
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected override void CalcFields(SqlDataSourceCommandEventArgs e)
|
|
{
|
|
base.CalcFields(e);
|
|
|
|
// 由日期 + 人員,取得時薪、前二加班、後二加班、假日加班比例
|
|
DateTime aYYMM;
|
|
CheckDate(e.Command.Parameters["@ROYMM"].Value.ToString() + "01", out aYYMM);
|
|
e.Command.Parameters["@ROYMM"].Value = aYYMM;
|
|
|
|
string roeno = e.Command.Parameters["@ROENO"].Value.ToString();
|
|
|
|
int bpsrm;
|
|
int bpp02;
|
|
double bpbft;
|
|
double bpaft;
|
|
double bphol;
|
|
string bpovr;
|
|
string bplve;
|
|
string bpott;
|
|
|
|
GetData gd = new GetData();
|
|
gd.Query = Query;
|
|
gd.GetRASN_DateRange_Bppyn_Bpeno_Overwork_Rate(aYYMM, aYYMM.AddMonths(1).AddDays(-1), _ROPYN, roeno,
|
|
out bpsrm, out bpp02, out bpbft, out bpaft, out bphol, out bpovr, out bplve, out bpott);
|
|
|
|
// 計算加班費
|
|
e.Command.Parameters["@ROA01"].Value = ExtraWork.CalculateOverTimeInt(bpsrm, bpp02, Convert.ToInt32(e.Command.Parameters["@ROT01"].Value) * 60, bpbft, bpovr, bpott);
|
|
e.Command.Parameters["@ROA02"].Value = ExtraWork.CalculateOverTimeInt(bpsrm, bpp02, Convert.ToInt32(e.Command.Parameters["@ROT02"].Value) * 60, bpaft, bpovr, bpott);
|
|
e.Command.Parameters["@ROA03"].Value = ExtraWork.CalculateOverTimeInt(bpsrm, bpp02, Convert.ToInt32(e.Command.Parameters["@ROT03"].Value) * 60, bphol, bpovr, bpott);
|
|
e.Command.Parameters["@ROA05"].Value = ExtraWork.CalculateOverTimeInt(bpsrm, bpp02, Convert.ToInt32(e.Command.Parameters["@ROT05"].Value) * 60, bpaft + 1, bpovr, bpott);
|
|
}
|
|
|
|
protected override void FormView_ItemInserting(object sender, FormViewInsertEventArgs e)
|
|
{
|
|
base.FormView_ItemInserting(sender, e);
|
|
}
|
|
|
|
protected override void FormView_DataSource_Inserting(object sender, SqlDataSourceCommandEventArgs e)
|
|
{
|
|
e.Command.Parameters["@ROPYN"].Value = _ROPYN;
|
|
base.FormView_DataSource_Inserting(sender, e);
|
|
}
|
|
|
|
protected void Next_Click(object sender, EventArgs e)
|
|
{
|
|
ParamList["ROPYN"] = ddlROPYN.SelectedValue;
|
|
DoAfterCommand("ROWK");
|
|
}
|
|
|
|
protected override void GridView_DataSource_Selected(object sender, SqlDataSourceStatusEventArgs e)
|
|
{
|
|
base.GridView_DataSource_Selected(sender, e);
|
|
|
|
if (e.AffectedRows == 0)
|
|
{
|
|
if (MultiView1.ActiveViewIndex != 0)
|
|
{
|
|
gvROWK.Visible = false;
|
|
fvROWK.ChangeMode(FormViewMode.Insert);
|
|
FormView_ModeChanged(sender, e);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void btnYY_Click(object sender, EventArgs e)
|
|
{
|
|
int year;
|
|
if (!Int32.TryParse(txtYY.Text.Trim(), out year))
|
|
{
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage = "請輸入正確的年度";
|
|
return;
|
|
}
|
|
|
|
MultiView1.Visible = false;
|
|
ParamList["YY"] = year;
|
|
ParamList["ROPYN"] = "";
|
|
DoAfterCommand("ROWK");
|
|
}
|
|
}
|