215 lines
6.5 KiB
C#
215 lines
6.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.Script.Services;
|
|
using System.Web.Services;
|
|
using Wellan.Common;
|
|
using Wellan.Data;
|
|
|
|
/// <summary>
|
|
/// wmBpsn 的摘要描述
|
|
/// </summary>
|
|
[WebService(Namespace = "http://tempuri.org/")]
|
|
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
|
|
[ScriptService]
|
|
public class wmBpsn : System.Web.Services.WebService
|
|
{
|
|
|
|
public wmBpsn()
|
|
{
|
|
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("zh-TW");
|
|
ci.DateTimeFormat.Calendar = new System.Globalization.TaiwanCalendar();
|
|
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
|
|
}
|
|
|
|
private WQuery GetQuery()
|
|
{
|
|
string ConnectionConfigName = WConfig.GetConnectionConfigName();
|
|
WConnectionString.ConnectionConfigFile = WConfig.GetConnectionConfig();
|
|
string ConnectionString = WConnectionString.GetConnectionString(ConnectionConfigName);
|
|
string ConnectionType = WConnectionString.GetConnectionType(ConnectionConfigName);
|
|
return new WQuery(ConnectionType, ConnectionString);
|
|
}
|
|
|
|
private GetDataResponse CheckInput(RPSBItem prev, RPSBSaveItem saveRecord)
|
|
{
|
|
var result = 0;
|
|
var message = "";
|
|
|
|
if (!saveRecord.IsValid)
|
|
{
|
|
result = -1;
|
|
message = saveRecord.Message;
|
|
}
|
|
else if (prev != null)
|
|
{
|
|
if (saveRecord.RPDAT_DATE < prev.RPDAT)
|
|
{
|
|
result = -1;
|
|
message = "異動日期不可小於前一筆的異動日期";
|
|
}
|
|
else if (prev.OnBoard && saveRecord.OnBoard)
|
|
{
|
|
result = -1;
|
|
message = "異動類別不合理(連續兩個在職)";
|
|
}
|
|
else if (prev.OffBoard && !prev.Quit && saveRecord.OffBoard && !saveRecord.Quit)
|
|
{
|
|
result = -1;
|
|
message = "異動類別不合理(連續兩個留職停薪)";
|
|
}
|
|
else if (prev.Quit && saveRecord.Quit)
|
|
{
|
|
result = -1;
|
|
message = "異動類別不合理(連續兩個離職)";
|
|
}
|
|
else if (prev.Quit && saveRecord.OffBoard && !saveRecord.Quit)
|
|
{
|
|
result = -1;
|
|
message = "異動類別不合理(離職後留職停薪)";
|
|
}
|
|
else if (prev.OffBoard && saveRecord.DeptChange)
|
|
{
|
|
result = -1;
|
|
message = "異動類別不合理(不在職時部門調動)";
|
|
}
|
|
}
|
|
|
|
if (result == 0)
|
|
{
|
|
return null;
|
|
}
|
|
else
|
|
{
|
|
return new GetDataResponse()
|
|
{
|
|
Result = -1,
|
|
Data = null,
|
|
Message = message
|
|
};
|
|
}
|
|
}
|
|
|
|
[WebMethod(EnableSession = true)]
|
|
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
|
|
public GetDataResponse GetRPSBList(string rpeno)
|
|
{
|
|
var query = GetQuery();
|
|
var dao = new RpsbDAC(query);
|
|
var d = dao.Select(rpeno);
|
|
return new GetDataResponse()
|
|
{
|
|
Result = 0,
|
|
Data = Newtonsoft.Json.JsonConvert.SerializeObject(d)
|
|
};
|
|
}
|
|
|
|
[WebMethod(EnableSession = true)]
|
|
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
|
|
public GetDataResponse AddRPSB(string record)
|
|
{
|
|
var saveRecord = Newtonsoft.Json.JsonConvert.DeserializeObject<RPSBSaveItem>(record);
|
|
if (!saveRecord.IsValid)
|
|
{
|
|
return new GetDataResponse()
|
|
{
|
|
Result = -1,
|
|
Data = null,
|
|
Message = saveRecord.Message
|
|
};
|
|
}
|
|
|
|
var query = GetQuery();
|
|
var dao = new RpsbDAC(query);
|
|
var rpitm = dao.NextRPITM(saveRecord.RPENO);
|
|
var prev = dao.SelectLast(saveRecord.RPENO, 0);
|
|
|
|
var checkResult = CheckInput(prev, saveRecord);
|
|
if (checkResult != null)
|
|
{
|
|
return checkResult;
|
|
}
|
|
|
|
var newRecord = new RPSBItem()
|
|
{
|
|
RPENO = saveRecord.RPENO,
|
|
RPITM = rpitm,
|
|
RPCLS = saveRecord.RPCLS,
|
|
RPDAT = saveRecord.RPDAT_DATE,
|
|
RPODT = saveRecord.DeptChange ? dao.PrevRPDPT(saveRecord.RPENO, rpitm) : "",
|
|
RPDPT = saveRecord.RPDPT,
|
|
RPDOC = saveRecord.RPDOC
|
|
};
|
|
|
|
var d = dao.InsertOne(newRecord);
|
|
return new GetDataResponse()
|
|
{
|
|
Result = d ? 0 : -1,
|
|
Data = d.ToString()
|
|
};
|
|
}
|
|
|
|
[WebMethod(EnableSession = true)]
|
|
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
|
|
public GetDataResponse UpdateRPSB(string record)
|
|
{
|
|
var saveRecord = Newtonsoft.Json.JsonConvert.DeserializeObject<RPSBSaveItem>(record);
|
|
var query = GetQuery();
|
|
var dao = new RpsbDAC(query);
|
|
var prev = dao.SelectLast(saveRecord.RPENO, saveRecord.RPITM);
|
|
|
|
var checkResult = CheckInput(prev, saveRecord);
|
|
if (checkResult != null)
|
|
{
|
|
return checkResult;
|
|
}
|
|
|
|
var updateRecord = new RPSBItem()
|
|
{
|
|
RPENO = saveRecord.RPENO,
|
|
RPITM = saveRecord.RPITM,
|
|
RPCLS = saveRecord.RPCLS,
|
|
RPDAT = saveRecord.RPDAT_DATE,
|
|
RPODT = saveRecord.DeptChange ? dao.PrevRPDPT(saveRecord.RPENO, saveRecord.RPITM) : "",
|
|
RPDPT = saveRecord.RPDPT,
|
|
RPDOC = saveRecord.RPDOC
|
|
};
|
|
|
|
var d = dao.UpdateOne(updateRecord);
|
|
return new GetDataResponse()
|
|
{
|
|
Result = d ? 0 : -1,
|
|
Data = d.ToString()
|
|
};
|
|
}
|
|
|
|
[WebMethod(EnableSession = true)]
|
|
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
|
|
public GetDataResponse DeleteRPSB(string rpeno, int rpitm)
|
|
{
|
|
var query = GetQuery();
|
|
var dao = new RpsbDAC(query);
|
|
var d = dao.DeleteOne(rpeno, rpitm);
|
|
return new GetDataResponse()
|
|
{
|
|
Result = d ? 0 : -1,
|
|
Data = d.ToString()
|
|
};
|
|
}
|
|
|
|
[WebMethod(EnableSession = true)]
|
|
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
|
|
public GetDataResponse GetRASNList(string bpeno)
|
|
{
|
|
var query = GetQuery();
|
|
var dao = new RasnDAC(query);
|
|
var d = dao.SelectHistoryByEmployee(bpeno);
|
|
return new GetDataResponse()
|
|
{
|
|
Result = 0,
|
|
Data = Newtonsoft.Json.JsonConvert.SerializeObject(d)
|
|
};
|
|
}
|
|
}
|