chore: 首次簽入 Thinkyu ASP.NET 專案

- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
2026-09-10 09:42:37 +08:00
commit 577060bc78
2496 changed files with 501389 additions and 0 deletions
+800
View File
@@ -0,0 +1,800 @@
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;
using System.Drawing;
using System.Collections.Generic;
/// <summary>
/// 專案人員派遣
/// </summary>
public partial class forms_customer_fmRasn : Wellan.Web.UI.WUserControlBase
{
protected string _RACNM = "";
protected string _RAPYN = "";
protected string _BPENO = "";
protected string _BPNME = "";
protected int _YY = 0;
//private string select = "SELECT A.*, B.BPSRM, B.BPSRD, B.BPP01, B.BPP02, B.BPP03, B.BPP04, B.BPP05, (CASE WHEN A.RAEDT IS NULL THEN 1 ELSE 2 END) RAEND ";
//private string from =
// @" FROM RASN A
// LEFT OUTER JOIN BPJB B ON A.RAPYN=B.BPPYN AND A.RAJNO=B.BPJNO AND A.RACNO=B.BPCNO
// LEFT OUTER JOIN BPSNView C ON A.RANUM=C.BPENO ";
//private string where = " WHERE 1=1 ";
//// private string order = " ORDER BY RACNM, RAPYN, RAEND, RANUM, RAITM";
//private string order = " ORDER BY RAPYN, RAEND, RANUM, RAITM";
//private string hq_order = " ORDER BY RAEDT, RANUM";
protected bool canSeeSalary = false;
protected void Page_Load(object sender, EventArgs e)
{
_RACNM = ViewState["RACNM"] != null ? ViewState["RACNM"].ToString() : "";
_RAPYN = ViewState["RAPYN"] != null ? ViewState["RAPYN"].ToString() : "";
_BPENO = ViewState["BPENO"] != null ? ViewState["BPENO"].ToString() : "";
_BPNME = ViewState["BPNME"] != null ? ViewState["BPNME"].ToString() : "";
//if (IsPostBack)
// RASNGrid.DataBind();
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
dsRASNForm.ConnectionString = ConnectionString;
dsRASNGrid.ConnectionString = ConnectionString;
dsRASN_RABRH.ConnectionString = ConnectionString;
dsRASN_RANUM.ConnectionString = ConnectionString;
dsRASN_BPJNO.ConnectionString = ConnectionString;
dsRASN_BPCNO.ConnectionString = ConnectionString;
dsRASN_RAENO1.ConnectionString = ConnectionString;
dsRASN_RABRH1.ConnectionString = ConnectionString;
dsRASN_RAWTZ.ConnectionString = ConnectionString;
_YY = GetIntParam("YY");
if (ForwardSource != "")
{
_RAPYN = GetStringParam("RAPYN");
ViewState["RAPYN"] = _RAPYN;
DbCommand cmdRacnm = Query.NewCommand(
@"SELECT A.BCNUM FROM BCUS A
INNER JOIN BPRJ B ON A.BCNUM=B.BPNUM
INNER JOIN BPAA C ON B.BPPNM=C.BPPNM
WHERE C.BPPYN=@BPPYN");
cmdRacnm.Parameters.Add(Query.NewParameter("BPPYN", _RAPYN));
object o = Query.ExecuteScalar(cmdRacnm);
if (o == null)
_RACNM = "";
else
_RACNM = o.ToString();
}
if (_YY > 0)
{
txtYY.Text = _YY.ToString();
ddlBPPYN.DataSource = new BpaaDAC().GetBpaa(_YY + WGuard1.CY11);
ddlBPPYN.DataBind();
ListItem item = ddlBPPYN.Items.FindByValue(_RAPYN);
if (item != null)
item.Selected = true;
}
else
{
txtYY.Focus();
}
MultiView1.Visible = _RAPYN != "";
dsRASN_BPJNO.SelectParameters["BPPYN"].DefaultValue = _RAPYN;
dsRASN_BPCNO.SelectParameters["BPPYN"].DefaultValue = _RAPYN;
string zone;
string bscls;
if (_RAPYN.Length > 4)
zone = _RAPYN.Substring(3, 1);
else
zone = "";
switch (zone)
{
case "A": // A 北基宜
bscls = "1%";
break;
case "B": // B 桃竹苗
bscls = "2%";
break;
case "C": // C 中彰投
bscls = "3%";
break;
case "D": // D 雲嘉南
bscls = "4%";
break;
case "E": // E 高屏澎東
bscls = "5%";
break;
case "F": // 台北市 (預留)
bscls = "6%";
break;
case "G": // 高雄市 (預留)
bscls = "7%";
break;
default:
bscls = "%";
break;
}
dsRASN_RABRH.SelectParameters["BSCLS"].DefaultValue = bscls;
GetGridViewRowColor(RASNGrid);
switch (MultiView1.ActiveViewIndex)
{
case 0:
{
//RegisterLookupEvent(this, "btnRASN_RACNM_WQRY", "txtRACNM", "txtRACNM,txtRACNMX", "BCUS");
//RegisterLookupEvent(this, "btnRASN_RAPYN_WQRY", "txtRAPYN", "txtRAPYN,txtRAPYNX", "BPRJ");
break;
}
case 1:
{
Search();
break;
}
}
// 依權限顯示隱藏資料
canSeeSalary = CheckRight(WRightName.Update);
RASNGrid.Columns[5].Visible = canSeeSalary;
RASNGrid.Columns[6].Visible = canSeeSalary;
RASNGrid.Columns[7].Visible = canSeeSalary;
RASNGrid.Columns[8].Visible = canSeeSalary;
RASNGrid.Columns[9].Visible = canSeeSalary;
RASNGrid.Columns[10].Visible = canSeeSalary;
RASNGrid.Columns[11].Visible = canSeeSalary;
RASNGrid.Columns[12].Visible = canSeeSalary;
}
// 查詢按鈕
protected void btnSearch_Click(object sender, EventArgs e)
{
// _RACNM = txtRACNM.Text;
// _RAPYN = txtRAPYN.Text;
_BPENO = txtBPENO.Text;
_BPNME = txtBPNME.Text;
if (//_RACNM.Length == 0 &&
//_RAPYN.Length == 0 &&
_BPENO.Length == 0 &&
_BPNME.Length == 0)
{
lbMessage.Text = GetString("NOSRHCOND");
lbMessage.Visible = true;
}
else
{
MultiView1.ActiveViewIndex = 1;
Search();
RASNGrid.PageIndex = 0;
RASNGrid.SelectedIndex = 0;
RASNGrid.DataBind();
// 查詢有資料時,才將查詢條件紀錄在 ViewState 中
if (RASNGrid.Rows.Count > 0)
{
// ViewState["RACNM"] = txtRACNM.Text;
// ViewState["RAPYN"] = txtRAPYN.Text;
ViewState["BPENO"] = txtBPENO.Text;
ViewState["BPNME"] = txtBPNME.Text;
}
}
}
// 取消查詢按鈕
protected void btnCancel_Click(object sender, EventArgs e)
{
//ViewState.Remove("RACNM");
//ViewState.Remove("RAPYN");
ViewState.Remove("BPENO");
ViewState.Remove("BPNME");
Search();
MultiView1.ActiveViewIndex = 1;
}
// 查詢動作
private new void Search()
{
StringBuilder sql = new StringBuilder();
List<string> HQ_RAPYNS = new List<string>() { "103TYB00001", "103JYB00001" };
String searchOrder1 = String.Empty, searchOrder2 = String.Empty;
if (HQ_RAPYNS.IndexOf(_RAPYN) < 0)
{
searchOrder1 = "RANUM";
searchOrder2 = "RAEDT, RANUM";
}
else
{
searchOrder1 = "RAEDT, RANUM";
searchOrder2 = "RAEDT, RANUM";
}
sql.Append(string.Format(@"
SELECT A.*, B.BPSRM, B.BPSRD, B.BPP01, B.BPP02, B.BPP03, B.BPP04, B.BPP05
FROM
(
SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY {0}) ROWNUM FROM RASN WHERE RAPYN=@RAPYN AND RAEDT IS NULL) T1
UNION ALL
SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY {1}) ROWNUM FROM RASN WHERE RAPYN=@RAPYN AND RAEDT IS NOT NULL) T2
) A
LEFT OUTER JOIN BPJB B ON A.RAPYN=B.BPPYN AND A.RAJNO=B.BPJNO AND A.RACNO=B.BPCNO
LEFT OUTER JOIN BPSNView C ON A.RANUM=C.BPENO
WHERE 1=1
", searchOrder1, searchOrder2));
if (!string.IsNullOrEmpty(txtYY.Text) && HQ_RAPYNS.IndexOf(_RAPYN) < 0)
{
sql.Append(string.Format(" AND ((RASDT >= '{0}/01/01' AND RASDT <= '{0}/12/31') OR (RAEDT >= '{0}/01/01' AND RAEDT <= '{0}/12/31') OR (RASDT <= '{0}/01/01' AND RAEDT >= '{0}/12/31') ) ", WQuery.GetInt32Value(txtYY.Text) + WGuard1.CY11));
}
dsRASNGrid.SelectParameters.Clear();
dsRASNGrid.SelectParameters.Add(new Parameter("RAPYN", DbType.String, _RAPYN));
// AddSearch(sql, dsRASNGrid, "RAPYN", _RAPYN, "", true);
AddSearch(sql, dsRASNGrid, "C.BPENO", _BPENO, "", true);
AddSearch(sql, dsRASNGrid, "C.BPNME", _BPNME, "", true);
dsRASNGrid.SelectCommand = sql.ToString();
}
// 存檔前的計算動作
private new void CalcFields(SqlDataSourceCommandEventArgs e)
{
}
protected void dsRASNForm_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
CalcFields(e);
}
protected void dsRASNForm_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
CalcFields(e);
}
protected void RASNGrid_DataBound(object sender, EventArgs e)
{
GridView_DataBound(sender, e);
if (RASNGrid.Rows.Count > 0)
{
RASNGrid.Visible = true;
if (RASNGrid.SelectedIndex == -1)
RASNGrid.SelectedIndex = 0;
if (RASNGrid.SelectedIndex > RASNGrid.Rows.Count - 1)
RASNGrid.SelectedIndex = RASNGrid.Rows.Count - 1;
if (RASNGrid.SelectedIndex != -1)
{
dsRASN_BPJNO.SelectParameters["BPPYN"].DefaultValue = RASNGrid.SelectedDataKey["RAPYN"].ToString();
dsRASN_BPCNO.SelectParameters["BPPYN"].DefaultValue = RASNGrid.SelectedDataKey["RAPYN"].ToString();
}
RASNForm.DataBind();
}
}
protected void RASNGrid_PageIndexChanged(object sender, EventArgs e)
{
Search();
RASNGrid.SelectedIndex = 0;
RASNGrid.DataBind();
}
protected void dsRASNGrid_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
if (e.AffectedRows == 0)
{
if (ForwardSource != "")
RASNForm.ChangeMode(FormViewMode.Insert);
else
{
MultiView1.ActiveViewIndex = 0;
lbMessage.Text = GetString("NODATA");
lbMessage.Visible = true;
}
}
}
protected void RASNForm_ItemCommand(object sender, FormViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "Search":
MultiView1.ActiveViewIndex = 0;
break;
case "Save":
cvMessage.ErrorMessage = "";
bool passed = true;
string bpjno = (RASNForm.FindControl("hfBPJNO") as HiddenField).Value;
string bpcno = (RASNForm.FindControl("hfBPCNO") as HiddenField).Value.Split('_')[0];
string rasdt = (RASNForm.FindControl("txtRASN_RASDT") as TextBox).Text;
string rabrh = (RASNForm.FindControl("ddlRASN_RABRH") as DropDownList).SelectedValue;
string rawtz = (RASNForm.FindControl("ddlRASN_RAWTZ") as DropDownList).SelectedValue;
if (string.IsNullOrEmpty(rawtz))
rawtz = "台北";
int selected = 0;
foreach (ListItem item in (RASNForm.FindControl("selRASN_RANUM") as CheckBoxList).Items)
selected += item.Selected ? 1 : 0;
if (selected == 0)
{
cvMessage.ErrorMessage += "請選擇人員<br>";
cvMessage.IsValid = false;
passed = false;
}
if (bpjno == "")
{
cvMessage.ErrorMessage += "請選擇職稱<br>";
cvMessage.IsValid = false;
passed = false;
}
if (bpcno == "")
{
cvMessage.ErrorMessage += "請選擇等級<br>";
cvMessage.IsValid = false;
passed = false;
}
if (rabrh == "")
{
cvMessage.ErrorMessage += "請選擇站別<br>";
cvMessage.IsValid = false;
passed = false;
}
DateTime rasdtValue = (DateTime)CheckDate(rasdt, "請輸入正確的派遣開始日期", ref passed, cvMessage);
DataTable bpjb = GetBPJB(bpjno, bpcno);
if (bpjb.Rows.Count == 0)
{
cvMessage.ErrorMessage += "請檢查專案年度職稱與等級資料是否設定正確<br>";
cvMessage.IsValid = false;
passed = false;
}
if (!passed)
{
RegisterJS(RASNForm);
ProcessCustomValidatorMessage(cvMessage);
break;
}
// 準備新增
DbCommand cmdInsertRASN = Query.NewCommand(
@"INSERT INTO RASN
(RANUM, RAITM, RACNM, RAPYN, RASDT, RAEDT, RAJNO, RACNO, RABRH, RAWTZ,
APPNO, TRDAT, TRMOD, TRUSR)
VALUES
(@RANUM, @RAITM, @RACNM, @RAPYN, @RASDT, NULL, @RAJNO, @RACNO, @RABRH, @RAWTZ,
1, GETDATE(), 'INSERT', @TRUSR)");
cmdInsertRASN.Parameters.Add(Query.NewParameter("RANUM", DbType.String));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RAITM", DbType.Int32));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RACNM", _RACNM));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RAPYN", _RAPYN));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RASDT", rasdtValue.ToString(WGuard1.InvariantCulture)));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RAJNO", bpjno));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RACNO", bpcno));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RABRH", rabrh));
cmdInsertRASN.Parameters.Add(Query.NewParameter("RAWTZ", rawtz));
cmdInsertRASN.Parameters.Add(Query.NewParameter("TRUSR", UserId));
DbConnection conn = Query.NewConnection();
cmdInsertRASN.Connection = conn;
conn.Open();
DbTransaction tran = conn.BeginTransaction();
cmdInsertRASN.Transaction = tran;
try
{
foreach (ListItem item in (RASNForm.FindControl("selRASN_RANUM") as CheckBoxList).Items)
if (item.Selected)
{
// 新增人員派遣紀錄
// 取新的項次
object o = Query.ExecuteScalar(String.Format("SELECT ISNULL(MAX(RAITM), 0) + 1 FROM RASN WHERE RANUM='{0}'", item.Value));
if (o == null)
cmdInsertRASN.Parameters["RAITM"].Value = 1;
else
cmdInsertRASN.Parameters["RAITM"].Value = Convert.ToInt32(o);
cmdInsertRASN.Parameters["RANUM"].Value = item.Value;
cmdInsertRASN.ExecuteNonQuery();
/*
dsRASNForm.InsertParameters.UpdateValues(Context, this);
dsRASNForm.InsertParameters["RANUM"].DefaultValue = item.Value;
dsRASNForm.InsertParameters["RACNM"].DefaultValue = _RACNM;
dsRASNForm.InsertParameters["RAPYN"].DefaultValue = _RAPYN;
dsRASNForm.InsertParameters["RAJNO"].DefaultValue = bpjno;
dsRASNForm.InsertParameters["RACNO"].DefaultValue = bpcno;
dsRASNForm.InsertParameters["RASDT"].DefaultValue = rasdtValue.ToString(System.Globalization.CultureInfo.InvariantCulture);
dsRASNForm.InsertParameters["RABRH"].DefaultValue = rabrh;
*/
/*
dsRASNForm.InsertParameters["RAMSL"].DefaultValue = bpjb.Rows[0]["BPSRM"].ToString();
dsRASNForm.InsertParameters["RAHSL"].DefaultValue = bpjb.Rows[0]["BPSRD"].ToString();
dsRASNForm.InsertParameters["RAP01"].DefaultValue = bpjb.Rows[0]["BPP01"].ToString();
dsRASNForm.InsertParameters["RAP02"].DefaultValue = bpjb.Rows[0]["BPP02"].ToString();
dsRASNForm.InsertParameters["RAP03"].DefaultValue = bpjb.Rows[0]["BPP03"].ToString();
dsRASNForm.InsertParameters["RAP04"].DefaultValue = bpjb.Rows[0]["BPP04"].ToString();
dsRASNForm.InsertParameters["RAP05"].DefaultValue = bpjb.Rows[0]["BPP05"].ToString();
*/
//dsRASNForm.InsertParameters["RAS01"].DefaultValue = ras01;
//dsRASNForm.Insert();
}
//throw new Exception("失敗測試");
tran.Commit();
ClientShowMessage("人員派遣新增成功!");
}
catch (Exception ex)
{
tran.Rollback();
ClientShowMessage("人員派遣新增失敗!原因為:\\n" + ex.Message);
}
finally
{
conn.Close();
(RASNForm.FindControl("selRASN_RANUM") as CheckBoxList).DataBind();
(RASNForm.FindControl("gvRASN_RAENO") as GridView).DataBind();
(RASNForm.FindControl("gvRASN_RABRH") as GridView).DataBind();
RegisterJS(RASNForm);
}
break;
case "Cancel":
Search();
/*
RASNForm.ChangeMode(FormViewMode.ReadOnly);
RASNForm_ModeChanged(sender, e);
if (RASNGrid.Rows.Count == 0)
{
DoAfterCommand("BPRJ");
}
*/
break;
case "Return":
DoAfterCommand("BPRJ");
break;
}
}
// 取得該職稱及等級之薪資資料
protected DataTable GetBPJB(string bpjno, string bpcno)
{
DbCommand cmd = Query.NewCommand(
@"SELECT BPSRM, BPSRD, BPP01, BPP02, BPP03, BPP04, BPP05 FROM BPJB
WHERE BPPYN=@BPPYN AND BPJNO=@BPJNO AND BPCNO=@BPCNO ");
cmd.Parameters.Add(Query.NewParameter("BPPYN", _RAPYN));
cmd.Parameters.Add(Query.NewParameter("BPJNO", bpjno));
cmd.Parameters.Add(Query.NewParameter("BPCNO", bpcno));
return Query.Select(cmd);
}
protected void RASNForm_ItemDeleted(object sender, FormViewDeletedEventArgs e)
{
Search();
RASNGrid.DataBind();
RASNForm.DataBind();
}
protected void RASNForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
{
Search();
}
protected void RASNForm_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
{
Search();
}
protected void RASNForm_ModeChanged(object sender, EventArgs e)
{
if (RASNForm.CurrentMode == FormViewMode.ReadOnly)
{
RASNGrid.Visible = true;
RASNGrid.DataBind();
if (RASNGrid.Rows.Count > 0 && RASNGrid.SelectedIndex == -1)
{
RASNGrid.SelectedIndex = 0;
}
if (OldMode == FormViewMode.Insert && RASNGrid.Rows.Count > 0)
{
RASNGrid.PageIndex = RASNGrid.PageCount - 1;
RASNGrid.DataBind();
RASNGrid.SelectedIndex = RASNGrid.Rows.Count - 1;
}
}
else
{
switch (RASNForm.CurrentMode)
{
case FormViewMode.Edit:
break;
case FormViewMode.Insert:
break;
}
RASNGrid.Visible = false;
}
}
protected void RASNForm_ModeChanging(object sender, FormViewModeEventArgs e)
{
OldMode = (sender as FormView).CurrentMode;
}
protected void RASNForm_DataBound(object sender, EventArgs e)
{
if (RASNForm.CurrentMode == FormViewMode.Insert || RASNForm.CurrentMode == FormViewMode.Edit)
{
RegisterCalendarEvent(RASNForm, "btnRASN_RASDT_DATE", "txtRASN_RASDT");
if (RASNForm.CurrentMode == FormViewMode.Edit)
RegisterCalendarEvent(RASNForm, "btnRASN_RAEDT_DATE", "txtRASN_RAEDT");
RegisterJS(RASNForm);
switch (RASNForm.CurrentMode)
{
case FormViewMode.Insert:
SetClientFocus(RASNForm, "selRASN_RANUM");
dsRASN_RAENO1.SelectParameters["RAPYN"].DefaultValue = _RAPYN;
dsRASN_RABRH1.SelectParameters["RAPYN"].DefaultValue = _RAPYN;
break;
case FormViewMode.Edit:
SetControlFocus(RASNForm, "txtRASN_RASDT");
break;
}
}
else if (RASNForm.CurrentMode == FormViewMode.ReadOnly)
{
SetControlVisible(RASNForm, "Panel2", canSeeSalary);
}
}
protected void dsRASNForm_Deleted(object sender, SqlDataSourceStatusEventArgs e)
{
}
protected void RegisterJS(FormView fv)
{
HtmlSelect dlBPJNO = fv.FindControl("ddlBPJNO") as HtmlSelect;
HtmlSelect dlBPCNO = fv.FindControl("ddlBPCNO") as HtmlSelect;
HiddenField hfBPJNO = fv.FindControl("hfBPJNO") as HiddenField;
HiddenField hfBPCNO = fv.FindControl("hfBPCNO") as HiddenField;
dlBPJNO.Attributes["onchange"] = String.Format("javascript:BPJNOChange('{0:c}', '{1:c}', '{2:c}', '{3:c}');",
dlBPJNO.ClientID, dlBPCNO.ClientID, hfBPJNO.ClientID, hfBPCNO.ClientID);
dlBPCNO.Attributes["onchange"] = String.Format("javascript:BPCNOChange('{0:c}', '{1:c}');",
dlBPCNO.ClientID, hfBPCNO.ClientID);
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
dlBPCNO.DataBind();
for (int i = 0; i < dlBPCNO.Items.Count; i++)
{
sb1.Append("\"" + dlBPCNO.Items[i].Value + "\"" + (i < dlBPCNO.Items.Count - 1 ? "," : ""));
sb2.Append("\"" + dlBPCNO.Items[i].Text + "\"" + (i < dlBPCNO.Items.Count - 1 ? "," : ""));
}
Page.ClientScript.RegisterArrayDeclaration("BPCNOValue", sb1.ToString());
Page.ClientScript.RegisterArrayDeclaration("BPCNOText", sb2.ToString());
Button btnSave = fv.FindControl("btnSave") as Button;
btnSave.OnClientClick = String.Format("javascript:CopyValue('{0:c}', '{1:c}', '{2:c}', '{3:c}');return confirm(msgConfirmSave);",
dlBPJNO.ClientID, dlBPCNO.ClientID, hfBPJNO.ClientID, hfBPCNO.ClientID);
if (fv.DataItem != null)
{
DataRowView row = fv.DataItem as DataRowView;
dlBPJNO.Value = row["RAJNO"].ToString();
}
for (int i = dlBPCNO.Items.Count - 1; i >= 0; i--)
{
string[] bpcnos = dlBPCNO.Items[i].Value.Split('_');
if (bpcnos.Length > 1)
dlBPCNO.Items[i].Value = bpcnos[1];
if (bpcnos[0] != dlBPJNO.Value)
dlBPCNO.Items.Remove(dlBPCNO.Items[i]);
}
if (fv.DataItem != null)
{
DataRowView row = fv.DataItem as DataRowView;
dlBPCNO.Value = row["RACNO"].ToString();
}
}
protected void RASNGrid_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (GridViewRow row in RASNGrid.Rows)
SetGridViewMouseBehavier(RASNGrid, row);
}
protected void RASNGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
SetGridViewMouseBehavier(RASNGrid, e.Row);
//GridView_RowDataBound_Shrink_ViewState(sender, e);
}
protected string GetRAJNOName(string rapyn, string rajno)
{
DbCommand cmd = Query.NewCommand("SELECT BPJME FROM BPJA WHERE (BPPYN = @BPPYN) AND (BPJNO=@BPJNO)");
cmd.Parameters.Add(Query.NewParameter("BPPYN", rapyn));
cmd.Parameters.Add(Query.NewParameter("BPJNO", rajno));
object o = Query.ExecuteScalar(cmd);
if (o == null)
return "";
else
return o.ToString();
}
protected string GetRACNOName(string rapyn, string rajno, string racno)
{
DbCommand cmd = Query.NewCommand("SELECT BPCME FROM BPJB WHERE (BPPYN = @BPPYN) AND (BPJNO=@BPJNO) AND (BPCNO=@BPCNO)");
cmd.Parameters.Add(Query.NewParameter("BPPYN", rapyn));
cmd.Parameters.Add(Query.NewParameter("BPJNO", rajno));
cmd.Parameters.Add(Query.NewParameter("BPCNO", racno));
object o = Query.ExecuteScalar(cmd);
if (o == null)
return "";
else
return o.ToString();
}
protected void RASNForm_ItemCreated(object sender, EventArgs e)
{
if (RASNForm.CurrentMode == FormViewMode.Insert)
{
(RASNForm.FindControl("txtRASN_RASDT") as TextBox).Text = _RAPYN.Substring(0, _RAPYN.Length - 4) + "0101";
}
}
protected new bool CheckInput(System.Collections.Specialized.IOrderedDictionary values)
{
cvMessage.ErrorMessage = "";
cvMessage.IsValid = true;
bool result = true;
// 檢查日期
values["RASDT"] = CheckDate(values["RASDT"], "請輸入正確的派遣開始日期", ref result, cvMessage);
if (values["RAEDT"].ToString() != "")
{
values["RAEDT"] = CheckDate(values["RAEDT"], "請輸入正確的派遣結束日期", ref result, cvMessage);
if (result && Convert.ToDateTime(values["RAEDT"]).CompareTo(values["RASDT"]) < 0)
{
cvMessage.IsValid = false;
cvMessage.ErrorMessage += "派遣結束日期 不可小於 派遣開始日期";
result = false;
}
}
ProcessCustomValidatorMessage(cvMessage);
return result;
}
protected void RASNForm_ItemInserting(object sender, FormViewInsertEventArgs e)
{
e.Cancel = !CheckInput(e.Values);
}
protected void RASNForm_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
// 更正前檢查,檢查專案年度職稱與等級資料是否設定正確
e.Cancel = !CheckInput(e.NewValues);
string bpjno = (RASNForm.FindControl("hfBPJNO") as HiddenField).Value;
string bpcno = (RASNForm.FindControl("hfBPCNO") as HiddenField).Value.Split('_')[0];
e.NewValues["RAJNO"] = bpjno;
e.NewValues["RACNO"] = bpcno;
DataTable bpjb = GetBPJB(bpjno, bpcno);
if (bpjb.Rows.Count == 0)
{
e.Cancel = true;
cvMessage.ErrorMessage += "請先檢查專案年度職稱與等級資料是否設定正確<br>";
cvMessage.IsValid = false;
}
}
protected void Next_Click(object sender, EventArgs e)
{
string rapyn = ddlBPPYN.SelectedValue;
// 檢查此使用者是否有權限處理這個專案
BprmDAC bprm = new BprmDAC(Query);
if (!bprm.GetRight(rapyn, UserId))
{
MultiView1.Visible = false;
cvMessage.ErrorMessage = "對不起,你沒有處理這個專案的權限!";
cvMessage.IsValid = false;
return;
}
// 檢查職稱與等級是否有設定
dsRASN_BPJNO.SelectParameters["BPPYN"].DefaultValue = rapyn;
DataView dv = dsRASN_BPJNO.Select(new DataSourceSelectArguments()) as DataView;
if (dv.Count == 0)
{
MultiView1.Visible = false;
cvMessage.ErrorMessage = "此專案年度接單尚未設定職稱";
cvMessage.IsValid = false;
return;
}
dsRASN_BPCNO.SelectParameters["BPPYN"].DefaultValue = rapyn;
dv = dsRASN_BPCNO.Select(new DataSourceSelectArguments()) as DataView;
if (dv.Count == 0)
{
MultiView1.Visible = false;
cvMessage.ErrorMessage = "此專案年度接單尚未設定職稱等級";
cvMessage.IsValid = false;
return;
}
ParamList["RAPYN"] = rapyn;
DoAfterCommand("RASN");
}
protected void RASNForm_ItemDeleting(object sender, FormViewDeleteEventArgs e)
{
// 刪除前檢查
// 1. 有結束日期不可刪除
}
protected void cvBPJNO_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = args.Value != "";
}
protected void gvRASN_RAENO_DataBound(object sender, EventArgs e)
{
// 填入新增畫面上「已派遣人數」
(RASNForm.FindControl("lbRAENOCount") as ITextControl).Text =
(RASNForm.FindControl("gvRASN_RAENO") as GridView).Rows.Count.ToString();
}
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["RAPYN"] = "";
DoAfterCommand("RASN");
}
}