CEL_Payroll/Payroll.Report/Attendence/Class/AttendanceReport.cs
2024-09-17 14:30:13 +06:00

851 lines
37 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Payroll.BO;
using Ease.CoreV35.Model;
using System.Windows.Forms;
using Payroll.BO;
using Payroll.Report.PayrollDataSet;
using Microsoft.Reporting.WinForms;
using System.IO;
namespace Payroll.Report
{
public class AttendanceReport
{
#region Declaration & Construction
private EnumAttendanceType _attnType;
private string _localPhotLocationName = "LocalFolder";
private PhotoPath _oPhotopath;
private FileAccessWithImpersonation fAccessImpersonation;
private ReportSetup _selectedParameter;
public ReportSetup SelectedParameter
{
set
{
_selectedParameter = value;
}
}
public AttendanceReport()
{
_oPhotopath = PhotoPath.Get().FirstOrDefault();
fAccessImpersonation = new FileAccessWithImpersonation();
}
#endregion
#region Private Functions
private string GetShortAttnType(EnumAttendanceType attnType)
{
string type = string.Empty;
switch (attnType)
{
case EnumAttendanceType.Absent:
type = "A";
break;
case EnumAttendanceType.Delay:
type = "L";
break;
case EnumAttendanceType.Holiday:
type = "H";
break;
case EnumAttendanceType.Late:
type = "L";
break;
case EnumAttendanceType.Leave:
type = "Lv";
break;
case EnumAttendanceType.Present:
type = "P";
break;
case EnumAttendanceType.OutSideDuty:
type = "OD";
break;
case EnumAttendanceType.Early:
type = "E";
break;
case EnumAttendanceType.WeeklyHoliday:
type = "W";
break;
}
return type;
}
private string GetLeaveType(ID ReferenceID)
{
string leaveType = "Lv";
Leave leave = null;
if (ReferenceID.Integer != 0)
{
leave = new Leave();
leave = leave.Get(ReferenceID);
if (leave != null)
{
leaveType = leave.Code;
}
}
return leaveType;
}
private string GetEmployeePicture(string databasePhotoPath)
{
string newPhotoPath = string.Empty;
try
{
string currDir = Directory.GetCurrentDirectory();
currDir = currDir.Trim('\\') + "\\" + _localPhotLocationName + "\\";
if (!Directory.Exists(currDir))
{
Directory.CreateDirectory(currDir);
}
byte[] bytes = fAccessImpersonation.GetFileInBytes(_oPhotopath.EmployeePhoto, databasePhotoPath);
newPhotoPath = currDir + databasePhotoPath;
File.WriteAllBytes(newPhotoPath, bytes);
}
catch (Exception)
{
newPhotoPath = string.Empty;
}
return newPhotoPath;
}
private void RemoveTempPicturePath()
{
string currDir = Directory.GetCurrentDirectory();
currDir = currDir.Trim('\\') + "\\" + _localPhotLocationName + "\\";
if (Directory.Exists(currDir))
{
Directory.Delete(currDir,true);
}
}
#endregion
#region Report Functions
public void GetDailyInOut()
{
fReportViewer form = new fReportViewer();
DateTime attnDate = _selectedParameter.FromDate.Value;
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oDailyInOut = null;
DataRow oDR = null;
oDailyInOut = DailyAttnProcess.GetDailyInOut(attnDate, sEmpID);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable();
foreach (DataRow Dr in oDailyInOut.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["Designation"] = Dr["Designation"];
oDR["InTime"] = Dr["InTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["InTime"]).ToString("HH:mm");
oDR["OutTime"] = Dr["OutTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["OutTime"]).ToString("HH:mm");
oDR["EmpType"] = Dr["EmpType"].ToString();
oDR["Status"] = GetShortAttnType((EnumAttendanceType)(Convert.ToInt32(Dr["Status"])));
oDR["OTHour"] = Convert.ToDouble(Dr["OTHour"]).ToString("00.00");
oDR["DeptID"] = Convert.ToInt32(Dr["DeptID"].ToString());
oDR["DeptName"] = Dr["DeptName"].ToString();
oDR["Shift"] = Dr["Shift"].ToString();
oDR["CardNo"] = Dr["CardNo"].ToString();
dTable.Rows.Add(oDR);
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_DailyInOut";
dSet.Tables.Add(dTable);
string RDLC = "Payroll.Report.Attendence.RDLC.DailyInOut.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
rParam = new ReportParameter("AttnDate", attnDate.ToString("dd MMM yyyy"));
_reportParameters.Add(rParam);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet, _reportParameters);
}
public void GetDailyAbsent()
{
fReportViewer form = new fReportViewer();
DateTime attnDate = _selectedParameter.FromDate.Value;
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oDailyInOut = null;
DataRow oDR = null;
oDailyInOut = DailyAttnProcess.GetDailyDataByStatus(attnDate, sEmpID,EnumAttendanceType.Absent);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable();
foreach (DataRow Dr in oDailyInOut.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["Designation"] = Dr["Designation"];
oDR["InTime"] = Dr["InTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["InTime"]).ToString("HH:mm");
oDR["OutTime"] = Dr["OutTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["OutTime"]).ToString("HH:mm");
oDR["EmpType"] = Dr["EmpType"].ToString();
oDR["Status"] = GetShortAttnType((EnumAttendanceType)(Convert.ToInt32(Dr["Status"])));
oDR["OTHour"] = Convert.ToDouble(Dr["OTHour"]).ToString("00.00");
oDR["DeptID"] = Convert.ToInt32(Dr["DeptID"].ToString());
oDR["DeptName"] = Dr["DeptName"].ToString();
oDR["Shift"] = Dr["Shift"].ToString();
oDR["CardNo"] = Dr["CardNo"].ToString();
dTable.Rows.Add(oDR);
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_DailyInOut";
dSet.Tables.Add(dTable);
string RDLC = "Payroll.Report.Attendence.RDLC.DailyAbsent.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
rParam = new ReportParameter("AttnDate", attnDate.ToString("dd MMM yyyy"));
_reportParameters.Add(rParam);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet, _reportParameters);
}
public void GetDailyPresent()
{
fReportViewer form = new fReportViewer();
DateTime attnDate = _selectedParameter.FromDate.Value;
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oDailyInOut = null;
DataRow oDR = null;
oDailyInOut = DailyAttnProcess.GetDailyDataByStatus(attnDate, sEmpID, EnumAttendanceType.Present);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable();
foreach (DataRow Dr in oDailyInOut.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["Designation"] = Dr["Designation"];
oDR["InTime"] = Dr["InTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["InTime"]).ToString("HH:mm");
oDR["OutTime"] = Dr["OutTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["OutTime"]).ToString("HH:mm");
oDR["EmpType"] = Dr["EmpType"].ToString();
oDR["Status"] = GetShortAttnType((EnumAttendanceType)(Convert.ToInt32(Dr["Status"])));
oDR["OTHour"] = Convert.ToDouble(Dr["OTHour"]).ToString("00.00");
oDR["DeptID"] = Convert.ToInt32(Dr["DeptID"].ToString());
oDR["DeptName"] = Dr["DeptName"].ToString();
oDR["Shift"] = Dr["Shift"].ToString();
oDR["CardNo"] = Dr["CardNo"].ToString();
dTable.Rows.Add(oDR);
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_DailyInOut";
dSet.Tables.Add(dTable);
string RDLC = "Payroll.Report.Attendence.RDLC.DailyPresent.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
rParam = new ReportParameter("AttnDate", attnDate.ToString("dd MMM yyyy"));
_reportParameters.Add(rParam);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet, _reportParameters);
}
public void GetDailyLeave()
{
fReportViewer form = new fReportViewer();
DateTime attnDate = _selectedParameter.FromDate.Value;
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oDailyInOut = null;
DataRow oDR = null;
oDailyInOut = DailyAttnProcess.GetDailyDataByStatus(attnDate, sEmpID, EnumAttendanceType.Leave);
List<Leave> oLeaves = Leave.Get();
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable();
foreach (DataRow Dr in oDailyInOut.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["Designation"] = Dr["Designation"];
oDR["InTime"] = Dr["InTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["InTime"]).ToString("HH:mm");
oDR["OutTime"] = Dr["OutTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["OutTime"]).ToString("HH:mm");
oDR["EmpType"] = Dr["EmpType"].ToString();
oDR["OTHour"] = Convert.ToDouble(Dr["OTHour"]).ToString("00.00");
oDR["DeptID"] = Convert.ToInt32(Dr["DeptID"].ToString());
oDR["DeptName"] = Dr["DeptName"].ToString();
oDR["Shift"] = string.Empty; // Dr["Shift"].ToString();
oDR["CardNo"] = Dr["CardNo"].ToString();
// We know it is Leave
// We get what type of leave from ReferenceID
if (Dr["ReferenceID"] != DBNull.Value)
{
Leave oLeave = oLeaves.Where(l => l.ID.Integer == Convert.ToInt32(Dr["ReferenceID"].ToString())).FirstOrDefault();
if (oLeave != null)
oDR["Status"] = oLeave.Code;
else
oDR["Status"] = string.Empty;
}
else
{
oDR["Status"] = string.Empty;
}
dTable.Rows.Add(oDR);
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_DailyInOut";
dSet.Tables.Add(dTable);
string RDLC = "Payroll.Report.Attendence.RDLC.DailyLeave.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
rParam = new ReportParameter("AttnDate", attnDate.ToString("dd MMM yyyy"));
_reportParameters.Add(rParam);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet, _reportParameters);
}
public void GetEmpAttenInfo()
{
fReportViewer form = new fReportViewer();
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oEmpAttenInfo = null;
DataRow oDR = null;
oEmpAttenInfo = DailyAttnProcess.GetEmpAttenInfo(sEmpID);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpAttenInfoDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpAttenInfoDataTable();
//int serial = 1;
foreach (DataRow Dr in oEmpAttenInfo.Tables[0].Rows)
{
oDR = dTable.NewRow();
//oDR["Serial"] = serial.ToString();
oDR["EmpNo"] = Dr["EMPLOYEENO"];
oDR["EmpName"] = Dr["Name"];
oDR["AccessCardID"] = Dr["CardNumber"];
oDR["Shift"] = Dr["ShortName"];
oDR["WorkPlanGroup"] = Dr["Name1"];
dTable.Rows.Add(oDR);
//serial++;
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_EmpAttenInfo";
string RDLC = "Payroll.Report.Attendence.RDLC.EmpAttenInfo.rdlc";
dSet.Tables.Add(dTable);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet);
}
public void GetMonthlyAttn()
{
fReportViewer form = new fReportViewer();
DateTime dFromDate = _selectedParameter.FromDate.Value;
// DateTime dToDate = _selectedParameter.ToDate.Value;
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oMonthlyAttn = null;
DataRow oDR = null;
oMonthlyAttn = DailyAttnProcess.GetMonthlyAttn(GlobalFunctions.FirstDateOfMonth(dFromDate), GlobalFunctions.LastDateOfMonth(dFromDate), sEmpID);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.MonthlyAttnDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.MonthlyAttnDataTable();
foreach (DataRow Dr in oMonthlyAttn.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EmpNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["NAME"];
oDR["CardNo"] = Dr["CardNo"].ToString();
oDR["Designation"] = Dr["Designation"];
oDR["Grade"] = Dr["Grade"];
oDR["JoinDate"] = Convert.ToDateTime(Dr["JOININGDATE"]).ToString("dd MMM yyyy");
oDR["GrossSalary"] = Convert.ToDouble(Dr["GROSSSALARY"]);
oDR["Present"] = Dr["Present"] is DBNull ? 0 : Dr["Present"];
oDR["Late"] = Dr["Late"] is DBNull ? 0 : Dr["Late"];
oDR["Absent"] = Dr["Absent"] is DBNull ? 0 : Dr["Absent"];
oDR["Holiday"] = Dr["Holiday"] is DBNull ? 0 : Dr["Holiday"];
oDR["Leave"] = Dr["Leave"] is DBNull ? 0 : Dr["Leave"];
oDR["TotalAttn"] = Dr["TotalAttn"];
string TotalOT = Convert.ToDouble(Dr["TotalOT"]).ToString("00.00");
oDR["TotalOT"] = TotalOT.Replace('.', ':');
oDR["Remarks"] = "";
dTable.Rows.Add(oDR);
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_MonthlyAttn";
string RDLC = "Payroll.Report.Attendence.RDLC.MonthlyAttn.rdlc";
dSet.Tables.Add(dTable);
List<ReportParameter> _parameters = new List<ReportParameter>();
ReportParameter rParam = new ReportParameter("FromDate", GlobalFunctions.FirstDateOfMonth(dFromDate).ToString("dd MMM yyyy"));
_parameters.Add(rParam);
rParam = new ReportParameter("ToDate", GlobalFunctions.LastDateOfMonth(dFromDate).ToString("dd MMM yyyy"));
_parameters.Add(rParam);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet, _parameters);
}
public void GetMonthlyDetail()
{
fReportViewer form = new fReportViewer();
DateTime dFromDate = _selectedParameter.FromDate.Value;
//DateTime dToDate = _selectedParameter.ToDate.Value;
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oMonthlyDetail = null;
DataRow oDR = null;
oMonthlyDetail = DailyAttnProcess.GetMonthlyDetail(GlobalFunctions.FirstDateOfMonth(dFromDate), GlobalFunctions.LastDateOfMonth(dFromDate), sEmpID);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.MonthlyDetailDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.MonthlyDetailDataTable();
//int serial = 1;
foreach (DataRow Dr in oMonthlyDetail.Tables[0].Rows)
{
oDR = dTable.NewRow();
//oDR["Serial"] = serial.ToString();
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["CardNo"] = Dr["CardNo"].ToString();
oDR["Designation"] = Dr["Designation"];
oDR["JoinDate"] = Convert.ToDateTime(Dr["JOININGDATE"]).ToString("dd MMM yyyy");
oDR["Gross"] = Convert.ToDouble(Dr["GROSSSALARY"]);
oDR["AttnDate"] = Convert.ToDateTime(Dr["AttnDate"]).ToString("dd/MM/yy");
oDR["AttnType"] = GetShortAttnType((EnumAttendanceType)(Convert.ToInt32(Dr["AttnType"])));
dTable.Rows.Add(oDR);
//serial++;
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_MonthlyDetail";
string RDLC = "Payroll.Report.Attendence.RDLC.MonthlyDetailAttn.rdlc";
dSet.Tables.Add(dTable);
List<ReportParameter> _parameters = new List<ReportParameter>();
ReportParameter rParam = new ReportParameter("Fromdate", GlobalFunctions.FirstDateOfMonth(dFromDate).ToString("dd MMM yyyy"));
_parameters.Add(rParam);
rParam = new ReportParameter("ToDate", GlobalFunctions.LastDateOfMonth(dFromDate).ToString("dd MMM yyyy"));
_parameters.Add(rParam);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet, _parameters);
}
public DataTable GetEmpDailyAttn(ID EmpID, DateTime dFromDate, DateTime dToDate)
{
ObjectsTemplate<DailyAttnProcess> dAttnProcessess = new ObjectsTemplate<DailyAttnProcess>();
dAttnProcessess = DailyAttnProcess.Get(EmpID, dFromDate, dToDate);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpDailyAttnDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpDailyAttnDataTable();
//PayrollDataSet.PayrollDataSet.LaonPaymentDueDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.LaonPaymentDueDataTable();
List<Shift> oShifts = Shift.Get();
if (!(dAttnProcessess == null || dAttnProcessess.Count <= 0))
{
foreach (DailyAttnProcess dAttnProcess in dAttnProcessess)
{
DataRow Rowbody = dTable.NewRow();
Rowbody["Date"] = dAttnProcess.AttnDate.ToString("dd MMM yyyy");
if (dAttnProcess.InTime == DateTime.MinValue)
{
Rowbody["InTime"] = "00:00";
}
else
{
Rowbody["InTime"] = dAttnProcess.InTime.ToString("HH:mm");
}
if (dAttnProcess.OutTime == DateTime.MinValue)
{
Rowbody["OutTime"] = "00:00";
}
else
{
Rowbody["OutTime"] = dAttnProcess.OutTime.ToString("HH:mm");
}
string LateBy = dAttnProcess.LateHour.ToString("f");
Rowbody["LateBy"] = LateBy.Replace('.', ':');
string OTHr = dAttnProcess.OTHour.ToString("f");
Rowbody["OTHr"] = OTHr.Replace('.', ':');
//if (dAttnProcess.AttenType == EnumAttendanceType.Leave)
//{
// Rowbody["Status"] = GetLeaveType(dAttnProcess.ReferenceID);
//}
//else
//{
// Rowbody["Status"] = GetShortAttnType(dAttnProcess.AttenType);
//}
Rowbody["Status"] = GetShortAttnType(dAttnProcess.AttenType);
Rowbody["Remarks"] = dAttnProcess.Comments;
Shift oSft = oShifts.Where(o => o.ID.Integer == dAttnProcess.ShiftID.Integer).FirstOrDefault();
if (oSft != null)
{
Rowbody["Shift"] = oSft.ShortName;
}
else
{
Rowbody["Shift"] = string.Empty;
}
dTable.Rows.Add(Rowbody);
}
}
return dTable;
}
public void ShowEmpCardInfo(string EmpIDs)
{
fReportViewer form = new fReportViewer();
DataSet oCardInfo = null;
DataRow oDR = null;
List<Employee> oEmployees = Employee.GetByEmpIDs(EmpIDs);
bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
oCardInfo = DailyAttnProcess.GetEmpCardInfo(EmpIDs);
//Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.IDCardDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.IDCardDataTable();
//PayrollDataSet.PayrollDataSet.LaonPaymentDueDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.LaonPaymentDueDataTable();
foreach (DataRow Dr in oCardInfo.Tables[0].Rows)
{
Employee oEmp = oEmployees.FirstOrDefault(x=>x.EmployeeNo.Trim() == Dr["IDNo"].ToString().Trim());
Dr["Desig"] = (isDesigFromEmp && oEmp != null) ? oEmp.DescriptionText : Dr["Desig"];
Dr["EmpPhoto"] = string.IsNullOrEmpty(Dr["EmpPhoto"].ToString()) ? Dr["EmpPhoto"].ToString() : GetEmployeePicture(Dr["EmpPhoto"].ToString());
}
//DataSet dSet = new DataSet();
oCardInfo.Tables[0].TableName = "AttendenceDataSet_IDCard";
//dSet.Tables.Add(dTable);
string RDLC = "Payroll.Report.RDLC.IDCard.rdlc";
Payroll.BO.SystemInformation _systemInfo = Payroll.BO.SystemInformation.Get();
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
string _PATH = Application.StartupPath + @"\Resource\IDCardBanner.png";
if (!File.Exists(_PATH))
{
_PATH = Application.StartupPath + @"\Logo.jpg";
}
rParam = new ReportParameter("EchoTextLogo", _PATH);
_reportParameters.Add(rParam);
rParam = new ReportParameter("CompanyInfo", _systemInfo.name);
_reportParameters.Add(rParam);
rParam = new ReportParameter("SignatureLogo", Application.StartupPath + @"\BhugiSign.jpg");
_reportParameters.Add(rParam);
form.CommonReportViewer(null, RDLC, oCardInfo, _reportParameters,false);
}
public void ShowEmpCardInfoPerPage(string EmpIDs)
{
fReportViewer form = new fReportViewer();
DataSet oCardInfo = null;
DataRow oDR = null;
List<Employee> oEmployees = Employee.GetByEmpIDs(EmpIDs);
bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic);
oCardInfo = DailyAttnProcess.GetEmpCardInfoPerPage(EmpIDs);
//Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.IDCardDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.IDCardDataTable();
//PayrollDataSet.PayrollDataSet.LaonPaymentDueDataTable dTable = new Payroll.Report.PayrollDataSet.PayrollDataSet.LaonPaymentDueDataTable();
PhotoPath pPath = PhotoPath.Get().FirstOrDefault();
foreach (DataRow Dr in oCardInfo.Tables[0].Rows)
{
Employee oEmp = oEmployees.FirstOrDefault(x => x.EmployeeNo.Trim() == Dr["IDNo"].ToString().Trim());
Dr["Desig"] = (isDesigFromEmp && oEmp != null) ? oEmp.DescriptionText : Dr["Desig"];
Dr["EmpPhoto"] = string.IsNullOrEmpty(Dr["EmpPhoto"].ToString()) ? Dr["EmpPhoto"].ToString() : GetEmployeePicture(Dr["EmpPhoto"].ToString());
}
//DataSet dSet = new DataSet();
oCardInfo.Tables[0].TableName = "AttendenceDataSet_IDCard";
//dSet.Tables.Add(dTable);
string RDLC = "Payroll.Report.RDLC.IDCardPrint.rdlc";
Payroll.BO.SystemInformation _systemInfo = Payroll.BO.SystemInformation.Get();
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
string _PATH = Application.StartupPath + @"\Resource\IDCardBanner.png";
if (!File.Exists(_PATH))
{
_PATH = Application.StartupPath + @"\Logo.jpg";
}
rParam = new ReportParameter("EchoTextLogo", _PATH);
_reportParameters.Add(rParam);
rParam = new ReportParameter("CAddress", Ease.CoreV35.Utility.ConfigUtility.GetAppSettings("CAddress"));
_reportParameters.Add(rParam);
rParam = new ReportParameter("CPhone", Ease.CoreV35.Utility.ConfigUtility.GetAppSettings("CPhone"));
_reportParameters.Add(rParam);
rParam = new ReportParameter("Dhara", Ease.CoreV35.Utility.ConfigUtility.GetAppSettings("Dhara"));
_reportParameters.Add(rParam);
//rParam = new ReportParameter("SignatureLogo", Application.StartupPath + @"\BhugiSign.jpg");
//_reportParameters.Add(rParam);
form.CommonReportViewer(null, RDLC, oCardInfo, _reportParameters, false);
RemoveTempPicturePath();
}
public void GetInOutMissing()
{
fReportViewer form = new fReportViewer();
DateTime attnFromDate, attnToDate;
if (_selectedParameter.FromDate <= _selectedParameter.ToDate)
{
attnFromDate = _selectedParameter.FromDate.Value.Date;
attnToDate = _selectedParameter.ToDate.Value.Date.AddDays(1).AddSeconds(-1);
}
else
{
attnFromDate = _selectedParameter.ToDate.Value.Date;
attnToDate = _selectedParameter.FromDate.Value.Date.AddDays(1).AddSeconds(-1);
}
List<Shift> shifts = Shift.Get();
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oDailyInOut = null;
DataRow oDR = null;
oDailyInOut = DailyAttnProcess.GetDateRangeDataByStatus(attnFromDate, attnToDate, sEmpID, EnumAttendanceType.Present, EnumAttendanceType.Delay, EnumAttendanceType.Late);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.InOutMissingDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.InOutMissingDataTable();
DateTime Intime, ShiftInTime, ShiftOutTime;
foreach (DataRow Dr in oDailyInOut.Tables[0].AsEnumerable().Where(x => x["OutTime"] is DBNull))
{
oDR = dTable.NewRow();
if (Dr["InTime"] is DBNull)
continue;
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["Designation"] = Dr["Designation"];
oDR["EmpType"] = Dr["EmpType"].ToString();
oDR["Status"] = GetShortAttnType((EnumAttendanceType)(Convert.ToInt32(Dr["Status"])));
oDR["OTHour"] = Convert.ToDouble(Dr["OTHour"]).ToString("00.00");
oDR["DeptID"] = Convert.ToInt32(Dr["DeptID"].ToString());
oDR["DeptName"] = Dr["DeptName"].ToString();
oDR["Shift"] = Dr["Shift"].ToString();
oDR["CardNo"] = Dr["CardNo"].ToString();
oDR["AttnDate"] = Convert.ToDateTime(Dr["AttnDate"]);
Intime = Convert.ToDateTime(Dr["InTime"]);
oDR["InTime"] = Intime.ToString("HH:mm");
oDR["OutTime"] = string.Empty;
oDR["MissingStatus"] = "Out Missing";
Shift shft = shifts.SingleOrDefault(x => x.ID.Integer == Convert.ToInt32(Dr["ShiftID"].ToString()));
if (shft != null)
{
ShiftInTime = new DateTime(Intime.Year, Intime.Month, Intime.Day, shft.InTime.Hour, shft.InTime.Minute, shft.InTime.Second);
ShiftOutTime = new DateTime(Intime.Year, Intime.Month, Intime.Day, shft.OutTime.Hour, shft.OutTime.Minute, shft.OutTime.Second);
if (ShiftInTime > ShiftOutTime)
ShiftOutTime = ShiftOutTime.AddDays(1);
oDR["ShiftIn"] = ShiftInTime.ToString("HH:mm");
oDR["ShiftOut"] = ShiftOutTime.ToString("HH:mm");
if (ShiftInTime.AddHours(3) < Intime)
{
oDR["InTime"] = string.Empty;
oDR["OutTime"] = Intime.ToString("HH:mm");
oDR["MissingStatus"] = "In Missing";
}
}
dTable.Rows.Add(oDR);
}
DataSet dSet = new DataSet();
dTable.TableName = "AttendenceDataSet_InOutMissing";
dSet.Tables.Add(dTable);
string RDLC = "Payroll.Report.Attendence.RDLC.InOutMissing.rdlc";
ReportParameter rParam;
List<ReportParameter> _reportParameters = new List<ReportParameter>();
rParam = new ReportParameter("AttnFromDate", attnFromDate.ToString("dd MMM yyyy"));
_reportParameters.Add(rParam);
rParam = new ReportParameter("AttnToDate", attnToDate.ToString("dd MMM yyyy"));
_reportParameters.Add(rParam);
form.CommonReportViewer(_selectedParameter.ReportItem, RDLC, dSet, _reportParameters);
}
#region Un-used Report
public void GetDailyInOutAndAbsent()
{
fReportViewer form = new fReportViewer();
DateTime attnDate = _selectedParameter.FromDate.Value;
string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oDailyInOutAndAbsent = null;
DataRow oDR = null;
oDailyInOutAndAbsent = DailyAttnProcess.GetDailyInOutAndAbsent(attnDate, sEmpID);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.DailyInOutDataTable();
foreach (DataRow Dr in oDailyInOutAndAbsent.Tables[0].Rows)
{
oDR = dTable.NewRow();
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["Designation"] = Dr["Designation"];
oDR["InTime"] = Dr["InTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["InTime"]).ToString("HH:mm");
oDR["OutTime"] = Dr["OutTime"] is DBNull ? "00:00" : Convert.ToDateTime(Dr["OutTime"]).ToString("HH:mm");
string LateHour = Convert.ToDouble(Dr["LateHour"]).ToString("00.00");
oDR["LateBy"] = LateHour.Replace('.', ':');
//string OTHour = Convert.ToDouble(Dr["OTHour"]).ToString("00.00");
//oDR["OTHour"] = OTHour.Replace('.', ':');
oDR["Status"] = GetShortAttnType((EnumAttendanceType)(Convert.ToInt32(Dr["AttnType"])));
oDR["Remarks"] = Dr["Comments"];
oDR["ShiftName"] = Dr["ShortName"];
//oDR["DepartmentName"] = Dr["DepartmentName"];
//oDR["DepartmentID"] = Dr["DEPARTMENTID"];
if (!(oDR["InTime"].ToString() == "00:00" && oDR["Status"].ToString() == GetShortAttnType(EnumAttendanceType.WeeklyHoliday)))
dTable.Rows.Add(oDR);
}
//form.ShowDlgForDailyInOutAndAbsent(_selectedParameter.ReportItem, dTable, attnDate);
}
public void GetMonthlyLongAbsent(int absentDays, DateTime FromDate)
{
fReportViewer form = new fReportViewer();
DateTime dFromDate = FromDate;
//DateTime dToDate = _selectedParameter.ToDate.Value;
//string sEmpID = _selectedParameter.ReportItem.INSQL;
DataSet oMonthlyDetail = null;
DataRow oDR = null;
oMonthlyDetail = DailyAttnProcess.GetMonthlyLongAbsent(GlobalFunctions.FirstDateOfMonth(dFromDate), GlobalFunctions.LastDateOfMonth(dFromDate), absentDays);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.MonthlyDetailDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.MonthlyDetailDataTable();
//int serial = 1;
foreach (DataRow Dr in oMonthlyDetail.Tables[0].Rows)
{
oDR = dTable.NewRow();
//oDR["Serial"] = serial.ToString();
oDR["EmployeeNo"] = Dr["EMPLOYEENO"];
oDR["Name"] = Dr["Name"];
oDR["Designation"] = Dr["Designation"];
oDR["JoinDate"] = Convert.ToDateTime(Dr["JOININGDATE"]).ToString("dd MMM yyyy");
oDR["Gross"] = Convert.ToDouble(Dr["GROSSSALARY"]);
oDR["AttnDate"] = Convert.ToDateTime(Dr["AttnDate"]).ToString("dd/MM/yy");
oDR["AttnType"] = GetShortAttnType((EnumAttendanceType)(Convert.ToInt32(Dr["AttnType"])));
dTable.Rows.Add(oDR);
//serial++;
}
// form.ShowDlgForMonthlyLongAbsent(dTable, GlobalFunctions.FirstDateOfMonth(dFromDate), GlobalFunctions.LastDateOfMonth(dFromDate), absentDays);
//return dTable;
}
public DataTable GetEmpInfo()
{
DataSet oEmpInfo = null;
DataRow oDR = null;
oEmpInfo = EmployeeWorkPlanSetup.GetEmpNotInWorkPlan();
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpInfoDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpInfoDataTable();
foreach (DataRow Dr in oEmpInfo.Tables[0].Rows)
{
oDR = dTable.NewRow();
//oDR["Serial"] = serial.ToString();
oDR["EmpNo"] = Dr["EMPLOYEENO"];
oDR["EmpName"] = Dr["Name"];
oDR["Grade"] = Dr["description"];
dTable.Rows.Add(oDR);
//serial++;
}
return dTable;
}
public DataTable GetMissingMonthlyWPEmpsInfo(DateTime assignDate)
{
DataSet oEmpInfo = null;
DataRow oDR = null;
oEmpInfo = MonthlyWorkPlan.GetEmpNotInMonthlyWorkPlan(assignDate);
Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpInfoDataTable dTable = new Payroll.Report.Attendence.AttendenceDataSet.AttendenceDataSet.EmpInfoDataTable();
foreach (DataRow Dr in oEmpInfo.Tables[0].Rows)
{
oDR = dTable.NewRow();
//oDR["Serial"] = serial.ToString();
oDR["EmpNo"] = Dr["EMPLOYEENO"];
oDR["EmpName"] = Dr["Name"];
oDR["Grade"] = Dr["description"];
dTable.Rows.Add(oDR);
//serial++;
}
return dTable;
}
#endregion
#endregion
}
}