387 lines
16 KiB
C#
387 lines
16 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Data;
|
|||
|
using System.Drawing;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Windows.Forms;
|
|||
|
using Payroll.BO;
|
|||
|
using Ease.CoreV35.Model;
|
|||
|
|
|||
|
namespace Payroll.Report
|
|||
|
{
|
|||
|
|
|||
|
public class rptCC
|
|||
|
{
|
|||
|
private ReportSetup _selectedParameter;
|
|||
|
string tempEmpID = string.Empty;
|
|||
|
public rptCC()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
public ReportSetup SelectedParameter
|
|||
|
{
|
|||
|
set
|
|||
|
{
|
|||
|
_selectedParameter = value;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void ShowReport()
|
|||
|
{
|
|||
|
fReportViewer form = new fReportViewer();
|
|||
|
DateTime effectMonth = _selectedParameter.FromDate.Value;
|
|||
|
string sEmpID = _selectedParameter.ReportItem.INSQL;
|
|||
|
int count = 1;
|
|||
|
DataRow oDR = null;
|
|||
|
DataSet oEmpCC1 = EmployeeCostCenter.GetEmpCC(GlobalFunctions.LastDateOfMonth(effectMonth), sEmpID);
|
|||
|
PayrollDataSet.PayrollDataSet.CCWReportDataTable CCWReportDT = new Payroll.Report.PayrollDataSet.PayrollDataSet.CCWReportDataTable();
|
|||
|
|
|||
|
#region Old Code
|
|||
|
//foreach (DataRow oDRow in oEmpCC.Tables[0].Rows)
|
|||
|
//{
|
|||
|
// oDR = CCWReportDT.NewRow();
|
|||
|
// oDR["SLNo"] = count;
|
|||
|
// oDR["EmpNo"] = oDRow["EMPLOYEENO"];
|
|||
|
// oDR["Name"] = oDRow["NAME"];
|
|||
|
// //oDR["CostCenter"] = oDRow["DESCRIPTION"];
|
|||
|
// //oDR["Percentage"] = oDRow["PERCENTAGE"];
|
|||
|
// //if (oDRow["CostCenter"].ToString() == string.Empty)
|
|||
|
// //{
|
|||
|
// // oDR["CostCenter"] = "Not assign";
|
|||
|
// // oDR["Percentage"] = 0;
|
|||
|
// //}
|
|||
|
// //else
|
|||
|
// //{
|
|||
|
// // oDR["CostCenter"] = oDRow["CostCenter"];
|
|||
|
// // oDR["Percentage"] = oDRow["Percentage"];
|
|||
|
// //}
|
|||
|
// if (oDRow["CurrentCC"].ToString() ==string.Empty)
|
|||
|
// {
|
|||
|
// oDR["CostCenter"] = "Not assign";
|
|||
|
// oDR["Percentage"] = 0;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// oDR["CostCenter"] = oDRow["CCDes"];
|
|||
|
// oDR["Percentage"] = oDRow["Per"];
|
|||
|
// }
|
|||
|
|
|||
|
|
|||
|
// oDR["EffectDate"] = effectMonth;
|
|||
|
// CCWReportDT.Rows.Add(oDR);
|
|||
|
// count++;
|
|||
|
//}
|
|||
|
|
|||
|
#endregion
|
|||
|
#region Commented by Tamanna
|
|||
|
//foreach (DataRow oRow in oEmpCC1.Tables[0].Rows)
|
|||
|
//{
|
|||
|
// oDR = CCWReportDT.NewRow();
|
|||
|
// oDR["SLNo"] = count;
|
|||
|
// oDR["EmpNo"] = oRow["EMPLOYEENO"];
|
|||
|
// oDR["Name"] = oRow["NAME"];
|
|||
|
// DataRow[] oEmpCC = oEmpCC1.Tables["EmpCC"].Select("EmployeeID='" + oRow["EmployeeID"].ToString() + "'");
|
|||
|
// if (oEmpCC.Length > 1)
|
|||
|
// {
|
|||
|
// foreach (DataRow oRow1 in oEmpCC)
|
|||
|
// {
|
|||
|
// if (Convert.ToInt32(oRow1["CurrentCC"]) == 1)
|
|||
|
// {
|
|||
|
// oDR["CostCenterID"] = Convert.ToInt32(oRow1["CostCenterID"]);
|
|||
|
// oDR["Percentage"] = Convert.ToInt32(oRow1["Percentage"]);
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// if (oEmpCC.Length > 0)
|
|||
|
// {
|
|||
|
// oDR["CostCenterID"] = Convert.ToInt32(oEmpCC[0]["CostCenterID"]);
|
|||
|
// oDR["Percentage"] = Convert.ToInt32(oEmpCC[0]["Percentage"]);
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// oDR["CostCenterID"] = 0;
|
|||
|
// oDR["Percentage"] = 0;
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// CCWReportDT.Rows.Add(oDR);
|
|||
|
// count++;
|
|||
|
//}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region Edited By Tamanna
|
|||
|
foreach (DataRow oRow in oEmpCC1.Tables[1].Rows)
|
|||
|
{
|
|||
|
oDR = CCWReportDT.NewRow();
|
|||
|
oDR["SLNo"] = count;
|
|||
|
oDR["CostCenterID"] = Convert.ToInt32(oRow["CostCenterID"]);
|
|||
|
oDR["Percentage"] = Convert.ToInt32(oRow["Percentage"]);
|
|||
|
DataRow[] oEmpCC = oEmpCC1.Tables["Employee"].Select("EmployeeID='" + oRow["EmployeeID"].ToString() + "'");
|
|||
|
//if (oEmpCC.Length > 1)
|
|||
|
//{
|
|||
|
foreach (DataRow oRow1 in oEmpCC)
|
|||
|
{
|
|||
|
if (Convert.ToInt32(oRow["CurrentCC"]) == 1)
|
|||
|
{
|
|||
|
oDR["EmpNo"] = oRow1["EMPLOYEENO"];
|
|||
|
oDR["Name"] = oRow1["NAME"];
|
|||
|
}
|
|||
|
}
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// if (oEmpCC.Length > 0)
|
|||
|
// {
|
|||
|
// oDR["CostCenterID"] = Convert.ToInt32(oRow["CostCenterID"]);
|
|||
|
// oDR["Percentage"] = Convert.ToInt32(oRow["Percentage"]);
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// oDR["CostCenterID"] = 0;
|
|||
|
// oDR["Percentage"] = 0;
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
CCWReportDT.Rows.Add(oDR);
|
|||
|
count++;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
foreach (DataRow oRow in CCWReportDT.Rows)
|
|||
|
{
|
|||
|
if (oRow["CostCenterID"].ToString().Length > 0)
|
|||
|
{
|
|||
|
DataRow[] oEmpCC = oEmpCC1.Tables["CRG"].Select("CRGID='" + oRow["CostCenterID"] + "'");
|
|||
|
if (oEmpCC.Length > 0)
|
|||
|
{
|
|||
|
oRow["CostCenter"] = oEmpCC[0]["Description"];
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
oRow["CostCenter"] = "Not assigned";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
form.ShowDlgForCCWReport(_selectedParameter.ReportItem, CCWReportDT);
|
|||
|
}
|
|||
|
|
|||
|
public DataRow Copy(DataRow source, DataRow destination, DateTime dToDate, int count)
|
|||
|
{
|
|||
|
source["SLNo"] = count;
|
|||
|
source["EmpNo"] = destination["EMPLOYEENO"];
|
|||
|
source["Name"] = destination["NAME"];
|
|||
|
if (Convert.ToString(destination["Description"]) != string.Empty)
|
|||
|
{
|
|||
|
source["PrvCC"] = destination["Description"] + "(" + destination["Percentage"] + ")";
|
|||
|
}
|
|||
|
|
|||
|
source["Month"] = dToDate;
|
|||
|
count++;
|
|||
|
tempEmpID = Convert.ToString(destination["EMPLOYEENO"]);
|
|||
|
return source;
|
|||
|
}
|
|||
|
|
|||
|
public DataRow CopyForCurrCC(DataRow source, DataRow destination, DateTime dToDate, int count)
|
|||
|
{
|
|||
|
source["SLNo"] = count;
|
|||
|
source["EmpNo"] = destination["EMPLOYEENO"];
|
|||
|
source["Name"] = destination["NAME"];
|
|||
|
if (Convert.ToString(destination["Description"]) != string.Empty)
|
|||
|
{
|
|||
|
source["CurCC"] = destination["Description"] + "(" + destination["Percentage"] + ")";
|
|||
|
}
|
|||
|
|
|||
|
source["Month"] = dToDate;
|
|||
|
count++;
|
|||
|
tempEmpID = Convert.ToString(destination["EMPLOYEENO"]);
|
|||
|
return source;
|
|||
|
}
|
|||
|
|
|||
|
private DataRow GetItem(PayrollDataSet.PayrollDataSet.CCDetailReportDataTable Source, string sEmpNo)
|
|||
|
{
|
|||
|
foreach (DataRow odRow in Source.Rows)
|
|||
|
{
|
|||
|
if (Convert.ToString(odRow["EmpNo"]) == sEmpNo)
|
|||
|
{
|
|||
|
return odRow;
|
|||
|
}
|
|||
|
}
|
|||
|
return null;
|
|||
|
}
|
|||
|
|
|||
|
public void ShowCCInformation()
|
|||
|
{
|
|||
|
fReportViewer form = new fReportViewer();
|
|||
|
DateTime dToDate = _selectedParameter.FromDate.Value;
|
|||
|
DateTime dMaxDate;
|
|||
|
string sEmpID = _selectedParameter.ReportItem.INSQL;
|
|||
|
string[] sEmps = sEmpID.Split(',');
|
|||
|
PayrollDataSet.PayrollDataSet.CCDetailReportDataTable CCReportDT = new Payroll.Report.PayrollDataSet.PayrollDataSet.CCDetailReportDataTable();
|
|||
|
DataRow oDR = null;
|
|||
|
int count = 1;
|
|||
|
ObjectsTemplate<EmployeeCostCenter> costCenters = EmployeeCostCenter.Get();
|
|||
|
ObjectsTemplate<Costcenter> crgs = Costcenter.Get();
|
|||
|
ObjectsTemplate<Employee> eployees = Employee.Get();
|
|||
|
|
|||
|
// get the object collection of previous month coscenter information ( SalaryEmpCostcenter)
|
|||
|
foreach (string sEmp in sEmps)
|
|||
|
{
|
|||
|
Employee emp = eployees.GetItem(ID.FromInteger(Convert.ToInt32(sEmp)));
|
|||
|
if (emp == null) continue;
|
|||
|
oDR = CCReportDT.NewRow();
|
|||
|
oDR["SLNo"] = count;
|
|||
|
|
|||
|
oDR["EmpNo"] = emp.EmployeeNo;
|
|||
|
oDR["Name"] = emp.Name;
|
|||
|
//loop the salaryempcostcenter and fill the previous costcenter column
|
|||
|
foreach (EmployeeCostCenter item in costCenters)
|
|||
|
{
|
|||
|
if (item.EmployeeID.ToString() == sEmp)
|
|||
|
{
|
|||
|
oDR["CurCC"] = oDR["CurCC"].ToString() + " " + crgs.GetItem(item.CostCenterID).Name + "(" + item.Percentage.ToString() + ")";
|
|||
|
}
|
|||
|
}
|
|||
|
oDR["Month"] = dToDate;
|
|||
|
CCReportDT.Rows.Add(oDR);
|
|||
|
count++;
|
|||
|
}
|
|||
|
|
|||
|
#region OldCode
|
|||
|
//DateTime dFromDate=_selectedParameter.FromDate.Value.AddMonths(-1);
|
|||
|
//string sEmpID1 = _selectedParameter.ReportItem.INSQL;
|
|||
|
//string testCCSubString = string.Empty;
|
|||
|
|
|||
|
//int count1 = 1;
|
|||
|
//DataRow oDR1 = null;
|
|||
|
//DataSet oEmpCC1 = EmployeeCostCenter.GetEmpCCDetails(GlobalFunctions.LastDateOfMonth(dToDate), GlobalFunctions.LastDateOfMonth(dFromDate), sEmpID);
|
|||
|
//PayrollDataSet.PayrollDataSet.CCDetailReportDataTable CCReportDT1 = new Payroll.Report.PayrollDataSet.PayrollDataSet.CCDetailReportDataTable();
|
|||
|
|
|||
|
//testCCSubString = "";
|
|||
|
//foreach (DataRow oDRow in oEmpCC1.Tables[0].Rows)
|
|||
|
//{
|
|||
|
// DataRow oRow = this.GetItem(CCReportDT, Convert.ToString(oDRow["EMPLOYEENO"]));
|
|||
|
// if (oRow == null)
|
|||
|
// {
|
|||
|
// oDR = CCReportDT.NewRow();
|
|||
|
// oRow = this.Copy(oDR, oDRow, dToDate, count);
|
|||
|
// CCReportDT.Rows.Add(oRow);
|
|||
|
// count++;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// if (Convert.ToString(oDR["CurCC"]) != string.Empty && Convert.ToDouble(oDRow["CurrCCPer"])>0)
|
|||
|
// {
|
|||
|
// oDR["CurCC"] = oDR["CurCC"] + " " + oDRow["CurrCCName"] + "(" + oDRow["CurrCCPer"] + ")";
|
|||
|
// }
|
|||
|
|
|||
|
// if (Convert.ToString(oDRow["PrvCCName"]) != string.Empty && Convert.ToDouble(oDRow["PrvCCPer"])>0)
|
|||
|
// {
|
|||
|
// oDR["PrvCC"] =oDR["PrvCC"] + " " + oDRow["PrvCCName"] + "(" + oDRow["PrvCCPer"] + ")";
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
#endregion
|
|||
|
form.ShowDlgForCCDetailWReport(_selectedParameter.ReportItem, CCReportDT);
|
|||
|
}
|
|||
|
|
|||
|
public void ShowCCInformationByMonth(DateTime startDate, DateTime startDate2)
|
|||
|
{
|
|||
|
DateTime startmonth = startDate;
|
|||
|
DateTime endmonth = startDate2;
|
|||
|
fReportViewer form = new fReportViewer();
|
|||
|
PayrollDataSet.PayrollDataSet.CCDetailReportDataTable CCReportDT = new Payroll.Report.PayrollDataSet.PayrollDataSet.CCDetailReportDataTable();
|
|||
|
DataRow oDR = null;
|
|||
|
int count = 1;
|
|||
|
ObjectsTemplate<EmployeeCostCenter> costCenters = EmployeeCostCenter.GetByMonthStartEnd(startmonth, endmonth);
|
|||
|
ObjectsTemplate<Costcenter> crgs = Costcenter.Get();
|
|||
|
ObjectsTemplate<Employee> eployees = Employee.Get();
|
|||
|
ObjectsTemplate<SalaryEmpCostCenter> allSalEmpCost = SalaryMonthly.GetCostCenter(GlobalFunctions.LastDateOfMonth(startDate.AddMonths(-1)));
|
|||
|
List<EmpLifeCycle> _lifeCycles = EmpLifeCycle.Get(EnumStatus.Regardless);
|
|||
|
List<ApproveFinantialData> _finalcialDatas = ApproveFinantialData.Get();
|
|||
|
List<User> _users = User.Get(EnumSystemType.Desktop);
|
|||
|
// get the object collection of previous month coscenter information ( SalaryEmpCostcenter)
|
|||
|
//ObjectsTemplate< User> allUsers =User.GetById()
|
|||
|
foreach (EmployeeCostCenter empCst in costCenters)
|
|||
|
{
|
|||
|
Employee emp = eployees.GetItem(empCst.EmployeeID);
|
|||
|
if (emp == null) continue;
|
|||
|
oDR = CCReportDT.NewRow();
|
|||
|
oDR["SLNo"] = count;
|
|||
|
User obUser = User.GetById(empCst.CreatedBy.Integer);
|
|||
|
if (obUser != null) oDR["UserId"] = obUser.LoginID;
|
|||
|
else oDR["UserId"] = String.Empty;
|
|||
|
oDR["CreationDate"] = empCst.CreatedDate;
|
|||
|
oDR["EmpNo"] = emp.EmployeeNo;
|
|||
|
oDR["Name"] = emp.Name;
|
|||
|
oDR["CurCC"] = String.Empty;
|
|||
|
//loop the salaryempcostcenter and fill the previous costcenter column
|
|||
|
foreach(Costcenter cstCenterObj in crgs)
|
|||
|
{
|
|||
|
if(cstCenterObj.ID.Integer == empCst.CostCenterID.Integer)
|
|||
|
{
|
|||
|
oDR["CurCC"] = cstCenterObj.Code + "(" + empCst.Percentage.ToString() + ")";
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
oDR["Month"] = startDate.ToString("dd MMM yyyy");
|
|||
|
if(allSalEmpCost!=null)
|
|||
|
{
|
|||
|
SalaryEmpCostCenter semp = allSalEmpCost.Find(delegate(SalaryEmpCostCenter sitem ){return sitem.EmployeeID.Integer == empCst.EmployeeID.Integer;});
|
|||
|
if(semp!=null)
|
|||
|
{
|
|||
|
Costcenter ocrg=Costcenter.Get(semp.CostCenterID);
|
|||
|
oDR["PrvCC"] = ocrg.Code + "(100)";
|
|||
|
}
|
|||
|
}
|
|||
|
if (Payroll.BO.SystemInformation.CurrentSysInfo.Code.Contains("007"))
|
|||
|
{
|
|||
|
|
|||
|
if (empCst.EmployeeID.Integer > 0)
|
|||
|
{
|
|||
|
EmpLifeCycle lifeCycle = _lifeCycles.Find(delegate(EmpLifeCycle oItem)
|
|||
|
{
|
|||
|
return oItem.CostCenterID == empCst.CostCenterID && empCst.MonthDate == oItem.SalaryMonth && oItem.EmployeeID==empCst.EmployeeID;
|
|||
|
});
|
|||
|
if (lifeCycle != null)
|
|||
|
{
|
|||
|
ApproveFinantialData finalcialData = _finalcialDatas.Find(delegate(ApproveFinantialData oItem)
|
|||
|
{
|
|||
|
return oItem.EmployeeID == empCst.EmployeeID &&
|
|||
|
oItem.ObjectID == lifeCycle.ID.Integer &&
|
|||
|
oItem.SalaryMonth.Year == lifeCycle.EffectDate.Year &&
|
|||
|
oItem.SalaryMonth.Month == lifeCycle.EffectDate.Month &&
|
|||
|
oItem.FinanatialDataType == EnumApprovalFinancialData.Lifecycle;
|
|||
|
});
|
|||
|
if (finalcialData != null)
|
|||
|
{
|
|||
|
User user = _users.Find(delegate(User oItem)
|
|||
|
{
|
|||
|
return oItem.ID.Integer == finalcialData.Approvedby;
|
|||
|
});
|
|||
|
if (user != null)
|
|||
|
oDR["AuthorizeBy"] = user.Name;
|
|||
|
oDR["AuthorizedDate"] = finalcialData.ApprovedDate.ToString("dd MMM yyyy hh:mm:ss tt");
|
|||
|
}
|
|||
|
else
|
|||
|
oDR["AuthorizeBy"] = "";
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
oDR["AuthorizeBy"] = "";
|
|||
|
}
|
|||
|
else
|
|||
|
oDR["AuthorizeBy"] = "";
|
|||
|
}
|
|||
|
CCReportDT.Rows.Add(oDR);
|
|||
|
count++;
|
|||
|
}
|
|||
|
form.ShowDlgForCCDetailWReportByMonth(startDate,CCReportDT);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|