1474 lines
71 KiB
C#
1474 lines
71 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 Wellan.Web.UI;
|
|
using System.Collections.Generic;
|
|
using NPOI.HSSF.UserModel;
|
|
using System.Collections.Specialized;
|
|
|
|
/// <summary>
|
|
/// 勞健保加退保紀錄
|
|
/// </summary>
|
|
public partial class forms_customer_fmRpir : Wellan.Web.UI.WUserControlBase
|
|
{
|
|
private string _RPENO = "";
|
|
private string _BPNME = "";
|
|
private string _RPREN = "";
|
|
private string _RPRENB = "";
|
|
private DateTime _RPXDT1 = new DateTime();
|
|
private DateTime _RPXDT2 = new DateTime();
|
|
private DateTime _RPBDT1 = new DateTime();
|
|
private DateTime _RPBDT2 = new DateTime();
|
|
private string _RPOPT = "";
|
|
private int _RPITM = 0;
|
|
private BPSN_DAC bpsn;
|
|
protected string tableName = "";
|
|
protected string mode = "";
|
|
protected string BPENO = "";
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
_RPENO = ViewState["RPENO"] != null ? ViewState["RPENO"].ToString() : "";
|
|
_BPNME = ViewState["BPNME"] != null ? ViewState["BPNME"].ToString() : "";
|
|
_RPREN = ViewState["RPREN"] != null ? ViewState["RPREN"].ToString() : "";
|
|
_RPITM = ViewState["RPITM"] != null ? Convert.ToInt32(ViewState["RPITM"]) : 0;
|
|
_RPXDT1 = ViewState["RPXDT1"] != null ? Convert.ToDateTime(ViewState["RPXDT1"]) : new DateTime();
|
|
_RPXDT2 = ViewState["RPXDT2"] != null ? Convert.ToDateTime(ViewState["RPXDT2"]) : new DateTime();
|
|
_RPOPT = ViewState["RPOPT"] != null ? ViewState["RPOPT"].ToString() : "";
|
|
_RPBDT1 = ViewState["RPBDT1"] != null ? Convert.ToDateTime(ViewState["RPBDT1"]) : new DateTime();
|
|
_RPBDT2 = ViewState["RPBDT2"] != null ? Convert.ToDateTime(ViewState["RPBDT2"]) : new DateTime();
|
|
|
|
tableName = ViewState["tableName"] != null ? ViewState["tableName"].ToString() : "RPIR";
|
|
// if (IsPostBack)
|
|
// RPIRGrid.DataBind();
|
|
RegisterCalendarEvent(this, "txtRPXDT_1_DATE", "txtRPXDT_1");
|
|
RegisterCalendarEvent(this, "txtRPXDT_2_DATE", "txtRPXDT_2");
|
|
RegisterCalendarEvent(this, "txtRPBDT_1_DATE", "txtRPBDT_1");
|
|
RegisterCalendarEvent(this, "txtRPBDT_2_DATE", "txtRPBDT_2");
|
|
|
|
btnReturnBPSN.Enabled = GetStringParam("mode") == "BPSN";
|
|
}
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
if (GetStringParam("mode") == "BPSN")
|
|
{
|
|
FunctionName = "FMRPIR_BPSN";
|
|
}
|
|
|
|
base.OnInit(e);
|
|
_RPRENB = GetStringParam("RPRENB");
|
|
|
|
GetGridViewRowColor(RPIRGrid);
|
|
ShowData();
|
|
}
|
|
|
|
private void ShowData()
|
|
{
|
|
switch (tableName)
|
|
{
|
|
case "":
|
|
case "RPIR":
|
|
WLabel1.Text = "勞健保加退保紀錄";
|
|
RegisterLookupEvent(this, "btnRPIR_RPENO_WQRY", "txtRPIR_RPENO", "txtRPIR_RPENO,lbRPIR_RPENOX", "BPSN");
|
|
SetClientFocus(txtRPIR_RPENO);
|
|
Search();
|
|
RPIRGrid.DataSourceID = "dsRPIRGrid";
|
|
RPIRForm.DataSourceID = "dsRPIRForm";
|
|
break;
|
|
case "RPIB":
|
|
WLabel1.Text = "勞健保加退保異動紀錄";
|
|
SearchB();
|
|
RPIRGrid.DataSourceID = "dsRPIBGrid";
|
|
RPIRForm.DataSourceID = "dsRPIBForm";
|
|
RPIRGrid.SelectedIndex = 0;
|
|
RPIRGrid.PageIndex = 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
// 查詢按鈕
|
|
protected void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
ParseSearchInput();
|
|
|
|
if (string.IsNullOrEmpty(_RPENO) &&
|
|
string.IsNullOrEmpty(_BPNME) &&
|
|
_RPXDT1.Ticks == 0 &&
|
|
_RPXDT2.Ticks == 0 &&
|
|
_RPBDT1.Ticks == 0 &&
|
|
_RPBDT2.Ticks == 0 &&
|
|
string.IsNullOrEmpty(_RPOPT))
|
|
{
|
|
lbMessage.Text = GetString("NOSRHCOND");
|
|
lbMessage.Visible = true;
|
|
}
|
|
else
|
|
{
|
|
MultiView1.ActiveViewIndex = 1;
|
|
|
|
Search();
|
|
RPIRGrid.DataSourceID = "dsRPIRGrid";
|
|
RPIRForm.DataSourceID = "dsRPIRForm";
|
|
RPIRGrid.PageIndex = 0;
|
|
RPIRGrid.SelectedIndex = 0;
|
|
RPIRGrid.DataBind();
|
|
|
|
// 查詢有資料時,才將查詢條件紀錄在 ViewState 中
|
|
if (RPIRGrid.Rows.Count > 0)
|
|
{
|
|
ViewState["RPENO"] = _RPENO;
|
|
ViewState["BPNME"] = _BPNME;
|
|
ViewState["RPXDT1"] = _RPXDT1;
|
|
ViewState["RPXDT2"] = _RPXDT2;
|
|
ViewState["RPBDT1"] = _RPBDT1;
|
|
ViewState["RPBDT2"] = _RPBDT2;
|
|
ViewState["RPOPT"] = _RPOPT;
|
|
ViewState["tableName"] = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ParseSearchInput()
|
|
{
|
|
_RPENO = txtRPIR_RPENO.Text;
|
|
_BPNME = txtBPSN_BPNME.Text;
|
|
|
|
WGuard1.CheckDate(txtRPXDT_1.Text, out _RPXDT1);
|
|
WGuard1.CheckDate(txtRPXDT_2.Text, out _RPXDT2);
|
|
WGuard1.CheckDate(txtRPBDT_1.Text, out _RPBDT1);
|
|
WGuard1.CheckDate(txtRPBDT_2.Text, out _RPBDT2);
|
|
|
|
var rpopts = new List<string>();
|
|
for (int i = 0; i < rblRPOPT.Items.Count; i++)
|
|
{
|
|
if (rblRPOPT.Items[i].Selected)
|
|
{
|
|
rpopts.Add(rblRPOPT.Items[i].Value);
|
|
}
|
|
}
|
|
_RPOPT = string.Join(",", rpopts.ToArray());
|
|
}
|
|
|
|
// 查詢取消按鈕
|
|
protected void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
//ViewState["RPENO"] = "";
|
|
//ViewState["BPNME"] = "";
|
|
//ViewState["tableName"] = "";
|
|
//_RPENO = "";
|
|
//_BPNME = "";
|
|
Search();
|
|
RPIRGrid.DataBind();
|
|
MultiView1.ActiveViewIndex = 1;
|
|
}
|
|
|
|
// 查詢動作
|
|
protected override void Search()
|
|
{
|
|
if (MultiView1.ActiveViewIndex == 1)
|
|
{
|
|
RPIRForm.Visible = true;
|
|
}
|
|
|
|
mode = GetStringParam("mode");
|
|
BPENO = GetStringParam("BPENO");
|
|
|
|
if (mode == "BPSN")
|
|
{
|
|
dsRPIRGrid.SelectParameters["orderBy"].DefaultValue = "A.RPREN DESC";
|
|
dsRPIRGrid.SelectParameters["RPENO"].DefaultValue = BPENO;
|
|
}
|
|
else
|
|
{
|
|
dsRPIRGrid.SelectParameters["orderBy"].DefaultValue = "A.RPREN DESC";
|
|
dsRPIRGrid.SelectParameters["RPENO"].DefaultValue = _RPENO;
|
|
dsRPIRGrid.SelectParameters["BPNME"].DefaultValue = _BPNME;
|
|
dsRPIRGrid.SelectParameters["RPXDT1"].DefaultValue = _RPXDT1.Ticks > 0 ? string.Format("{0:yyyy-MM-dd}", _RPXDT1) : "";
|
|
dsRPIRGrid.SelectParameters["RPXDT2"].DefaultValue = _RPXDT2.Ticks > 0 ? string.Format("{0:yyyy-MM-dd}", _RPXDT2) : "";
|
|
dsRPIRGrid.SelectParameters["RPOPT"].DefaultValue = _RPOPT;
|
|
dsRPIRGrid.SelectParameters["RPBDT1"].DefaultValue = _RPBDT1.Ticks > 0 ? string.Format("{0:yyyy-MM-dd}", _RPBDT1) : "";
|
|
dsRPIRGrid.SelectParameters["RPBDT2"].DefaultValue = _RPBDT2.Ticks > 0 ? string.Format("{0:yyyy-MM-dd}", _RPBDT2) : "";
|
|
|
|
if (ViewState["RPIRGrid.RPREN"] != null)
|
|
{
|
|
RpirDAC rpir = new RpirDAC();
|
|
var rprenIndex = rpir.SelectRPRENIndex(
|
|
ViewState["RPIRGrid.RPREN"].ToString()
|
|
, _RPENO
|
|
, _BPNME
|
|
, _RPXDT1
|
|
, _RPXDT2
|
|
, _RPOPT
|
|
, _RPBDT1
|
|
, _RPBDT2);
|
|
|
|
if (rprenIndex >= 0)
|
|
{
|
|
RPIRGrid.PageIndex = rprenIndex / RPIRGrid.PageSize;
|
|
RPIRGrid.SelectedIndex = rprenIndex % RPIRGrid.PageSize;
|
|
}
|
|
|
|
ViewState["RPIRGrid.RPREN"] = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SearchB()
|
|
{
|
|
if (MultiView1.ActiveViewIndex == 1)
|
|
{
|
|
RPIRForm.Visible = true;
|
|
}
|
|
|
|
dsRPIBGrid.SelectParameters["RPREN"].DefaultValue = _RPRENB;
|
|
}
|
|
|
|
private void CalcFields(ObjectDataSourceMethodEventArgs e)
|
|
{
|
|
e.InputParameters["RPOLD"] = (RPIRForm.FindControl("chbRPIR_RPOLD") as CheckBox).Checked ? "Y" : "N";
|
|
e.InputParameters["RPLIS"] = (RPIRForm.FindControl("chbRPIR_RPLIS") as CheckBox).Checked ? "Y" : "N";
|
|
e.InputParameters["RPHIS"] = (RPIRForm.FindControl("chbRPIR_RPHIS") as CheckBox).Checked ? "Y" : "N";
|
|
}
|
|
|
|
protected void dsRPIRForm_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
|
|
{
|
|
CalcFields(e);
|
|
// 產生新的單號
|
|
switch (tableName)
|
|
{
|
|
case "RPIR":
|
|
e.InputParameters["RPREN"] = WGuard1.WNextRen(DateTime.UtcNow.AddHours(8), "RPIR", "RPREN", "YYYYMM<9999>", "");
|
|
break;
|
|
case "RPIB":
|
|
e.InputParameters["RPREN"] = _RPREN;
|
|
e.InputParameters["RPITM"] = 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void dsRPIRForm_Updating(object sender, ObjectDataSourceMethodEventArgs e)
|
|
{
|
|
CalcFields(e);
|
|
}
|
|
|
|
protected void RPIRGrid_DataBound(object sender, EventArgs e)
|
|
{
|
|
GridView_DataBound(sender, e);
|
|
mode = GetStringParam("mode");
|
|
BPENO = GetStringParam("BPENO");
|
|
|
|
if (RPIRGrid.Rows.Count > 0)
|
|
{
|
|
if (RPIRGrid.SelectedIndex == -1)
|
|
RPIRGrid.SelectedIndex = 0;
|
|
if (RPIRGrid.SelectedIndex > RPIRGrid.Rows.Count - 1)
|
|
RPIRGrid.SelectedIndex = RPIRGrid.Rows.Count - 1;
|
|
RPIRForm.DataBind();
|
|
|
|
_RPREN = RPIRGrid.SelectedDataKey["RPREN"].ToString();
|
|
_RPITM = Convert.ToInt32(RPIRGrid.SelectedDataKey["RPITM"]);
|
|
ViewState["RPREN"] = _RPREN;
|
|
ParamList["RPRENB"] = _RPREN;
|
|
ViewState["RPITM"] = _RPITM;
|
|
}
|
|
}
|
|
|
|
protected void RPIRGrid_PageIndexChanged(object sender, EventArgs e)
|
|
{
|
|
Search();
|
|
RPIRGrid.SelectedIndex = 0;
|
|
RPIRGrid.DataBind();
|
|
}
|
|
|
|
protected void dsRPIRGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
|
{
|
|
// if (e.ReturnValue == null || (e.ReturnValue as DataTable).Rows.Count == 0)
|
|
if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0)
|
|
{
|
|
mode = GetStringParam("mode");
|
|
BPENO = GetStringParam("BPENO");
|
|
|
|
if (mode == "BPSN")
|
|
{
|
|
RPIRForm.ChangeMode(FormViewMode.Insert);
|
|
RPIRForm_ModeChanged(sender, e);
|
|
RPIRForm.DataBind();
|
|
}
|
|
else
|
|
{
|
|
MultiView1.ActiveViewIndex = 0;
|
|
lbMessage.Text = GetString("NODATA");
|
|
lbMessage.Visible = true;
|
|
}
|
|
|
|
/*
|
|
switch (MultiView1.ActiveViewIndex)
|
|
{
|
|
case 0:
|
|
lbMessage.Text = GetString("NODATA");
|
|
lbMessage.Visible = true;
|
|
break;
|
|
case 1:
|
|
RPIRForm.ChangeMode(FormViewMode.Insert);
|
|
RPIRForm_ModeChanged(sender, e);
|
|
break;
|
|
}
|
|
*/
|
|
}
|
|
}
|
|
|
|
protected void RPIRForm_ItemCommand(object sender, FormViewCommandEventArgs e)
|
|
{
|
|
mode = GetStringParam("mode");
|
|
BPENO = GetStringParam("BPENO");
|
|
|
|
switch (e.CommandName)
|
|
{
|
|
case "New":
|
|
switch (e.CommandArgument.ToString())
|
|
{
|
|
case "1":
|
|
tableName = "RPIR";
|
|
break;
|
|
case "2":
|
|
tableName = "RPIB";
|
|
break;
|
|
}
|
|
ViewState["tableName"] = tableName;
|
|
break;
|
|
case "Search":
|
|
MultiView1.ActiveViewIndex = 0;
|
|
break;
|
|
case "Cancel":
|
|
tableName = "RPIR";
|
|
ViewState["tableName"] = tableName;
|
|
Search();
|
|
RPIRForm.ChangeMode(FormViewMode.ReadOnly);
|
|
RPIRForm_ModeChanged(sender, e);
|
|
break;
|
|
case "RPIR":
|
|
tableName = "RPIR";
|
|
ViewState["tableName"] = tableName;
|
|
ShowData();
|
|
break;
|
|
case "RPIBSearch":
|
|
tableName = "RPIB";
|
|
ViewState["tableName"] = tableName;
|
|
// 紀錄目前的PK
|
|
ViewState["RPIRGrid.RPREN"] = RPIRGrid.SelectedDataKey.Values["RPREN"];
|
|
ShowData();
|
|
break;
|
|
case "BPSN":
|
|
ParamList["BPENO"] = GetStringParam("BPENO");
|
|
DoAfterCommand("BPSN");
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void RPIRForm_ItemDeleted(object sender, FormViewDeletedEventArgs e)
|
|
{
|
|
Search();
|
|
RPIRGrid.DataBind();
|
|
if (RPIRGrid.SelectedIndex < 0 || RPIRGrid.SelectedIndex > RPIRGrid.Rows.Count - 1)
|
|
{
|
|
RPIRGrid.SelectedIndex = RPIRGrid.Rows.Count - 1;
|
|
// RPIRGrid.DataBind();
|
|
}
|
|
if (RPIRGrid.Rows.Count > 0)
|
|
{
|
|
RPIRForm.DataBind();
|
|
}
|
|
}
|
|
|
|
protected void RPIRForm_ItemInserted(object sender, FormViewInsertedEventArgs e)
|
|
{
|
|
tableName = "RPIR";
|
|
ViewState["tableName"] = tableName;
|
|
Search();
|
|
}
|
|
|
|
protected void RPIRForm_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
|
|
{
|
|
Search();
|
|
}
|
|
|
|
protected void RPIRForm_ModeChanged(object sender, EventArgs e)
|
|
{
|
|
switch (RPIRForm.CurrentMode)
|
|
{
|
|
case FormViewMode.ReadOnly:
|
|
RPIRGrid.Visible = true;
|
|
RPIRGrid.DataBind();
|
|
if (RPIRGrid.Rows.Count > 0)
|
|
{
|
|
if (RPIRGrid.SelectedIndex == -1)
|
|
{
|
|
RPIRGrid.SelectedIndex = 0;
|
|
}
|
|
|
|
/*
|
|
if (OldMode == FormViewMode.Insert)
|
|
{
|
|
RPIRGrid.PageIndex = RPIRGrid.PageCount - 1;
|
|
RPIRGrid.DataBind();
|
|
RPIRGrid.SelectedIndex = RPIRGrid.Rows.Count - 1;
|
|
}
|
|
RPIRGrid.DataBind();
|
|
RPIRForm.DataBind();
|
|
*/
|
|
}
|
|
break;
|
|
|
|
case FormViewMode.Edit:
|
|
RPIRGrid.Visible = false;
|
|
break;
|
|
|
|
case FormViewMode.Insert:
|
|
RPIRGrid.Visible = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void RPIRForm_ModeChanging(object sender, FormViewModeEventArgs e)
|
|
{
|
|
OldMode = (sender as FormView).CurrentMode;
|
|
}
|
|
|
|
protected void RPIRForm_DataBound(object sender, EventArgs e)
|
|
{
|
|
var rasnDao = new RasnDAC(Query);
|
|
DataTable rasn;
|
|
|
|
switch (RPIRForm.CurrentMode)
|
|
{
|
|
case FormViewMode.ReadOnly:
|
|
if ((RPIRForm.FindControl("lbRPIR_RPENO") as ITextControl) != null)
|
|
{
|
|
BPENO = (RPIRForm.FindControl("lbRPIR_RPENO") as ITextControl).Text;
|
|
DateTime RPBDT;
|
|
WGuard1.CheckDate((RPIRForm.FindControl("lbRPIR_RPBDT") as ITextControl).Text, out RPBDT);
|
|
rasn = rasnDao.SelectRecentByDate(BPENO, RPBDT);
|
|
if (rasn.Rows.Count > 0)
|
|
{
|
|
var bpsrm = WDAC.GetInt32Value(rasn.Rows[0]["BPSRM"]);
|
|
var lbRPSLY = (RPIRForm.FindControl("lbRPIR_RPSLY") as ITextControl);
|
|
if (lbRPSLY != null && bpsrm > 0)
|
|
{
|
|
lbRPSLY.Text = string.Format("{0:###,###,###,###,##0.####}", bpsrm);
|
|
}
|
|
}
|
|
}
|
|
|
|
break;
|
|
case FormViewMode.Edit:
|
|
RegisterLookupEvent(RPIRForm, "btnRPIR_RPENO_WQRY", "txtRPIR_RPENO", "txtRPIR_RPENO,lbRPIR_RPENOX", "BPSN1");
|
|
RegisterCalendarEvent(RPIRForm, "btnRPIR_RPSDT_DATE", "txtRPIR_RPSDT");
|
|
RegisterCalendarEvent(RPIRForm, "btnRPIR_RPEDT_DATE", "txtRPIR_RPEDT");
|
|
RegisterCalendarEvent(RPIRForm, "btnRPIR_RPXDT_DATE", "txtRPIR_RBPDT");
|
|
SetClientFocus(RPIRForm, "txtRPIR_RPENO");
|
|
if (_RPITM == 0)
|
|
{
|
|
RPIRForm.FindControl("lbRPIR_RPBDTLabel").Visible = false;
|
|
RPIRForm.FindControl("btnRPIR_RPBDT_DATE").Visible = false;
|
|
RPIRForm.FindControl("txtRPIR_RPBDT").Visible = false;
|
|
}
|
|
else
|
|
{
|
|
RegisterCalendarEvent(RPIRForm, "btnRPIR_RPBDT_DATE", "txtRPIR_RPBDT");
|
|
}
|
|
|
|
FormControl();
|
|
|
|
break;
|
|
case FormViewMode.Insert:
|
|
RegisterLookupEvent(RPIRForm, "btnRPIR_RPENO_WQRY", "txtRPIR_RPENO", "txtRPIR_RPENO,lbRPIR_RPENOX", "BPSN1");
|
|
RegisterCalendarEvent(RPIRForm, "btnRPIR_RPSDT_DATE", "txtRPIR_RPSDT");
|
|
RegisterCalendarEvent(RPIRForm, "btnRPIR_RPEDT_DATE", "txtRPIR_RPEDT");
|
|
// RegisterCalendarEvent(RPIRForm, "btnRPIR_RPXDT_DATE", "txtRPIR_RPXDT");
|
|
switch (tableName)
|
|
{
|
|
case "RPIR":
|
|
SetClientFocus(RPIRForm, "txtRPIR_RPENO");
|
|
(RPIRForm.FindControl("txtRPIR_RPSLY") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPAMT") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPAM2") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPAM3") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPSLA") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPFMY") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPFM1") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPFM2") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("txtRPIR_RPFM3") as ITextControl).Text = "0";
|
|
(RPIRForm.FindControl("chbRPIR_RPLIS") as WCheckBox).Value = "Y";
|
|
(RPIRForm.FindControl("chbRPIR_RPHIS") as WCheckBox).Value = "Y";
|
|
(RPIRForm.FindControl("chbRPIR_RPOLD") as WCheckBox).Value = "N";
|
|
RPIRForm.FindControl("lbRPIR_RPBDTLabel").Visible = false;
|
|
RPIRForm.FindControl("btnRPIR_RPBDT_DATE").Visible = false;
|
|
RPIRForm.FindControl("txtRPIR_RPBDT").Visible = false;
|
|
(RPIRForm.FindControl("rfvRPBDT") as RequiredFieldValidator).Enabled = false;
|
|
// (RPIRForm.FindControl("txtRPIR_RPXDT") as ITextControl).Text = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
(RPIRForm.FindControl("lbRPIR_RPXDT") as Label).Text = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
(RPIRForm.FindControl("hfRPIR_RPXDT") as HiddenField).Value = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
(RPIRForm.FindControl("txtRPIR_RPSDT") as ITextControl).Text = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
(RPIRForm.FindControl("ddlRPIR_RPPTP") as WDropDownList).SelectedValue = "2"; // 一般勞工
|
|
|
|
mode = GetStringParam("mode");
|
|
BPENO = GetStringParam("BPENO");
|
|
|
|
if (mode == "BPSN")
|
|
{
|
|
(RPIRForm.FindControl("txtRPIR_RPENO") as ITextControl).Text = BPENO;
|
|
(RPIRForm.FindControl("lbRPIR_RPENOX") as ITextControl).Text = GetLookup("BPSN", BPENO, "BPNME", "");
|
|
rasn = rasnDao.SelectRecent(BPENO);
|
|
if (rasn.Rows.Count > 0)
|
|
{
|
|
(RPIRForm.FindControl("txtRPIR_RPSLY") as ITextControl).Text = string.Format("{0:#####0}", WDAC.GetInt32Value(rasn.Rows[0]["BPSRM"]));
|
|
(RPIRForm.FindControl("txtRPIR_RPAMT") as ITextControl).Text = string.Format("{0:#####0}", WDAC.GetInt32Value(rasn.Rows[0]["BPSRM"]));
|
|
(RPIRForm.FindControl("txtRPIR_RPAM2") as ITextControl).Text = string.Format("{0:#####0}", WDAC.GetInt32Value(rasn.Rows[0]["BPSRM"]));
|
|
(RPIRForm.FindControl("txtRPIR_RPAM3") as ITextControl).Text = string.Format("{0:#####0}", WDAC.GetInt32Value(rasn.Rows[0]["BPSRM"]));
|
|
}
|
|
}
|
|
|
|
break;
|
|
case "RPIB":
|
|
// 取得目前資料,複製進畫面的控制項
|
|
//ClientShowMessage(_RPREN);
|
|
RegisterCalendarEvent(RPIRForm, "btnRPIR_RPBDT_DATE", "txtRPIR_RPBDT");
|
|
|
|
RpirDAC rpir = new RpirDAC();
|
|
DataTable rpirData = rpir.SelectOne(_RPREN, _RPITM);
|
|
|
|
(RPIRForm.FindControl("txtRPIR_RPBDT") as ITextControl).Text = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
if (rpirData.Rows.Count > 0)
|
|
{
|
|
(RPIRForm.FindControl("lbRPIR_RPREN") as ITextControl).Text = rpirData.Rows[0]["RPREN"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPENO") as ITextControl).Text = rpirData.Rows[0]["RPENO"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPSDT") as ITextControl).Text = rpirData.Rows[0]["RPSDT"] != DBNull.Value ? Convert.ToDateTime(rpirData.Rows[0]["RPSDT"]).ToString("yyyyMMdd") : "";
|
|
(RPIRForm.FindControl("txtRPIR_RPEDT") as ITextControl).Text = rpirData.Rows[0]["RPEDT"] != DBNull.Value ? Convert.ToDateTime(rpirData.Rows[0]["RPEDT"]).ToString("yyyyMMdd") : "";
|
|
(RPIRForm.FindControl("chbRPIR_RPLIS") as WCheckBox).Value = rpirData.Rows[0]["RPLIS"].ToString();
|
|
(RPIRForm.FindControl("chbRPIR_RPHIS") as WCheckBox).Value = rpirData.Rows[0]["RPHIS"].ToString();
|
|
(RPIRForm.FindControl("chbRPIR_RPOLD") as WCheckBox).Value = rpirData.Rows[0]["RPOLD"].ToString();
|
|
(RPIRForm.FindControl("chbRPIR_RPOVR") as WCheckBox).Value = rpirData.Rows[0]["RPOVR"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPSLY") as ITextControl).Text = rpirData.Rows[0]["RPSLY"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPAMT") as ITextControl).Text = rpirData.Rows[0]["RPAMT"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPAM2") as ITextControl).Text = rpirData.Rows[0]["RPAM2"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPAM3") as ITextControl).Text = rpirData.Rows[0]["RPAM3"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPSLA") as ITextControl).Text = rpirData.Rows[0]["RPSLA"].ToString();
|
|
(RPIRForm.FindControl("ddlRPIR_RPPTP") as WDropDownList).SelectedValue = rpirData.Rows[0]["RPPTP"].ToString();
|
|
(RPIRForm.FindControl("ddlRPIR_RPNAT") as WDropDownList).SelectedValue = rpirData.Rows[0]["RPNAT"].ToString();
|
|
(RPIRForm.FindControl("ddlRPIR_RPDIS") as WDropDownList).SelectedValue = rpirData.Rows[0]["RPDIS"].ToString();
|
|
(RPIRForm.FindControl("ddlRPIR_RPDIH") as WDropDownList).SelectedValue = rpirData.Rows[0]["RPDIH"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPFMY") as ITextControl).Text = rpirData.Rows[0]["RPFMY"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPFM1") as ITextControl).Text = rpirData.Rows[0]["RPFM1"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPFM2") as ITextControl).Text = rpirData.Rows[0]["RPFM2"].ToString();
|
|
(RPIRForm.FindControl("txtRPIR_RPFM3") as ITextControl).Text = rpirData.Rows[0]["RPFM3"].ToString();
|
|
// (RPIRForm.FindControl("ddlRPIR_RPCPY") as WDropDownList).SelectedValue = rpirData.Rows[0]["RPCPY"].ToString();
|
|
(RPIRForm.FindControl("hfRPIR_RPFMD") as HiddenField).Value = rpirData.Rows[0]["RPFMD"].ToString();
|
|
// (RPIRForm.FindControl("txtRPIR_RPXDT") as ITextControl).Text = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
(RPIRForm.FindControl("lbRPIR_RPXDT") as Label).Text = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
(RPIRForm.FindControl("hfRPIR_RPXDT") as HiddenField).Value = string.Format("{0:yyyyMMdd}", DateTime.UtcNow.AddHours(8));
|
|
}
|
|
break;
|
|
}
|
|
|
|
FormControl();
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void FormControl()
|
|
{
|
|
var rpoptCtrl = (RPIRForm.FindControl("rblRPIR_RPOPT") as RadioButtonList);
|
|
var rpopt = rpoptCtrl != null && !string.IsNullOrEmpty(rpoptCtrl.SelectedValue) ? rpoptCtrl.SelectedValue : "-";
|
|
|
|
// 新增
|
|
if (RPIRForm.CurrentMode == FormViewMode.Insert && tableName == "RPIR")
|
|
{
|
|
//if (rpoptCtrl.SelectedValue == "")
|
|
// rpoptCtrl.SelectedValue = "加保";
|
|
rpoptCtrl.Items[0].Enabled = true;
|
|
rpoptCtrl.Items[1].Enabled = false;
|
|
rpoptCtrl.Items[2].Enabled = false;
|
|
rpoptCtrl.Items[3].Enabled = false;
|
|
rpoptCtrl.Items[4].Enabled = false;
|
|
rpoptCtrl.Items[5].Enabled = false;
|
|
rpoptCtrl.Items[6].Enabled = false;
|
|
}
|
|
// 更正加保那筆
|
|
else if (RPIRForm.CurrentMode == FormViewMode.Edit
|
|
&& Convert.ToInt32((RPIRForm.FindControl("hfRPIR_RPITM") as HiddenField).Value) == 0)
|
|
{
|
|
//if (rpoptCtrl.SelectedValue == "")
|
|
// rpoptCtrl.SelectedValue = "加保";
|
|
rpoptCtrl.Items[0].Enabled = true;
|
|
rpoptCtrl.Items[1].Enabled = false;
|
|
rpoptCtrl.Items[2].Enabled = false;
|
|
rpoptCtrl.Items[3].Enabled = false;
|
|
rpoptCtrl.Items[4].Enabled = false;
|
|
rpoptCtrl.Items[5].Enabled = false;
|
|
rpoptCtrl.Items[6].Enabled = false;
|
|
}
|
|
else // 新增異動與更正異動
|
|
{
|
|
//if (rpoptCtrl.SelectedValue == "")
|
|
// rpoptCtrl.SelectedValue = "其他";
|
|
rpoptCtrl.Items[0].Enabled = false;
|
|
rpoptCtrl.Items[1].Enabled = true;
|
|
rpoptCtrl.Items[2].Enabled = true;
|
|
rpoptCtrl.Items[3].Enabled = true;
|
|
rpoptCtrl.Items[4].Enabled = true;
|
|
rpoptCtrl.Items[5].Enabled = true;
|
|
rpoptCtrl.Items[6].Enabled = true;
|
|
}
|
|
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPENO", true);
|
|
SetControlEnabled(RPIRForm, "btnRPIR_RPENO_WQRY", true);
|
|
|
|
/*
|
|
+---------------------+----------------------------------------------------------------------------------------------+
|
|
| 申請表欄位 | 說明 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 作業類別 | 加保 | 退保 | 眷屬加保 | 眷屬退保 | 薪資調整 | 留職停薪 | 其他 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 人員編號 | 系統帶入 |
|
|
+---------------------+----------------------------------------------------------------------------------------------+
|
|
| 人員姓名 | 系統帶入 |
|
|
+---------------------+----------------------------------------------------------------------------------------------+
|
|
| 表單申請日期 | 開放填寫 |
|
|
+---------------------+----------------------------------------------------------------------------------------------+
|
|
| 生效日期 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 加保日期 | 開放填寫 | 鎖 | 鎖 | 鎖 | 開放填寫 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 退保日期 | 鎖 | 開放填寫 | 鎖 | 鎖 | 鎖 | 開放填寫 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 薪資 | 人員派遣紀錄帶入 | 鎖 | 鎖 | 鎖 | 開放填寫 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 投保金額 | 系統自動帶出(但可手動修改) | 鎖 | 鎖 | 鎖 | 開放填寫 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 勞退自提 | 開放填寫 | 鎖 | 鎖 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 身份別 | 下拉式選單 | 鎖 | 鎖 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 國籍別 | 下拉式選單 | 鎖 | 鎖 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 勞保/健保減免比例 | 人資填寫,建議鎖起來 | 鎖 | 鎖 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 眷口數~減免100%眷口 | 系統帶入,建議鎖起來 | 鎖 | 鎖 | 鎖 | 鎖 | 鎖 | 鎖 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 備註 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 眷屬姓名 | 開放填寫 | 鎖 | 開放填寫 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 身分證字號 | 開放填寫 | 鎖 | 開放填寫 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 出生年月日 | 開放填寫 | 鎖 | 開放填寫 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 關係 | 開放 | 鎖 | 開放 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 減免比例 | 開放 | 鎖 | 開放 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 眷屬加保日 | 開放填寫 | 鎖 | 開放填寫 | 鎖 | 鎖 | 鎖 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
| 眷屬退保日 | 鎖 | 開放填寫 | 鎖 | 開放填寫 | 鎖 | 開放填寫 | 開放填寫 |
|
|
+---------------------+----------------------------+----------+----------+----------+----------+----------+----------+
|
|
*/
|
|
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPSDT", "|加保|薪資調整|其他|".Contains(rpopt)); // 加保日期
|
|
SetControlEnabled(RPIRForm, "btnRPIR_RPSDT_DATE", "|加保|薪資調整|其他|".Contains(rpopt));
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPEDT", "|退保|留職停薪|其他|".Contains(rpopt)); // 退保日期
|
|
SetControlEnabled(RPIRForm, "btnRPIR_RPEDT_DATE", "|退保|留職停薪|其他|".Contains(rpopt));
|
|
// (RPIRForm.FindControl("txtRPIR_RPSDT") as WebControl).Enabled = "|加保|薪資調整|其他|".Contains(rpopt); // 加保日期
|
|
// (RPIRForm.FindControl("btnRPIR_RPSDT_DATE") as WebControl).Enabled = "|加保|薪資調整|其他|".Contains(rpopt);
|
|
// (RPIRForm.FindControl("txtRPIR_RPEDT") as WebControl).Enabled = "|退保|留職停薪|其他|".Contains(rpopt); // 退保日期
|
|
// (RPIRForm.FindControl("btnRPIR_RPEDT_DATE") as WebControl).Enabled = "|退保|留職停薪|其他|".Contains(rpopt);
|
|
|
|
SetControlEnabled(RPIRForm, "chbRPIR_RPLIS", true);
|
|
SetControlEnabled(RPIRForm, "chbRPIR_RPHIS", true);
|
|
SetControlEnabled(RPIRForm, "chbRPIR_RPOLD", true);
|
|
SetControlEnabled(RPIRForm, "chbRPIR_RPOVR", true);
|
|
// (RPIRForm.FindControl("chbRPIR_RPLIS") as WebControl).Enabled = true;
|
|
// (RPIRForm.FindControl("chbRPIR_RPHIS") as WebControl).Enabled = true;
|
|
// (RPIRForm.FindControl("chbRPIR_RPOLD") as WebControl).Enabled = true;
|
|
// (RPIRForm.FindControl("chbRPIR_RPOVR") as WebControl).Enabled = true;
|
|
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPSLY", false); // 薪資
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPAMT", "|加保|薪資調整|其他|".Contains(rpopt)); // 投保金額
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPAM2", "|加保|薪資調整|其他|".Contains(rpopt)); // 投保金額
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPAM3", "|加保|薪資調整|其他|".Contains(rpopt)); // 投保金額
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPSLA", "|加保|其他|".Contains(rpopt)); // 勞退自提
|
|
SetControlEnabled(RPIRForm, "ddlRPIR_RPPTP", "|加保|其他|".Contains(rpopt)); // 身份別
|
|
SetControlEnabled(RPIRForm, "ddlRPIR_RPNAT", "|加保|其他|".Contains(rpopt)); // 國籍別
|
|
SetControlEnabled(RPIRForm, "ddlRPIR_RPDIS", "|加保|其他|".Contains(rpopt)); // 勞保減免比例
|
|
SetControlEnabled(RPIRForm, "ddlRPIR_RPDIH", "|加保|其他|".Contains(rpopt)); // 健保減免比例
|
|
//(RPIRForm.FindControl("txtRPIR_RPSLY") as WebControl).Enabled = false; // 薪資
|
|
//(RPIRForm.FindControl("txtRPIR_RPAMT") as WebControl).Enabled = "|加保|薪資調整|其他|".Contains(rpopt); // 投保金額
|
|
//(RPIRForm.FindControl("txtRPIR_RPSLA") as WebControl).Enabled = "|加保|其他|".Contains(rpopt); // 勞退自提
|
|
//(RPIRForm.FindControl("ddlRPIR_RPPTP") as WebControl).Enabled = "|加保|其他|".Contains(rpopt); // 身份別
|
|
//(RPIRForm.FindControl("ddlRPIR_RPNAT") as WebControl).Enabled = "|加保|其他|".Contains(rpopt); // 國籍別
|
|
//(RPIRForm.FindControl("ddlRPIR_RPDIS") as WebControl).Enabled = "|加保|其他|".Contains(rpopt); // 勞保減免比例
|
|
//(RPIRForm.FindControl("ddlRPIR_RPDIH") as WebControl).Enabled = "|加保|其他|".Contains(rpopt); // 健保減免比例
|
|
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPFMY", false); // 眷口數
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPFM1", false); // 眷口數
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPFM2", false); // 眷口數
|
|
SetControlEnabled(RPIRForm, "txtRPIR_RPFM3", false); // 眷口數
|
|
// (RPIRForm.FindControl("txtRPIR_RPFMY") as WebControl).Enabled = "".Contains(rpopt); // 眷口數
|
|
// (RPIRForm.FindControl("txtRPIR_RPFM1") as WebControl).Enabled = "".Contains(rpopt); // 眷口數
|
|
// (RPIRForm.FindControl("txtRPIR_RPFM2") as WebControl).Enabled = "".Contains(rpopt); // 眷口數
|
|
// (RPIRForm.FindControl("txtRPIR_RPFM3") as WebControl).Enabled = "".Contains(rpopt); // 眷口數
|
|
}
|
|
|
|
protected void RPIRGrid_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
SetGridViewMouseBehavier(RPIRGrid, e.Row);
|
|
//GridView_RowDataBound_Shrink_ViewState(sender, e);
|
|
}
|
|
|
|
protected void RPIRGrid_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
foreach (GridViewRow row in RPIRGrid.Rows)
|
|
SetGridViewMouseBehavier(RPIRGrid, row);
|
|
|
|
_RPREN = RPIRGrid.SelectedDataKey["RPREN"].ToString();
|
|
_RPITM = Convert.ToInt32(RPIRGrid.SelectedDataKey["RPITM"]);
|
|
ViewState["RPREN"] = _RPREN;
|
|
ParamList["RPRENB"] = _RPREN;
|
|
ViewState["RPITM"] = _RPITM;
|
|
}
|
|
|
|
protected void RPIRForm_ItemDeleting(object sender, FormViewDeleteEventArgs e)
|
|
{
|
|
// 刪除前檢查
|
|
// TODO: 檢查關帳日
|
|
}
|
|
|
|
protected override bool CheckInput(System.Collections.Specialized.IOrderedDictionary values)
|
|
{
|
|
cvMessage.ErrorMessage = "";
|
|
cvMessage.IsValid = true;
|
|
|
|
bool result = true;
|
|
if (string.IsNullOrEmpty(values["RPOPT"].ToString()))
|
|
{
|
|
result = false;
|
|
cvMessage.ErrorMessage += "請選擇作業類別<br/>";
|
|
cvMessage.IsValid = false;
|
|
}
|
|
values["RPSDT"] = CheckDate(values["RPSDT"], "請輸入正確的加保日期", ref result, cvMessage);
|
|
values["RPXDT"] = CheckDate(values["RPXDT"], "請輸入正確的申請日期", ref result, cvMessage);
|
|
if (values["RPEDT"].ToString() != "")
|
|
{
|
|
values["RPEDT"] = CheckDate(values["RPEDT"], "請輸入正確的退保日期", ref result, cvMessage);
|
|
if (WDAC.GetDateTimeValue(values["RPSDT"]) > WDAC.GetDateTimeValue(values["RPEDT"]))
|
|
{
|
|
result = false;
|
|
cvMessage.IsValid = false;
|
|
cvMessage.ErrorMessage += "退保日期不可早於加保日期<br/>";
|
|
}
|
|
}
|
|
if (values["RPBDT"].ToString() != "")
|
|
values["RPBDT"] = CheckDate(values["RPBDT"], "請輸入正確的生效日期", ref result, cvMessage);
|
|
|
|
// 公司別固定 TY
|
|
values["RPCPY"] = "TY";
|
|
|
|
// 檢查加保眷屬資料
|
|
var rpfmd = Newtonsoft.Json.JsonConvert.DeserializeObject<RPFMDList>(values["RPFMD"].ToString());
|
|
if (rpfmd != null)
|
|
{
|
|
var rpfmdValid = rpfmd.FindAll(x => x.Valid);
|
|
if (rpfmd.Count != rpfmdValid.Count)
|
|
{
|
|
result = false;
|
|
(RPIRForm.FindControl("hfRPIR_RPFMD") as HiddenField).Value = Newtonsoft.Json.JsonConvert.SerializeObject(rpfmd);
|
|
cvMessage.ErrorMessage += "眷屬資料有錯誤<br/>";
|
|
cvMessage.IsValid = false;
|
|
}
|
|
|
|
values["RPFMD"] = Newtonsoft.Json.JsonConvert.SerializeObject(rpfmdValid);
|
|
values["RPFMY"] = rpfmdValid.FindAll(x => x.DEDUCT == "0" && x.OnBoard).Count;
|
|
values["RPFM1"] = rpfmdValid.FindAll(x => x.DEDUCT == "25" && x.OnBoard).Count;
|
|
values["RPFM2"] = rpfmdValid.FindAll(x => x.DEDUCT == "50" && x.OnBoard).Count;
|
|
values["RPFM3"] = rpfmdValid.FindAll(x => x.DEDUCT == "100" && x.OnBoard).Count;
|
|
}
|
|
|
|
// 異動時,退保日期與其他異動不可同時輸入
|
|
var RPEDTChanged = false;
|
|
var OtherChanged = false;
|
|
|
|
if (tableName == "RPIB" && RPIRForm.CurrentMode == FormViewMode.Insert ||
|
|
tableName == "RPIR" && RPIRForm.CurrentMode == FormViewMode.Edit)
|
|
{
|
|
// 比對上一筆(異動)資料與輸入資料
|
|
RpirDAC rpir = new RpirDAC();
|
|
DataTable rpibData = rpir.SelectRPIB(_RPREN, null, "RPITM ASC", true);
|
|
DataRow rpibRow = null;
|
|
|
|
if (RPIRForm.CurrentMode == FormViewMode.Insert && rpibData.Rows.Count > 0)
|
|
{
|
|
rpibRow = rpibData.Rows[rpibData.Rows.Count - 1];
|
|
}
|
|
if (RPIRForm.CurrentMode == FormViewMode.Edit && rpibData.Rows.Count > 1)
|
|
{
|
|
rpibRow = rpibData.Rows[rpibData.Rows.Count - 2];
|
|
}
|
|
if (rpibRow != null)
|
|
{
|
|
RPEDTChanged = rpibRow["RPEDT"].ToString() != values["RPEDT"].ToString();
|
|
OtherChanged = rpibRow["RPSDT"].ToString() != values["RPSDT"].ToString()
|
|
|| rpibRow["RPLIS"].ToString() != values["RPLIS"].ToString()
|
|
|| rpibRow["RPHIS"].ToString() != values["RPHIS"].ToString()
|
|
|| rpibRow["RPOLD"].ToString() != values["RPOLD"].ToString()
|
|
|| rpibRow["RPOVR"].ToString() != values["RPOVR"].ToString()
|
|
|| rpibRow["RPSLY"].ToString() != values["RPSLY"].ToString()
|
|
|| rpibRow["RPAMT"].ToString() != values["RPAMT"].ToString()
|
|
|| rpibRow["RPAM2"].ToString() != values["RPAM2"].ToString()
|
|
|| rpibRow["RPAM3"].ToString() != values["RPAM3"].ToString()
|
|
|| rpibRow["RPSLA"].ToString() != values["RPSLA"].ToString()
|
|
|| rpibRow["RPPTP"].ToString() != values["RPPTP"].ToString()
|
|
|| rpibRow["RPNAT"].ToString() != values["RPNAT"].ToString()
|
|
|| rpibRow["RPDIS"].ToString() != values["RPDIS"].ToString()
|
|
|| rpibRow["RPDIH"].ToString() != values["RPDIH"].ToString()
|
|
|| rpibRow["RPFMY"].ToString() != values["RPFMY"].ToString()
|
|
|| rpibRow["RPFM1"].ToString() != values["RPFM1"].ToString()
|
|
|| rpibRow["RPFM2"].ToString() != values["RPFM2"].ToString()
|
|
|| rpibRow["RPFM3"].ToString() != values["RPFM3"].ToString()
|
|
// || rpibRow["RPCPY"].ToString() != values["RPCPY"].ToString()
|
|
|| rpibRow["RPFMD"].ToString() != values["RPFMD"].ToString();
|
|
}
|
|
}
|
|
|
|
if (RPEDTChanged && OtherChanged)
|
|
{
|
|
result = false;
|
|
cvMessage.ErrorMessage += "退保日期異動與其他資料異動請分開輸入,不可在同一筆異動<br/>";
|
|
cvMessage.IsValid = false;
|
|
}
|
|
|
|
ProcessCustomValidatorMessage(cvMessage);
|
|
return result;
|
|
}
|
|
|
|
protected void RPIRForm_ItemInserting(object sender, FormViewInsertEventArgs e)
|
|
{
|
|
e.Values["RPDIS"] = (RPIRForm.FindControl("ddlRPIR_RPDIS") as DropDownList).SelectedValue;
|
|
e.Values["RPNAT"] = (RPIRForm.FindControl("ddlRPIR_RPNAT") as DropDownList).SelectedValue;
|
|
e.Values["RPPTP"] = (RPIRForm.FindControl("ddlRPIR_RPPTP") as DropDownList).SelectedValue;
|
|
e.Cancel = !CheckInput(e.Values);
|
|
}
|
|
|
|
protected void RPIRForm_ItemUpdating(object sender, FormViewUpdateEventArgs e)
|
|
{
|
|
e.Cancel = !CheckInput(e.NewValues);
|
|
}
|
|
|
|
protected void cvNumber_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
int i = 0;
|
|
args.IsValid = !string.IsNullOrEmpty(args.Value) && Int32.TryParse(args.Value, out i);
|
|
if (!args.IsValid)
|
|
return;
|
|
|
|
var validator = (CustomValidator)source;
|
|
var chbRPIR_RPLIS = (WCheckBox)validator.NamingContainer.FindControl("chbRPIR_RPLIS"); // 有勞保
|
|
var chbRPIR_RPHIS = (WCheckBox)validator.NamingContainer.FindControl("chbRPIR_RPHIS"); // 有健保
|
|
var chbRPIR_RPOLD = (WCheckBox)validator.NamingContainer.FindControl("chbRPIR_RPOLD"); // 已領老年給付
|
|
var chbRPIR_RPOVR = (WCheckBox)validator.NamingContainer.FindControl("chbRPIR_RPOVR"); // 超過65歲
|
|
bool isRPLIS = chbRPIR_RPLIS != null && chbRPIR_RPLIS.Value == "Y";
|
|
bool isRPHIS = chbRPIR_RPHIS != null && chbRPIR_RPHIS.Value == "Y";
|
|
bool isRPOLD = chbRPIR_RPOLD != null && chbRPIR_RPOLD.Value == "Y";
|
|
bool isRPOVR = chbRPIR_RPOVR != null && chbRPIR_RPOVR.Value == "Y";
|
|
|
|
switch (validator.ID)
|
|
{
|
|
case "cvRPSLY": // 薪資必須大於 0
|
|
args.IsValid = (i > 0);
|
|
break;
|
|
case "cvRPAMT": // 勞保投保級距必須大於 0 (有勞保)
|
|
args.IsValid = (i > 0) || !isRPLIS;
|
|
break;
|
|
case "cvRPAM2": // 健保投保級距必須大於 0 (有健保)
|
|
args.IsValid = (i > 0) || !isRPHIS;
|
|
break;
|
|
case "cvRPAM3": // 勞退投保級距必須大於 0 (未領老年給付 未超過65歲)
|
|
args.IsValid = (i > 0) || (isRPOLD || isRPOVR);
|
|
break;
|
|
//case "cvRPFMY": // 眷口數必須大於等於 0
|
|
// args.IsValid = i >= 0;
|
|
// break;
|
|
case "cvRPSLA": // 勞退自提必須 0-6 (未領老年給付 未超過65歲)
|
|
args.IsValid = (i >= 0 && i <= 6) || (isRPOLD || isRPOVR);
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void cvRPENO_ServerValidate(object source, ServerValidateEventArgs args)
|
|
{
|
|
if (bpsn == null)
|
|
bpsn = new BPSN_DAC(WConfig.GetConnectionConfig(), WConfig.GetConnectionConfigName());
|
|
args.IsValid = args.Value != "" && bpsn.IsExist(args.Value, true);
|
|
}
|
|
|
|
protected void rblRPIR_RPOPT_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
FormControl();
|
|
}
|
|
|
|
protected void btnRPOPTSelectAll_Click(object sender, EventArgs e)
|
|
{
|
|
for (var i = 0; i < rblRPOPT.Items.Count; i++) { rblRPOPT.Items[i].Selected = true; }
|
|
}
|
|
|
|
protected void btnExport_Click(object sender, EventArgs e)
|
|
{
|
|
lbMessage.Visible = false;
|
|
List<string> messages = new List<string>();
|
|
ParseSearchInput();
|
|
var rpopts = _RPOPT.Split(',');
|
|
|
|
if (_RPXDT1.Ticks == 0 && _RPXDT2.Ticks == 0 && _RPBDT1.Ticks == 0 && _RPBDT2.Ticks == 0)
|
|
{
|
|
messages.Add("請輸入申請日期範圍或生效日期範圍");
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(_RPOPT))
|
|
{
|
|
messages.Add("請選擇匯出作業類別");
|
|
}
|
|
|
|
if (messages.Count > 0)
|
|
{
|
|
lbMessage.Text = string.Join("<br>", messages.ToArray());
|
|
lbMessage.Visible = true;
|
|
return;
|
|
}
|
|
|
|
RpirDAC rpirDao = new RpirDAC(Query);
|
|
|
|
DataTable rpirData = rpirDao.SelectPage(0, Int32.MaxValue, _RPENO, _BPNME, _RPXDT1, _RPXDT2, _RPOPT, _RPBDT1, _RPBDT2, null);
|
|
|
|
if (rpirData.Rows.Count == 0)
|
|
{
|
|
lbMessage.Text = GetString("NOSRHCOND");
|
|
lbMessage.Visible = true;
|
|
return;
|
|
}
|
|
|
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
|
HSSFSheet sheet = workbook.CreateSheet("報表") as HSSFSheet;
|
|
sheet.ForceFormulaRecalculation = true;
|
|
Excel excel = new Excel();
|
|
excel.WorkBook = workbook;
|
|
excel.Sheet = sheet;
|
|
int row = 0;
|
|
int col = 0;
|
|
string[] familyRpopts = { "加保", "眷屬加保", "退保", "眷屬退保" };
|
|
|
|
// 抬頭
|
|
excel.SetCellValue(row, col++, "作業類型");
|
|
excel.SetCellValue(row, col++, "單號");
|
|
excel.SetCellValue(row, col++, "申請人");
|
|
excel.SetCellValue(row, col++, "申請日期");
|
|
excel.SetCellValue(row, col++, "生效日期");
|
|
excel.SetCellValue(row, col++, "人員編號");
|
|
excel.SetCellValue(row, col++, "姓名");
|
|
excel.SetCellValue(row, col++, "眷屬姓名");
|
|
excel.SetCellValue(row, col++, "身分證字號");
|
|
excel.SetCellValue(row, col++, "出生年月日");
|
|
excel.SetCellValue(row, col++, "加保日期");
|
|
excel.SetCellValue(row, col++, "退保日期");
|
|
excel.SetCellValue(row, col++, "薪資");
|
|
excel.SetCellValue(row, col++, "勞保級距");
|
|
excel.SetCellValue(row, col++, "健保級距");
|
|
excel.SetCellValue(row, col++, "勞退級距");
|
|
excel.SetCellValue(row, col++, "勞退自提");
|
|
excel.SetCellValue(row, col++, "加保狀況");
|
|
excel.SetCellValue(row, col++, "備註");
|
|
row++;
|
|
|
|
// 內容
|
|
foreach (DataRow r in rpirData.Rows)
|
|
{
|
|
// 取出異動資料
|
|
DataTable rpibData = rpirDao.SelectRPIB(WDAC.GetStringValue(r["RPREN"]));
|
|
|
|
foreach (DataRow br in rpibData.Rows)
|
|
{
|
|
var rpeno = WDAC.GetStringValue(br["RPENO"]);
|
|
var bpnme = WDAC.GetStringValue(br["BPNME"]);
|
|
var rpopt = WDAC.GetStringValue(br["RPOPT"]);
|
|
var rpxdt = WDAC.GetDateTimeValue(br["RPXDT"]);
|
|
var rpbdt = WDAC.GetDateTimeValue(br["RPBDT"]);
|
|
var rpedt = WDAC.GetDateTimeValue(br["RPEDT"]);
|
|
|
|
// 排除異動資料不在查詢範圍中
|
|
if (!string.IsNullOrEmpty(_RPENO) && !rpeno.StartsWith(_RPENO)
|
|
|| !string.IsNullOrEmpty(_BPNME) && !bpnme.StartsWith(_BPNME)
|
|
|| _RPXDT1.Ticks > 0 && _RPXDT2.Ticks > 0 && (rpxdt < _RPXDT1 || rpxdt > _RPXDT2)
|
|
|| _RPXDT1.Ticks > 0 && _RPXDT2.Ticks == 0 && rpxdt < _RPXDT1
|
|
|| _RPXDT1.Ticks == 0 && _RPXDT2.Ticks > 0 && rpxdt > _RPXDT2
|
|
|| rpopts.Length > 0 && Array.IndexOf(rpopts, rpopt) < 0
|
|
|| _RPBDT1.Ticks > 0 && _RPBDT2.Ticks > 0 && (rpbdt < _RPBDT1 || rpxdt > _RPBDT2)
|
|
|| _RPBDT1.Ticks > 0 && _RPBDT2.Ticks == 0 && rpbdt < _RPBDT1
|
|
|| _RPBDT1.Ticks == 0 && _RPBDT2.Ticks > 0 && rpbdt > _RPBDT2
|
|
)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var trusr = !string.IsNullOrEmpty(br["TRUSR"].ToString()) ? GetLookup("BPSN", WDAC.GetStringValue(br["TRUSR"]), "BPNME") : "";
|
|
|
|
if (true /* || rpopt != "眷屬加保" && rpopt != "眷屬退保" */)
|
|
{
|
|
col = 0;
|
|
excel.SetCellValue(row, col++, rpopt);
|
|
excel.SetCellValue(row, col++, WDAC.GetStringValue(br["RPREN"]));
|
|
excel.SetCellValue(row, col++, trusr);
|
|
excel.SetCellValue(row, col++, rpxdt.Ticks > 0 ? string.Format("{0:yyyy/MM/dd}", rpxdt) : "");
|
|
excel.SetCellValue(row, col++, rpbdt.Ticks > 0 ? string.Format("{0:yyyy/MM/dd}", rpbdt) : "");
|
|
excel.SetCellValue(row, col++, rpeno);
|
|
excel.SetCellValue(row, col++, bpnme);
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, WDAC.GetStringValue(br["BPIDN"]));
|
|
excel.SetCellValue(row, col++, br["BPBDY"] != DBNull.Value ? string.Format("{0:yyyy/MM/dd}", WDAC.GetDateTimeValue(br["BPBDY"])) : "");
|
|
excel.SetCellValue(row, col++, br["RPSDT"] != DBNull.Value ? string.Format("{0:yyyy/MM/dd}", WDAC.GetDateTimeValue(br["RPSDT"])) : "");
|
|
excel.SetCellValue(row, col++, br["RPEDT"] != DBNull.Value ? string.Format("{0:yyyy/MM/dd}", WDAC.GetDateTimeValue(br["RPEDT"])) : "");
|
|
excel.SetCellValue(row, col++, WDAC.GetInt32Value(br["RPSLY"]));
|
|
excel.SetCellValue(row, col++, WDAC.GetInt32Value(br["RPAMT"]));
|
|
excel.SetCellValue(row, col++, WDAC.GetInt32Value(br["RPAM2"]));
|
|
excel.SetCellValue(row, col++, WDAC.GetInt32Value(br["RPAM3"]));
|
|
excel.SetCellValue(row, col++, WDAC.GetInt32Value(br["RPSLA"]));
|
|
// excel.SetCellValue(row, col++, rpedt.Ticks == 0 ? "加保" : "退保");
|
|
excel.SetCellValue(row, col++, string.Format("有勞保:{0} / 有健保:{1} / 已領老年給付:{2} / 超過65歲:{3}"
|
|
, WDAC.GetStringValue(br["RPLIS"]) == "Y" ? "是" : "否"
|
|
, WDAC.GetStringValue(br["RPHIS"]) == "Y" ? "是" : "否"
|
|
, WDAC.GetStringValue(br["RPOLD"]) == "Y" ? "是" : "否"
|
|
, WDAC.GetStringValue(br["RPOVR"]) == "Y" ? "是" : "否"));
|
|
excel.SetCellValue(row, col++, WDAC.GetStringValue(br["RPDOC"]));
|
|
row++;
|
|
}
|
|
|
|
// 眷屬
|
|
if (Array.IndexOf(familyRpopts, rpopt) < 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var rpfmd = Newtonsoft.Json.JsonConvert.DeserializeObject<RPFMDList>(br["RPFMD"].ToString());
|
|
var rpfmd_prev = Newtonsoft.Json.JsonConvert.DeserializeObject<RPFMDList>(br["RPFMD_PREV"].ToString());
|
|
if (rpfmd_prev == null)
|
|
{
|
|
rpfmd_prev = new RPFMDList();
|
|
}
|
|
|
|
if (rpfmd != null)
|
|
{
|
|
foreach (var rpfmdItem in rpfmd)
|
|
{
|
|
var rpfmdRpopt = "";
|
|
DateTime rpfmdBirthday, rpfmdStartDate, rpfmdEndDate;
|
|
WGuard1.CheckDate(rpfmdItem.BIRTHDAY, out rpfmdBirthday);
|
|
WGuard1.CheckDate(rpfmdItem.START_DATE, out rpfmdStartDate);
|
|
WGuard1.CheckDate(rpfmdItem.END_DATE, out rpfmdEndDate);
|
|
|
|
if (rpfmd_prev.Find(x => rpfmdItem.Equals(x)) != null)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
//switch (rpopt)
|
|
//{
|
|
// case "加保":
|
|
// case "眷屬加保":
|
|
// rpfmdRpopt = "眷屬加保";
|
|
// if (rpfmd_prev != null && rpfmd_prev.Find(x =>
|
|
// string.Compare(x.NAME, rpfmdItem.NAME) == 0
|
|
// && string.Compare(x.BIRTHDAY, rpfmdItem.BIRTHDAY) == 0
|
|
// && string.Compare(x.IDNO, rpfmdItem.IDNO) == 0
|
|
// && string.Compare(x.START_DATE, rpfmdItem.START_DATE) == 0
|
|
// ) != null
|
|
// && !string.IsNullOrEmpty(rpfmdItem.END_DATE))
|
|
// {
|
|
// continue;
|
|
// }
|
|
// break;
|
|
|
|
// case "退保":
|
|
// case "眷屬退保":
|
|
// rpfmdRpopt = "眷屬退保";
|
|
// if (rpfmd_prev != null && rpfmd_prev.Find(x =>
|
|
// string.Compare(x.NAME, rpfmdItem.NAME) == 0
|
|
// && string.Compare(x.BIRTHDAY, rpfmdItem.BIRTHDAY) == 0
|
|
// && string.Compare(x.IDNO, rpfmdItem.IDNO) == 0
|
|
// && string.Compare(x.START_DATE, rpfmdItem.START_DATE) == 0
|
|
// ) != null
|
|
// && string.IsNullOrEmpty(rpfmdItem.END_DATE))
|
|
// {
|
|
// continue;
|
|
// }
|
|
// break;
|
|
//}
|
|
|
|
col = 0;
|
|
excel.SetCellValue(row, col++, rpfmdRpopt);
|
|
excel.SetCellValue(row, col++, WDAC.GetStringValue(br["RPREN"]));
|
|
excel.SetCellValue(row, col++, trusr);
|
|
excel.SetCellValue(row, col++, rpxdt.Ticks > 0 ? string.Format("{0:yyyy/MM/dd}", rpxdt) : "");
|
|
excel.SetCellValue(row, col++, rpbdt.Ticks > 0 ? string.Format("{0:yyyy/MM/dd}", rpbdt) : "");
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, rpfmdItem.NAME);
|
|
excel.SetCellValue(row, col++, rpfmdItem.IDNO);
|
|
excel.SetCellValue(row, col++, rpfmdBirthday.Ticks > 0 ? string.Format("{0:yyyy/MM/dd}", rpfmdBirthday) : "");
|
|
excel.SetCellValue(row, col++, rpfmdStartDate.Ticks > 0 ? string.Format("{0:yyyy/MM/dd}", rpfmdStartDate) : "");
|
|
excel.SetCellValue(row, col++, rpfmdEndDate.Ticks > 0 ? string.Format("{0:yyyy/MM/dd}", rpfmdEndDate) : "");
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, "");
|
|
excel.SetCellValue(row, col++, rpfmdEndDate.Ticks == 0 ? "健保加保" : "健保退保");
|
|
excel.SetCellValue(row, col++, "");
|
|
row++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// 設定欄寬
|
|
col = 0;
|
|
excel.SetColumnWidth(col++, 10);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 54);
|
|
excel.SetColumnWidth(col++, 50);
|
|
|
|
MemoryStream ms = new MemoryStream();
|
|
workbook.Write(ms);
|
|
ResponseWriteFile(ms, String.Format("作業類別清單_{0:yyyyMMddHHmmss}.xls", DateTime.UtcNow.AddHours(8)));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 匯出勞健保投退保異常清單
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnExportAbnormal_Click(object sender, EventArgs e)
|
|
{
|
|
lbMessage.Visible = false;
|
|
List<string> messages = new List<string>();
|
|
ParseSearchInput();
|
|
|
|
if (_RPXDT1.Ticks == 0 || _RPXDT2.Ticks == 0)
|
|
{
|
|
messages.Add("請輸入匯出日期範圍");
|
|
}
|
|
|
|
if (messages.Count > 0)
|
|
{
|
|
lbMessage.Text = string.Join("<br>", messages.ToArray());
|
|
lbMessage.Visible = true;
|
|
return;
|
|
}
|
|
|
|
var result = new DataTable();
|
|
result.Columns.Add("ABNORMAL_TYPE", typeof(string));
|
|
result.Columns.Add("BPENO", typeof(string));
|
|
result.Columns.Add("BPNME", typeof(string));
|
|
result.Columns.Add("BPSDY", typeof(DateTime));
|
|
result.Columns.Add("BPEDY", typeof(DateTime));
|
|
result.Columns.Add("RPSDT", typeof(DateTime));
|
|
result.Columns.Add("RPEDT", typeof(DateTime));
|
|
|
|
var cmdSource = Query.NewCommand();
|
|
var cmdCheck = Query.NewCommand();
|
|
|
|
#region 取資料
|
|
|
|
// 1. 檢查到職未加保
|
|
cmdSource.CommandText = @"SELECT BPENO, BPNME, BPSDY
|
|
FROM BPSNView
|
|
WHERE BPSDY BETWEEN @DATE1 AND @DATE2
|
|
ORDER BY BPENO";
|
|
Query.AddParam(cmdSource, "DATE1", _RPXDT1);
|
|
Query.AddParam(cmdSource, "DATE2", _RPXDT2);
|
|
foreach (DataRow r in Query.Select(cmdSource).Rows)
|
|
{
|
|
cmdCheck.CommandText =
|
|
@"SELECT RPREN, RPSDT
|
|
FROM RPIR
|
|
WHERE RPENO = @RPENO
|
|
AND RPSDT = @RPSDT
|
|
UNION
|
|
SELECT RPREN, RPSDT
|
|
FROM RPIB
|
|
WHERE RPENO = @RPENO
|
|
AND RPSDT = @RPSDT";
|
|
Query.AddParam(cmdCheck, "RPENO", r["BPENO"]);
|
|
Query.AddParam(cmdCheck, "RPSDT", r["BPSDY"]);
|
|
if (Query.Select(cmdCheck).Rows.Count == 0)
|
|
{
|
|
result.Rows.Add("到職未加保", r["BPENO"], r["BPNME"], r["BPSDY"], DBNull.Value, DBNull.Value, DBNull.Value);
|
|
}
|
|
}
|
|
|
|
// 2. 檢查離職未退保
|
|
cmdSource.CommandText = @"SELECT BPENO, BPNME, BPEDY
|
|
FROM BPSNView
|
|
WHERE BPEDY BETWEEN @DATE1 AND @DATE2
|
|
ORDER BY BPENO";
|
|
cmdSource.Parameters.Clear();
|
|
Query.AddParam(cmdSource, "DATE1", _RPXDT1);
|
|
Query.AddParam(cmdSource, "DATE2", _RPXDT2);
|
|
foreach (DataRow r in Query.Select(cmdSource).Rows)
|
|
{
|
|
cmdCheck.CommandText =
|
|
@"SELECT RPREN, RPEDT
|
|
FROM RPIR
|
|
WHERE RPENO = @RPENO
|
|
AND RPEDT = @RPEDT
|
|
UNION
|
|
SELECT RPREN, RPEDT
|
|
FROM RPIB
|
|
WHERE RPENO = @RPENO
|
|
AND RPEDT = @RPEDT";
|
|
Query.AddParam(cmdCheck, "RPENO", r["BPENO"]);
|
|
Query.AddParam(cmdCheck, "RPEDT", r["BPEDY"]);
|
|
if (Query.Select(cmdCheck).Rows.Count == 0)
|
|
{
|
|
result.Rows.Add("離職未退保", r["BPENO"], r["BPNME"], DBNull.Value, r["BPEDY"], DBNull.Value, DBNull.Value);
|
|
}
|
|
}
|
|
|
|
// 3. 檢查加保未到職
|
|
cmdSource.CommandText =
|
|
@"SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT RPENO, BPNME, RPSDT
|
|
FROM RPIR
|
|
JOIN BPSNView ON RPENO=BPENO
|
|
WHERE RPSDT BETWEEN @DATE1 AND @DATE2
|
|
UNION
|
|
SELECT RPENO, BPNME, RPSDT
|
|
FROM RPIB
|
|
JOIN BPSNView ON RPENO=BPENO
|
|
WHERE RPSDT BETWEEN @DATE1 AND @DATE2
|
|
) T
|
|
ORDER BY RPENO";
|
|
cmdSource.Parameters.Clear();
|
|
Query.AddParam(cmdSource, "DATE1", _RPXDT1);
|
|
Query.AddParam(cmdSource, "DATE2", _RPXDT2);
|
|
foreach (DataRow r in Query.Select(cmdSource).Rows)
|
|
{
|
|
cmdCheck.CommandText =
|
|
@"SELECT BPENO, BPEDY
|
|
FROM BPSNView
|
|
WHERE BPENO = @BPENO
|
|
AND BPSDY = @BPSDY";
|
|
Query.AddParam(cmdCheck, "BPENO", r["RPENO"]);
|
|
Query.AddParam(cmdCheck, "BPSDY", r["RPSDT"]);
|
|
if (Query.Select(cmdCheck).Rows.Count == 0)
|
|
{
|
|
result.Rows.Add("加保未到職", r["RPENO"], r["BPNME"], DBNull.Value, DBNull.Value, r["RPSDT"], DBNull.Value);
|
|
}
|
|
}
|
|
|
|
// 4. 檢查退保未離職
|
|
cmdSource.CommandText =
|
|
@"SELECT DISTINCT *
|
|
FROM
|
|
(
|
|
SELECT RPENO, BPNME, RPEDT
|
|
FROM RPIR
|
|
JOIN BPSNView ON RPENO=BPENO
|
|
WHERE RPEDT BETWEEN @DATE1 AND @DATE2
|
|
UNION
|
|
SELECT RPENO, BPNME, RPEDT
|
|
FROM RPIB
|
|
JOIN BPSNView ON RPENO=BPENO
|
|
WHERE RPEDT BETWEEN @DATE1 AND @DATE2
|
|
) T
|
|
ORDER BY RPENO";
|
|
cmdSource.Parameters.Clear();
|
|
Query.AddParam(cmdSource, "DATE1", _RPXDT1);
|
|
Query.AddParam(cmdSource, "DATE2", _RPXDT2);
|
|
foreach (DataRow r in Query.Select(cmdSource).Rows)
|
|
{
|
|
cmdCheck.CommandText =
|
|
@"SELECT BPENO, BPEDY
|
|
FROM BPSNView
|
|
WHERE BPENO = @BPENO
|
|
AND BPEDY = @BPEDY";
|
|
Query.AddParam(cmdCheck, "BPENO", r["RPENO"]);
|
|
Query.AddParam(cmdCheck, "BPEDY", r["RPEDT"]);
|
|
if (Query.Select(cmdCheck).Rows.Count == 0)
|
|
{
|
|
result.Rows.Add("退保未離職", r["RPENO"], r["BPNME"], DBNull.Value, DBNull.Value, DBNull.Value, r["RPEDT"]);
|
|
}
|
|
}
|
|
|
|
if (result.Rows.Count == 0)
|
|
{
|
|
lbMessage.Text = "查詢日期區間內無投退保異常資料";
|
|
lbMessage.Visible = true;
|
|
return;
|
|
}
|
|
|
|
#endregion 取資料
|
|
|
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
|
HSSFSheet sheet = workbook.CreateSheet("報表") as HSSFSheet;
|
|
sheet.ForceFormulaRecalculation = true;
|
|
Excel excel = new Excel();
|
|
excel.WorkBook = workbook;
|
|
excel.Sheet = sheet;
|
|
int row = 0;
|
|
int col = 0;
|
|
|
|
// 抬頭
|
|
excel.SetCellValue(row, col++, "異常類型");
|
|
excel.SetCellValue(row, col++, "人員編號");
|
|
excel.SetCellValue(row, col++, "人員姓名");
|
|
excel.SetCellValue(row, col++, "到職日期");
|
|
excel.SetCellValue(row, col++, "離職日期");
|
|
excel.SetCellValue(row, col++, "加保日期");
|
|
excel.SetCellValue(row, col++, "退保日期");
|
|
row++;
|
|
|
|
// 內容
|
|
foreach (DataRow r in result.Rows)
|
|
{
|
|
col = 0;
|
|
excel.SetCellValue(row, col++, WDAC.GetStringValue(r["ABNORMAL_TYPE"]));
|
|
excel.SetCellValue(row, col++, WDAC.GetStringValue(r["BPENO"]));
|
|
excel.SetCellValue(row, col++, WDAC.GetStringValue(r["BPNME"]));
|
|
excel.SetCellValue(row, col++, r["BPSDY"] != DBNull.Value ? string.Format("{0:yyyy/MM/dd}", WDAC.GetDateTimeValue(r["BPSDY"])) : "");
|
|
excel.SetCellValue(row, col++, r["BPEDY"] != DBNull.Value ? string.Format("{0:yyyy/MM/dd}", WDAC.GetDateTimeValue(r["BPEDY"])) : "");
|
|
excel.SetCellValue(row, col++, r["RPSDT"] != DBNull.Value ? string.Format("{0:yyyy/MM/dd}", WDAC.GetDateTimeValue(r["RPSDT"])) : "");
|
|
excel.SetCellValue(row, col++, r["RPEDT"] != DBNull.Value ? string.Format("{0:yyyy/MM/dd}", WDAC.GetDateTimeValue(r["RPEDT"])) : "");
|
|
row++;
|
|
}
|
|
|
|
// 設定欄寬
|
|
col = 0;
|
|
excel.SetColumnWidth(col++, 20);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
excel.SetColumnWidth(col++, 12);
|
|
|
|
MemoryStream ms = new MemoryStream();
|
|
workbook.Write(ms);
|
|
ResponseWriteFile(ms, String.Format("投退保異常清單_{0:yyyyMMddHHmmss}.xls", DateTime.UtcNow.AddHours(8)));
|
|
}
|
|
|
|
protected void btnReturnBPSN_Click(object sender, EventArgs e)
|
|
{
|
|
DoAfterCommand("BPSN");
|
|
}
|
|
}
|
|
|
|
public class RPFMDItem
|
|
{
|
|
public string NAME;
|
|
public string BIRTHDAY;
|
|
public string IDNO;
|
|
public string RELATIONSHIP;
|
|
public string DEDUCT;
|
|
public string START_DATE;
|
|
public string END_DATE;
|
|
public string Message;
|
|
|
|
private DateTime rpfmdBirthday, rpfmdStartDate, rpfmdEndDate;
|
|
|
|
public bool Valid
|
|
{
|
|
get
|
|
{
|
|
if (!string.IsNullOrEmpty(NAME)) { NAME = NAME.Trim(); }
|
|
if (!string.IsNullOrEmpty(BIRTHDAY)) { BIRTHDAY = BIRTHDAY.Trim(); }
|
|
if (!string.IsNullOrEmpty(IDNO)) { IDNO = IDNO.ToUpper().Trim(); }
|
|
if (!string.IsNullOrEmpty(START_DATE)) { START_DATE = START_DATE.Trim(); }
|
|
if (!string.IsNullOrEmpty(END_DATE)) { END_DATE = END_DATE.Trim(); }
|
|
|
|
var messages = new List<string>();
|
|
var valid = true;
|
|
|
|
WGuard1.CheckDate(BIRTHDAY, out rpfmdBirthday);
|
|
WGuard1.CheckDate(START_DATE, out rpfmdStartDate);
|
|
WGuard1.CheckDate(END_DATE, out rpfmdEndDate);
|
|
|
|
if (string.IsNullOrEmpty(NAME)) { valid = false; messages.Add("姓名未輸入"); }
|
|
if (string.IsNullOrEmpty(BIRTHDAY)) { valid = false; messages.Add("出生年月日未輸入"); }
|
|
if (!string.IsNullOrEmpty(BIRTHDAY) && rpfmdBirthday.Ticks == 0) { valid = false; messages.Add("出生年月日不正確"); }
|
|
if (string.IsNullOrEmpty(IDNO)) { valid = false; messages.Add("身份證字號未輸入"); }
|
|
if (!string.IsNullOrEmpty(IDNO) && WGuard1.WCheckIdCardNumber(IDNO) != 0) { valid = false; messages.Add("身份證字號不正確"); }
|
|
if (string.IsNullOrEmpty(RELATIONSHIP)) { valid = false; messages.Add("關係未選擇"); }
|
|
if (string.IsNullOrEmpty(DEDUCT)) { valid = false; messages.Add("減免比例未選擇"); }
|
|
if (string.IsNullOrEmpty(START_DATE)) { valid = false; messages.Add("加保日期未輸入"); }
|
|
if (!string.IsNullOrEmpty(START_DATE) && rpfmdStartDate.Ticks == 0) { valid = false; messages.Add("加保日期不正確"); }
|
|
if (!string.IsNullOrEmpty(END_DATE) && rpfmdEndDate.Ticks == 0) { valid = false; messages.Add("退保日期不正確"); }
|
|
if (rpfmdStartDate.Ticks > 0 && rpfmdEndDate.Ticks > 0 && rpfmdStartDate.Ticks > rpfmdEndDate.Ticks) { valid = false; messages.Add("退保日期不可先於加保日期"); }
|
|
|
|
Message = string.Join(" / ", messages.ToArray());
|
|
|
|
return valid;
|
|
}
|
|
}
|
|
|
|
public bool OnBoard
|
|
{
|
|
get
|
|
{
|
|
return string.IsNullOrEmpty(END_DATE);
|
|
}
|
|
}
|
|
|
|
public bool Equals(RPFMDItem obj)
|
|
{
|
|
return obj != null
|
|
&& NAME == obj.NAME
|
|
&& BIRTHDAY == obj.BIRTHDAY
|
|
&& IDNO == obj.IDNO
|
|
&& RELATIONSHIP == obj.RELATIONSHIP
|
|
&& DEDUCT == obj.DEDUCT
|
|
&& START_DATE == obj.START_DATE
|
|
&& END_DATE == obj.END_DATE;
|
|
}
|
|
}
|
|
|
|
public class RPFMDList : List<RPFMDItem> { } |