EchoTex_Payroll/HRM.DA/Service/Fund/Basic/GlobalFunctionService.cs

421 lines
13 KiB
C#
Raw Permalink Normal View History

2024-10-14 10:01:49 +06:00
using Ease.Core.DataAccess;
using Ease.Core.Model;
using Ease.Core.Utility;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using HRM.BO;
namespace HRM.DA
{
[Serializable]
public class GlobalFunctionService : ServiceTemplate, IGlobalFunctionService
{
public GlobalFunctionService()
{
}
public DateTime GetServerDate()
{
object serverDate = null;
if (serverDate != null)
return Convert.ToDateTime(serverDate);
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
serverDate = GlobalFunctionDA.ServerDate(tc);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
throw new ServiceException(e.Message, e);
#endregion
}
return Convert.ToDateTime(serverDate);
}
public DateTime GetServerDate(TransactionContext tc)
{
object serverDate = null;
try
{
tc = TransactionContext.Begin(true);
serverDate = GlobalFunctionDA.ServerDate(tc);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
throw new ServiceException(e.Message, e);
#endregion
}
return Convert.ToDateTime(serverDate);
}
public DefaultConfigurationValue RefreshServerValue()
{
int roundofDigit = new SystemConfigarationService().GetconfigIntValue(EnumConfigurationType.Logic, "root", "roundofdegit");
string DaysInmonth = Convert.ToString(new SystemConfigarationService().GetconfigValue(EnumConfigurationType.Logic, "root", "monthfraction"));
if (DaysInmonth == string.Empty)
{
DaysInmonth = "THIRTYDAYS";
}
return new DefaultConfigurationValue(roundofDigit, DaysInmonth, false);
}
public int GetdaysInMonth()
{
return 30;
}
public DateTime GetCurrentDate()
{
object currentDate = null;
if (currentDate != null)
return Convert.ToDateTime(currentDate);
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
currentDate = GlobalFunctionDA.CurrentDate(tc);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
throw new ServiceException(e.Message, e);
#endregion
}
return Convert.ToDateTime(currentDate);
}
public DateTime GetYearEndDate()
{
object yearEndDate = null;
if (yearEndDate != null)
return Convert.ToDateTime(yearEndDate);
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
yearEndDate = GlobalFunctionDA.GetYearEnd(tc);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
throw new ServiceException(e.Message, e);
#endregion
}
return Convert.ToDateTime(yearEndDate);
}
public DataTable AvailableUserObject()
{
DataTable dataTable = new DataTable("UserObjects");
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
IDataReader iDataReader = GlobalFunctionDA.AvailableUserObject(tc);
dataTable.Load(iDataReader);
iDataReader.Close();
tc.End();
}
catch (Exception e)
{
if (tc != null)
tc.HandleError();
throw new ServiceException(e.Message, e);
}
return dataTable;
}
//public DateTime GetOperationDate()
//{
// try
// {
// DateTime dateTime = DateTime.MaxValue;
// return dateTime;
// }
// catch (ServiceException e)
// {
// throw new Exception("Not implement in service\n" + e.Message, e);
// }
//}
public DateTime GetOperationDate()
{
DateTime opDate;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
opDate = GlobalFunctionDA.GetOperationDate(tc);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return opDate;
}
protected override T CreateObject<T>(DataReader dataReader)
{
GlobalFunctions globalFunctions = null; //new GlobalFunctions();
//MapObject(globalFunctions, dataReader);
return globalFunctions as T;
}
public static string GetMaxCode(TransactionContext tc, string TableName, string ColumnName)
{
string sCode = "";
int intValue = 0;
try
{
sCode = GlobalFunctionDA.GetMaxCode(tc, TableName, ColumnName);
if (sCode != "")
{
if (!int.TryParse(sCode, out intValue))
throw new ServiceException("Invalid code format; system can't do auto increment" + sCode);
intValue = intValue + 1;
}
else
intValue = 1;
int Codelength = 3;
if (Codelength < 1 || 10 < Codelength)
Codelength = 3;
return intValue.ToString().PadLeft(Codelength, '0');
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public static string GetMaxCode(TransactionContext tc, string parentTag, string childTag, string TableName,
string ColumnName)
{
string sCode = "";
int intValue = 0;
try
{
sCode = GlobalFunctionDA.GetMaxCode(tc, TableName, ColumnName);
if (sCode != "")
{
if (!int.TryParse(sCode, out intValue))
throw new ServiceException("Invalid code format; system can't do auto increment" + sCode);
intValue = intValue + 1;
}
else
intValue = 1;
int Codelength = 3;
if (parentTag != string.Empty && childTag != string.Empty)
Codelength = ConfigurationManager.GetAttributeIntValue(parentTag, childTag, "codelength",
EnumConfigurationType.Logic);
if (Codelength < 1 || 10 < Codelength)
Codelength = 3;
return intValue.ToString().PadLeft(Codelength, '0');
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public static string GetMaxCode(TransactionContext tc, string parentTag, string childTag, string TableName,
string ColumnName, int tier)
{
string sCode = "";
int intValue = 0;
try
{
sCode = GlobalFunctionDA.GetMaxCode(tc, TableName, ColumnName, tier);
if (sCode != "")
{
if (!int.TryParse(sCode, out intValue))
throw new ServiceException("Invalid code format; system can't do auto increment" + sCode);
intValue = intValue + 1;
}
else
intValue = 1;
int Codelength = 3;// ConfigurationManager.GetAttributeIntValue(parentTag, childTag, "codelength",EnumConfigurationType.Logic);
if (Codelength < 1 || 10 < Codelength)
Codelength = 3;
return intValue.ToString().PadLeft(Codelength, '0');
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
//public static string GetMaxCodeofTree(TransactionContext tc, string parentTag, string childTag,
// string TableName, string ColumnName, string parentCode, int Tier)
//{
// return GetMaxCodeofTree(tc, parentTag, childTag, TableName, ColumnName, string.Empty, string.Empty, parentCode, Tier);
//}
public static string GetMaxCodeofTree(TransactionContext tc, string parentTag, string childTag,
string TableName, string ColumnName, string IDColumnName, string parentIDColumnName, string parentCode,
int Tier)
{
string sCode = "";
int intValue = 0;
try
{
//#####
int Codelength =
3; //ConfigurationManager.GetAttributeIntValue(parentTag, childTag, "codelength", EnumConfigurationType.Logic);
if (Codelength < 1 || 10 < Codelength)
Codelength = 3;
//####
if(TableName.ToLower()=="department")
{
Codelength = 4;
}
if (TableName.ToLower() == "assetcategory")
{
Codelength = 1;
}
bool
isAutoGenerated =
true; //ConfigurationManager.GetBoolValue(parentTag, childTag, EnumConfigurationType.Logic);
if (isAutoGenerated == true)
{
//if (string.IsNullOrWhiteSpace(parentIDColumnName))
//{
// sCode = GlobalFunctionDA.GetMaxCode(tc, TableName, ColumnName, Tier);
//}
//else
//{
sCode = GlobalFunctionDA.GetMaxCode(tc, TableName, ColumnName, IDColumnName, parentIDColumnName,
parentCode, Tier);
//}
}
if (sCode != "")
{
//if (sCode.Length > parentCode.Length)
//{
// sCode = sCode.Substring(parentCode.Length + 1, (sCode.Length - parentCode.Length) - 1);
//}
//else throw new ServiceException("Invalid Code format:" + sCode);
//if (!int.TryParse(sCode, out intValue))
// throw new ServiceException("Invalid code format; system can't do auto increment" + sCode);
int idx = sCode.LastIndexOf('.');
if (idx != -1)
{
intValue = Convert.ToInt32(sCode[(idx + 1)..]);
}
if (idx == -1 && Tier == 1)
{
intValue = Convert.ToInt32(sCode);
}
intValue = intValue + 1;
}
else intValue = 1;
return ((parentCode == "") ? "" : parentCode + ".") + intValue.ToString().PadLeft(Codelength, '0');
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
}
}