- RasnDAC 新增 SelectPage/SelectCount 及 SelectRAENO/SelectRABRH - dsRASNGrid 改 ObjectDataSource(EnablePaging);dsRASN_RAENO1/dsRASN_RABRH1 改 ObjectDataSource - Search/Selected 調整
770 lines
28 KiB
C#
770 lines
28 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;
|
|
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;
|
|
dsRASN_RABRH.ConnectionString = ConnectionString;
|
|
dsRASN_RANUM.ConnectionString = ConnectionString;
|
|
dsRASN_BPJNO.ConnectionString = ConnectionString;
|
|
dsRASN_BPCNO.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()
|
|
{
|
|
List<string> HQ_RAPYNS = new List<string>() { "103TYB00001", "103JYB00001" };
|
|
|
|
int year = 0;
|
|
if (!string.IsNullOrEmpty(txtYY.Text) && HQ_RAPYNS.IndexOf(_RAPYN) < 0)
|
|
year = WQuery.GetInt32Value(txtYY.Text) + WGuard1.CY11;
|
|
|
|
dsRASNGrid.SelectParameters["RAPYN"].DefaultValue = _RAPYN;
|
|
dsRASNGrid.SelectParameters["BPENO"].DefaultValue = _BPENO;
|
|
dsRASNGrid.SelectParameters["BPNME"].DefaultValue = _BPNME;
|
|
dsRASNGrid.SelectParameters["year"].DefaultValue = year.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, ObjectDataSourceStatusEventArgs e)
|
|
{
|
|
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 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");
|
|
}
|
|
}
|