EchoTex_Payroll/HRM.DA/DA/Letter/LetterRequestDA.cs

403 lines
18 KiB
C#
Raw Normal View History

2024-10-14 10:01:49 +06:00
using HRM.BO;
using Ease.Core.DataAccess;
using System;
using System.Data;
namespace HRM.DA
{
#region LetterRequest
public class LetterRequestDA
{
#region Constructor
private LetterRequestDA() { }
#endregion
#region Insert function
internal static void Insert(TransactionContext tc, LetterRequest item)
{
string sql = SQLParser.MakeSQL(@"
INSERT INTO LETTERREQUEST
(
LETTERREQUESTID,
NAME,
EMPLOYEEID,
DESIGNATION,
DEPARTMENT,
PURPOSE,
PURPOSENAME,
ADDRESSLINE1,
ADDRESSLINE2,
REMARKS,
FROMDATE,
TODATE,
ApprovalNeeded,
Status,
CREATEDBY,
CREATIONDATE,
WfStatus,
COUNTRYTOVISIT,
conferrencename,
Organizer,
Hostingcity,
BankEmpDesignation,
Bank,
BankLocation,
Barcode,VisaType,ApproverId,ApprovalDate,RejectComment,ORGANIZATIONID,ORGANIZATIONTYPE,LETTERREQUESTDATE,CountryId,PassportNo,Nationality,AddressLine3,LastWorkingDate,
AuthorizedPersonId,RecipeintDesignation,IsDisgitalSinature,TripType
)
VALUES
(
%n,
%s,
%n,
%s,
%s,
%n,
%s,
%s,
%s,
%s,
%d,
%d,
%n,
%n,
%n,
%d,
%n,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,%n,%n,%d,%s,%n,%n,%d,%n,%s,%s,%s,%d,%n,%s,%b,%n
)",
item.ID, item.Name, item.EmployeeId,
item.Designation, item.Department, item.Purpose, item.PurposeName, item.AddressLine1, item.AddressLine2, item.Remarks,
DataReader.GetNullValue(item.FromDate), DataReader.GetNullValue(item.ToDate), item.ApprovalNeeded, item.Status,
item.CreatedBy,
DataReader.GetNullValue(item.CreatedDate), item.WfStatus, item.CountryToVisit, item.ConferenceName, item.Organizer, item.Hostingcity,
item.BankEmpDesignation, item.Bank, item.BankLocation, item.Barcode, item.VisaType, item.ApproverId, item.ApprovalDate, item.RejectComment,item.OrganizationId,(int)item.OrganizationType,
item.RequestDate,item.CountryId,item.PassportNo,item.Nationality,item.AddressLine3,item.LastWorkingDate,item.SignatoryId,item.RecipeintDesignation,item.IsDisgitalSinature,(int)item.TripType);
tc.ExecuteNonQuery(sql);
}
#endregion
#region Update function
internal static void Update(TransactionContext tc, LetterRequest item)
{
string sql = SQLParser.MakeSQL(@"UPDATE LETTERREQUEST
SET
NAME = %s,
EMPLOYEEID = %n,
DESIGNATION = %s,
DEPARTMENT = %s,
PURPOSE = %n,
PURPOSENAME = %s,
ADDRESSLINE1 = %s,
ADDRESSLINE2 = %s,
REMARKS = %s,
FROMDATE = %d,
TODATE = %d,
ApprovalNeeded = %n,
Status = %n,
MODIFIEDBY = %n,
MODIFIEDDATE = %d,WfStatus=%n,
COUNTRYTOVISIT = %s,
conferrencename = %s,
Organizer = %s,
Hostingcity = %s, BankEmpDesignation=%s,Bank=%s,BankLocation=%s,Barcode=%s,VisaType=%n,ApproverId=%n,ApprovalDate=%d,RejectComment=%s,ORGANIZATIONID=%n,ORGANIZATIONTYPE=%n,RecipeintDesignation=%s,IsDisgitalSinature=%b,TripType=%n WHERE LETTERREQUESTID = %n",
item.Name, item.EmployeeId,
item.Designation, item.Department, item.Purpose, item.PurposeName, item.AddressLine1, item.AddressLine2, item.Remarks,
DataReader.GetNullValue(item.FromDate), DataReader.GetNullValue(item.ToDate),
item.ApprovalNeeded, item.Status,
item.ModifiedBy,
DataReader.GetNullValue(item.ModifiedDate), item.WfStatus, item.CountryToVisit, item.ConferenceName, item.Organizer, item.Hostingcity,
item.BankEmpDesignation, item.Bank, item.BankLocation, item.Barcode, item.VisaType, item.ApproverId, item.ApprovalDate, item.RejectComment,item.Organizer,(int)item.OrganizationType,item.RecipeintDesignation,item.IsDisgitalSinature,item.TripType,
item.ID);
tc.ExecuteNonQuery(sql);
}
#endregion
#region Get Function
internal static IDataReader Get(TransactionContext tc, int nID)
{
return tc.ExecuteReader("SELECT * FROM LetterRequest where LETTERREQUESTID=%n", nID);
}
internal static IDataReader GetByEmployee(TransactionContext tc, int nID)
{
return tc.ExecuteReader("SELECT * FROM LetterRequest where EMPLOYEEID=%n", nID);
}
internal static IDataReader Get(TransactionContext tc)
{
return tc.ExecuteReader("SELECT * FROM LetterRequest");
}
internal static DataSet GetLetterRequests(TransactionContext tc, int id)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE l.EMPLOYEEID = %n ORDER BY l.LETTERREQUESTID DESC", id);
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
internal static DataSet GetLetterRequestsForApproval(TransactionContext tc)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT sg.get(e.EMPLOYEENO) EmployeeNo, sg.get(e.NAME) EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE l.WFSTATUS = 2 AND l.PURPOSE != 5 AND l.PURPOSE != 8");
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
internal static DataSet GetLetterRequestsForApprovalForSC(TransactionContext tc)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT sg.get(e.EMPLOYEENO) EmployeeNo, sg.get(e.NAME) EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE l.WFSTATUS = 2 AND (l.PURPOSE = 5 OR l.PURPOSE = 8)");
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
internal static DataSet GetPendingLetterRequest(TransactionContext tc)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE (l.PURPOSE = 5 OR l.PURPOSE = 8)");
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
internal static DataSet GetRequestedLetterRequest(TransactionContext tc, DateTime? fromDate, DateTime? toDate,int empId)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
if (fromDate != null)
{
sql = SQLParser.TagSQL(sql) + SQLParser.MakeSQL("CAST(l.CREATIONDATE as DATE) >= CAST(%d as Date)", fromDate);
}
if (toDate != null)
{
sql = SQLParser.TagSQL(sql) + SQLParser.MakeSQL("CAST(l.CREATIONDATE as DATE) <= CAST(%d as Date)", toDate);
}
if (empId > 0)
{
sql = SQLParser.TagSQL(sql) + SQLParser.MakeSQL("e.EMPLOYEEID = %n", empId);
}
sql = SQLParser.TagSQL(sql) + SQLParser.MakeSQL("l.PURPOSE NOT IN (5,8)"); //salary certificate && salary concern
string sqlQuery = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID %q", sql);
dSet = tc.ExecuteDataSet(sqlQuery);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
internal static DataSet GetLetterRequestsHistory(TransactionContext tc, string fromDate, string toDate)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
if (string.IsNullOrEmpty(fromDate) || string.IsNullOrEmpty(toDate))
sql = SQLParser.MakeSQL(@"SELECT sg.get(e.EMPLOYEENO) EmployeeNo, sg.get(e.NAME) EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE l.PURPOSE != 5 AND l.PURPOSE != 8 ORDER BY l.CREATIONDATE DESC, l.STATUS");
else
sql = SQLParser.MakeSQL(@"SELECT sg.get(e.EMPLOYEENO) EmployeeNo, sg.get(e.NAME) EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE l.CREATIONDATE >= %d AND l.CREATIONDATE <= %d AND l.PURPOSE != 5 AND l.PURPOSE != 8 ORDER BY l.CREATIONDATE DESC, l.STATUS", DateTime.Parse(fromDate), DateTime.Parse(toDate));
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
internal static DataSet GetLetterRequestsHistoryForSc(TransactionContext tc, string fromDate, string toDate)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
if (string.IsNullOrEmpty(fromDate) || string.IsNullOrEmpty(toDate))
sql = SQLParser.MakeSQL(@"SELECT sg.get(e.EMPLOYEENO) EmployeeNo, sg.get(e.NAME) EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE (l.PURPOSE = 5 OR l.PURPOSE = 8) ORDER BY l.CREATIONDATE DESC, l.STATUS");
else
sql = SQLParser.MakeSQL(@"SELECT sg.get(e.EMPLOYEENO) EmployeeNo, sg.get(e.NAME) EmployeeName,l.* FROM LetterRequest l INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID WHERE l.CREATIONDATE >= %d AND l.CREATIONDATE <= %d AND (l.PURPOSE = 5 OR l.PURPOSE = 8) ORDER BY l.CREATIONDATE DESC, l.STATUS", DateTime.Parse(fromDate), DateTime.Parse(toDate));
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
internal static DataSet GetHospital(TransactionContext tc)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT * FROM HOSPITAL ORDER BY CODE");
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "Hospital";
return dSet;
}
internal static DataSet GetGrossItems(TransactionContext tc, int employeeId, DateTime salaryMonth)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT smd.DESCRIPTION, smd.CHANGEDAMOUNT FROM SALARYMONTHLY sm INNER JOIN SALARYMONTHLYDETAIL smd
ON sm.SALARYMONTHLYID = smd.SALARYMONTHLYID
WHERE sm.SALARYMONTH = %d AND sm.EMPLOYEEID = %n", salaryMonth, employeeId);
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "GrossItems";
return dSet;
}
internal static DataSet GetDivisionOfEmployee(TransactionContext tc, string employeeNo, string divisionOrDept)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
try
{
string machineName = "SalaryCertificateView";//Environment.MachineName;
machineName = machineName.Substring(0, 5) + DateTime.Now.ToString("hhmmss"); //Environment.MachineName;
EmployeeDA.CreateEmpBasicView(tc, machineName);
sql = SQLParser.MakeSQL(@"SELECT %q FROM %q WHERE EMPLOYEENO = %s", divisionOrDept, "VW_EMPLOYEEBASIC_" + machineName, employeeNo);
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "EmpDivision";
EmployeeDA.DropEmpBasicView(tc, machineName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return dSet;
}
internal static DataSet GetOrganization(TransactionContext tc)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT * FROM ORGANIZATION ORDER BY CODE");
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "ORGANIZATION";
return dSet;
}
internal static DataSet GetOrganizationByOrganizationType(TransactionContext tc, EnumLetterOrganizationType type)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT * FROM ORGANIZATION WHERE ORGANIZATIONTYPE = %n ORDER BY CODE", type);
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "ORGANIZATION";
return dSet;
}
#endregion
#region Delete function
internal static void Delete(TransactionContext tc, int nID)
{
tc.ExecuteNonQuery("DELETE FROM LetterRequest WHERE LetterRequestID=%n", nID);
}
internal static DataSet GetHospitalInsurance(TransactionContext tc)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT * FROM HOSPITAL WHERE TYPE IN (1,3) ORDER BY CODE");
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "Hospital";
return dSet;
}
internal static DataSet GetHospitalDirect(TransactionContext tc)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT * FROM HOSPITAL WHERE TYPE IN (2,3) ORDER BY CODE");
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "Hospital";
return dSet;
}
internal static void UpdateLetterRequestStatus(TransactionContext tc, int pkid, EnumLetterRequestStatus status)
{
string ssql = "";
ssql = SQLParser.MakeSQL(
"UPDATE LetterRequest SET Status=%n WHERE LetterRequestID=%n",
(int)status,
pkid);
tc.ExecuteNonQuery(ssql);
}
internal static DataSet GetLetterRequestForApproval(TransactionContext tc, int id)
{
DataSet dSet = new DataSet();
string sql = string.Empty;
sql = SQLParser.MakeSQL(@"SELECT e.EMPLOYEENO EmployeeNo, e.NAME EmployeeName,d.description deptName,d2.Name Designation,
org.Name Organization, l.*
FROM LetterRequest l
INNER JOIN EMPLOYEE e ON l.EMPLOYEEID = e.EMPLOYEEID
INNER JOIN DEPARTMENT AS d ON e.DEPARTMENTID=d.DEPARTMENTID
INNER JOIN DESIGNATION AS d2 ON d2.DESIGNATIONID = e.DESIGNATIONID
LEFT JOIN ORGANIZATION AS org ON org.ORGANIZATIONID = l.ORGANIZATIONID
WHERE l.LETTERREQUESTID =%n ORDER BY l.LETTERREQUESTID DESC", id);
dSet = tc.ExecuteDataSet(sql);
dSet.Tables[0].TableName = "LetterRequests";
return dSet;
}
#endregion
}
#endregion
}