chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user