CEL_Payroll/Payroll.BO/Common/RegularDataUpload.cs

9608 lines
492 KiB
C#
Raw Permalink Normal View History

2024-09-17 14:30:13 +06:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Ease.CoreV35.Model;
using SpreadsheetGear;
using Ease.CoreV35.Utility;
using System.Windows.Forms;
namespace Payroll.BO
{
[Serializable]
public class RegularDataUpload : ImportFileBase
{
#region Private Declarations And Constructors
private List<UploadErrorOrSuccess> _errorOrSuccessList;
private DataTable _uplodedData;
private DataSet _uploadHRData;
private DataSet _upLoadCVData;
private BonusProcess _BonusProcess = null;
private HREmployee _HREmployee = new HREmployee();
private CV _CV = new CV();
private DataTable dtWPPFClaim = null;
private ObjectsTemplate<HREmployee> _HREmployees = null;
private ObjectsTemplate<Religion> _Religions = null;
private ObjectsTemplate<Category> _Categories = null;
private ObjectsTemplate<Occupation> _Occupations = null;
private ObjectsTemplate<Nationality> _Nationalites = null;
private ObjectsTemplate<District> _Districts = null;
private ObjectsTemplate<Thana> _Thanas = null;
private ObjectsTemplate<Relation> _Relations = null;
private ObjectsTemplate<EducationLevel> _EducationLevels = null;
private ObjectsTemplate<NatureOfTraining> _NatureOfTrainings = null;
private ObjectsTemplate<Institution> _Institutions = null;
private ObjectsTemplate<Country> _Contries = null;
private ObjectsTemplate<EducationType> _EducationTypes = null;
private ObjectsTemplate<Discipline> _Disciplines = null;
private ObjectsTemplate<ResultType> _ResultTypes = null;
private ObjectsTemplate<NominationPurpose> _NominationPurposes = null;
private ObjectsTemplate<GuarantorDocumentType> _GuarantorDocumentTypes = null;
private ObjectsTemplate<TrainingType> _TrainingTypes = null;
private ObjectsTemplate<HRJoiningQuestionary> _HRJoiningQuestionaries = null;
private ObjectsTemplate<EmployeeTaxInvestment> _EmployeeTaxInvestments = null;
private ObjectsTemplate<TaxChallan> _TaxChallans = null;
private ObjectsTemplate<Designation> _Designations = null;
private ObjectsTemplate<OrganogramBasic> _organograms = null;
private ObjectsTemplate<OrganogramEmployee> _organEmps = null;
ObjectsTemplate<HREmployee> _CheckHREmployees = null;
private List<PFTransaction> _PFTransactions = null;
private EnumEmployeeStatus _enumStatus = EnumEmployeeStatus.Live;
private int _nTypeID = 0;
int _nEventID = 0;
public event ProgressStatus ProgressStatus;
public event ProcessStatus ProcessStatus;
private ObjectsTemplate<EmpLifeCycle> _oEmpLifeCycles = new ObjectsTemplate<EmpLifeCycle>();
#region New Declaration
private ObjectsTemplate<Category> _categorys = new ObjectsTemplate<Category>();
private ObjectsTemplate<Grade> _grades = new ObjectsTemplate<Grade>();
private ObjectsTemplate<Department> _departments = new ObjectsTemplate<Department>();
private ObjectsTemplate<Location> _locations = new ObjectsTemplate<Location>();
private ObjectsTemplate<Religion> _religions = new ObjectsTemplate<Religion>();
private ObjectsTemplate<Designation> _designations = new ObjectsTemplate<Designation>();
private ObjectsTemplate<Bank> _banks = new ObjectsTemplate<Bank>();
private ObjectsTemplate<Branch> _branches = new ObjectsTemplate<Branch>();
private ObjectsTemplate<Employee> _employees = new ObjectsTemplate<Employee>();
private ObjectsTemplate<IncomeTax> _incomeTaxs = new ObjectsTemplate<IncomeTax>();
private ObjectsTemplate<AccessCard> _accessCards = new ObjectsTemplate<AccessCard>();
#endregion Class variable
private int _departmentid = 0;
private int _locationid = 0;
private int _categoryID = 0;
private int _religionID = 0;
private int _designationid = 0;
private int _gradeid = 0;
private int _branchid = 0;
private int _bankid = 0;
private int _emloyeeId = 0;
private int _accessCardID = 0;
#endregion
private void UpdateProgressStatus(EnumProcessStatus status)
{
if (ProgressStatus != null) ProgressStatus(status);
}
private void UpdateprocessStatus(string statusString)
{
if (ProcessStatus != null) ProcessStatus(statusString);
}
public RegularDataUpload()
{
_organograms = new ObjectsTemplate<OrganogramBasic>();
_organEmps = new ObjectsTemplate<OrganogramEmployee>();
}
#region Properties
public BonusProcess UploadedBonus
{
get { return _BonusProcess; }
set { _BonusProcess = value; }
}
public ObjectsTemplate<Employee> Employees
{
get { return _employees; }
set { _employees = value; }
}
private ObjectsTemplate<AllowanceDeduction> _allowanceDeductions;
public ObjectsTemplate<AllowanceDeduction> AllowanceDeductions
{
get { return _allowanceDeductions; }
set { _allowanceDeductions = value; }
}
//added by Hasib
public ObjectsTemplate<AccessCard> AccessCards
{
get { return _accessCards; }
set { _accessCards = value; }
}
private ObjectsTemplate<AccessCard> _accessCardsErrorList;
public ObjectsTemplate<AccessCard> AccessCardsErrorList
{
get { return _accessCardsErrorList; }
set { _accessCardsErrorList = value; }
}
public List<UploadErrorOrSuccess> ErrorOrSuccessList
{
get { return _errorOrSuccessList; }
set { _errorOrSuccessList = value; }
}
private BasicDataUploadProcess _basicwithEmployee;
private DataUploadException _uploadException;
private List<EmployeeGradeSalary> oempgradesalarys;
private List<ADParameterEmployee> oadparamemployees;
private ObjectsTemplate<ADParameterEmployee> oAdparameterEmployees;
private ObjectsTemplate<EmployeeUnAuthorizeLeave> _empUnAuthoLeaves;
private ObjectsTemplate<ChildrenEducation> ChildrenEducations;
private ObjectsTemplate<EmployeeOverTime> _EmployeeOverTimes;
private List<OpiParameterIndividual> oOpiParameterIndividuals;
private List<EmployeeBankAccount> oempbankaccounts;
private ObjectsTemplate<EmployeeCostCenter> oempCostCenters;
private ObjectsTemplate<EmpContact> _empContacts;
private List<LoanIssue> loanissues;
private List<LoanSchedule> loanschs;
private ObjectsTemplate<SalaryMonthlyDetail> _salaryDetails;
private ObjectsTemplate<OPIProcessDetailItem> _oPIProcessDetailItem;
private ObjectsTemplate<OpiParameterIndividual> _oPIParameterIndividual;
private ObjectsTemplate<CarFuelProcessDetailItem> _CarFuelProcessDetailItem;
private ObjectsTemplate<CarFuelParameterIndividual> _CarFuelParameterIndividual;
private ObjectsTemplate<IncomeTax> _incomeTaxes;
private ObjectsTemplate<Employee> _TempEmployees;
#endregion
#region Service Factory
internal static IRegularDataUploadService Service
{
get { return Services.Factory.CreateService<IRegularDataUploadService>(typeof(IRegularDataUploadService)); }
}
#endregion
#region Export
public void Export(DataTable data, string fileName, ObjectsTemplate<Term> oTerms)
{
IWorkbookSet wbSet = Factory.GetWorkbookSet();
IWorkbook wb = wbSet.Workbooks.Add();
IWorksheet ws = wb.Worksheets["Sheet1"];
try
{
int rowIdx = 0, colIdx = 2;
ws.Cells[rowIdx, 0].FormulaR1C1 = "EmpNo";
ws.Cells[rowIdx, 1].FormulaR1C1 = "EmpName";
//ws.Cells[rowIdx, 2].FormulaR1C1 = "MonthDate";
foreach (Term oTerm in oTerms)
{
ws.Cells[rowIdx, colIdx].FormulaR1C1 = oTerm.Name;
colIdx++;
}
int Count = 0;
colIdx = 0;
rowIdx = 1;
foreach (DataRow row in data.Rows)
{
ws.Cells[rowIdx, colIdx].FormulaR1C1 = row["EmpNo"].ToString();
ws.Cells[rowIdx, colIdx + 1].FormulaR1C1 = row["EmpName"].ToString();
ws.Cells[rowIdx, colIdx + 2].FormulaR1C1 ="0";
ws.Cells[rowIdx, colIdx + 3].FormulaR1C1 = "0";
rowIdx++;
}
wb.SaveAs(fileName, FileFormat.XLS97);
}
catch (Exception e)
{
throw new Exception(e.Message, e);
}
finally
{
//Release resources
wbSet.Dispose();
wb = null;
ws = null;
wbSet = null;
}
}
#endregion
//public List<UploadErrorOrSuccess> UploadBonusData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
//{
// _uplodedData = Service.LoadExcelData(path, oColumnDefination.SheetName);
// _errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData);
// if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
// switch (uploadId)
// {
// case (int)EnumRegularDataUpload.Bonus:
// {
// _BonusProcess = this.ImportEmpBonus(oColumnDefination);
// break;
// }
// default:
// {
// this.ImportException(uploadId, oColumnDefination);
// }
// break;
// }
// return _errorOrSuccessList;
//}
public List<UploadErrorOrSuccess> UploadData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
_uplodedData = Service.LoadExcelData(path, oColumnDefination.SheetName);
//_uplodedData = Service.LoadData(path);
_errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData);
if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmployeeWithBasic:
this.ImportEmpBasicInfo();
break;
case (int)EnumRegularDataUpload.Allowance:
this.ImportEmpIndividualAllowance(oColumnDefination);
break;
case (int)EnumRegularDataUpload.TaxChallan:
this.ImportITChallan(oColumnDefination);
break;
case (int)EnumRegularDataUpload.Deduction:
this.ImportEmpIndividualDeduction(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpDiscontinue:
break;
case (int)EnumRegularDataUpload.EmployeeBankAccount:
this.ImportEmpBankAccount(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeConfirmation:
break;
case (int)EnumRegularDataUpload.ESB:
break;
case (int)EnumRegularDataUpload.ITInvestment:
this.ImportITInvestment(oColumnDefination);
break;
case (int)EnumRegularDataUpload.Leave:
break;
case (int)EnumRegularDataUpload.OPI:
//this.ImportOPIDataAfterProcess(oColumnDefination);
this.ImportOPIDataNew(oColumnDefination);
//this.ImportOPIParamInividual(oColumnDefination);
//this.ImportOPIDataNew(oColumnDefination);
break;
case (int)EnumRegularDataUpload.SalaryData:
break;
case (int)EnumRegularDataUpload.SalaryRemarks:
break;
case (int)EnumRegularDataUpload.TaxAdjustCurrYear:
this.ImportTaxAdjustmentData(oColumnDefination);
break;
case (int)EnumRegularDataUpload.TC:
break;
case (int)EnumRegularDataUpload.EmpGradeSalary:
this.ImportEmpGradeSalaryAssignment(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeAttendance:
break;
case (int)EnumRegularDataUpload.TaxData:
this.ImportTaxData();
break;
case (int)EnumRegularDataUpload.EmployeeLoan:
this.ImportEmpLoanInformation(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeLoanSetup:
this.ImportEmpLoanSetup(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpSalaryComponent:
this.ImportSalaryComponet(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpCC:
this.ImportEmpCC(oColumnDefination);
break;
case (int)EnumRegularDataUpload.PFOpening:
this.PFOpening(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpVendorCode:
this.ImportEmpVendorCode(oColumnDefination);
break;
case (int)EnumRegularDataUpload.OPI_Parameter_Individual:
//this.ImportOPIData(oColumnDefination);
this.ImportOPIParamInividual(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpAddressData:
//this.ImportOPIData(oColumnDefination);
//this.ImportOPIParamInividual(oColumnDefination);
this.ImportAllEmpContactInfo(oColumnDefination);
break;
default:
this.ImportException(uploadId, oColumnDefination);
break;
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadData(int uploadId, EnumEmployeeStatus enumStatus, DataUploadColumnDefinition oColumnDefination, string path, int nEventID)
{
_nEventID = nEventID;
_enumStatus = enumStatus;
_nTypeID = uploadId;
_uplodedData = Service.LoadExcelData(path, oColumnDefination.SheetName);
//_uplodedData = Service.LoadData(path);
if ((int)EnumRegularDataUpload.EmpShortInfo == uploadId)
_errorOrSuccessList = oColumnDefination.ValidateUploadedData2(_uplodedData);
else
_errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData);
if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpShortInfo:
{
this.ImportEmpShortInfo(oColumnDefination);
break;
}
case (int)EnumRegularDataUpload.EmployeeWithBasic:
this.ImportEmpBasicInfo();
break;
case (int)EnumRegularDataUpload.EmployeeWithRegularly:
this.ImportEmpBasicInfoRegularly();
break;
case (int)EnumRegularDataUpload.Allowance:
this.ImportEmpIndividualAllowance(oColumnDefination);
break;
case (int)EnumRegularDataUpload.Children_Eduation_Allowances:
this.ImportChildrenEducationAllowances(oColumnDefination);
break;
case (int)EnumRegularDataUpload.WPPFClaim:
this.ImportWPPFClaim(oColumnDefination);
break;
case (int)EnumRegularDataUpload.WPPF:
this.ImportWPPFClaim(oColumnDefination);
break;
case (int)EnumRegularDataUpload.WWF:
this.ImportWPPFClaim(oColumnDefination);
break;
case (int)EnumRegularDataUpload.OverTime:
this.ImportOverTimeData(oColumnDefination);
break;
case (int)EnumRegularDataUpload.UnAuthorized_Leave:
this.ImportUnAuthorizedLeaveData(oColumnDefination);
break;
case (int)EnumRegularDataUpload.TaxChallan:
this.ImportITChallan(oColumnDefination);
break;
case (int)EnumRegularDataUpload.OrganogramPosition:
this.ImportOrganogramPosition(oColumnDefination);
break;
case (int)EnumRegularDataUpload.Deduction:
this.ImportEmpIndividualDeduction(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpDiscontinue:
break;
case (int)EnumRegularDataUpload.EmployeeBankAccount:
this.ImportEmpBankAccount(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeConfirmation:
break;
case (int)EnumRegularDataUpload.ESB:
break;
case (int)EnumRegularDataUpload.ITInvestment:
this.ImportITInvestment(oColumnDefination);
break;
case (int)EnumRegularDataUpload.Leave:
break;
case (int)EnumRegularDataUpload.OPI:
//this.ImportOPIDataAfterProcess(oColumnDefination);
this.ImportOPIDataNew(oColumnDefination);
//this.ImportOPIParamInividual(oColumnDefination);
//this.ImportOPIDataNew(oColumnDefination);
break;
case (int)EnumRegularDataUpload.CarFuel:
//this.ImportOPIDataAfterProcess(oColumnDefination);
this.ImportCarFuelDataNew(oColumnDefination);
//this.ImportOPIParamInividual(oColumnDefination);
//this.ImportOPIDataNew(oColumnDefination);
break;
case (int)EnumRegularDataUpload.SalaryData:
break;
case (int)EnumRegularDataUpload.SalaryRemarks:
break;
case (int)EnumRegularDataUpload.TaxAdjustCurrYear:
this.ImportTaxAdjustmentData(oColumnDefination);
break;
case (int)EnumRegularDataUpload.TC:
break;
case (int)EnumRegularDataUpload.EmpGradeSalary:
this.ImportEmpGradeSalaryAssignment(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeAttendance:
break;
case (int)EnumRegularDataUpload.TaxData:
this.ImportTaxData();
break;
case (int)EnumRegularDataUpload.EmployeeLoan:
this.ImportEmpLoanInformation(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeLoanSetup:
this.ImportEmpLoanSetup(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpSalaryComponent:
this.ImportSalaryComponet(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpCC:
this.ImportEmpCC(oColumnDefination);
break;
case (int)EnumRegularDataUpload.PFOpening:
this.PFOpening(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpVendorCode:
this.ImportEmpVendorCode(oColumnDefination);
break;
case (int)EnumRegularDataUpload.OPI_Parameter_Individual:
//this.ImportOPIData(oColumnDefination);
this.ImportOPIParamInividual(oColumnDefination);
break;
case (int)EnumRegularDataUpload.CarFuel_Parameter_Individual:
//this.ImportOPIData(oColumnDefination);
this.ImportCarFuelParamInividual(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpAddressData:
//this.ImportOPIData(oColumnDefination);
//this.ImportOPIParamInividual(oColumnDefination);
this.ImportAllEmpContactInfo(oColumnDefination);
break;
default:
this.ImportException(uploadId, oColumnDefination);
break;
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadData2(int uploadId, EnumEmployeeStatus enumStatus, DataUploadColumnDefinition oColumnDefination, string path, int nEventID)
{
_nEventID = nEventID;
_enumStatus = enumStatus;
_nTypeID = uploadId;
_uplodedData = Service.LoadExcelData(path, oColumnDefination.SheetName);
//_uplodedData = Service.LoadData(path);
//if ((int)EnumRegularDataUpload.EmpShortInfo == uploadId)
_errorOrSuccessList = oColumnDefination.ValidateUploadedData2(_uplodedData);
//else
// _errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData);
if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmployeeWithBasic:
this.ImportEmpBasicInfo2();
break;
case (int)EnumRegularDataUpload.LifeCycle:
this.ImportCareerHistory();
break;
case (int)EnumRegularDataUpload.Allowance:
this.ImportEmpIndividualAllowance(oColumnDefination);
break;
case (int)EnumRegularDataUpload.TaxChallan:
this.ImportITChallan(oColumnDefination);
break;
case (int)EnumRegularDataUpload.OrganogramPosition:
this.ImportOrganogramPosition(oColumnDefination);
break;
case (int)EnumRegularDataUpload.Deduction:
this.ImportEmpIndividualDeduction(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpDiscontinue:
break;
case (int)EnumRegularDataUpload.EmployeeBankAccount:
this.ImportEmpBankAccount(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeConfirmation:
break;
case (int)EnumRegularDataUpload.ESB:
break;
case (int)EnumRegularDataUpload.ITInvestment:
this.ImportITInvestment(oColumnDefination);
break;
case (int)EnumRegularDataUpload.Leave:
break;
case (int)EnumRegularDataUpload.OPI:
//this.ImportOPIDataAfterProcess(oColumnDefination);
this.ImportOPIDataNew(oColumnDefination);
//this.ImportOPIParamInividual(oColumnDefination);
//this.ImportOPIDataNew(oColumnDefination);
break;
case (int)EnumRegularDataUpload.SalaryData:
break;
case (int)EnumRegularDataUpload.SalaryRemarks:
break;
case (int)EnumRegularDataUpload.TaxAdjustCurrYear:
this.ImportTaxAdjustmentData(oColumnDefination);
break;
case (int)EnumRegularDataUpload.TC:
break;
case (int)EnumRegularDataUpload.EmpGradeSalary:
this.ImportEmpGradeSalaryAssignment(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeAttendance:
break;
case (int)EnumRegularDataUpload.TaxData:
this.ImportTaxData();
break;
case (int)EnumRegularDataUpload.EmployeeLoan:
this.ImportEmpLoanInformation(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmployeeLoanSetup:
this.ImportEmpLoanSetup(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpSalaryComponent:
this.ImportSalaryComponet(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpCC:
this.ImportEmpCC(oColumnDefination);
break;
case (int)EnumRegularDataUpload.PFOpening:
this.PFOpening(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpVendorCode:
this.ImportEmpVendorCode(oColumnDefination);
break;
case (int)EnumRegularDataUpload.OPI_Parameter_Individual:
//this.ImportOPIData(oColumnDefination);
this.ImportOPIParamInividual(oColumnDefination);
break;
case (int)EnumRegularDataUpload.EmpAddressData:
//this.ImportOPIData(oColumnDefination);
//this.ImportOPIParamInividual(oColumnDefination);
this.ImportAllEmpContactInfo(oColumnDefination);
break;
default:
this.ImportException(uploadId, oColumnDefination);
break;
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadBonusData(int allowance, int uploadId, ID bonusID, DataUploadColumnDefinition oColumnDefination, string path, bool IsDisbursWithSalary, bool IsTaxProcess, double UsedProcess, DateTime dCutofDate, DateTime dPayDate, int _nReligionID)
{
_uplodedData = Service.LoadExcelData(path, oColumnDefination.SheetName);
//_uplodedData = Service.LoadData(path);
_errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData);
if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
switch (uploadId)
{
case (int)EnumRegularDataUpload.Bonus:
{
if (allowance == 3)
_BonusProcess = this.ImportEmpIndividualBonus(oColumnDefination, IsDisbursWithSalary, IsTaxProcess, UsedProcess, bonusID, dCutofDate, dPayDate, _nReligionID);
else
_BonusProcess = this.ImportEmpBonus(oColumnDefination, IsDisbursWithSalary, IsTaxProcess, UsedProcess, bonusID, dPayDate, _nReligionID);
break;
}
default:
{
this.ImportException(uploadId, oColumnDefination);
}
break;
}
return _errorOrSuccessList;
}
#region Upload HR Employee Data
public List<UploadErrorOrSuccess> UploadHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
List<UploadErrorOrSuccess> oelist = new List<UploadErrorOrSuccess>();
DataUploadColumnDefinition columnDefination = null;
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
if (uploadId == (int)EnumRegularDataUpload.EmpHRData)
{
_uploadHRData = new DataSet();
foreach (string oSt in oColumnDefination.SheetCollection)
{
_uplodedData = Service.LoadExcelData(path, oSt);
columnDefination = null;
switch (oSt)
{
case "General":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpGeneralInfo();
break;
case "Contacts":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpContactInfo();
break;
case "Spouse":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpSpouseInfo();
break;
case "Children":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpChildrenInfo();
break;
case "Experience":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpExperienceInfo();
break;
case "Training":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpTrainingInfo();
break;
case "Academic":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpAcademicInfo();
break;
case "Reference":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpReferenceInfo();
break;
case "Publication":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpPublicationInfo();
break;
case "Nominee":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpNomineeInfo();
break;
case "Hospitalization":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpHospitalizationInfo();
break;
//case "Guarantor":
// columnDefination = new DataUploadColumnDefinition();
// columnDefination.HREmpGuarantorInfo();
// break;
case "Language":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpLanguageInfo();
break;
case "Relative in this Company":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpRelativeInfo();
break;
case "Membership":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpMemberShipInfo();
break;
case "Immedite Family":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpRelationInfo();
break;
case "Questionnarie":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HREmpQuestionInfo();
break;
default:
break;
}
//_errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData);
if (columnDefination == null) continue;
//DataUploadValidation ovalidation = new DataUploadValidation();
//ovalidation.ColumnNameValidation(columnDefination, _uplodedData);
//ovalidation.ValidateInput(columnDefination, _uplodedData);
_uploadHRData.Tables.Add(_uplodedData);
//foreach (UploadErrorOrSuccess item in ovalidation.ErrorOrSuccessList)
//{
// _errorOrSuccessList.Add(item);
//}
}
//foreach (DataTable oDTable in _uploadHRData.Tables)
//{
// _errorOrSuccessList = oColumnDefination.ValidateUploadedData(oDTable);
// if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
//}
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadErrorHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
//if (uploadId == (int)EnumRegularDataUpload.EmpHRData)
//{
// _uploadHRData = new DataSet();
// foreach (string oSt in oColumnDefination.SheetCollection)
// {
// _uplodedData = Service.LoadExcelData(path, oSt);
// _uploadHRData.Tables.Add(_uplodedData);
// }
// //foreach (DataTable oDTable in _uploadHRData.Tables)
// //{
// // _errorOrSuccessList = oColumnDefination.ValidateUploadedData(oDTable);
// // if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
// //}
//}
return _errorOrSuccessList;
}
public HREmployee UploadHRData(int uploadId)
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpHRData:
{
_Religions = Religion.Get();
_Categories = Category.Get();
_Occupations = Occupation.Get();
_Nationalites = Nationality.Get();
_Districts = District.Get();
_Thanas = Thana.Get();
_Relations = Relation.Get();
_EducationLevels = EducationLevel.Get();
_NatureOfTrainings = NatureOfTraining.Get();
_Institutions = Institution.Get();
_Contries = Country.Get();
_EducationTypes = EducationType.Get();
_Disciplines = Discipline.Get();
_ResultTypes = ResultType.Get();
_NominationPurposes = NominationPurpose.Get();
_GuarantorDocumentTypes = GuarantorDocumentType.Get();
_TrainingTypes = TrainingType.Get();
_HRJoiningQuestionaries = HRJoiningQuestionary.Get(EnumStatus.Active);
foreach (DataTable oDT in _uploadHRData.Tables)
{
if (oDT.TableName == "General")
{
_HREmployee = this.ImportEmpGeneralInfo(oDT);
}
else if (oDT.TableName == "Contacts")
{
_HREmployee.Contacts = this.ImportEmpContactInfo(oDT);
}
else if (oDT.TableName == "Spouse")
{
_HREmployee.Spouses = this.ImportEmpSpouseInfo(oDT);
}
else if (oDT.TableName == "Children")
{
_HREmployee.Childrens = this.ImportEmpChildInfo(oDT);
}
else if (oDT.TableName == "Experience")
{
_HREmployee.Experiences = this.ImportEmpExperienceInfo(oDT);
}
else if (oDT.TableName == "Training")
{
_HREmployee.Trainings = this.ImportEmpTrainingInfo(oDT);
}
else if (oDT.TableName == "Academic")
{
_HREmployee.Academics = this.ImportEmpAcademicInfo(oDT);
}
else if (oDT.TableName == "Reference")
{
_HREmployee.References = this.ImportEmpReferenceInfo(oDT);
}
else if (oDT.TableName == "Publication")
{
_HREmployee.Publications = this.ImportEmpPublicationInfo(oDT);
}
else if (oDT.TableName == "Nominee")
{
_HREmployee.Nominees = this.ImportEmpNomineeInfo(oDT);
}
else if (oDT.TableName == "Hospitalization")
{
_HREmployee.Hospitalizations = this.ImportEmpHospitalizationInfo(oDT);
}
//else if (oDT.TableName == "Guarantor")
//{
// _HREmployee.Guarantors = this.ImportEmpGuarantorInfo(oDT);
//}
else if (oDT.TableName == "Language")
{
_HREmployee.EmpLanguages = this.ImportEmpLanguageInfo(oDT);
}
else if (oDT.TableName == "Relative in this Company")
{
_HREmployee.EmpRelatives = this.ImportEmpRelativeInfo(oDT);
}
else if (oDT.TableName == "Membership")
{
_HREmployee.EmpMemberships = this.ImportEmpMembershipInfo(oDT);
}
else if (oDT.TableName == "Immedite Family")
{
_HREmployee.EmpRelations = this.ImportEmpRelationInfo(oDT);
}
else if (oDT.TableName == "Questionnarie")
{
_HREmployee.EmpHRQuestionAnswers = this.ImportEmpHRQuestionAnswerInfo(oDT);
}
}
break;
}
default:
break;
}
return _HREmployee;
}
#endregion
#region Uplaod CV Document
public static DataTable LoadExcelData(string path, string sheetname)
{
return Service.LoadExcelData(path, sheetname);
}
public List<UploadErrorOrSuccess> UploadCVData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
List<UploadErrorOrSuccess> oelist = new List<UploadErrorOrSuccess>();
DataUploadColumnDefinition columnDefination = null;
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
if (uploadId == (int)EnumRegularDataUpload.CVDocument)
{
_upLoadCVData = new DataSet();
foreach (string oSt in oColumnDefination.SheetCollection)
{
_uplodedData = Service.LoadExcelData(path, oSt);
columnDefination = null;
switch (oSt)
{
case "CVMain":
columnDefination = new DataUploadColumnDefinition();
columnDefination.CVMainData();
break;
case "CVExperience":
columnDefination = new DataUploadColumnDefinition();
columnDefination.CVExperienceData();
break;
case "CVReferredBy":
columnDefination = new DataUploadColumnDefinition();
columnDefination.CVReferredByData();
break;
case "CVEductionalQualification":
columnDefination = new DataUploadColumnDefinition();
columnDefination.CVEductionalQualificationData();
break;
default:
break;
}
if (columnDefination == null) continue;
_upLoadCVData.Tables.Add(_uplodedData);
}
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadErrorCVData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
//if (uploadId == (int)EnumRegularDataUpload.EmpHRData)
//{
// _uploadHRData = new DataSet();
// foreach (string oSt in oColumnDefination.SheetCollection)
// {
// _uplodedData = Service.LoadExcelData(path, oSt);
// _uploadHRData.Tables.Add(_uplodedData);
// }
// //foreach (DataTable oDTable in _uploadHRData.Tables)
// //{
// // _errorOrSuccessList = oColumnDefination.ValidateUploadedData(oDTable);
// // if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
// //}
//}
return _errorOrSuccessList;
}
public CV UploadCVData(int uploadId)
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.CVDocument:
{
_EducationLevels = EducationLevel.Get();
_Institutions = Institution.Get();
_EducationTypes = EducationType.Get();
_Disciplines = Discipline.Get();
_ResultTypes = ResultType.Get();
_Designations = Designation.Get(EnumStatus.Active);
foreach (DataTable oDT in _upLoadCVData.Tables)
{
if (oDT.TableName == "CVMain")
{
_CV = this.ImportCVMainData(oDT);
}
else if (oDT.TableName == "CVExperience")
{
_CV.AllExperiences = this.ImportCVExperienceData(oDT);
}
else if (oDT.TableName == "CVReferredBy")
{
_CV.AllReferences = this.ImportCVReferredByData(oDT);
}
else if (oDT.TableName == "CVEductionalQualification")
{
_CV.AllEduQualifications = this.ImportCVEductionalQualificationData(oDT);
}
}
break;
}
default:
break;
}
return _CV;
}
#endregion
#region Upload All HR Employee Data
public List<UploadErrorOrSuccess> UploadAllHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
List<UploadErrorOrSuccess> oelist = new List<UploadErrorOrSuccess>();
DataUploadColumnDefinition columnDefination = null;
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
if (uploadId == (int)EnumRegularDataUpload.EmpAllHRData)
{
_uploadHRData = new DataSet();
foreach (string oSt in oColumnDefination.SheetCollection)
{
_uplodedData = Service.LoadExcelData(path, oSt);
columnDefination = null;
switch (oSt)
{
case "General":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpGeneralInfo();
break;
case "Contacts":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpContactInfo();
break;
case "Spouse":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpSpouseInfo();
break;
case "Children":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpChildrenInfo();
break;
case "Experience":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpExperienceInfo();
break;
case "Training":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpTrainingInfo();
break;
case "Academic":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpAcademicInfo();
break;
case "Reference":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpReferenceInfo();
break;
case "Publication":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpPublicationInfo();
break;
case "Nominee":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpNomineeInfo();
break;
case "Hospitalization":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpHospitalizationInfo();
break;
case "Language":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpLanguageInfo();
break;
case "Relative in this Company":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpRelativeInfo();
break;
case "Membership":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpMemberShipInfo();
break;
case "Immedite Family":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpRelationInfo();
break;
default:
break;
}
if (columnDefination == null) continue;
_uploadHRData.Tables.Add(_uplodedData);
}
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadErrorAllHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
//if (uploadId == (int)EnumRegularDataUpload.EmpHRData)
//{
// _uploadHRData = new DataSet();
// foreach (string oSt in oColumnDefination.SheetCollection)
// {
// _uplodedData = Service.LoadExcelData(path, oSt);
// _uploadHRData.Tables.Add(_uplodedData);
// }
// //foreach (DataTable oDTable in _uploadHRData.Tables)
// //{
// // _errorOrSuccessList = oColumnDefination.ValidateUploadedData(oDTable);
// // if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
// //}
//}
return _errorOrSuccessList;
}
public ObjectsTemplate<HREmployee> UploadAllHRData(int uploadId)
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpAllHRData:
{
_Religions = Religion.Get();
_Categories = Category.Get();
_Occupations = Occupation.Get();
_Nationalites = Nationality.Get();
_Districts = District.Get();
_Thanas = Thana.Get();
_Relations = Relation.Get();
_EducationLevels = EducationLevel.Get();
_NatureOfTrainings = NatureOfTraining.Get();
_Institutions = Institution.Get();
_Contries = Country.Get();
_EducationTypes = EducationType.Get();
_Disciplines = Discipline.Get();
_ResultTypes = ResultType.Get();
_NominationPurposes = NominationPurpose.Get();
_GuarantorDocumentTypes = GuarantorDocumentType.Get();
_TrainingTypes = TrainingType.Get();
_HRJoiningQuestionaries = HRJoiningQuestionary.Get(EnumStatus.Active);
foreach (DataTable oDT in _uploadHRData.Tables)
{
if (oDT.TableName == "General")
{
_HREmployees = this.ImportAllEmpGeneralInfo(oDT);
}
else if (oDT.TableName == "Contacts")
{
this.ImportAllEmpContactInfo(oDT);
}
else if (oDT.TableName == "Spouse")
{
this.ImportAllEmpSpouseInfo(oDT);
}
else if (oDT.TableName == "Children")
{
this.ImportAllEmpChildInfo(oDT);
}
else if (oDT.TableName == "Experience")
{
this.ImportAllEmpExperienceInfo(oDT);
}
else if (oDT.TableName == "Training")
{
this.ImportAllEmpTrainingInfo(oDT);
}
else if (oDT.TableName == "Academic")
{
this.ImportAllEmpAcademicInfo(oDT);
}
else if (oDT.TableName == "Reference")
{
this.ImportAllEmpReferenceInfo(oDT);
}
else if (oDT.TableName == "Publication")
{
this.ImportAllEmpPublicationInfo(oDT);
}
else if (oDT.TableName == "Nominee")
{
this.ImportAllEmpNomineeInfo(oDT);
}
else if (oDT.TableName == "Hospitalization")
{
this.ImportAllEmpHospitalizationInfo(oDT);
}
//else if (oDT.TableName == "Guarantor")
//{
// _HREmployee.Guarantors = this.ImportEmpGuarantorInfo(oDT);
//}
else if (oDT.TableName == "Language")
{
this.ImportAllEmpLanguageInfo(oDT);
}
else if (oDT.TableName == "Relative in this Company")
{
this.ImportAllEmpRelativeInfo(oDT);
}
else if (oDT.TableName == "Membership")
{
this.ImportAllEmpMembershipInfo(oDT);
}
else if (oDT.TableName == "Immedite Family")
{
this.ImportAllEmpRelationInfo(oDT);
}
//else if (oDT.TableName == "Questionnarie")
//{
// _HREmployee.EmpHRQuestionAnswers = this.ImportEmpHRQuestionAnswerInfo(oDT);
//}
}
break;
}
default:
break;
}
return _HREmployees;
}
public List<UploadErrorOrSuccess> UploadErrorAllHRDataForIDLC(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
//if (uploadId == (int)EnumRegularDataUpload.EmpHRData)
//{
// _uploadHRData = new DataSet();
// foreach (string oSt in oColumnDefination.SheetCollection)
// {
// _uplodedData = Service.LoadExcelData(path, oSt);
// _uploadHRData.Tables.Add(_uplodedData);
// }
// //foreach (DataTable oDTable in _uploadHRData.Tables)
// //{
// // _errorOrSuccessList = oColumnDefination.ValidateUploadedData(oDTable);
// // if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
// //}
//}
return _errorOrSuccessList;
}
#endregion
#region Upload All HR Employee Data
public ObjectsTemplate<HREmployee> UploadAllHRDataForIDLC(int uploadId)
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpAllHRData:
{
_Religions = Religion.Get();
_Categories = Category.Get();
_Occupations = Occupation.Get();
_Nationalites = Nationality.Get();
_Districts = District.Get();
_Thanas = Thana.Get();
_Relations = Relation.Get();
_EducationLevels = EducationLevel.Get();
_NatureOfTrainings = NatureOfTraining.Get();
_Institutions = Institution.Get();
_Contries = Country.Get();
_EducationTypes = EducationType.Get();
_Disciplines = Discipline.Get();
_ResultTypes = ResultType.Get();
_NominationPurposes = NominationPurpose.Get();
_GuarantorDocumentTypes = GuarantorDocumentType.Get();
_TrainingTypes = TrainingType.Get();
_HRJoiningQuestionaries = HRJoiningQuestionary.Get(EnumStatus.Active);
foreach (DataTable oDT in _uploadHRData.Tables)
{
if (oDT.TableName == "General")
{
_HREmployees = this.ImportAllEmpGeneralInfoIDLC(oDT);
}
//else if (oDT.TableName == "Contacts")
//{
// this.ImportAllEmpContactInfo(oDT);
//}
}
break;
}
default:
break;
}
return _HREmployees;
}
public List<UploadErrorOrSuccess> UploadAllHRDataForIDLC(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
int rowCount = 0;
int slNo = 0;
List<UploadErrorOrSuccess> oelist = new List<UploadErrorOrSuccess>();
DataUploadColumnDefinition columnDefination = null;
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
if (uploadId == (int)EnumRegularDataUpload.EmpAllHRData)
{
_uploadHRData = new DataSet();
foreach (string oSt in oColumnDefination.SheetCollection)
{
_uplodedData = Service.LoadExcelData(path, oSt);
columnDefination = null;
switch (oSt)
{
case "General":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpGeneralInfoIDLC();
rowCount = 2;
slNo = 1;
foreach (DataRow dr in _uplodedData.Rows)
{
if (dr["EmployeeID"].ToString() == "")
{
UploadErrorOrSuccess err = new UploadErrorOrSuccess();
err.ColumName = "EmployeeID";
err.EmpName = dr["First Name"].ToString();
err.Message = "EmployeeID should not empty.";
err.RowNo = rowCount;
err.SL = slNo;
_errorOrSuccessList.Add(err);
slNo++;
}
rowCount++;
}
break;
default:
break;
}
if (columnDefination == null) continue;
_uploadHRData.Tables.Add(_uplodedData);
}
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadAllHRDataForNavana(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
int rowCount = 0;
int slNo = 0;
List<UploadErrorOrSuccess> oelist = new List<UploadErrorOrSuccess>();
DataUploadColumnDefinition columnDefination = null;
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
if (uploadId == (int)EnumRegularDataUpload.EmpAllHRData)
{
_uploadHRData = new DataSet();
foreach (string oSt in oColumnDefination.SheetCollection)
{
_uplodedData = Service.LoadExcelData(path, oSt);
columnDefination = null;
switch (oSt)
{
case "General":
columnDefination = new DataUploadColumnDefinition();
columnDefination.HRAllEmpGeneralInfo();
rowCount = 2;
slNo = 1;
foreach (DataRow dr in _uplodedData.Rows)
{
if (dr["EmployeeID"].ToString() == "")
{
UploadErrorOrSuccess err = new UploadErrorOrSuccess();
err.ColumName = "EmployeeID";
err.EmpName = dr["First Name"].ToString();
err.Message = "EmployeeID should not empty.";
err.RowNo = rowCount;
err.SL = slNo;
_errorOrSuccessList.Add(err);
slNo++;
}
rowCount++;
}
break;
default:
break;
}
if (columnDefination == null) continue;
_uploadHRData.Tables.Add(_uplodedData);
}
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadErrorAllHRDataForNavana(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
//if (uploadId == (int)EnumRegularDataUpload.EmpHRData)
//{
// _uploadHRData = new DataSet();
// foreach (string oSt in oColumnDefination.SheetCollection)
// {
// _uplodedData = Service.LoadExcelData(path, oSt);
// _uploadHRData.Tables.Add(_uplodedData);
// }
// //foreach (DataTable oDTable in _uploadHRData.Tables)
// //{
// // _errorOrSuccessList = oColumnDefination.ValidateUploadedData(oDTable);
// // if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
// //}
//}
return _errorOrSuccessList;
}
public ObjectsTemplate<HREmployee> UploadAllHRDataForNavana(int uploadId)
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpAllHRData:
{
_Religions = Religion.Get();
_Categories = Category.Get();
_Occupations = Occupation.Get();
_Nationalites = Nationality.Get();
_Districts = District.Get();
_Thanas = Thana.Get();
_Relations = Relation.Get();
_EducationLevels = EducationLevel.Get();
_NatureOfTrainings = NatureOfTraining.Get();
_Institutions = Institution.Get();
_Contries = Country.Get();
_EducationTypes = EducationType.Get();
_Disciplines = Discipline.Get();
_ResultTypes = ResultType.Get();
_NominationPurposes = NominationPurpose.Get();
_GuarantorDocumentTypes = GuarantorDocumentType.Get();
_TrainingTypes = TrainingType.Get();
_HRJoiningQuestionaries = HRJoiningQuestionary.Get(EnumStatus.Active);
foreach (DataTable oDT in _uploadHRData.Tables)
{
if (oDT.TableName == "General")
{
_HREmployees = this.ImportAllEmpGeneralInForNavana(oDT);
}
}
break;
}
default:
break;
}
return _HREmployees;
}
#endregion
#region Upload All HR Employee Data
public List<UploadErrorOrSuccess> UploadAllSingleData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
int rowCount = 0;
int slNo = 0;
List<UploadErrorOrSuccess> oelist = new List<UploadErrorOrSuccess>();
DataUploadColumnDefinition columnDefination = null;
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
if (uploadId == (int)EnumRegularDataUpload.EmpSingle)
{
_uploadHRData = new DataSet();
foreach (string oSt in oColumnDefination.SheetCollection)
{
_uplodedData = Service.LoadExcelData(path, oSt);
columnDefination = null;
switch (oSt)
{
case "EmployeeInfo":
columnDefination = new DataUploadColumnDefinition();
columnDefination.SetUpEmpSingle();
rowCount = 2;
slNo = 1;
foreach (DataRow dr in _uplodedData.Rows)
{
if (dr["EmployeeID"].ToString() == "")
{
UploadErrorOrSuccess err = new UploadErrorOrSuccess();
err.ColumName = "EmployeeID";
err.EmpName = dr["First Name"].ToString();
err.Message = "EmployeeID should not empty.";
err.RowNo = rowCount;
err.SL = slNo;
_errorOrSuccessList.Add(err);
slNo++;
}
rowCount++;
}
break;
default:
break;
}
if (columnDefination == null) continue;
_uploadHRData.Tables.Add(_uplodedData);
}
}
return _errorOrSuccessList;
}
public List<UploadErrorOrSuccess> UploadErrorAllSingleData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path)
{
//if (uploadId == (int)EnumRegularDataUpload.EmpHRData)
//{
// _uploadHRData = new DataSet();
// foreach (string oSt in oColumnDefination.SheetCollection)
// {
// _uplodedData = Service.LoadExcelData(path, oSt);
// _uploadHRData.Tables.Add(_uplodedData);
// }
// //foreach (DataTable oDTable in _uploadHRData.Tables)
// //{
// // _errorOrSuccessList = oColumnDefination.ValidateUploadedData(oDTable);
// // if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList;
// //}
//}
return _errorOrSuccessList;
}
public ObjectsTemplate<HREmployee> UploadAllSingleData(int uploadId)
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpSingle:
{
_Religions = Religion.Get();
_Categories = Category.Get();
_Occupations = Occupation.Get();
_Nationalites = Nationality.Get();
_Districts = District.Get();
_Thanas = Thana.Get();
_Relations = Relation.Get();
_EducationLevels = EducationLevel.Get();
_NatureOfTrainings = NatureOfTraining.Get();
_Institutions = Institution.Get();
_Contries = Country.Get();
_EducationTypes = EducationType.Get();
_Disciplines = Discipline.Get();
_ResultTypes = ResultType.Get();
_NominationPurposes = NominationPurpose.Get();
//_GuarantorDocumentTypes = GuarantorDocumentType.Get();
_TrainingTypes = TrainingType.Get();
_HRJoiningQuestionaries = HRJoiningQuestionary.Get(EnumStatus.Active);
foreach (DataTable oDT in _uploadHRData.Tables)
{
if (oDT.TableName == "EmployeeInfo")
{
_HREmployees = this.ImportSingleEmpInForNavana(oDT);
}
}
break;
}
default:
break;
}
return _HREmployees;
}
#endregion
public void Save(int uploadId)
{
try
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpShortInfo:
{
this.SaveShortInfo();
break;
}
case (int)EnumRegularDataUpload.Allowance:
{
this.SaveEmpIndividualAllowance();
break;
}
case (int)EnumRegularDataUpload.OverTime:
{
this.SaveEmployeeOverTime();
break;
}
case (int)EnumRegularDataUpload.Children_Eduation_Allowances:
{
this.SaveChildEduAllowance();
break;
}
case (int)EnumRegularDataUpload.WPPFClaim:
{
this.SaveWPPFClaim(dtWPPFClaim);
break;
}
case (int)EnumRegularDataUpload.WPPF:
{
this.SaveWPPF(dtWPPFClaim);
break;
}
case (int)EnumRegularDataUpload.WWF:
{
this.SaveWWF(dtWPPFClaim);
break;
}
case (int)EnumRegularDataUpload.UnAuthorized_Leave:
{
this.SaveUnAuthorizedLeave();
break;
}
case (int)EnumRegularDataUpload.EmployeeWithBasic:
case (int)EnumRegularDataUpload.EmployeeWithRegularly:
{
this.SaveEmpBasicInformation();
break;
}
case (int)EnumRegularDataUpload.Bonus:
{
this.SaveBonusInformation();
break;
}
case (int)EnumRegularDataUpload.OrganogramPosition:
{
this.SaveOrganPosition();
break;
}
case (int)EnumRegularDataUpload.TaxChallan:
{
this.SaveITChallanData(_TaxChallans);
break;
}
case (int)EnumRegularDataUpload.Deduction:
{
this.SaveEmpIndividualDeduction();
break;
}
case (int)EnumRegularDataUpload.EmpDiscontinue:
{
break;
}
case (int)EnumRegularDataUpload.EmployeeBankAccount:
{
this.SaveEmpBankAccount();
break;
}
case (int)EnumRegularDataUpload.EmployeeConfirmation:
{
break;
}
case (int)EnumRegularDataUpload.ESB:
{
break;
}
case (int)EnumRegularDataUpload.ITInvestment:
{
this.SaveITInvestmentData(_EmployeeTaxInvestments);
break;
}
case (int)EnumRegularDataUpload.Leave:
{
break;
}
case (int)EnumRegularDataUpload.OPI:
{
// this.SaveOPIData();
this.SaveAllOPIParamIndividual();
break;
}
case (int)EnumRegularDataUpload.CarFuel:
{
// this.SaveOPIData();
this.SaveAllCarFuelParamIndividual();
break;
}
case (int)EnumRegularDataUpload.SalaryData:
{
this.SaveOPIData();
break;
}
case (int)EnumRegularDataUpload.SalaryRemarks:
{
break;
}
case (int)EnumRegularDataUpload.TaxAdjustCurrYear:
{
_basicwithEmployee.SaveTaxData();
//this.SaveEmpTaxData(_incomeTaxes,EnumIncomeTaxDataFrom.ProcessTempData);
break;
}
case (int)EnumRegularDataUpload.TC:
{
break;
}
case (int)EnumRegularDataUpload.EmpGradeSalary:
{
this.SaveEmpGradeSalaryAssignment();
break;
}
case (int)EnumRegularDataUpload.EmployeeAttendance:
{
break;
}
case (int)EnumRegularDataUpload.TaxData:
{
_basicwithEmployee.SaveTaxData();
//this.SaveEmpTaxData();
break;
}
case (int)EnumRegularDataUpload.EmployeeLoan:
{
this.SaveLoanInformation();
break;
}
case (int)EnumRegularDataUpload.EmployeeLoanSetup:
{
this.SaveLoanInformationSetup();
break;
}
case (int)EnumRegularDataUpload.EmpSalaryComponent:
{
this.SaveSalaryComponent();
break;
}
case (int)EnumRegularDataUpload.EmpCC:
{
this.SaveEmpCCData();
break;
}
case (int)EnumRegularDataUpload.PFOpening:
{
this.SavePFOpeningData();
break;
}
case (int)EnumRegularDataUpload.EmpVendorCode:
{
this.SaveEmpVendorCode();
break;
}
case (int)EnumRegularDataUpload.EmpAllHRData:
{
this.SaveAllHREmpData(_HREmployees);
break;
}
case (int)EnumRegularDataUpload.EmpSingle:
{
this.SaveAllHREmpData(_HREmployees);
break;
}
case (int)EnumRegularDataUpload.CVDocument:
{
_CV.Save();
break;
}
case (int)EnumRegularDataUpload.OPI_Parameter_Individual:
{
this.SaveAllOPIParamIndividual();
break;
}
case (int)EnumRegularDataUpload.CarFuel_Parameter_Individual:
{
this.SaveAllCarFuelParamIndividual();
break;
}
case (int)EnumRegularDataUpload.EmpAddressData:
{
this.SaveHREmpContactData(_empContacts);
break;
}
default:
_uploadException.SaveException(uploadId);
break;
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
public void Save2(int uploadId)
{
UpdateprocessStatus("Saving data.It takes several minutes.");
try
{
switch (uploadId)
{
case (int)EnumRegularDataUpload.EmpShortInfo:
{
this.SaveShortInfo();
break;
}
case (int)EnumRegularDataUpload.Allowance:
{
this.SaveEmpIndividualAllowance();
break;
}
case (int)EnumRegularDataUpload.EmployeeWithBasic:
case (int)EnumRegularDataUpload.EmployeeWithRegularly:
{
this.SaveEmpBasicInformation2();
break;
}
case (int)EnumRegularDataUpload.Bonus:
{
this.SaveBonusInformation();
break;
}
case (int)EnumRegularDataUpload.OrganogramPosition:
{
this.SaveOrganPosition();
break;
}
case (int)EnumRegularDataUpload.TaxChallan:
{
this.SaveITChallanData(_TaxChallans);
break;
}
case (int)EnumRegularDataUpload.Deduction:
{
this.SaveEmpIndividualDeduction();
break;
}
case (int)EnumRegularDataUpload.EmpDiscontinue:
{
break;
}
case (int)EnumRegularDataUpload.EmployeeBankAccount:
{
this.SaveEmpBankAccount();
break;
}
case (int)EnumRegularDataUpload.EmployeeConfirmation:
{
break;
}
case (int)EnumRegularDataUpload.ESB:
{
break;
}
case (int)EnumRegularDataUpload.ITInvestment:
{
this.SaveITInvestmentData(_EmployeeTaxInvestments);
break;
}
case (int)EnumRegularDataUpload.Leave:
{
break;
}
case (int)EnumRegularDataUpload.OPI:
{
// this.SaveOPIData();
this.SaveAllOPIParamIndividual();
break;
}
case (int)EnumRegularDataUpload.SalaryData:
{
this.SaveOPIData();
break;
}
case (int)EnumRegularDataUpload.SalaryRemarks:
{
break;
}
case (int)EnumRegularDataUpload.TaxAdjustCurrYear:
{
_basicwithEmployee.SaveTaxData();
//this.SaveEmpTaxData(_incomeTaxes,EnumIncomeTaxDataFrom.ProcessTempData);
break;
}
case (int)EnumRegularDataUpload.TC:
{
break;
}
case (int)EnumRegularDataUpload.EmpGradeSalary:
{
this.SaveEmpGradeSalaryAssignment();
break;
}
case (int)EnumRegularDataUpload.EmployeeAttendance:
{
break;
}
case (int)EnumRegularDataUpload.TaxData:
{
_basicwithEmployee.SaveTaxData();
//this.SaveEmpTaxData();
break;
}
case (int)EnumRegularDataUpload.EmployeeLoan:
{
this.SaveLoanInformation();
break;
}
case (int)EnumRegularDataUpload.EmployeeLoanSetup:
{
this.SaveLoanInformationSetup();
break;
}
case (int)EnumRegularDataUpload.EmpSalaryComponent:
{
this.SaveSalaryComponent();
break;
}
case (int)EnumRegularDataUpload.EmpCC:
{
this.SaveEmpCCData();
break;
}
case (int)EnumRegularDataUpload.PFOpening:
{
this.SavePFOpeningData();
break;
}
case (int)EnumRegularDataUpload.EmpVendorCode:
{
this.SaveEmpVendorCode();
break;
}
case (int)EnumRegularDataUpload.EmpAllHRData:
{
this.SaveAllHREmpData(_HREmployees);
break;
}
case (int)EnumRegularDataUpload.EmpSingle:
{
this.SaveAllHREmpData(_HREmployees);
break;
}
case (int)EnumRegularDataUpload.CVDocument:
{
_CV.Save();
break;
}
case (int)EnumRegularDataUpload.OPI_Parameter_Individual:
{
this.SaveAllOPIParamIndividual();
break;
}
case (int)EnumRegularDataUpload.EmpAddressData:
{
this.SaveHREmpContactData(_empContacts);
break;
}
default:
_uploadException.SaveException(uploadId);
break;
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#region Parse Date
public static DateTime ParseDate(string value)
{
if (string.IsNullOrEmpty(value))
return DateTime.MinValue;
DateTime parsedDate = DateTime.MinValue;
string dFormate = "dd MMM yyyy";
try
{
parsedDate = DateTime.ParseExact(value, dFormate, System.Globalization.CultureInfo.InvariantCulture);
}
catch
{
string[] dps = value.Split('/', '-', ' ');
string[] fps = dFormate.Split('/', '-', ' ');
if (dps.Length != fps.Length)
{
double dv = Convert.ToDouble(value);
parsedDate = DateTime.FromOADate(dv);
}
else
{
int d = 0, m = 0, y = 0;
for (int idx = 0; idx < dps.Length; idx++)
{
if (fps[idx].ToLower().StartsWith("d"))
d = int.Parse(Global.StringFuncions.Left(dps[idx], 2));
else if (fps[idx].ToLower().StartsWith("m"))
m = int.Parse(Global.StringFuncions.Left(dps[idx], 2));
else
y = int.Parse(Global.StringFuncions.Left(dps[idx], 4));
}
parsedDate = new DateTime(y, m, d);
}
}
return parsedDate;
}
#endregion
#region GetBasicAndPromotion
public static DataTable GetBasicAndPromotion(string filePath)
{
return Service.LoadData(filePath);
}
#endregion
#region Import Individual Employee Allowances
public void ImportEmpIndividualAllowance(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.GetAllEmps();
ObjectsTemplate<ADParameter> oadparameters = ADParameter.Get(EnumStatus.Active, EnumAllowOrDeduct.Allowance);
ADParameter _adparam = null;
Employee oemployee = null;
oadparamemployees = new List<ADParameterEmployee>();
ADParameterEmployee oadparamemp = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oadparamemp = new ADParameterEmployee();
oadparamemp.EmployeeID = oemployee.ID;
//if (_columnDefinition.SelectedItemOneID)
//oadparamemp.FormDate = Convert.ToDateTime(dr["From Date"]);
//oadparamemp.TillDate = Convert.ToDateTime(dr["Till Date"]);
oadparamemp.MonthlyAmount = dr["Amount"].ToString() != string.Empty ? Convert.ToDouble(dr["Amount"]) : 0.0;
oadparamemp.AllowDeductID = _columnDefinition.SelectedItemOneID; //ID.FromInteger(Convert.ToInt32(EnumAllowOrDeduct.Deduction));
if (oemployee.GradeID == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Grade.", nRow, "(" + dr["Grade"].ToString() + ")" + "Grade Id not found in the current context"));
continue;
}
ObjectsTemplate<ADParameter> oparamters = ADParameter.Get(EnumStatus.Active, oadparamemp.AllowDeductID);
ADParameter oparamter = ADParameter.GetApplicableParameter(oemployee, oemployee.GradeID, oadparameters, oadparamemp.AllowDeductID);
if (oparamter == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + dr["Employee No"].ToString() + " Row : ", nRow, "Employee applicable parameter not found."));
continue;
}
oadparamemp.ADParameterID = oparamter.ID;
oadparamemp.Periodicity = oparamter.Periodicity;
//if(oadparamemp.AllowDeductID!=ID.FromInteger(14))
//{
if (oadparamemp.Periodicity == EnumPeriodicity.OneOff)
{
oadparamemp.FormDate = Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
oadparamemp.TillDate = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
}
else if (oadparamemp.Periodicity == EnumPeriodicity.Monthly && oparamter.EntitleType == EnumEntitleType.Individual)
{
// from date can't prior to fist date of current month
// till date can't be less to from date
// from date can't be greater to last date of current month
//if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) < Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
//{
// _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be less than first date of current month"));
// continue;
//}
if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) > Payroll.BO.GlobalFunctions.LastDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be greater than last date of current month"));
continue;
}
if (dr["Till Date"].ToString() != "" && Convert.ToDateTime(dr["Till Date"]) < Convert.ToDateTime(dr["From Date"]))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Till Date :" + dr["Till Date"].ToString() + " Row : ", nRow, "Till date can not be less than From date"));
continue;
}
oadparamemp.FormDate = dr["From Date"].ToString() != "" ? Convert.ToDateTime(dr["From Date"]) : Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (dr["Till Date"].ToString() != "")
oadparamemp.TillDate = Convert.ToDateTime(dr["Till Date"]);
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + dr["Employee No"].ToString() + " Row : ", nRow, "Employee applicable parameter is defined greade wise"));
continue;
}
//}
oadparamemp.ADEmpType = EnumADEmpType.AppliedToIndividual;
oadparamemp.Arreartype = EnumArrearType.NotPresent;
oadparamemployees.Add(oadparamemp);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import UnAuthorized Leave Data
public void ImportUnAuthorizedLeaveData(DataUploadColumnDefinition _columnDefinition)
{
Employee oemployee = null;
int nRow = 0;
ObjectsTemplate<Employee> oemployees = Employee.Get();
ObjectsTemplate<UnAuthorizeLeave> oLeaveTypes = new ObjectsTemplate<UnAuthorizeLeave>();
oLeaveTypes = UnAuthorizeLeave.Get();
EmployeeSetupParameter setupParams = null;
UnAuthorizeLeaveParam param = null;
ObjectsTemplate<UnAuthorizeLeaveParam> _LeaveParams = null;
EmployeeUnAuthorizeLeave leave = null;
_empUnAuthoLeaves = new ObjectsTemplate<EmployeeUnAuthorizeLeave>();
_LeaveParams = new ObjectsTemplate<UnAuthorizeLeaveParam>();
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
if (dr["From Date"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From Date Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
if (dr["To Date"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("To Date :" + dr["To Date"].ToString() + " Row : ", nRow, "To Date Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
if (dr["Leave Month"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Leave Month :" + dr["Leave Month"].ToString() + " Row : ", nRow, "Leave Month Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
if (dr["Days"].ToString() == "" || dr["Days"].ToString() == "0")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Leave Month :" + dr["Leave Month"].ToString() + " Row : ", nRow, "Days Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
setupParams = new UnAuthorizeLeaveParam().ApplicableParameters(oemployee);
for (int i = 0; i < setupParams.ParameterIDs.Count; i++)
{
param = UnAuthorizeLeaveParam.Get(ID.FromInteger(setupParams.ParameterIDs[i]));
if (param != null)
{
_LeaveParams.Add(param);
}
}
leave = new EmployeeUnAuthorizeLeave();
leave.EmployeeID = oemployee.ID;
leave.UnAuthorizeleaveID = _columnDefinition.SelectedItemOneID;
param = _LeaveParams.Where(O => O.UnAhuthorizeLeaveID == _columnDefinition.SelectedItemOneID).FirstOrDefault();
if (param == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Leave Parameter :" + "" + " Row : ", nRow, "Leave Parameter Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
leave.ParamID = _LeaveParams.Where(O => O.UnAhuthorizeLeaveID == _columnDefinition.SelectedItemOneID).FirstOrDefault().ID;
leave.MonthDate = GlobalFunctions.LastDateOfMonth(Convert.ToDateTime(dr["Leave Month"]));
leave.LeaveMonth = GlobalFunctions.LastDateOfMonth(Convert.ToDateTime(dr["Leave Month"]));
leave.FromDate = Convert.ToDateTime(dr["From Date"]);
leave.ToDate = Convert.ToDateTime(dr["To Date"]);
leave.Type = EnumLeaveEntryType.Normal;
leave.LeaveDays = Convert.ToInt32(dr["Days"]);
_empUnAuthoLeaves.Add(leave);
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import OverTime Data
public void ImportOverTimeData(DataUploadColumnDefinition _columnDefinition)
{
Term oTerm = null;
ObjectsTemplate<Term> _Terms = Term.Get(EnumStatus.Regardless);
TermParameter oTermParamerer = null;
ObjectsTemplate<TermParameter> oTermParamerers = TermParameter.Get();
int nRow = 0;
string month = "";
string year = "";
string strDateStarted = "";
DateTime entryDate = DateTime.MinValue;
_EmployeeOverTimes = new ObjectsTemplate<EmployeeOverTime>();
List<string> OTCodes = new List<string>();
OTCodes.Add("Overtime Double Rate (up to 10 pm including weekend)");
OTCodes.Add("Overtime Triple Rate (10 PM to 6 AM including weekend)");
OTCodes.Add("Overtime Four Times Rate (Govt Holidays)");
OTCodes.Add("Evening Shift");
OTCodes.Add("Night Shift");
OTCodes.Add("Standby Allowance (Working Day)");
OTCodes.Add("Standby Allowance (Weekly holiday)");
OTCodes.Add("Standby Allowance (General holiday)");
OTCodes.Add("Standby Allowance (Festival holiday)");
OTCodes.Add("Transport allowance One Way");
OTCodes.Add("Transport Allowance Two Way");
double otHour = 0;
ObjectsTemplate<Employee> oemployees = Employee.GetAllEmps();
Employee oemployee = null;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
foreach (string otCode in OTCodes)
{
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Local Emp ID"].ToString(); });
if (oemployee != null)
{
if (dr["Claiming Month"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Month :" + dr["Claiming Month"].ToString() + " Row : ", nRow, "Month Can Not Be Empty", oemployee.EmployeeNo, oemployee.Name));
continue;
}
month = dr["Claiming Month"].ToString();
if (dr["Claiming Year"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Year :" + dr["Claiming Year"].ToString() + " Row : ", nRow, "Year Can Not Be Empty", oemployee.EmployeeNo, oemployee.Name));
continue;
}
year = dr["Claiming Year"].ToString();
strDateStarted = month + " " + year;
entryDate = DateTime.MinValue;
DateTime.TryParseExact(strDateStarted, new string[] { "MMM yyyy" }, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out entryDate);
if (entryDate == DateTime.MinValue)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + dr["Local Emp ID"].ToString() + " Row : ", nRow, "Month or Year not in correct format", oemployee.EmployeeNo, oemployee.Name));
continue;
}
EmployeeOverTime oEmpOverTime = new EmployeeOverTime();
oTerm = _Terms.Find(delegate(Term oTM) { return oTM.Name.Trim().ToLower() == otCode.Trim().ToLower(); });
if (oTerm == null) throw new ServiceException("Invalid Term:" + otCode + " , Term not exist in the System; Row:" + nRow.ToString());
oTermParamerer = TermParameter.GetParameter(oTermParamerers, oemployee, oTerm.ID);
if (oTermParamerer == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + dr["Local Emp ID"].ToString() + " Row : ", nRow, "Employee applicable parameter is not Found"));
continue;
}
if (otCode == "Overtime Double Rate (up to 10 pm including weekend)")
otHour = dr[13].ToString() == "" ? 0 : Convert.ToDouble(dr[13]);
else if (otCode == "Overtime Triple Rate (10 PM to 6 AM including weekend)")
otHour = dr[14].ToString() == "" ? 0 : Convert.ToDouble(dr[14]);
else if (otCode == "Overtime Four Times Rate (Govt Holidays)")
otHour = dr[15].ToString() == "" ? 0 : Convert.ToDouble(dr[15]);
else if (otCode == "Evening Shift")
otHour = dr[17].ToString() == "" ? 0 : Convert.ToDouble(dr[17]);
else if (otCode == "Night Shift")
otHour = dr[18].ToString() == "" ? 0 : Convert.ToDouble(dr[18]);
else if (otCode == "Standby Allowance (Working Day)")
otHour = dr[20].ToString() == "" ? 0 : Convert.ToDouble(dr[20]);
else if (otCode == "Standby Allowance (Weekly holiday)")
otHour = dr[21].ToString() == "" ? 0 : Convert.ToDouble(dr[21]);
else if (otCode == "Standby Allowance (General holiday)")
otHour = dr[22].ToString() == "" ? 0 : Convert.ToDouble(dr[22]);
else if (otCode == "Standby Allowance (Festival holiday)")
otHour = dr[23].ToString() == "" ? 0 : Convert.ToDouble(dr[23]);
else if (otCode == "Transport allowance One Way")
otHour = dr[24].ToString() == "" ? 0 : Convert.ToDouble(dr[24]);
else if (otCode == "Transport Allowance Two Way")
otHour = dr[25].ToString() == "" ? 0 : Convert.ToDouble(dr[25]);
oEmpOverTime.TermID = oTermParamerer.TermID;
oEmpOverTime.TermParameterID = oTermParamerer.ID;
oEmpOverTime.OTHours = otHour;
oEmpOverTime.OTMonthBasic = oemployee.BasicSalary;
oEmpOverTime.EmployeeID = oemployee.ID;
oEmpOverTime.Value = oTermParamerer.Amount;
oEmpOverTime.OTMonth = GlobalFunctions.LastDateOfMonth(entryDate);
oEmpOverTime.MonthDate = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
oEmpOverTime.PayrollTypeID = Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID;
if (oEmpOverTime.OTHours > 0)
_EmployeeOverTimes.Add(oEmpOverTime);
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Local Emp ID"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Children Education Allowances
public void ImportChildrenEducationAllowances(DataUploadColumnDefinition _columnDefinition)
{
ObjectsTemplate<Employee> oemployees = Employee.Get();
ObjectsTemplate<Employee> employees = new ObjectsTemplate<Employee>();
ObjectsTemplate<ChildrenEducation> _childrenEduAllows = ChildrenEducation.Get();
ObjectsTemplate<ChildrenEducation> _childrenEduAllowforSingleEmp = new ObjectsTemplate<ChildrenEducation>();
oAdparameterEmployees = new ObjectsTemplate<ADParameterEmployee>();
Employee oemployee = null;
ADParameterEmployee oadparamemp = null;
ChildrenEducations = new ObjectsTemplate<ChildrenEducation>();
ChildrenEducation childAllow = null;
string sADparamID = ConfigurationManager.GetStringValue("childreneducation", "adparamid", EnumConfigurationType.Logic);
if (sADparamID == "")
{
new ServiceException("No ADParameterID Found in Logic Configuration");
}
ADParameter _ADParam = ADParameter.Get(ID.FromInteger(Convert.ToInt16(sADparamID)));
if (_ADParam == null)
{
new ServiceException("No ADParameter Found for Children Education Allowances");
}
double noOfChild = 0;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
Employee emp = employees.Where(o => o.ID == oemployee.ID).FirstOrDefault();
employees.Add(oemployee);
if (emp != null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(emp.EmployeeNo + "" + " Row : ", nRow, "is Duplicate", emp.EmployeeNo, emp.Name));
continue;
}
if (dr["From Date"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From Date Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
if (dr["Amount"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Amount :" + dr["Amount"].ToString() + " Row : ", nRow, "Amount Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
if (dr["No Of Children"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("No Of Children :" + dr["No Of Children"].ToString() + " Row : ", nRow, "No Of Children Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
childAllow = new ChildrenEducation();
childAllow.EmployeeID = oemployee.ID;
_childrenEduAllowforSingleEmp = _childrenEduAllows.Where(o => o.EmployeeID == oemployee.ID).ToObjectsTemplate();
noOfChild = _childrenEduAllowforSingleEmp.Sum(o => o.NoOfChildren);
childAllow.NoOfChildren = (int)noOfChild + Convert.ToInt32(dr["No Of Children"]);
childAllow.FromMonth = Convert.ToDateTime(dr["From Date"]);
childAllow.Amount = Convert.ToDouble(dr["Amount"]);
ChildrenEducations.Add(childAllow);
oadparamemp = new ADParameterEmployee();
oadparamemp.EmployeeID = oemployee.ID;
oadparamemp.MonthlyAmount = Convert.ToDouble(childAllow.NoOfChildren * childAllow.Amount);
oadparamemp.AllowDeductID = _ADParam.AllowDeductID; //ID.FromInteger(Convert.ToInt32(EnumAllowOrDeduct.Deduction));
oadparamemp.ADParameterID = _ADParam.ID;
oadparamemp.Periodicity = _ADParam.Periodicity;
oadparamemp.ADEmpType = EnumADEmpType.AppliedToIndividual;
oadparamemp.ValueType = EnumValueType.Amount;
oadparamemp.Arreartype = EnumArrearType.NotPresent;
oadparamemp.FormDate = GlobalFunctions.FirstDateOfMonth(childAllow.FromMonth);
//oadparamemp.TillDate = GlobalFunctions.LastDateOfMonth(childAllow.FromMonth);
oadparamemp.CreatedBy = User.CurrentUser.ID;
oadparamemp.CreatedDate = DateTime.Today;
oadparamemp.ModifiedBy = User.CurrentUser.ID;
oadparamemp.ModifiedDate = DateTime.Today;
oAdparameterEmployees.Add(oadparamemp);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import WPPFClaim
public void ImportWPPFClaim(DataUploadColumnDefinition _columnDefinition)
{
ObjectsTemplate<Employee> oemployees = Employee.Get();
ObjectsTemplate<Employee> employees = new ObjectsTemplate<Employee>();
Employee oemployee = null;
int nRow = 0;
dtWPPFClaim = new DataTable("WPPFClaim");
dtWPPFClaim.Columns.Add(new DataColumn("EMPLOYEEID", typeof(int)));
dtWPPFClaim.Columns.Add(new DataColumn("EffectYear", typeof(int)));
dtWPPFClaim.Columns.Add(new DataColumn("Amount", typeof(double)));
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
Employee emp = employees.Where(o => o.ID == oemployee.ID).FirstOrDefault();
employees.Add(oemployee);
if (emp != null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(emp.EmployeeNo + "" + " Row : ", nRow, "is Duplicate", emp.EmployeeNo, emp.Name));
continue;
}
if (dr["Effect Year"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Effect Year :" + dr["Effect Year"].ToString() + " Row : ", nRow, "Effect Year Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
if (dr["Amount"].ToString() == "")
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Amount :" + dr["Amount"].ToString() + " Row : ", nRow, "Amount Is Not Found", oemployee.EmployeeNo, oemployee.Name));
continue;
}
dtWPPFClaim.Rows.Add(oemployee.ID.Integer, Convert.ToInt32(dr["Effect Year"]), Convert.ToDouble(dr["Amount"]));
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Individual Employee Deductions
public void ImportEmpIndividualDeduction(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.GetAllEmps();
List<ADParameter> _adparams = ADParameter.Get(EnumStatus.Active, EnumAllowOrDeduct.Deduction);
ADParameter _adparam = null;
Employee oemployee = null;
oadparamemployees = new List<ADParameterEmployee>();
ADParameterEmployee oadparamemp = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oadparamemp = new ADParameterEmployee();
oadparamemp.EmployeeID = oemployee.ID;
//oadparamemp.FormDate = Convert.ToDateTime(dr["From Date"]);
//oadparamemp.TillDate = Convert.ToDateTime(dr["Till Date"]);
oadparamemp.MonthlyAmount = dr["Amount"].ToString() != string.Empty ? Convert.ToDouble(dr["Amount"]) : 0.0;
oadparamemp.AllowDeductID = _columnDefinition.SelectedItemOneID; //ID.FromInteger(Convert.ToInt32(EnumAllowOrDeduct.Deduction));
if (oemployee.GradeID == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + oemployee.EmployeeNo + " Row : ", nRow, "Employee grade id not found."));
continue;
}
ObjectsTemplate<ADParameter> oparamters = ADParameter.Get(EnumStatus.Active, oadparamemp.AllowDeductID);
ADParameter oparamter = ADParameter.GetApplicableParameter(oemployee, oemployee.GradeID, oparamters, oadparamemp.AllowDeductID);
if (oparamter == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee applicable parameter not found."));
continue;
}
oadparamemp.ADParameterID = oparamter.ID;
oadparamemp.Periodicity = oparamter.Periodicity;
if (oadparamemp.Periodicity == EnumPeriodicity.OneOff)
{
oadparamemp.FormDate = Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
oadparamemp.TillDate = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
}
else if (oadparamemp.Periodicity == EnumPeriodicity.Monthly && oparamter.EntitleType == EnumEntitleType.Individual)
{
// from date can't prior to fist date of current month
// till date can't be less to from date
// from date can't be greater to last date of current month
if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) < Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be less than first date of current month"));
continue;
}
if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) > Payroll.BO.GlobalFunctions.LastDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be greater than last date of current month"));
continue;
}
if (dr["Till Date"].ToString() != "" && Convert.ToDateTime(dr["Till Date"]) < Convert.ToDateTime(dr["From Date"]))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Till Date :" + dr["Till Date"].ToString() + " Row : ", nRow, "Till date can not be less than From date"));
continue;
}
oadparamemp.FormDate = dr["From Date"].ToString() != "" ? Convert.ToDateTime(dr["From Date"]) : Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (dr["Till Date"].ToString() != "")
oadparamemp.TillDate = Convert.ToDateTime(dr["Till Date"]);
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + dr["Employee No"].ToString() + " Row : ", nRow, "Employee applicable parameter is defined greade wise"));
continue;
}
oadparamemp.ADEmpType = EnumADEmpType.AppliedToIndividual;
oadparamemp.Arreartype = EnumArrearType.NotPresent;
oadparamemployees.Add(oadparamemp);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Employee Grade Salary Assignment
public void ImportEmpGradeSalaryAssignment(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
List<Grade> ogrades = Grade.Get(EnumStatus.Regardless);
Grade ograde = null;
int nRow = 0;
oempgradesalarys = new List<EmployeeGradeSalary>();
EmployeeGradeSalary oempgradesalary = null;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oempgradesalary = new EmployeeGradeSalary();
oempgradesalary.Employee = oemployee;
oempgradesalary.EmployeeID = oemployee.ID;
ograde = ogrades.Find(delegate(Grade grd) { return grd.Code == dr["Grade"].ToString(); });
if (ograde != null)
{
oempgradesalary.GradeID = ograde.ID;
if (ograde.HasGrossConcept == true)
oempgradesalary.GrossSalary = dr["Gross"].ToString() != string.Empty ? Convert.ToDouble(dr["Gross"]) : 0.0;
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Grade.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee grade id not found."));
oempgradesalary.GradeSalaryTypeID = _columnDefinition.SelectedItemOneID;
oempgradesalary.EffectDate = Convert.ToDateTime(dr["Effect Date"]);
oempgradesalary.BasicSalary = dr["Basic"].ToString() != string.Empty ? Convert.ToDouble(dr["Basic"]) : 0.0;
//Added by ashek for effect in life cycle
oempgradesalary.EmpLifeCycle = new EmpLifeCycle();
oempgradesalary.EmpLifeCycle.EmployeeID = oempgradesalary.EmployeeID;
oempgradesalary.EmpLifeCycle.GradeID = oempgradesalary.GradeID;
oempgradesalary.EmpLifeCycle.EffectDate = oempgradesalary.EffectDate;
oempgradesalary.EmpLifeCycle.BasicSalary = oempgradesalary.BasicSalary;
oempgradesalary.EmpLifeCycle.StatusDetailID = _columnDefinition.SelectedItemOneID;
if (_columnDefinition.SelectedItemOneID == ID.FromInteger(3)) //Used Only For Confirmation Type
{
oempgradesalary.EmpLifeCycle.PFMemberType = EnumPFMembershipType.Live;
}
oempgradesalary.EmpLifeCycle.Description = "Increment";
oempgradesalarys.Add(oempgradesalary);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Upload Loan Information
public void ImportEmpLoanInformation(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
loanissues = new List<LoanIssue>();
List<Loan> loans = Loan.Get(EnumStatus.Active);
Loan loan = null;
EnumLoanFraction _Fractionate = EnumLoanFraction.WithFraction;
string _Method = string.Empty;
LoanIssue loanissue = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["EmployeeNo"].ToString(); });
if (oemployee != null)
{
loanissue = new LoanIssue();
loanissue.EmployeeID = oemployee.ID;
loanissue.InterestRate = Convert.ToDouble(dr["Interest"]);
loanissue.IssueDate = Convert.ToDateTime(dr["Disburse from Month"]);
loanissue.LoanAmount = Convert.ToDouble(dr["Loan Amount"]);
loan = new Loan();
loan = loans.Find(delegate(Loan ln) { return ln.Name == dr["LoanType"].ToString(); });
if (loan != null)
{
loanissue.LoanID = loan.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("LoanType", nRow, "Loan type not found in the existing loans"));
continue;
}
loanissue.LoanNo = dr["Loan Number"].ToString();
loanissue.NoOfInstallments = Convert.ToInt32(dr["Schedule"]);
loanissue.StartPaybackMonthDate = Ease.CoreV35.Utility.Global.DateFunctions.LastDateOfMonth(loanissue.IssueDate);
_Fractionate = EnumLoanFraction.WithFraction;
string nvalue = ConfigurationManager.GetStringValue("loan", "adjustfractionmonth", EnumConfigurationType.Logic);
switch (nvalue.ToUpper())
{
case "NONE": _Fractionate = EnumLoanFraction.WithFraction; break;
case "FIRST": _Fractionate = EnumLoanFraction.FractionFirstMonth; break;
case "LAST": _Fractionate = EnumLoanFraction.FractionLastMonth; break;
default:
_Fractionate = EnumLoanFraction.WithFraction; break;
}
_Method = ConfigurationManager.GetStringValue("loan", "method", EnumConfigurationType.Logic);
switch (_Method.Trim().ToUpper())
{
case "EMI":
loanissue.PrepareEMISchedule(loanissue.IssueDate, _Fractionate);
break;
case "SID":
loanissue.PrepareSIDSchedule(loanissue.IssueDate, _Fractionate);
break;
case "BANK":
loanissue.PrepareBankSchedule(loanissue.IssueDate, _Fractionate);
break;
case "LMID":
loanissue.PrepareLMIDSchedule(loanissue.IssueDate, _Fractionate);
break;
case "HALFYEARLY":
loanissue.PrepareHalfYearlySchedule(loanissue.IssueDate, _Fractionate);
break;
default:
loanissue.PrepareSIDSchedule(loanissue.IssueDate, _Fractionate);
break;
}
loanissues.Add(loanissue);
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
public void ImportCareerHistory()
{
//DataTable dt = new DataTable();
//DataView dv = new DataView(_uplodedData);
//dv.Sort = "Employee No, Effect Date ASC";
//dt = dv.ToTable();
_uplodedData.DefaultView.RowFilter = "Employee No, Effect Date ASC";
_uplodedData = _uplodedData.DefaultView.ToTable();
RefreshObject();
_oEmpLifeCycles = new ObjectsTemplate<EmpLifeCycle>();
List<Employee> oemployees = Employee.GetAllEmps();
Employee oemployee = null;
int nTotal = _uplodedData.Rows.Count;
GlobalFunctions.SetProgressbarMaxValue = nTotal;
UpdateProgressStatus(EnumProcessStatus.Start);
int _nCount = 1;
int nRow = 0;
string sEmployeeNo = "";
if (_uplodedData != null && _uplodedData.Rows.Count > 0)
{
sEmployeeNo = (_uplodedData.Rows[0])["Employee No"].ToString();
}
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
//if (dr["Employee No"].ToString() == "10024")
// dr["Employee No"] = "10024";
UpdateprocessStatus("Collecting data " + _nCount.ToString() + "/" + nTotal.ToString());
EmpLifeCycle oItem = new EmpLifeCycle();
Employee emp = oemployees.Find(ee => ee.EmployeeNo == dr["Employee No"].ToString());
//Employee emp = Employee.Get(dr["Employee No"].ToString());
if (emp == null)
{
nRow++;
_nCount++;
continue;
}
//int nTypeID = Convert.ToInt16(dr["promotiontype"].ToString());
oItem.EmployeeID = emp.ID;
Grade ogrd = _grades.Find(gg => gg.Code == dr["Grade"].ToString());
if (ogrd != null)
{
oItem.GradeID = ogrd.ID;
emp.GradeID = oItem.GradeID;
}
Department dept = _departments.Find(gg => gg.Code == dr["Department"].ToString());
if (dept != null)
{
oItem.DepartmentID = dept.ID;
emp.DepartmentID = oItem.DepartmentID;
}
Location loc = _locations.Find(gg => gg.Code == dr["Location"].ToString());
if (loc != null)
{
oItem.LocationID = loc.ID;
emp.LocationID = oItem.LocationID;
}
oItem.Description = dr["Description"].ToString();
oItem.BasicSalary = Convert.ToDouble(dr["Basic Salary"].ToString());
emp.BasicSalary = Convert.ToDouble(oItem.BasicSalary);
oItem.EffectDate = Convert.ToDateTime(dr["Effect Date"].ToString());
oItem.CreatedBy = ID.FromInteger(1);
oItem.CreatedDate = oItem.EffectDate.AddDays(-5);
oItem.StatusDetailID = ID.FromInteger(1);//Event Should Created before
if (oItem.BasicSalary != null && (double)oItem.BasicSalary > 0)
{
EmployeeGradeSalary ogs = new EmployeeGradeSalary();
ogs.BasicSalary = (oItem.BasicSalary == null) ? 0 : (double)oItem.BasicSalary;
ogs.GrossSalary = (oItem.GrossSalary == null) ? 0 : (double)oItem.GrossSalary;
if (oItem.GradeID == null)
{
//if (oItem.GradeID == null)
// throw new ServiceException("Grade not yet assigned to employee.");
ogs.GradeID = emp.GradeID;
//ogs.PayScaleDetailID = cbcGrade.SelectedSlab.ID;
}
else
{
ogs.GradeID = oItem.GradeID;
//ogs.PayScaleDetailID = cbcGrade.SelectedSlab.ID;
}
//if (ogs.BasicSalary + ogs.GrossSalary == 0)
//{
// if (emp.BasicSalary + emp.GrossSalary == 0)
// throw new ServiceException("Salary(Basic/Gross) can't be zero.");
// else
// {
//ogs.BasicSalary = emp.BasicSalary;
//ogs.GrossSalary = emp.GrossSalary;
// }
//}
ogs.EmployeeID = oItem.EmployeeID;
ogs.GradeSalaryTypeID = oItem.StatusDetailID;
// ogs.ArrearType = (EnumArrearType)Convert.ToInt16(dr["ArrearInfo"].ToString());
ogs.EffectDate = oItem.EffectDate;
if (sEmployeeNo != dr["Employee No"].ToString())
{
sEmployeeNo = dr["Employee No"].ToString();
}
//if (dr["TillDate"].ToString() != "")
// ogs.TillDate = Convert.ToDateTime(dr["TillDate"].ToString());
//else
//{
DataRow dr2 = null;
if (nRow < _uplodedData.Rows.Count)
{
try
{
dr2 = _uplodedData.Rows[nRow + 1];
}
catch { dr2 = null; }
}
if (dr2 != null)
{
if (sEmployeeNo == dr2["Employee No"].ToString())
{
ogs.TillDate = Convert.ToDateTime(dr2["Effect Date"].ToString()).AddDays(-1);
}
}
//}
oItem.EmployeeGradeSalary = ogs;
}
_oEmpLifeCycles.Add(oItem);
UpdateProgressStatus(EnumProcessStatus.PerformStep);
_nCount++;
nRow++;
}
UpdateProgressStatus(EnumProcessStatus.End);
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
public void ImportEmpLoanSetup(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
List<LoanSchedule> loanschedules = new List<LoanSchedule>();
loanschedules = LoanSchedule.Get();
loanschs = new List<LoanSchedule>();
LoanSchedule loanschedule = null;
int nRow = 0;
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["EmployeeNo"].ToString(); });
if (oemployee != null)
{
if (dr["Month"].ToString() != string.Empty && (object)dr["Month"] != null)
{
loanschedule = loanschedules.Find(delegate(LoanSchedule loansch) { return loansch.EmployeeID.Integer == oemployee.ID.Integer && Ease.CoreV35.Utility.Global.DateFunctions.LastDateOfMonth(loansch.DueInstallmentDate).ToString("dd MMM yyyy") == Ease.CoreV35.Utility.Global.DateFunctions.LastDateOfMonth((Convert.ToDateTime(dr["Month"]))).ToString("dd MMM yyyy"); });
if (loanschedule != null)
{
loanschedule.InstallmentPrincipal = Convert.ToDouble(dr["Principal"]);
loanschedule.InstallmentInterest = Convert.ToDouble(dr["Interest"]);
loanschs.Add(loanschedule);
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Month.", nRow, "(" + Ease.CoreV35.Utility.Global.DateFunctions.LastDateOfMonth((Convert.ToDateTime(dr["Month"]))).ToString("dd MMM yyyy") + ")" + "Loan schedule not found for this date"));
continue;
}
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Month.", nRow, "(" + dr["Month"].ToString() + ")" + "Month can not be blank"));
continue;
}
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("EmployeeNo.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
}
#region Import Employee Bank Account Information
public void ImportEmpBankAccount(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
List<Branch> obranches = Branch.Get(EnumStatus.Regardless);
Branch obranch = null;
oempbankaccounts = new List<EmployeeBankAccount>();
EmployeeBankAccount oempbankaccount = null;
int nRow = 0;
ObjectsTemplate<Bank> banks = Bank.Get();
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oempbankaccount = new EmployeeBankAccount();
oempbankaccount.EmployeeID = oemployee.ID;
Bank obank = banks.Find(delegate(Bank item) { return item.Name == dr["Bank Name"].ToString(); });
if (obank == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Bank Name", nRow, "Bank not found in the existing Banks"));
continue;
}
obranch = obranches.Find(delegate(Branch item) { return item.Name == dr["Branch Name"].ToString() && item.Bank.ID.Integer == obank.ID.Integer; });
if (obranch != null)
{
oempbankaccount.BranchID = obranch.ID;
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Branch Name", nRow, "Branch name not found in the existing branches"));
oempbankaccount.EffectDate = GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
oempbankaccount.AccountNo = dr["Account No"].ToString();
oempbankaccounts.Add(oempbankaccount);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region SalryComponentDate
public void ImportSalaryComponet(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
ObjectsTemplate<SalaryMonthlyDetail> osalaryDetails = new ObjectsTemplate<SalaryMonthlyDetail>();
_incomeTaxes = new ObjectsTemplate<IncomeTax>();
Employee oemployee = null;
int nRow = 0;
double tempAmount = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["EmployeeNo"].ToString(); });
EnumSalaryItemCode itemCode = (EnumSalaryItemCode)Convert.ToInt32(dr["ItemCode"]);
EnumSalaryGroup groupCode = (EnumSalaryGroup)Convert.ToInt32(dr["ItemGroup"]);
int ItemID = (int)Convert.ToInt32(dr["ItemID"]);
if (oemployee != null)
{
SalaryMonthly oMonthly;
oMonthly = SalaryMonthly.Get(oemployee.ID, Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (oMonthly == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + " salary not yet processed."));
}
SalaryMonthlyDetail oDetail = oMonthly.Details.Find(delegate(SalaryMonthlyDetail oSMD) { return oSMD.ItemCode == itemCode && oSMD.itemGroupCode == groupCode && oSMD.ItemID == ItemID; });
if (oDetail == null)
{
oDetail = new SalaryMonthlyDetail();
oDetail.SalaryMonthlyID = oMonthly.Details[0].SalaryMonthlyID;
oDetail.itemGroupCode = groupCode;
oDetail.ItemID = ItemID;
oDetail.ItemCode = itemCode;
oDetail.CalculatedAmount = 0;
//oDetail.Description
SalaryMonthlyDetail gitem = oMonthly.Details.Find(delegate(SalaryMonthlyDetail oSMD) { return oSMD.ItemCode == itemCode && oSMD.ItemID == ItemID; });
if (gitem == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + " salary component not foun"));
continue;
}
oDetail.Description = gitem.Description;
oDetail.Position = gitem.Position;
oDetail.SupportID = gitem.SupportID;
oDetail.ChangedAmount = Convert.ToDouble(dr["Amount"]);
}
else
{
tempAmount = oDetail.ChangedAmount;
oDetail.ChangedAmount = Convert.ToDouble(dr["Amount"]);
}
osalaryDetails.Add(oDetail);
SalaryMonthlyDetail onetpaydetail = oMonthly.Details.Find(delegate(SalaryMonthlyDetail oSMD) { return oSMD.ItemCode == EnumSalaryItemCode.Net_Payable && oSMD.itemGroupCode == EnumSalaryGroup.OtherItem && oSMD.ItemID == (int)EnumSalaryItemCode.Net_Payable; });
if (onetpaydetail == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + "net pay item not found"));
continue;
}
// if detail not found, generate an errror and continue
// same way, get the net pay
// if net pay item not found, generate an error
//SalaryMonthlyDetail onetpaydetail = _SalaryMonthly.Details.Find(
// if net pay goes negative, generate an error
if (groupCode == EnumSalaryGroup.Gross || groupCode == EnumSalaryGroup.Arrear)
{
onetpaydetail.ChangedAmount = onetpaydetail.ChangedAmount - tempAmount + oDetail.ChangedAmount;
osalaryDetails.Add(onetpaydetail);
}
else if (groupCode == EnumSalaryGroup.Deductions || groupCode == EnumSalaryGroup.UnauthLeave)
{
onetpaydetail.ChangedAmount = onetpaydetail.ChangedAmount + tempAmount - oDetail.ChangedAmount;
osalaryDetails.Add(onetpaydetail);
}
if (onetpaydetail.ChangedAmount <= 0)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + "net pay can't be less then zero"));
continue;
}
// if the item is tax item, update tax card deducted column.
if (itemCode == EnumSalaryItemCode.Inc_Tax_Deduction)
{
IncomeTax otaxItem = new IncomeTax();
otaxItem.EmployeeID = oemployee.ID;
otaxItem.ThisMonthAmount = oDetail.ChangedAmount;
_incomeTaxes.Add(otaxItem);
}
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + "Employee not found for in the existing data"));
}
_salaryDetails = osalaryDetails;
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Employee Email Address
public void ImportEmpShortInfo(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
_TempEmployees = new ObjectsTemplate<Employee>();
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
Employee oEmp = new Employee();
oEmp.EmployeeNo = oemployee.EmployeeNo;
oEmp.EmailAddress = dr["Email Address"].ToString();
oEmp.JoiningDate = dr["Joining Date"].ToString() == "" ? DateTime.MinValue : Convert.ToDateTime(dr["Joining Date"].ToString());
if (dr["Confirmation Date"].ToString() != "")
{
oEmp.IsConfirmed = true;
oEmp.ConfirDate = dr["Confirmation Date"].ToString() == "" ? DateTime.MinValue : Convert.ToDateTime(dr["Confirmation Date"].ToString());
}
_TempEmployees.Add(oEmp);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Employee Basic Information
public void ImportEmpBasicInfo()
{
_basicwithEmployee = new BasicDataUploadProcess();
_basicwithEmployee.ImportEmpBasicInfo(_uplodedData);
_errorOrSuccessList = _basicwithEmployee.ErrorOrSuccessList;
}
public void ImportEmpBasicInfo2()
{
//_basicwithEmployee = new BasicDataUploadProcess();
//_basicwithEmployee.ImportEmpBasicInfo(_uplodedData);
//_errorOrSuccessList = _basicwithEmployee.ErrorOrSuccessList;
this.ImportEmpBasicInfo2(_uplodedData);
}
public void ImportEmpBasicInfoRegularly()
{
_basicwithEmployee = new BasicDataUploadProcess();
_basicwithEmployee.ImportEmpBasicInfoRegularly(_uplodedData);
_errorOrSuccessList = _basicwithEmployee.ErrorOrSuccessList;
}
#endregion
public ObjectsTemplate<HREmployee> ImportAllEmpGeneralInfoIDLC(DataTable oDTable)
{
int nRow = 0;
try
{
//ObjectsTemplate<EmpContact> oEmployee
_CheckHREmployees = HREmployee.Get();
EmpContact oEmpContact = null;
ObjectsTemplate<Thana> oParmanentsThanas = null;
ObjectsTemplate<Thana> oPresentThanas = null;
//HREmployee oHREmployee=null;
ObjectsTemplate<EmpContact> oEmpContacts = new ObjectsTemplate<EmpContact>();
_HREmployees = new ObjectsTemplate<HREmployee>();
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["First Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmp = _CheckHREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["EmployeeID"].ToString().ToUpper().Trim(); });
oHREmp.Contacts = new ObjectsTemplate<EmpContact>();
oHREmp.Childrens = new ObjectsTemplate<EmpChildren>();
oHREmp.Experiences = new ObjectsTemplate<EmpExperience>();
oHREmp.Spouses = new ObjectsTemplate<EmpSpouse>();
oHREmp.Experiences = new ObjectsTemplate<EmpExperience>();
oHREmp.Trainings = new ObjectsTemplate<EmpTraining>();
oHREmp.Academics = new ObjectsTemplate<EmpAcademic>();
oHREmp.Achievement = new ObjectsTemplate<EmpAchievement>();
oHREmp.OtherTalents = new ObjectsTemplate<EmpOtherTalent>();
oHREmp.CurricularActivities = new ObjectsTemplate<EmpCurricularActivity>();
oHREmp.Hobbys = new ObjectsTemplate<EmpHobby>();
oHREmp.References = new ObjectsTemplate<EmpReference>();
oHREmp.Allergies = new ObjectsTemplate<EmpAllergy>();
oHREmp.Publications = new ObjectsTemplate<EmpPublication>();
oHREmp.Nominees = new ObjectsTemplate<EmpNominee>();
oHREmp.Hospitalizations = new ObjectsTemplate<EmpHospitalization>();
oHREmp.Guarantors = new ObjectsTemplate<EmpGuarantor>();
oHREmp.WorkPlanSetup = new EmpWorkPlanSetup();
oHREmp.EmpLanguages = new ObjectsTemplate<EmpLanguage>();
oHREmp.EmpRelatives = new ObjectsTemplate<EmpRelative>();
oHREmp.EmpMemberships = new ObjectsTemplate<EmpMembership>();
oHREmp.EmpRelations = new ObjectsTemplate<EmpRelation>();
oHREmp.EmpHRQuestionAnswers = new ObjectsTemplate<EmpHRQuestionAnswer>();
oHREmp.CreditCards = new ObjectsTemplate<EmpCreditCard>();
if (oHREmp != null)
{
_HREmployee = oHREmp;
_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//if(_HREmployee.Contacts.Count>0)
//{
//_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//}
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("EmployeeID", nRow, "EmployeeID : " + oDr["EmployeeID"].ToString() + " Not found in the database"));
continue;
_HREmployee = new HREmployee();
}
nRow = nRow + 1;
_HREmployee.PayrollTypeID = Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID;
_HREmployee.EmployeeNo = oDr["EmployeeID"].ToString();
_HREmployee.GlobalID = oDr["GEID"].ToString();
_HREmployee.BirthPlace = oDr["Place Of Birth"].ToString();
//_HREmployee.NickName = oDr["Nick Name"].ToString();
_HREmployee.FirstName = oDr["First Name"].ToString();
_HREmployee.MiddleName = oDr["Middle Name"].ToString();
_HREmployee.LastName = oDr["Last Name"].ToString();
_HREmployee.Name = _HREmployee.FirstName + " " + _HREmployee.MiddleName + " " + _HREmployee.LastName;
_HREmployee.Gender = (oDr["Gender"].ToString().Trim().ToUpper().Trim() == "Male".ToUpper().Trim()) ? EnumGender.Male : EnumGender.Female;
Religion oReligion = _Religions.Find(delegate(Religion oItem) { return oItem.Name.ToUpper().Trim() == oDr["Religion"].ToString().ToUpper().Trim(); });
if (oReligion != null)
_HREmployee.ReligionID = oReligion.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Religion", nRow, "Religion is not valid for employee from " + oDTable.TableName + " Information."));
if (oDr["Blood Group"].ToString().ToUpper() == "B+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "B-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BNeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.APos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ANeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.OPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ONeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABNeg;
}
_HREmployee.PassportNo = oDr["Passport No"].ToString();
_HREmployee.PassportIssuePlace = oDr["Passport Issue Place"].ToString();
DateTime dTemPassIssueDate;
if (DateTime.TryParse(oDr["Passport Issue Date"].ToString(), out dTemPassIssueDate))
_HREmployee.PassportIssueDate = dTemPassIssueDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.PassportIssueDate = DateTime.MinValue;
DateTime dTemPassExpireDate;
if (DateTime.TryParse(oDr["Passport Expire Date"].ToString(), out dTemPassExpireDate))
_HREmployee.PassportExpDate = dTemPassExpireDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.PassportExpDate = DateTime.MinValue;
_HREmployee.TinNo = oDr["Tax Identification No"].ToString();
Nationality oNationality = _Nationalites.Find(delegate(Nationality oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nationality"].ToString().ToUpper().Trim(); });
if (oNationality != null)
_HREmployee.NationalityID = oNationality.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nationality", nRow, "Nationality is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.NationalID = oDr["National ID"].ToString();
DateTime dTemFDate;
if (DateTime.TryParse(oDr["Joining Date"].ToString(), out dTemFDate))
_HREmployee.JoiningDate = dTemFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.JoiningDate = DateTime.MinValue;
//_HREmployee.JoiningDate = Convert.ToDateTime(oDr["Joining Date"]);
DateTime dTemBDate;
if (DateTime.TryParse(oDr["Birth Date"].ToString(), out dTemBDate))
_HREmployee.BirthDate = dTemBDate;//Convert.ToDateTime(oDr["Date of Birth"]);
else
//_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Joining Date", nRow, "Please enter employee joining date " + oDTable.TableName + " Information."));
_HREmployee.BirthDate = DateTime.MinValue;
Category oCategory = _Categories.Find(delegate(Category oItem) { return oItem.Name.ToUpper().Trim() == oDr["Category"].ToString().ToUpper().Trim(); });
if (oCategory != null)
_HREmployee.CategoryID = oCategory.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Category", nRow, "Category is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.DrivingLicenceNo = oDr["Driving Licence No"].ToString();
_HREmployee.FatherName = oDr["Father's Name"].ToString();
_HREmployee.MotherName = oDr["Mother's Name"].ToString();
Occupation oFOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Father's Occupation"].ToString().ToUpper().Trim(); });
if (oFOccupation != null)
_HREmployee.FatherOccupationID = oFOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Father occupation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oMOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Mother's Occupation"].ToString().ToUpper().Trim(); });
if (oMOccupation != null)
_HREmployee.MotherOccupationID = oMOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Mother occupation is not valid for employee " + oDTable.TableName + " Information."));
#region Employee Contact
oEmpContact = new EmpContact();
oEmpContact.ParmanentAddress = oDr["Permanent Address"].ToString();
District oDisPar = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper() == oDr["Permanent District"].ToString().ToUpper(); });
oParmanentsThanas = Thana.GetByDistID(oDisPar.ID);
if (oDisPar != null)
oEmpContact.ParmanentDistrictID = oDisPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Permanent District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPar = oParmanentsThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Permanent Thana"].ToString().ToUpper().Trim(); });
if (oThanaPar != null)
oEmpContact.ParmanentThanaID = oThanaPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Permanent Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.ParmanentTelephone = oDr["Permanent Telephone No"].ToString();
oEmpContact.ParmanentMobile = oDr["PerMobile No"].ToString();
oEmpContact.PresentAddress = oDr["Present Address"].ToString();
District oPerDis = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present District"].ToString().ToUpper().Trim(); });
oPresentThanas = Thana.GetByDistID(oPerDis.ID);
if (oPerDis != null)
oEmpContact.PresentDistrictID = oPerDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Present District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPre = oPresentThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present Thana"].ToString().ToUpper().Trim(); });
if (oThanaPre != null)
oEmpContact.PresentThanaID = oThanaPre.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Present Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.PresentTelephone = oDr["Present Telephone No"].ToString();
oEmpContact.PresentMobile = oDr["PreMobile No"].ToString();
oEmpContact.PersonalTelephone = oDr["Personal Land Phone No"].ToString();
oEmpContact.Mobile = oDr["Personal Mobile No"].ToString();
oEmpContact.PersonalEMail = oDr["Personal E-Mail"].ToString();
oEmpContact.OfficalEMail = oDr["Official E-Mail"].ToString();
oEmpContact.Fax = oDr["Fax"].ToString();
oEmpContact.EmergencyContactAddress = oDr["Emergency Contact Address"].ToString();
oEmpContact.EmergencyContactPerson = oDr["Emergency Contact Person"].ToString();
oEmpContact.EmergencyTelephone = oDr["Emergency Telephone No"].ToString();
oEmpContact.EmergencyMobile = oDr["EmeMobile No"].ToString();
Relation oRel = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRel != null)
oEmpContact.ContactPersonRelationId = oRel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Emergency Relation is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.Contacts.Add(oEmpContact);
_HREmployees.Add(_HREmployee);
#endregion
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployees;
}
private void ImportAllEmpContactInfo(DataUploadColumnDefinition oColumnDefination)
{
List<Employee> oemployees = Employee.GetAllEmps();
Employee oemployee = null;
ObjectsTemplate<EmpContact> oContacts = null;
oContacts = HREmployee.GetEmpContacts();
_Districts = District.Get();
_Thanas = Thana.Get();
_Relations = Relation.Get();
_empContacts = new ObjectsTemplate<EmpContact>();
EmpContact oEmpContact = null;
int nRow = 0;
foreach (DataRow oDr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.SingleOrDefault(x => x.EmployeeNo.Trim().ToUpper() == oDr["Employee No"].ToString().Trim().ToUpper());
if (oemployee == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No", nRow, "Employee not found in database " + _uplodedData.TableName + " Information."));
continue;
}
if (oContacts.Any(x => x.EmployeeID.Integer == oemployee.ID.Integer))
{
oEmpContact = oContacts.First(x => x.EmployeeID.Integer == oemployee.ID.Integer);
}
else
{
oEmpContact = new EmpContact();
oEmpContact.EmployeeID = oemployee.ID;
}
oEmpContact.ParmanentAddress = oDr["Permanent Address"].ToString();
if (!string.IsNullOrEmpty(oDr["Permanent District"].ToString().Trim()))
{
District oDisPar = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper() == oDr["Permanent District"].ToString().ToUpper(); });
ObjectsTemplate<Thana> oParmanentsThanas = Thana.GetByDistID(oDisPar.ID);
if (oDisPar != null)
oEmpContact.ParmanentDistrictID = oDisPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Permanent District is not valid for employee " + _uplodedData.TableName + " Information."));
if (!string.IsNullOrEmpty(oDr["Permanent Thana"].ToString().Trim()))
{
Thana oThanaPar = oParmanentsThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Permanent Thana"].ToString().ToUpper().Trim(); });
if (oThanaPar != null)
oEmpContact.ParmanentThanaID = oThanaPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Permanent Thana is not valid for employee " + _uplodedData.TableName + " Information."));
}
}
oEmpContact.ParmanentTelephone = string.IsNullOrEmpty(oDr["Permanent Telephone No"].ToString().Trim()) ? oEmpContact.ParmanentTelephone : oDr["Permanent Telephone No"].ToString().Trim();
oEmpContact.ParmanentMobile = string.IsNullOrEmpty(oDr["PerMobile No"].ToString().Trim()) ? oEmpContact.ParmanentMobile : oDr["PerMobile No"].ToString().Trim();
oEmpContact.PresentAddress = string.IsNullOrEmpty(oDr["Present Address"].ToString().Trim()) ? oEmpContact.PresentAddress : oDr["Present Address"].ToString().Trim(); ;
if (!string.IsNullOrEmpty(oDr["Present District"].ToString().Trim()))
{
District oDisPre = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper() == oDr["Present District"].ToString().ToUpper(); });
ObjectsTemplate<Thana> oParmanentsThanas = Thana.GetByDistID(oDisPre.ID);
if (oDisPre != null)
oEmpContact.ParmanentDistrictID = oDisPre.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Present District is not valid for employee " + _uplodedData.TableName + " Information."));
if (!string.IsNullOrEmpty(oDr["Present Thana"].ToString().Trim()))
{
Thana oThanaPre = oParmanentsThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present Thana"].ToString().ToUpper().Trim(); });
if (oThanaPre != null)
oEmpContact.ParmanentThanaID = oThanaPre.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Present Thana is not valid for employee " + _uplodedData.TableName + " Information."));
}
}
oEmpContact.PresentTelephone = string.IsNullOrEmpty(oDr["Present Telephone No"].ToString().Trim()) ? oEmpContact.PresentTelephone : oDr["Present Telephone No"].ToString().Trim();
oEmpContact.PresentMobile = string.IsNullOrEmpty(oDr["PreMobile No"].ToString().ToString().Trim()) ? oEmpContact.PresentMobile : oDr["PreMobile No"].ToString().ToString().Trim();
oEmpContact.PersonalTelephone = string.IsNullOrEmpty(oDr["Personal Land Phone No"].ToString().Trim()) ? oEmpContact.PersonalTelephone : oDr["Personal Land Phone No"].ToString().Trim();
oEmpContact.Mobile = string.IsNullOrEmpty(oDr["Personal Mobile No"].ToString().Trim()) ? oEmpContact.Mobile : oDr["Personal Mobile No"].ToString().Trim();
oEmpContact.PersonalEMail = string.IsNullOrEmpty(oDr["Personal E-Mail"].ToString().Trim()) ? oEmpContact.PersonalEMail : oDr["Personal E-Mail"].ToString().Trim();
oEmpContact.OfficalEMail = string.IsNullOrEmpty(oDr["Official E-Mail"].ToString().Trim()) ? oEmpContact.OfficalEMail : oDr["Official E-Mail"].ToString().Trim();
oEmpContact.Fax = string.IsNullOrEmpty(oDr["Fax"].ToString().Trim()) ? oEmpContact.Fax : oDr["Fax"].ToString().Trim();
oEmpContact.EmergencyContactAddress = string.IsNullOrEmpty(oDr["Emergency Contact Address"].ToString().Trim()) ? oEmpContact.EmergencyContactAddress : oDr["Emergency Contact Address"].ToString().Trim();
oEmpContact.EmergencyContactPerson = string.IsNullOrEmpty(oDr["Emergency Contact Person"].ToString().Trim()) ? oEmpContact.EmergencyContactPerson : oDr["Emergency Contact Person"].ToString().Trim();
oEmpContact.EmergencyTelephone = string.IsNullOrEmpty(oDr["Emergency Telephone No"].ToString().Trim()) ? oEmpContact.EmergencyTelephone : oDr["Emergency Telephone No"].ToString().Trim();
oEmpContact.EmergencyMobile = string.IsNullOrEmpty(oDr["EmeMobile No"].ToString().Trim()) ? oEmpContact.EmergencyMobile : oDr["EmeMobile No"].ToString().Trim();
if (!string.IsNullOrEmpty(oDr["Relation"].ToString().Trim()))
{
Relation oRel = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRel != null)
oEmpContact.ContactPersonRelationId = oRel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Emergency Relation is not valid for employee " + _uplodedData.TableName + " Information."));
}
//_HREmployee.Contacts.Add(oEmpContact);
// _HREmployees.Add(_HREmployee);
_empContacts.Add(oEmpContact);
}
#region Employee Contact
oEmpContact = new EmpContact();
#endregion
}
#region Import Exception Data
public void ImportException(int uploadId, DataUploadColumnDefinition oColumnDefinition)
{
_uploadException = new DataUploadException();
_uploadException.UploadException(uploadId, _uplodedData, oColumnDefinition);
_errorOrSuccessList = _uploadException.ErrorOrSuccessList;
}
#endregion
#region Import Tax Data
public void ImportTaxData()
{
_basicwithEmployee = new BasicDataUploadProcess();
_basicwithEmployee.ImportTaxDataInfo(_uplodedData);
_errorOrSuccessList = _basicwithEmployee.ErrorOrSuccessList;
}
#endregion
#region Import Tax Adjustment Data
public void ImportTaxAdjustmentData(DataUploadColumnDefinition columnDefinition)
{
_basicwithEmployee = new BasicDataUploadProcess();
_basicwithEmployee.ImportTaxAdjustmentData(_uplodedData, columnDefinition);
_errorOrSuccessList = _basicwithEmployee.ErrorOrSuccessList;
}
#endregion
#region Import Bonus Information
public BonusProcess ImportEmpBonus(DataUploadColumnDefinition _columnDefinition, bool IsDisburshWithSalry, bool IsTaxProcess, double UsedProcess, ID bonusID, DateTime dPayDate, int _nReligionID)
{
double BonusAdjustAmount;
double BonusSalaryItemAmount;
double nBasicSalary = 0;
double nGrossSalary = 0;
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
BonusProcess oProssBonus = new BonusProcess();
oProssBonus.BonusProcessDetails = new ObjectsTemplate<BonusProcess.BonusProcessDetail>();
List<EnmSetupManagerTranType> setupTypes = SetupDetail.GetTypes(EnumParameterSetup.Bonus);
ObjectsTemplate<SetupDetail> setupDetails = SetupDetail.GetParameters(EnumParameterSetup.Bonus);
ObjectsTemplate<BonusParameter> bonusParameters = BonusParameter.Get(EnumStatus.Regardless);
//List<EmployeeGradeSalary> grdSals = EmployeeGradeSalary.Get();
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
BonusAdjustAmount = 0.0;
BonusSalaryItemAmount = 0.0;
if (nRow == 2250)
nRow = 2250;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
ObjectsTemplate<BonusParameter> oParams = BonusParameter.ApplicableParameters3(oemployee, bonusID, setupTypes, setupDetails, bonusParameters);
if (oParams != null)
{
foreach (BonusParameter oBonusParm in oParams)
{
oProssBonus.BonusID = oBonusParm.BonusID;
oProssBonus.BasicOnMonth = GlobalFunctions.LastDateOfMonth(SystemInformation.CurrentSysInfo.LastPayProcessDate);
oProssBonus.BonusMonth = GlobalFunctions.LastDateOfMonth(dPayDate);// Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
oProssBonus.DisburseDate = dPayDate;// Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
oProssBonus.IsDisburseWithSalary = IsDisburshWithSalry;
oProssBonus.IsTaxProcess = IsTaxProcess;
oProssBonus.UsedProcess = UsedProcess;
oProssBonus.ReligionID = ID.FromInteger(_nReligionID);
EmployeeGradeSalary ogs = null;
// var nMaxID = (grdSals.FindAll(x => x.EmployeeID == oemployee.ID && x.EffectDate <= GlobalFunctions.LastDateOfMonth(SystemInformation.CurrentSysInfo.LastPayProcessDate))).Max(y => y.ID.Integer);
// if (nMaxID != 0) ogs = grdSals.Find(x => x.ID.Integer == nMaxID);
//// EmployeeGradeSalary ogs = EmployeeGradeSalary.GetBasicOnDate(oemployee.ID, GlobalFunctions.LastDateOfMonth(SystemInformation.CurrentSysInfo.LastPayProcessDate));
// oemployee.GradeID = ogs == null ? oemployee.GradeID : ogs.GradeID;
// if (ogs == null)
// {
nBasicSalary = oemployee.BasicSalary;
nGrossSalary = oemployee.GrossSalary;
//}
//else
//{
// nBasicSalary = ogs.BasicSalary;
// nGrossSalary = ogs.GrossSalary;
//}
BonusProcess.BonusProcessDetail oBPDetail = new BonusProcess.BonusProcessDetail();
oBPDetail.BonusID = oBonusParm.BonusID;
oBPDetail.EmployeeID = oemployee.ID;
oBPDetail.BasicSalary = nBasicSalary;
oBPDetail.BonusMonth = GlobalFunctions.LastDateOfMonth(dPayDate);//Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
if (_columnDefinition.SelectedItemOneID == ID.FromInteger(0))
{
oBPDetail.BonusAmount = Convert.ToDouble(dr["Value"]);
}
else if (_columnDefinition.SelectedItemOneID == ID.FromInteger(1))
{
oBPDetail.BonusAmount = (nBasicSalary * Convert.ToDouble(dr["Value"])) / 100;
}
else if (_columnDefinition.SelectedItemOneID == ID.FromInteger(2))
{
BonusCalculator ob = new BonusCalculator();
double dailyAmount = ob.ConvertToDailyRate(nBasicSalary, oBPDetail.BonusMonth);
oBPDetail.BonusAmount = dailyAmount * Convert.ToDouble(dr["Value"]);
}
oBPDetail.ChangeBonusAmount = GlobalFunctions.Round(oBPDetail.BonusAmount);
oBPDetail.CalculatedAdjustAmount = BonusAdjustAmount;
oBPDetail.CalculatedSalaryItemAmount = BonusSalaryItemAmount;
oBPDetail.ChangeAdjustAmount = BonusAdjustAmount;
oBPDetail.ChangeSalaryItemAmount = BonusSalaryItemAmount;
BonusProcess.BonusProcessDetail.BonusProcessAdjustItem bai = new BonusProcess.BonusProcessDetail.BonusProcessAdjustItem();
bai.BonusAdjustID = oBPDetail.BonusID.Integer;
bai.AdjustAmount = Convert.ToDouble(dr["Value"]);
oBPDetail.BonusProcessAdjustItems = new ObjectsTemplate<BonusProcess.BonusProcessDetail.BonusProcessAdjustItem>();
oBPDetail.BonusProcessAdjustItems.Add(bai);
oProssBonus.BonusProcessDetails.Add(oBPDetail);
}
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "Parameter not found for the employee"));
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
if (_errorOrSuccessList.Count > 0)
return new BonusProcess();
BonusCalculator oBonusCalculator = new BonusCalculator();
ObjectsTemplate<Employee> oEmployees = new ObjectsTemplate<Employee>();
foreach (BonusProcess.BonusProcessDetail BProcess in oProssBonus.BonusProcessDetails)
{
Employee emp = oemployees.Find(x => x.ID == BProcess.EmployeeID);
if (emp != null) oEmployees.Add(emp);
}
if (IsTaxProcess == true)
{
Bonus oItem = Bonus.Get(bonusID);
oBonusCalculator.CalculateTax(oProssBonus, oEmployees, oItem);
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return oProssBonus;
}
public BonusProcess ImportEmpIndividualBonus(DataUploadColumnDefinition _columnDefinition, bool IsDisburshWithSalry, bool IsTaxProcess, double UsedProcess, ID bonusID, DateTime dCuttOfDate, DateTime dPaydate, int _nReligionID)
{
double BonusAdjustAmount;
double BonusSalaryItemAmount;
double nBasicSalary = 0;
double nGrossSalary = 0;
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
BonusProcess oProssBonus = new BonusProcess();
oProssBonus.BonusProcessDetails = new ObjectsTemplate<BonusProcess.BonusProcessDetail>();
List<EnmSetupManagerTranType> setupTypes = SetupDetail.GetTypes(EnumParameterSetup.Bonus);
ObjectsTemplate<SetupDetail> setupDetails = SetupDetail.GetParameters(EnumParameterSetup.Bonus);
List<BonusParameter> bonusParameters = BonusParameter.Get(EnumStatus.Regardless);
ObjectsTemplate<ADParameter> adParams = ADParameter.Get(EnumStatus.Active);
ObjectsTemplate<ADParameterEmployee> adParamEmps = ADParameterEmployee.Get(EnumStatus.Active);
ObjectsTemplate<GrossDefination> grossDefinitions = GrossDefination.Get();
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
BonusAdjustAmount = 0.0;
BonusSalaryItemAmount = 0.0;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
EmployeeGradeSalary oEmpGradeSal = EmployeeGradeSalary.GetBasicOnDate(oemployee.ID, dCuttOfDate);
oemployee.GrossSalary = BonusCalculator.GetGrossAmount(oemployee, adParams, adParamEmps, grossDefinitions, dCuttOfDate, oEmpGradeSal);
oemployee.GradeID = oEmpGradeSal.GradeID;
if (oemployee != null)
{
ObjectsTemplate<BonusParameter> oParams = BonusParameter.ApplicableParameters(oemployee, bonusID, setupTypes, setupDetails, bonusParameters);
if (oParams != null)
{
foreach (BonusParameter oBonusParm in oParams)
{
oProssBonus.BonusID = oBonusParm.BonusID;
oProssBonus.BasicOnMonth = GlobalFunctions.LastDateOfMonth(dCuttOfDate);
oProssBonus.BonusMonth = GlobalFunctions.LastDateOfMonth(dPaydate); ;
oProssBonus.DisburseDate = GlobalFunctions.LastDateOfMonth(dPaydate);
oProssBonus.IsDisburseWithSalary = IsDisburshWithSalry;
oProssBonus.IsTaxProcess = IsTaxProcess;
oProssBonus.UsedProcess = UsedProcess;
oProssBonus.ReligionID = ID.FromInteger(_nReligionID);
//EmployeeGradeSalary ogs = EmployeeGradeSalary.GetBasicOnDate(oemployee.ID, GlobalFunctions.LastDateOfMonth(SystemInformation.CurrentSysInfo.LastPayProcessDate));
//if (ogs == null)
//{
nBasicSalary = oemployee.BasicSalary;
// nGrossSalary = oEmp.GrossSalary;
//}
//else
//{
// nBasicSalary = ogs.BasicSalary;
// // nGrossSalary = ogs.GrossSalary;
//}
BonusProcess.BonusProcessDetail oBPDetail = new BonusProcess.BonusProcessDetail();
oBPDetail.BonusID = oBonusParm.BonusID;
oBPDetail.EmployeeID = oemployee.ID;
oBPDetail.BonusMonth = dPaydate;
oBPDetail.BasicSalary = nBasicSalary;
oBPDetail.GrossSalary = oemployee.GrossSalary;
oBPDetail.BonusMonth = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
if (_columnDefinition.SelectedItemOneID == ID.FromInteger(0))
{
oBPDetail.BonusAmount = Convert.ToDouble(dr["Value"]);
}
else if (_columnDefinition.SelectedItemOneID == ID.FromInteger(1))
{
oBPDetail.BonusAmount = (nBasicSalary * Convert.ToDouble(dr["Value"])) / 100;
}
else if (_columnDefinition.SelectedItemOneID == ID.FromInteger(2))
{
BonusCalculator ob = new BonusCalculator();
double dailyAmount = ob.ConvertToDailyRate(nBasicSalary, oBPDetail.BonusMonth);
oBPDetail.BonusAmount = dailyAmount * Convert.ToDouble(dr["Value"]);
}
else if (_columnDefinition.SelectedItemOneID == ID.FromInteger(3))
{
oBPDetail.BonusAmount = CalcluateAmount(oBonusParm, oemployee, oemployee.GrossSalary, Convert.ToDouble(dr["Value"]));
}
oBPDetail.ChangeBonusAmount = GlobalFunctions.Round(oBPDetail.BonusAmount);
oBPDetail.CalculatedAdjustAmount = oBonusParm.PercentOfGross;
oBPDetail.CalculatedSalaryItemAmount = oBonusParm.PerformanceBonusPercent;
//oBPDetail.ChangeAdjustAmount = BonusAdjustAmount;
//oBPDetail.ChangeSalaryItemAmount = BonusSalaryItemAmount;
BonusProcess.BonusProcessDetail.BonusProcessAdjustItem obj = new BonusProcess.BonusProcessDetail.BonusProcessAdjustItem();
oBPDetail.BonusProcessAdjustItems = new ObjectsTemplate<BonusProcess.BonusProcessDetail.BonusProcessAdjustItem>();
obj.BonusAdjustID = 4;
obj.AdjustAmount = oBonusParm.PerformanceBonusPercent;
oBPDetail.BonusProcessAdjustItems.Add(obj);
oProssBonus.BonusProcessDetails.Add(oBPDetail);
}
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "Parameter not found for the employee"));
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
BonusCalculator oBonusCalculator = new BonusCalculator();
ObjectsTemplate<Employee> oEmployees = new ObjectsTemplate<Employee>();
foreach (BonusProcess.BonusProcessDetail BProcess in oProssBonus.BonusProcessDetails)
{
oEmployees.Add(BProcess.Employee);
}
if (IsTaxProcess == true)
{
Bonus oItem = Bonus.Get(bonusID);
oBonusCalculator.CalculateTax(oProssBonus, oEmployees, oItem);
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return oProssBonus;
}
private double CalcluateAmount(BonusParameter oBonusParm, Employee oEmp, double nGrossSalary, double nPercentage)
{
Double m_nAMOUNT = 0;
double nAnnualGrossPencentage = oBonusParm.PercentOfGross;
double nPerformancePencentage = oBonusParm.PerformanceBonusPercent;
m_nAMOUNT = ((nGrossSalary * nAnnualGrossPencentage) / 100);
m_nAMOUNT = ((m_nAMOUNT * nPerformancePencentage) / 100);
m_nAMOUNT = ((m_nAMOUNT * nPercentage) / 100);
return m_nAMOUNT;
}
#endregion
#region OPIDate
private void ImportOPIDataAfterProcess(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.GetAllEmps();
List<OPIProcess> _oOPIProcess = OPIProcess.Get(SystemInformation.CurrentSysInfo.NextPayProcessDate);
OpiParameter _opParam = null;
Employee oemployee = null;
ObjectsTemplate<OpiParameterIndividual> oopiParameterInd = new ObjectsTemplate<OpiParameterIndividual>();
OpiParameterIndividual oOPIParameter = null;
int nRow = 0;
_oPIProcessDetailItem = new ObjectsTemplate<OPIProcessDetailItem>();
_incomeTaxes = new ObjectsTemplate<IncomeTax>();
double tempAmount = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Where(x => x.EmployeeNo == dr["Employee No"].ToString()).Single(); ;
//OPIProcessDetail oOPIProcessDetail = _oOPIProcess[0].OPIProcessDetails.Find(delegate(OPIProcessDetail opid) { return opid.EmployeeID == oemployee.ID; });
List<OPIProcessDetail> oOpIProcessDetails = new List<OPIProcessDetail>();
if (_oOPIProcess != null)
_oOPIProcess.ForEach(x => oOpIProcessDetails.AddRange(x.OPIProcessDetails.ToList()));
OPIProcessDetail oOPIProcessDetail = oOpIProcessDetails.Where(x => x.EmployeeID == oemployee.ID).SingleOrDefault();
if (oOPIProcessDetail != null)
{
OPIProcessDetailItem oOPIProcessDetailItem = new OPIProcessDetailItem();
oOPIProcessDetailItem.OPIType = EnumOpiType.Provision;
oOPIProcessDetailItem.OPIItemID = _columnDefinition.SelectedItemOneID;
oOPIProcessDetailItem.Description = _columnDefinition.SelectedItemOneText;
oOPIProcessDetailItem.ChangeNetAmount = Convert.ToDouble(dr["Amount"].ToString());
oOPIProcessDetailItem.NetAmount = oOPIProcessDetailItem.ChangeNetAmount;
oOPIProcessDetailItem.OPIProcessDetailID = oOPIProcessDetail.ID;
_oPIProcessDetailItem.Add(oOPIProcessDetailItem);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
private void ImportOPIDataNew(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
//List<ADParameter> _adparams = ADParameter.Get(EnumStatus.Active, EnumAllowOrDeduct.Deduction);
//ADParameter _adparam = null;
Employee oemployee = null;
_oPIParameterIndividual = new ObjectsTemplate<OpiParameterIndividual>();
OpiParameterIndividual oopiParamIndividual = null;
ObjectsTemplate<OpiParameter> oparamters = OpiParameter.Get();
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oopiParamIndividual = new OpiParameterIndividual();
oopiParamIndividual.EmployeeId = oemployee.ID;
//oadparamemp.FormDate = Convert.ToDateTime(dr["From Date"]);
//oadparamemp.TillDate = Convert.ToDateTime(dr["Till Date"]);
oopiParamIndividual.Value = dr["Amount"].ToString() != string.Empty ? Convert.ToDouble(dr["Amount"]) : 0.0;
oopiParamIndividual.OpiItemId = _columnDefinition.SelectedItemOneID; //ID.FromInteger(Convert.ToInt32(EnumAllowOrDeduct.Deduction));
if (oemployee.GradeID == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + oemployee.EmployeeNo + " Row : ", nRow, "Employee grade id not found."));
continue;
}
List<OpiParameter> opiAppParams = OpiParameter.GetApplicableParameters(oemployee, oemployee.GradeID, oparamters);
OpiParameter opiAppParam = opiAppParams.FirstOrDefault(o => o.OpiItemID == oopiParamIndividual.OpiItemId);
if (opiAppParam == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee applicable parameter not found."));
continue;
}
oopiParamIndividual.OpiParameterID = opiAppParam.ID;
oopiParamIndividual.OpiPeriodicity = opiAppParam.OpiPeriodicity;
oopiParamIndividual.IndividualType = EnumOPIIndivdualType.AppliedToIndividual;
if (oopiParamIndividual.OpiPeriodicity == EnumOpiPeriodicity.OnceOff)
{
oopiParamIndividual.FromDate = Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
oopiParamIndividual.ToDate = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
}
else if (oopiParamIndividual.OpiPeriodicity == EnumOpiPeriodicity.Monthly && opiAppParam.EntitleType == EnumEntitleType.Individual)
{
// from date can't prior to fist date of current month
// till date can't be less to from date
// from date can't be greater to last date of current month
if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) < Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be less than first date of current month"));
continue;
}
if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) > Payroll.BO.GlobalFunctions.LastDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be greater than last date of current month"));
continue;
}
if (dr["Till Date"].ToString() != "" && Convert.ToDateTime(dr["Till Date"]) < Convert.ToDateTime(dr["From Date"]))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Till Date :" + dr["Till Date"].ToString() + " Row : ", nRow, "Till date can not be less than From date"));
continue;
}
oopiParamIndividual.FromDate = dr["From Date"].ToString() != "" ? Convert.ToDateTime(dr["From Date"]) : Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (dr["Till Date"].ToString() != "")
oopiParamIndividual.ToDate = Convert.ToDateTime(dr["Till Date"]);
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + dr["Employee No"].ToString() + " Row : ", nRow, "Employee applicable parameter is defined greade wise"));
continue;
}
oopiParamIndividual.ValueType = EnumValueType.Amount;
_oPIParameterIndividual.Add(oopiParamIndividual);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
private void ImportCarFuelDataNew(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
//List<ADParameter> _adparams = ADParameter.Get(EnumStatus.Active, EnumAllowOrDeduct.Deduction);
//ADParameter _adparam = null;
Employee oemployee = null;
_CarFuelParameterIndividual = new ObjectsTemplate<CarFuelParameterIndividual>();
CarFuelParameterIndividual oCarFuelParamIndividual = null;
ObjectsTemplate<CarFuelParameter> oparamters = CarFuelParameter.Get();
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oCarFuelParamIndividual = new CarFuelParameterIndividual();
oCarFuelParamIndividual.EmployeeId = oemployee.ID;
//oadparamemp.FormDate = Convert.ToDateTime(dr["From Date"]);
//oadparamemp.TillDate = Convert.ToDateTime(dr["Till Date"]);
oCarFuelParamIndividual.Value = dr["Amount"].ToString() != string.Empty ? Convert.ToDouble(dr["Amount"]) : 0.0;
oCarFuelParamIndividual.CarFuelItemId = _columnDefinition.SelectedItemOneID; //ID.FromInteger(Convert.ToInt32(EnumAllowOrDeduct.Deduction));
if (oemployee.GradeID == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + oemployee.EmployeeNo + " Row : ", nRow, "Employee grade id not found."));
continue;
}
List<CarFuelParameter> CarFuelAppParams = CarFuelParameter.GetApplicableParameters(oemployee, oemployee.GradeID, oparamters);
CarFuelParameter CarFuelAppParam = CarFuelAppParams.FirstOrDefault(o => o.CarFuelItemID == oCarFuelParamIndividual.CarFuelItemId);
if (CarFuelAppParam == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee applicable parameter not found."));
continue;
}
oCarFuelParamIndividual.CarFuelParameterID = CarFuelAppParam.ID;
oCarFuelParamIndividual.CarFuelPeriodicity = CarFuelAppParam.CarFuelPeriodicity;
oCarFuelParamIndividual.IndividualType = EnumCarFuelIndivdualType.AppliedToIndividual;
if (oCarFuelParamIndividual.CarFuelPeriodicity == EnumCarFuelPeriodicity.OnceOff)
{
oCarFuelParamIndividual.FromDate = Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
oCarFuelParamIndividual.ToDate = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
}
else if (oCarFuelParamIndividual.CarFuelPeriodicity == EnumCarFuelPeriodicity.Monthly && CarFuelAppParam.EntitleType == EnumEntitleType.Individual)
{
// from date can't prior to fist date of current month
// till date can't be less to from date
// from date can't be greater to last date of current month
if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) < Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be less than first date of current month"));
continue;
}
if (dr["From Date"].ToString() != "" && Convert.ToDateTime(dr["From Date"]) > Payroll.BO.GlobalFunctions.LastDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("From Date :" + dr["From Date"].ToString() + " Row : ", nRow, "From date can not be greater than last date of current month"));
continue;
}
if (dr["Till Date"].ToString() != "" && Convert.ToDateTime(dr["Till Date"]) < Convert.ToDateTime(dr["From Date"]))
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Till Date :" + dr["Till Date"].ToString() + " Row : ", nRow, "Till date can not be less than From date"));
continue;
}
oCarFuelParamIndividual.FromDate = dr["From Date"].ToString() != "" ? Convert.ToDateTime(dr["From Date"]) : Payroll.BO.GlobalFunctions.FirstDateOfMonth(Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (dr["Till Date"].ToString() != "")
oCarFuelParamIndividual.ToDate = Convert.ToDateTime(dr["Till Date"]);
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No :" + dr["Employee No"].ToString() + " Row : ", nRow, "Employee applicable parameter is defined greade wise"));
continue;
}
oCarFuelParamIndividual.ValueType = EnumValueType.Amount;
_CarFuelParameterIndividual.Add(oCarFuelParamIndividual);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occurred on row:" + nRow + " Reason:" + ex.Message);
}
}
public void ImportOPIData(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
ObjectsTemplate<OPIProcessDetailItem> oOPIDetailItems = new ObjectsTemplate<OPIProcessDetailItem>();
_incomeTaxes = new ObjectsTemplate<IncomeTax>();
Employee oemployee = null;
int nRow = 0;
double tempAmount = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
OPIProcessDetail oOPIPDetail = OPIProcess.GetDetail(oemployee.ID, Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (oOPIPDetail == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + " OPI not yet process"));
continue;
}
OPIProcessDetailItem oDetail = oOPIPDetail.OPIProcessDetailItems.Find(delegate(OPIProcessDetailItem oOPIPDItem) { return oOPIPDItem.OPIItemID == _columnDefinition.SelectedItemOneID; });
if (oDetail == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + " opi component not found"));
continue;
}
else
{
tempAmount = oDetail.ChangeNetAmount;
oDetail.ChangeNetAmount = Convert.ToDouble(dr["Amount"]);
oDetail.NetAmount = oDetail.ChangeNetAmount;
}
oOPIDetailItems.Add(oDetail);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
_oPIProcessDetailItem = oOPIDetailItems;
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
public void ImportOPIParamInividual(DataUploadColumnDefinition _columnDefinition)
{
ObjectsTemplate<OpiParameterIndividual> oOPIParamIndividuals = new ObjectsTemplate<OpiParameterIndividual>();
List<Employee> oemployees = Employee.Get();
ObjectsTemplate<OpiParameter> oPIParameters = OpiParameter.Get();
_incomeTaxes = new ObjectsTemplate<IncomeTax>();
Employee oemployee = null;
int nRow = 0;
double tempAmount = 0;
try
{
List<OpiParameterIndividual> oTotalParamIndividuals = OpiParameterIndividual.Get().Where(x => x.OpiItemId == _columnDefinition.SelectedItemOneID).ToList();
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.FirstOrDefault(x => x.EmployeeNo == dr["Employee No"].ToString());
List<OpiParameter> oEmpOPIParams = OpiParameter.GetApplicableParameters(oemployee, oemployee.GradeID, oPIParameters);
if (oemployee != null)
{
OpiParameterIndividual oEmpParamIndividual = oTotalParamIndividuals.FirstOrDefault(x => x.EmployeeId == oemployee.ID);
if (oEmpParamIndividual == null)
{
var oEmpOPIParameter = oEmpOPIParams.FirstOrDefault(x => x.OpiItemID == _columnDefinition.SelectedItemOneID);
if (oEmpOPIParameter != null)
{
oEmpParamIndividual = new OpiParameterIndividual();
oEmpParamIndividual.ArrearType = EnumArrearType.NotPresent;
oEmpParamIndividual.EmployeeId = oemployee.ID;
oEmpParamIndividual.OpiPeriodicity = oEmpOPIParameter.OpiPeriodicity;
oEmpParamIndividual.IndividualType = EnumOPIIndivdualType.AppliedToIndividual;
oEmpParamIndividual.OpiItemId = _columnDefinition.SelectedItemOneID;
oEmpParamIndividual.OpiParameterID = oEmpOPIParameter.ID;
oEmpParamIndividual.ValueType = EnumValueType.Amount;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + " No OPI Setup for this Employee Found"));
continue;
}
}
oEmpParamIndividual.Value = Convert.ToDouble(dr["Amount"]);
oEmpParamIndividual.FromDate = GlobalFunctions.FirstDateOfMonth(SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (oEmpParamIndividual.OpiPeriodicity == EnumOpiPeriodicity.OnceOff)
{
oEmpParamIndividual.ToDate = GlobalFunctions.LastDateOfMonth(SystemInformation.CurrentSysInfo.NextPayProcessDate);
}
else
{
oEmpParamIndividual.ToDate = null;
}
oOPIParamIndividuals.Add(oEmpParamIndividual);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
_oPIParameterIndividual = oOPIParamIndividuals;
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
public void ImportCarFuelParamInividual(DataUploadColumnDefinition _columnDefinition)
{
ObjectsTemplate<CarFuelParameterIndividual> oCarFuelParamIndividuals = new ObjectsTemplate<CarFuelParameterIndividual>();
List<Employee> oemployees = Employee.Get();
ObjectsTemplate<CarFuelParameter> CarFuelParameters = CarFuelParameter.Get();
_incomeTaxes = new ObjectsTemplate<IncomeTax>();
Employee oemployee = null;
int nRow = 0;
double tempAmount = 0;
try
{
List<CarFuelParameterIndividual> oTotalParamIndividuals = CarFuelParameterIndividual.Get().Where(x => x.CarFuelItemId == _columnDefinition.SelectedItemOneID).ToList();
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.FirstOrDefault(x => x.EmployeeNo == dr["Employee No"].ToString());
List<CarFuelParameter> oEmpCarFuelParams = CarFuelParameter.GetApplicableParameters(oemployee, oemployee.GradeID, CarFuelParameters);
if (oemployee != null)
{
CarFuelParameterIndividual oEmpParamIndividual = oTotalParamIndividuals.FirstOrDefault(x => x.EmployeeId == oemployee.ID);
if (oEmpParamIndividual == null)
{
var oEmpCarFuelParameter = oEmpCarFuelParams.FirstOrDefault(x => x.CarFuelItemID == _columnDefinition.SelectedItemOneID);
if (oEmpCarFuelParameter != null)
{
oEmpParamIndividual = new CarFuelParameterIndividual();
oEmpParamIndividual.ArrearType = EnumArrearType.NotPresent;
oEmpParamIndividual.EmployeeId = oemployee.ID;
oEmpParamIndividual.CarFuelPeriodicity = oEmpCarFuelParameter.CarFuelPeriodicity;
oEmpParamIndividual.IndividualType = EnumCarFuelIndivdualType.AppliedToIndividual;
oEmpParamIndividual.CarFuelItemId = _columnDefinition.SelectedItemOneID;
oEmpParamIndividual.CarFuelParameterID = oEmpCarFuelParameter.ID;
oEmpParamIndividual.ValueType = EnumValueType.Amount;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + " No CarFuel Setup for this Employee Found"));
continue;
}
}
oEmpParamIndividual.Value = Convert.ToDouble(dr["Amount"]);
oEmpParamIndividual.FromDate = GlobalFunctions.FirstDateOfMonth(SystemInformation.CurrentSysInfo.NextPayProcessDate);
if (oEmpParamIndividual.CarFuelPeriodicity == EnumCarFuelPeriodicity.OnceOff)
{
oEmpParamIndividual.ToDate = GlobalFunctions.LastDateOfMonth(SystemInformation.CurrentSysInfo.NextPayProcessDate);
}
else
{
oEmpParamIndividual.ToDate = null;
}
oCarFuelParamIndividuals.Add(oEmpParamIndividual);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
_CarFuelParameterIndividual = oCarFuelParamIndividuals;
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Employee CC Information
public void ImportEmpCC(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
List<Costcenter> oCostcenters = Costcenter.Get();
Costcenter oCC = null;
oempCostCenters = new ObjectsTemplate<EmployeeCostCenter>();
EmployeeCostCenter oempCostCenter = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oCC = oCostcenters.Find(delegate(Costcenter item) { return item.Code == dr["Costcenter Code"].ToString(); });
if (oCC != null && Convert.ToDouble(dr["Involve Percent"]) == 100)
{
oempCostCenter = new EmployeeCostCenter();
oempCostCenter.EmployeeID = oemployee.ID;
oempCostCenter.CostCenterID = oCC.ID;
oempCostCenter.Percentage = Convert.ToDouble(dr["Involve Percent"]);
oempCostCenter.IsCurrentCC = true;
oempCostCenter.MonthDate = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate;
oempCostCenters.Add(oempCostCenter);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("CostCenter Code", nRow, "Cost center code not found in the existing Cost Centers or involvement percent not equal 100"));
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region ImportPFOpening
public void PFOpening(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
_PFTransactions = new List<PFTransaction>();
PFTransaction oPFTransaction = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
oPFTransaction = new PFTransaction();
if (oemployee != null)
{
oPFTransaction.EmployeeID = oemployee.ID;
oPFTransaction.MonthDate = GlobalFunctions.LastDateOfMonth(Convert.ToDateTime(dr["Opening Date"].ToString()));
oPFTransaction.TranAmount = Convert.ToDouble(dr["PFAmount"].ToString());
oPFTransaction.TranType = EnumPFTranType.PFAmount;
_PFTransactions.Add(oPFTransaction);
oPFTransaction = new PFTransaction();
oPFTransaction.EmployeeID = oemployee.ID;
oPFTransaction.MonthDate = GlobalFunctions.LastDateOfMonth(Convert.ToDateTime(dr["Opening Date"].ToString()));
oPFTransaction.TranAmount = Convert.ToDouble(dr["PFInterest"].ToString());
oPFTransaction.TranType = EnumPFTranType.OwnInt;
_PFTransactions.Add(oPFTransaction);
oPFTransaction = new PFTransaction();
oPFTransaction.EmployeeID = oemployee.ID;
oPFTransaction.MonthDate = GlobalFunctions.LastDateOfMonth(Convert.ToDateTime(dr["Opening Date"].ToString()));
oPFTransaction.TranAmount = Convert.ToDouble(dr["CPFAmount"].ToString());
oPFTransaction.TranType = EnumPFTranType.CPFAmount;
_PFTransactions.Add(oPFTransaction);
oPFTransaction = new PFTransaction();
oPFTransaction.EmployeeID = oemployee.ID;
oPFTransaction.MonthDate = GlobalFunctions.LastDateOfMonth(Convert.ToDateTime(dr["Opening Date"].ToString()));
oPFTransaction.TranAmount = Convert.ToDouble(dr["CPFInterest"].ToString());
oPFTransaction.TranType = EnumPFTranType.CompInt;
_PFTransactions.Add(oPFTransaction);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Employee Vendor Code
public void ImportEmpVendorCode(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
Employee oemployee = null;
_TempEmployees = new ObjectsTemplate<Employee>();
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oemployee.VendorCode = dr["VendorCode"].ToString();
_TempEmployees.Add(oemployee);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import IT Investment Data
public void ImportITInvestment(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.Get();
EmployeeTaxInvestment oEmpTaxInvest = null;
_EmployeeTaxInvestments = new ObjectsTemplate<EmployeeTaxInvestment>();
Employee oemployee = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oEmpTaxInvest = new EmployeeTaxInvestment();
oEmpTaxInvest.EmployeeID = oemployee.ID;
oEmpTaxInvest.TypeID = _columnDefinition.SelectedItemOneID;
oEmpTaxInvest.TaxparameterId = SystemInformation.CurrentSysInfo.TaxParamID;
oEmpTaxInvest.Amount = Convert.ToDouble(dr["Amount"]);
_EmployeeTaxInvestments.Add(oEmpTaxInvest);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import IT Challan Data
public void ImportITChallan(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.GetAllEmps();
TaxChallan oTaxChallan = null;
_TaxChallans = new ObjectsTemplate<TaxChallan>();
Employee oemployee = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });
if (oemployee != null)
{
oTaxChallan = new TaxChallan();
oTaxChallan.EmployeeID = oemployee.ID;
oTaxChallan.SalaryMonthly = Convert.ToDateTime(dr["Month"]);
oTaxChallan.DepositDate = Convert.ToDateTime(dr["Month"]);
oTaxChallan.TaxParameterID = _columnDefinition.SelectedItemOneID;
oTaxChallan.Amount = Convert.ToDouble(dr["Amount"]);
oTaxChallan.ChallanNo = Convert.ToString(dr["ChallanNo"]);
_TaxChallans.Add(oTaxChallan);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["Employee No"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Import Organogram Position Data
public void ImportOrganogramPosition(DataUploadColumnDefinition _columnDefinition)
{
List<Employee> oemployees = Employee.GetAllEmps();
_organograms = OrganogramBasic.Get(EnumStatus.Active);
Employee oemployee = null;
OrganogramBasic oOrganogram = null;
OrganogramEmployee oOrgEmp = null;
OrganogramEmployee oOrgOldEmp = null;
int nRow = 0;
try
{
foreach (DataRow dr in _uplodedData.Rows)
{
nRow = nRow + 1;
oemployee = oemployees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["EmployeeNo"].ToString(); });
if (oemployee != null)
{
oOrganogram = _organograms.Find(delegate(OrganogramBasic org) { return org.PositionNo == dr["PositionNo"].ToString(); });
if (oOrganogram != null)
{
oOrgOldEmp = oOrganogram.OrganEmployees.Find(delegate(OrganogramEmployee ogEmp) { return ogEmp.EmployeeID.Integer == oemployee.ID.Integer && ogEmp.NodeID.Integer == oOrganogram.ID.Integer; });
if (oOrgOldEmp == null)
{
oOrgEmp = new OrganogramEmployee();
oOrgEmp.EmployeeID = oemployee.ID;
oOrgEmp.NodeID = oOrganogram.ID;
oOrgEmp.AssignDate = DateTime.Today;
_organEmps.Add(oOrgEmp);
}
else
{
oOrgOldEmp.EmployeeID = oemployee.ID;
oOrgOldEmp.AssignDate = DateTime.Today;
_organEmps.Add(oOrgOldEmp);
}
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Position No.", nRow, "(" + dr["PositionNo"].ToString() + ")" + "Position not found for in the existing data"));
}
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee No.", nRow, "(" + dr["EmployeeNo"].ToString() + ")" + "Employee not found for in the existing data"));
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
}
#endregion
#region Emport Employee HR Data
#region Import Employee General Information
public HREmployee ImportEmpGeneralInfo(DataTable oDTable)
{
int nRow = 0;
try
{
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["First Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
_HREmployee.GlobalID = oDr["GDDB ID"].ToString();
_HREmployee.BirthPlace = oDr["Place Of Birth"].ToString();
//_HREmployee.NickName = oDr["Nick Name"].ToString();
_HREmployee.FirstName = oDr["First Name"].ToString();
_HREmployee.MiddleName = oDr["Middle Name"].ToString();
_HREmployee.LastName = oDr["Last Name"].ToString();
_HREmployee.Gender = (oDr["Gender"].ToString().Trim().ToUpper().Trim() == "Male".ToUpper().Trim()) ? EnumGender.Male : EnumGender.Female;
switch (oDr["Marital Status"].ToString())
{
case "Married":
_HREmployee.MaritalStatus = EnumMaritalStatus.Married;
break;
case "UnMarried":
_HREmployee.MaritalStatus = EnumMaritalStatus.UnMarried;
break;
case "Divorced":
_HREmployee.MaritalStatus = EnumMaritalStatus.Divorced;
break;
case "Widow":
_HREmployee.MaritalStatus = EnumMaritalStatus.Widow;
break;
default:
_HREmployee.MaritalStatus = EnumMaritalStatus.None;
break;
}
Religion oReligion = _Religions.Find(delegate(Religion oItem) { return oItem.Name.ToUpper().Trim() == oDr["Religion"].ToString().ToUpper().Trim(); });
if (oReligion != null)
_HREmployee.ReligionID = oReligion.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Religion", nRow, "Religion is not valid for employee from " + oDTable.TableName + " Information."));
if (oDr["Blood Group"].ToString().ToUpper() == "B+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "B-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BNeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.APos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ANeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.OPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ONeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABNeg;
}
_HREmployee.PassportNo = oDr["Passport No"].ToString();
_HREmployee.TinNo = oDr["Tax Identification No"].ToString();
Nationality oNationality = _Nationalites.Find(delegate(Nationality oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nationality"].ToString().ToUpper().Trim(); });
if (oNationality != null)
_HREmployee.NationalityID = oNationality.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nationality", nRow, "Nationality is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.NationalID = oDr["National ID"].ToString();
DateTime dTemFDate;
if (DateTime.TryParse(oDr["Joining Date"].ToString(), out dTemFDate))
_HREmployee.JoiningDate = dTemFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.JoiningDate = DateTime.MinValue;
//_HREmployee.JoiningDate = Convert.ToDateTime(oDr["Joining Date"]);
DateTime dTemBDate;
if (DateTime.TryParse(oDr["Date of Birth"].ToString(), out dTemBDate))
_HREmployee.BirthDate = dTemBDate;//Convert.ToDateTime(oDr["Date of Birth"]);
else
//_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Joining Date", nRow, "Please enter employee joining date " + oDTable.TableName + " Information."));
_HREmployee.BirthDate = DateTime.MinValue;
Category oCategory = _Categories.Find(delegate(Category oItem) { return oItem.Name.ToUpper().Trim() == oDr["Category"].ToString().ToUpper().Trim(); });
if (oCategory != null)
_HREmployee.CategoryID = oCategory.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Category", nRow, "Category is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.FatherName = oDr["Father's Name"].ToString();
_HREmployee.MotherName = oDr["Mother's Name"].ToString();
Occupation oFOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Father's Occupation"].ToString().ToUpper().Trim(); });
if (oFOccupation != null)
_HREmployee.FatherOccupationID = oFOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Father occupation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oMOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Mother's Occupation"].ToString().ToUpper().Trim(); });
if (oMOccupation != null)
_HREmployee.MotherOccupationID = oMOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Mother occupation is not valid for employee " + oDTable.TableName + " Information."));
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee;
}
#endregion
#region Import Employee Contact Information
public ObjectsTemplate<EmpContact> ImportEmpContactInfo(DataTable oDTable)
{
int nRow = 0;
EmpContact oEmpContact = null;
ObjectsTemplate<Thana> oParmanentsThanas = null;
ObjectsTemplate<Thana> oPresentThanas = null;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Permanent Address"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpContact = new EmpContact();
oEmpContact.ParmanentAddress = oDr["Permanent Address"].ToString();
District oDisPar = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper() == oDr["Permanent District"].ToString().ToUpper(); });
oParmanentsThanas = Thana.GetByDistID(oDisPar.ID);
if (oDisPar != null)
oEmpContact.ParmanentDistrictID = oDisPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Permanent District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPar = oParmanentsThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Permanent Thana"].ToString().ToUpper().Trim(); });
if (oThanaPar != null)
oEmpContact.ParmanentThanaID = oThanaPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Permanent Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.ParmanentTelephone = oDr["Permanent Telephone No"].ToString();
oEmpContact.ParmanentMobile = oDr["PerMobile No"].ToString();
oEmpContact.PresentAddress = oDr["Present Address"].ToString();
District oPerDis = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present District"].ToString().ToUpper().Trim(); });
oPresentThanas = Thana.GetByDistID(oPerDis.ID);
if (oPerDis != null)
oEmpContact.PresentDistrictID = oPerDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Present District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPre = oPresentThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present Thana"].ToString().ToUpper().Trim(); });
if (oThanaPre != null)
oEmpContact.PresentThanaID = oThanaPre.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Present Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.PresentTelephone = oDr["Present Telephone No"].ToString();
oEmpContact.PresentMobile = oDr["PreMobile No"].ToString();
oEmpContact.PersonalTelephone = oDr["Personal Land Phone No"].ToString();
oEmpContact.Mobile = oDr["Personal Mobile No"].ToString();
oEmpContact.PersonalEMail = oDr["Personal E-Mail"].ToString();
oEmpContact.OfficalEMail = oDr["Official E-Mail"].ToString();
oEmpContact.Fax = oDr["Fax"].ToString();
oEmpContact.EmergencyContactAddress = oDr["Emergency Contact Address"].ToString();
oEmpContact.EmergencyContactPerson = oDr["Emergency Contact Person"].ToString();
oEmpContact.EmergencyTelephone = oDr["Emergency Telephone No"].ToString();
oEmpContact.EmergencyMobile = oDr["EmeMobile No"].ToString();
Relation oRel = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRel != null)
oEmpContact.ContactPersonRelationId = oRel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Emergency Relation is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.Contacts.Add(oEmpContact);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Contacts;
}
#endregion
#region Import Employee Spouse Information
public ObjectsTemplate<EmpSpouse> ImportEmpSpouseInfo(DataTable oDTable)
{
EmpSpouse oEmpSpouse = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Spouse Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpSpouse = new EmpSpouse();
oEmpSpouse.Name = oDr["Spouse Name"].ToString();
if (oDr["Spouse Level of Education"].ToString() != string.Empty)
{
EducationLevel oEdLevel = _EducationLevels.Find(delegate(EducationLevel oItem) { return oItem.Description.ToUpper().Trim() == oDr["Spouse Level of Education"].ToString().ToUpper().Trim(); });
if (oEdLevel != null)
oEmpSpouse.EducationLevelID = oEdLevel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Spouse Level of Education", nRow, "Spouse level of education is not valid for employee " + oDTable.TableName + " Information."));
}
else
{
oEmpSpouse.EducationLevelID = null;
}
Occupation oOccup = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Spouse Occupation"].ToString().ToUpper().Trim(); });
if (oOccup != null)
oEmpSpouse.OccupationID = oOccup.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Spouse Occupation", nRow, "Spouse Occupation is not valid for employee " + oDTable.TableName + " Information."));
DateTime dTemBDate;
if (DateTime.TryParse(oDr["Date of Birth"].ToString(), out dTemBDate))
oEmpSpouse.MarriageDate = dTemBDate;//Convert.ToDateTime(oDr["Date of Birth"].ToString());
else
oEmpSpouse.MarriageDate = DateTime.MinValue;
_HREmployee.Spouses.Add(oEmpSpouse);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Spouses;
}
#endregion
#region Import Employee Child Information
public ObjectsTemplate<EmpChildren> ImportEmpChildInfo(DataTable oDTable)
{
EmpChildren oEmpChildren = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Child's Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpChildren = new EmpChildren();
oEmpChildren.Name = oDr["Child's Name"].ToString();
oEmpChildren.Gender = (oDr["Child's Gender"].ToString().Trim() == "Male") ? EnumGender.Male : EnumGender.Female;
DateTime dTemCBdate;
if (DateTime.TryParse(oDr["Child's Date of Birth"].ToString(), out dTemCBdate))
oEmpChildren.BirthDate = dTemCBdate;//Convert.ToDateTime(oDr["Child's Date of Birth"].ToString());
else
oEmpChildren.BirthDate = DateTime.MinValue;
Occupation oCCP = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Child's Occupation"].ToString().ToUpper().Trim(); });
if (oCCP != null)
oEmpChildren.OccupationID = oCCP.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Child's Occupation", nRow, "Child's Occupation is not valid for employee " + oDTable.TableName + " Information."));
switch (oDr["Child's Marital Status"].ToString().Trim())
{
case "Married":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Married;
break;
case "UnMarried":
oEmpChildren.MaritalStatus = EnumMaritalStatus.UnMarried;
break;
case "Divorced":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Divorced;
break;
case "Widow":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Widow;
break;
default:
break;
}
//oEmpChildren.MaritalStatus = (oDr["Child's Marital Status"].ToString() == "Married") ? EnumMaritalStatus.Married : EnumMaritalStatus.UnMarried;
_HREmployee.Childrens.Add(oEmpChildren);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Childrens;
}
#endregion
#region Import Employee Experience Information
public ObjectsTemplate<EmpExperience> ImportEmpExperienceInfo(DataTable oDTable)
{
EmpExperience oEmpExperience = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Employer"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpExperience = new EmpExperience();
oEmpExperience.Employer = oDr["Employer"].ToString();
oEmpExperience.ContactPerson = oDr["Contact Person"].ToString() != string.Empty ? oDr["Contact Person"].ToString() : "";
oEmpExperience.Address = oDr["Address"].ToString();
oEmpExperience.Telephone = oDr["Telephone No"].ToString() != string.Empty ? oDr["Telephone No"].ToString() : "";
oEmpExperience.EmployerActivity = oDr["Industry/ Business Type"].ToString();
oEmpExperience.Designation = oDr["Designation"].ToString();
oEmpExperience.JobDescription = oDr["Role Description"].ToString() != string.Empty ? oDr["Role Description"].ToString() : "";
DateTime dTemFDate;
if (DateTime.TryParse(oDr["Employed From Date"].ToString(), out dTemFDate))
oEmpExperience.FromDate = dTemFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
oEmpExperience.FromDate = DateTime.MinValue;
DateTime dTempDate;
if (DateTime.TryParse(oDr["Employed To Date"].ToString(), out dTempDate))
oEmpExperience.ToDate = dTempDate;
else
oEmpExperience.ToDate = DateTime.MinValue;
_HREmployee.Experiences.Add(oEmpExperience);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Experiences;
}
#endregion
#region Import Employee Training Information
public ObjectsTemplate<EmpTraining> ImportEmpTrainingInfo(DataTable oDTable)
{
EmpTraining oEmpTraining = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Training Title"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpTraining = new EmpTraining();
oEmpTraining.Name = oDr["Training Title"].ToString();
TrainingType oTType = _TrainingTypes.Find(delegate(TrainingType oItem) { return oItem.Name.ToUpper().Trim() == oDr["Training Type"].ToString().ToUpper().Trim(); });
if (oTType != null)
oEmpTraining.TrainingTypeID = oTType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Training Type", nRow, "Training Type is not valid for employee " + oDTable.TableName + " Information."));
NatureOfTraining oNOFTraning = _NatureOfTrainings.Find(delegate(NatureOfTraining oItem) { return oItem.Name.ToUpper().Trim() == oDr["Nature of Training"].ToString().ToUpper().Trim(); });
if (oNOFTraning != null)
oEmpTraining.NatureOfTrainingID = oNOFTraning.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nature of Training", nRow, "Nature of Training is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Description = oDr["Description"].ToString();
Institution oIns = _Institutions.Find(delegate(Institution oItem) { return oItem.Name.ToUpper().Trim() == oDr["Institution"].ToString().ToUpper().Trim(); });
if (oIns != null)
oEmpTraining.InstitutionID = oIns.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Institution", nRow, "Institution is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Place = oDr["Training Place"].ToString();
Country oCountry = _Contries.Find(delegate(Country oItem) { return oItem.Name.ToUpper().Trim() == oDr["Country"].ToString().ToUpper().Trim(); });
if (oCountry != null)
oEmpTraining.CountryID = oCountry.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Country", nRow, "Country is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Achievement = oDr["Achievement"].ToString() != string.Empty ? oDr["Achievement"].ToString() : "";
oEmpTraining.TrainingCompletedFrom = (oDr["Sponsor Type"].ToString().ToUpper().Trim() == "Own".ToUpper().Trim()) ? EnumTrainingCompletedFrom.Own : EnumTrainingCompletedFrom.Company;
if (oDr["Training Fees"].ToString().Trim() != string.Empty)
oEmpTraining.Fees = Convert.ToDouble(oDr["Training Fees"]);
else
oEmpTraining.Fees = 0.0;
if (oDr["Other Cost"].ToString().Trim() != string.Empty)
oEmpTraining.OtherCost = Convert.ToDouble(oDr["Other Cost"]);
else
oEmpTraining.OtherCost = 0.0;
DateTime dTempFdate;
if (DateTime.TryParse(oDr["From Date"].ToString(), out dTempFdate))
oEmpTraining.FromDate = dTempFdate;//Convert.ToDateTime(oDr["From Date"]);
else
oEmpTraining.FromDate = DateTime.MinValue;
DateTime oTEmpDate;
if (DateTime.TryParse(oDr["To Date"].ToString(), out oTEmpDate))
oEmpTraining.ToDate = oTEmpDate;
else
oEmpTraining.ToDate = DateTime.MinValue;
_HREmployee.Trainings.Add(oEmpTraining);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Trainings;
}
#endregion
#region Import Employee Academic Information
public ObjectsTemplate<EmpAcademic> ImportEmpAcademicInfo(DataTable oDTable)
{
EmpAcademic oEmpAcademic = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Education Type"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpAcademic = new EmpAcademic();
EducationType oEDType = _EducationTypes.Find(delegate(EducationType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Education Type"].ToString().ToUpper().Trim(); });
if (oEDType != null)
oEmpAcademic.EducationTypeID = oEDType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Education Type", nRow, "Education Type is not valid for employee " + oDTable.TableName + " Information."));
EducationLevel oEducLevel = _EducationLevels.Find(delegate(EducationLevel oItem) { return oItem.Description.ToUpper().Trim() == oDr["Degree Title"].ToString().ToUpper().Trim(); });
if (oEducLevel != null)
oEmpAcademic.EducationLevelID = oEducLevel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Degree Title", nRow, "Degree Title is not valid for employee " + oDTable.TableName + " Information."));
Discipline oDis = _Disciplines.Find(delegate(Discipline oItem) { return oItem.Description.ToUpper().Trim() == oDr["Discipline/ Department"].ToString().ToUpper().Trim(); });
if (oDis != null)
oEmpAcademic.DisciplineID = oDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Discipline/ Department", nRow, "Discipline/ Department is not valid for employee " + oDTable.TableName + " Information."));
Institution oIns = _Institutions.Find(delegate(Institution oItem) { return oItem.Name.ToUpper().Trim() == oDr["Institution (Board/University)"].ToString().ToUpper().Trim(); });
if (oIns != null)
oEmpAcademic.InstitutionID = oIns.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Institution (Board/University)", nRow, "Institution (Board/University) is not valid for employee " + oDTable.TableName + " Information."));
oEmpAcademic.InstituteName = oDr["Institution Name"].ToString();
DateTime dExamdate = Convert.ToDateTime(oDr["Exam Held on"]);
oEmpAcademic.ExamDate = dExamdate.Year;
DateTime dPassingYear = Convert.ToDateTime(oDr["Passing Year"]);
oEmpAcademic.PassingYear = dPassingYear.Year;
ResultType oRType = _ResultTypes.Find(delegate(ResultType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Result"].ToString().ToUpper().Trim(); });
if (oRType != null)
oEmpAcademic.ResultTypeID = oRType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Result", nRow, "Result is not valid for employee " + oDTable.TableName + " Information."));
if (oDr["CGPA/ Marks"].ToString() != string.Empty || oDr["CGPA/ Marks"].ToString().Length > 0)
oEmpAcademic.GPAOrMarks = Convert.ToDouble(oDr["CGPA/ Marks"]);
oEmpAcademic.LastLevel = (oDr["Highest Education"].ToString().ToUpper().Trim() == "Yes".ToUpper().Trim()) ? true : false;
_HREmployee.Academics.Add(oEmpAcademic);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Academics;
}
#endregion
#region Import Employee Reference Information
public ObjectsTemplate<EmpReference> ImportEmpReferenceInfo(DataTable oDTable)
{
EmpReference oEmpReference = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Referee's Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpReference = new EmpReference();
oEmpReference.Name = oDr["Referee's Name"].ToString();
Occupation oCcupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Referee's Occupation"].ToString().ToUpper().Trim(); });
if (oCcupation != null)
{
oEmpReference.OccupationID = oCcupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Referee's Occupation", nRow, "Referee's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpReference.RelationID = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpReference.Address = oDr["Address"].ToString();
oEmpReference.EmailAddress = oDr["E-mail Address"].ToString() != string.Empty ? oDr["E-mail Address"].ToString() : "";
oEmpReference.Telephone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpReference.ReferenceMobile = oDr["Mobile No(s)"].ToString() != string.Empty ? oDr["Mobile No(s)"].ToString() : "";
_HREmployee.References.Add(oEmpReference);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.References;
}
#endregion
#region Import Employee Publication Information
public ObjectsTemplate<EmpPublication> ImportEmpPublicationInfo(DataTable oDTable)
{
EmpPublication oEmpPublication = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Publication Title"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpPublication = new EmpPublication();
oEmpPublication.Title = oDr["Publication Title"].ToString();
oEmpPublication.PublicationType = oDr["Publication Type"].ToString();
oEmpPublication.PublishersName = oDr["Publication Name"].ToString() != string.Empty ? oDr["Publication Name"].ToString() : "";
oEmpPublication.Description = oDr["Description"].ToString() != string.Empty ? oDr["Description"].ToString() : "";
oEmpPublication.Remarks = oDr["Remarks"].ToString() != string.Empty ? oDr["Remarks"].ToString() : "";
DateTime dTempDate;
if (DateTime.TryParse(oDr["Date of Publication"].ToString(), out dTempDate))
oEmpPublication.PublicationDate = dTempDate;//Convert.ToDateTime(oDr["Date of Publication"].ToString());
else
oEmpPublication.PublicationDate = DateTime.MinValue;
_HREmployee.Publications.Add(oEmpPublication);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Publications;
}
#endregion
#region Import Employee Nominee Information
public ObjectsTemplate<EmpNominee> ImportEmpNomineeInfo(DataTable oDTable)
{
EmpNominee oEmpNominee = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Nomination Purpose"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpNominee = new EmpNominee();
NominationPurpose oNominationPurpose = _NominationPurposes.Find(delegate(NominationPurpose oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nomination Purpose"].ToString().ToUpper().Trim(); });
if (oNominationPurpose != null)
{
oEmpNominee.NominationPurposeID = oNominationPurpose.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nomination Purpose", nRow, "Nomination Purpose is not valid for employee " + oDTable.TableName + " Information."));
}
DateTime dTemDate;
if (DateTime.TryParse(Convert.ToString(oDr["Date Of Nomination"]), out dTemDate))
oEmpNominee.NominationDate = dTemDate;
else
oEmpNominee.NominationDate = DateTime.MinValue;
oEmpNominee.Name = oDr["Nominee's Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpNominee.RelationID = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpNominee.Percentage = Convert.ToDouble(oDr["Percentage"].ToString()) > 0 ? Convert.ToDouble(oDr["Percentage"].ToString()) : 0.0;
DateTime dtempDate;
if (DateTime.TryParse(Convert.ToString(oDr["Nominee's Date of Birth"]), out dtempDate))
oEmpNominee.BirthDate = dtempDate;//Convert.ToDateTime(oDr["Nominee's Date of Birth"]);
else
oEmpNominee.BirthDate = DateTime.MinValue;
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nominee's Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpNominee.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nominee's Occupation", nRow, "Nominee's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpNominee.Address = oDr["Address"].ToString();
oEmpNominee.TelePhone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpNominee.EmailAddress = oDr["E-mail Address"].ToString() != string.Empty ? oDr["E-mail Address"].ToString() : "";
_HREmployee.Nominees.Add(oEmpNominee);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Nominees;
}
#endregion
#region Import Employee Hospitalization Information
public ObjectsTemplate<EmpHospitalization> ImportEmpHospitalizationInfo(DataTable oDTable)
{
EmpHospitalization oEmpHospitalization = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Registered Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpHospitalization = new EmpHospitalization();
oEmpHospitalization.RegistrationDate = Convert.ToDateTime(oDr["Date Of Registration"].ToString());
oEmpHospitalization.RegisteredPerson = oDr["Registered Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpHospitalization.RelationId = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
DateTime dTEmpDate;
if (DateTime.TryParse(oDr["Registered Person's Date of Birth"].ToString(), out dTEmpDate))
oEmpHospitalization.BirthDate = dTEmpDate;//Convert.ToDateTime(oDr["Registered Person's Date of Birth"]);
else
oEmpHospitalization.BirthDate = DateTime.MinValue;
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Registered Person's Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpHospitalization.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Registered Person's Occupation", nRow, "Registered Person's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpHospitalization.Email = oDr["Email"].ToString() != string.Empty ? oDr["Email"].ToString() : "";
oEmpHospitalization.Address = oDr["Address"].ToString();
oEmpHospitalization.Telephone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpHospitalization.Mobile = oDr["Mobile No (s)"].ToString() != string.Empty ? oDr["Mobile No (s)"].ToString() : "";
_HREmployee.Hospitalizations.Add(oEmpHospitalization);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Hospitalizations;
}
#endregion
#region Import Employee Guarantor Information
public ObjectsTemplate<EmpGuarantor> ImportEmpGuarantorInfo(DataTable oDTable)
{
EmpGuarantor oEmpGuarantor = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpGuarantor = new EmpGuarantor();
oEmpGuarantor.Name = oDr["Name"].ToString();
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpGuarantor.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpGuarantor.Address = oDr["Address"].ToString();
oEmpGuarantor.EmailAddress = oDr["Email"].ToString() != string.Empty ? oDr["Email"].ToString() : "";
oEmpGuarantor.Telephone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpGuarantor.GuarantorMobile = oDr["Mobile No(s)"].ToString() != string.Empty ? oDr["Mobile No(s)"].ToString() : "";
GuarantorDocumentType oGDType = _GuarantorDocumentTypes.Find(delegate(GuarantorDocumentType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Document Category"].ToString().ToUpper().Trim(); });
if (oGDType != null)
{
oEmpGuarantor.CategotyDocId = oGDType.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Document Category", nRow, "Document Category is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpGuarantor.DocumentPath = oDr["Document Path"].ToString() != string.Empty ? oDr["Document Path"].ToString() : "";
_HREmployee.Guarantors.Add(oEmpGuarantor);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.Guarantors;
}
#endregion
#region Import Employee Language Information
public ObjectsTemplate<EmpLanguage> ImportEmpLanguageInfo(DataTable oDTable)
{
EmpLanguage oEmpLanguage = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["LanguageName"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpLanguage = new EmpLanguage();
oEmpLanguage.LanguageName = oDr["LanguageName"].ToString();
if (oDr["SpokenStatus"].ToString().ToUpper().Trim() == "Basic".ToUpper().Trim())
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Basic;
}
else if (oDr["SpokenStatus"].ToString().ToUpper().Trim() == "Intermideate".ToUpper().Trim())
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Intermideate;
}
else
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Advanced;
}
if (oDr["WrittenStatus"].ToString().ToUpper().Trim() == "Basic".ToUpper().Trim())
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Basic;
}
else if (oDr["WrittenStatus"].ToString().ToUpper().Trim() == "Intermideate".ToUpper().Trim())
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Intermideate;
}
else
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Advanced;
}
_HREmployee.EmpLanguages.Add(oEmpLanguage);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.EmpLanguages;
}
#endregion
#region Import Employee Relative Information
public ObjectsTemplate<EmpRelative> ImportEmpRelativeInfo(DataTable oDTable)
{
EmpRelative oEmpRelative = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpRelative = new EmpRelative();
oEmpRelative.Name = oDr["Name"].ToString();
oEmpRelative.Designation = oDr["Designation"].ToString();
oEmpRelative.EmpNo = oDr["EmpID"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
oEmpRelative.RelationID = oRelation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
DateTime dTempJDate;
if (DateTime.TryParse(oDr["JoiningDate"].ToString(), out dTempJDate))
oEmpRelative.JoiningDate = dTempJDate;//Convert.ToDateTime(oDr["JoiningDate"]);
else
oEmpRelative.JoiningDate = DateTime.MinValue;
DateTime dTempDate;
if (DateTime.TryParse(oDr["EndDate"].ToString(), out dTempDate))
oEmpRelative.EndDate = dTempDate;//Convert.ToDateTime(oDr["EndDate"]);
else
oEmpRelative.EndDate = DateTime.MinValue;
_HREmployee.EmpRelatives.Add(oEmpRelative);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.EmpRelatives;
}
#endregion
#region Import Employee MemberShip Information
public ObjectsTemplate<EmpMembership> ImportEmpMembershipInfo(DataTable oDTable)
{
EmpMembership oEmpMembership = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Organization"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpMembership = new EmpMembership();
oEmpMembership.Organization = oDr["Organization"].ToString();
oEmpMembership.Activity = oDr["YourRole"].ToString();
switch (oDr["OrganizationType"].ToString().Trim())
{
case "Academic":
oEmpMembership.OrganizationType = EnumOrganizationType.Academic;
break;
case "Charitable":
oEmpMembership.OrganizationType = EnumOrganizationType.Charitable;
break;
case "Professional":
oEmpMembership.OrganizationType = EnumOrganizationType.Professional;
break;
case "Social":
oEmpMembership.OrganizationType = EnumOrganizationType.Social;
break;
default:
break;
}
oEmpMembership.FromDate = Convert.ToDateTime(oDr["FromDate"]);
DateTime dTemDate;
if (DateTime.TryParse(oDr["EndDate"].ToString(), out dTemDate))
oEmpMembership.EndDate = dTemDate;//Convert.ToDateTime(oDr["EndDate"]);
else
oEmpMembership.EndDate = DateTime.MinValue;
_HREmployee.EmpMemberships.Add(oEmpMembership);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.EmpMemberships;
}
#endregion
#region Import Employee Relation Information
public ObjectsTemplate<EmpRelation> ImportEmpRelationInfo(DataTable oDTable)
{
EmpRelation oEmpRelation = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpRelation = new EmpRelation();
oEmpRelation.Name = oDr["Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
oEmpRelation.RelationID = oRelation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Occupation"].ToString().ToUpper().Trim(); });
if (oCCupation != null)
oEmpRelation.OccupationID = oCCupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Occupation is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.EmpRelations.Add(oEmpRelation);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.EmpRelations;
}
#endregion
#region Import Employee Question Information
public ObjectsTemplate<EmpHRQuestionAnswer> ImportEmpHRQuestionAnswerInfo(DataTable oDTable)
{
EmpHRQuestionAnswer oEmpHRQuestionAnswer = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["QuestionNo"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
oEmpHRQuestionAnswer = new EmpHRQuestionAnswer();
HRJoiningQuestionary oHRJQuestion = _HRJoiningQuestionaries.Find(delegate(HRJoiningQuestionary oItem) { return oItem.Description.ToUpper().Trim() == oDr["Question"].ToString().ToUpper().Trim(); });
if (oHRJQuestion != null)
{
oEmpHRQuestionAnswer.QuestionNo = oDr["QuestionNo"].ToString();
oEmpHRQuestionAnswer.QuestionaryID = oHRJQuestion.ID;
oEmpHRQuestionAnswer.QAnswer = oDr["Qanswer"].ToString();
oEmpHRQuestionAnswer.QuestionDes = oDr["Question"].ToString();
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Question", nRow, "Question is not valid for employee " + oDTable.TableName + " Information."));
}
_HREmployee.EmpHRQuestionAnswers.Add(oEmpHRQuestionAnswer);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployee.EmpHRQuestionAnswers;
}
#endregion
#endregion
#region Emport Multiple Employee HR Data
#region Import Employee General Information
public ObjectsTemplate<HREmployee> ImportAllEmpGeneralInfo(DataTable oDTable)
{
int nRow = 0;
try
{
_HREmployees = new ObjectsTemplate<HREmployee>();
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["First Name"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
_HREmployee = new HREmployee();
_HREmployee.PayrollTypeID = Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID;
_HREmployee.EmployeeNo = oDr["Employee No"].ToString();
_HREmployee.GlobalID = oDr["GDDB ID"].ToString();
_HREmployee.BirthPlace = oDr["Place Of Birth"].ToString();
//_HREmployee.NickName = oDr["Nick Name"].ToString();
_HREmployee.FirstName = oDr["First Name"].ToString();
_HREmployee.MiddleName = oDr["Middle Name"].ToString();
_HREmployee.LastName = oDr["Last Name"].ToString();
_HREmployee.Name = _HREmployee.FirstName + " " + _HREmployee.MiddleName + " " + _HREmployee.LastName;
_HREmployee.Gender = (oDr["Gender"].ToString().Trim().ToUpper().Trim() == "Male".ToUpper().Trim()) ? EnumGender.Male : EnumGender.Female;
switch (oDr["Marital Status"].ToString())
{
case "Married":
_HREmployee.MaritalStatus = EnumMaritalStatus.Married;
break;
case "UnMarried":
_HREmployee.MaritalStatus = EnumMaritalStatus.UnMarried;
break;
case "Divorced":
_HREmployee.MaritalStatus = EnumMaritalStatus.Divorced;
break;
case "Widow":
_HREmployee.MaritalStatus = EnumMaritalStatus.Widow;
break;
default:
_HREmployee.MaritalStatus = EnumMaritalStatus.None;
break;
}
Religion oReligion = _Religions.Find(delegate(Religion oItem) { return oItem.Name.ToUpper().Trim() == oDr["Religion"].ToString().ToUpper().Trim(); });
if (oReligion != null)
_HREmployee.ReligionID = oReligion.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Religion", nRow, "Religion is not valid for employee from " + oDTable.TableName + " Information."));
if (oDr["Blood Group"].ToString().ToUpper() == "B+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "B-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BNeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.APos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ANeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.OPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ONeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABNeg;
}
_HREmployee.PassportNo = oDr["Passport No"].ToString();
_HREmployee.TinNo = oDr["Tax Identification No"].ToString();
Nationality oNationality = _Nationalites.Find(delegate(Nationality oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nationality"].ToString().ToUpper().Trim(); });
if (oNationality != null)
_HREmployee.NationalityID = oNationality.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nationality", nRow, "Nationality is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.NationalID = oDr["National ID"].ToString();
DateTime dTemFDate;
if (DateTime.TryParse(oDr["Joining Date"].ToString(), out dTemFDate))
_HREmployee.JoiningDate = dTemFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.JoiningDate = DateTime.MinValue;
//_HREmployee.JoiningDate = Convert.ToDateTime(oDr["Joining Date"]);
DateTime dTemBDate;
if (DateTime.TryParse(oDr["Date of Birth"].ToString(), out dTemBDate))
_HREmployee.BirthDate = dTemBDate;//Convert.ToDateTime(oDr["Date of Birth"]);
else
//_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Joining Date", nRow, "Please enter employee joining date " + oDTable.TableName + " Information."));
_HREmployee.BirthDate = DateTime.MinValue;
Category oCategory = _Categories.Find(delegate(Category oItem) { return oItem.Name.ToUpper().Trim() == oDr["Category"].ToString().ToUpper().Trim(); });
if (oCategory != null)
_HREmployee.CategoryID = oCategory.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Category", nRow, "Category is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.FatherName = oDr["Father's Name"].ToString();
_HREmployee.MotherName = oDr["Mother's Name"].ToString();
Occupation oFOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Father's Occupation"].ToString().ToUpper().Trim(); });
if (oFOccupation != null)
_HREmployee.FatherOccupationID = oFOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Father occupation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oMOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Mother's Occupation"].ToString().ToUpper().Trim(); });
if (oMOccupation != null)
_HREmployee.MotherOccupationID = oMOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Mother occupation is not valid for employee " + oDTable.TableName + " Information."));
_HREmployees.Add(_HREmployee);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployees;
}
#endregion
#region Import Employee Contact Information
public void ImportAllEmpContactInfo(DataTable oDTable)
{
int nRow = 0;
EmpContact oEmpContact = null;
ObjectsTemplate<Thana> oParmanentsThanas = null;
ObjectsTemplate<Thana> oPresentThanas = null;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Permanent Address"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpContact = new EmpContact();
oEmpContact.ParmanentAddress = oDr["Permanent Address"].ToString();
District oDisPar = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper() == oDr["Permanent District"].ToString().ToUpper(); });
oParmanentsThanas = Thana.GetByDistID(oDisPar.ID);
if (oDisPar != null)
oEmpContact.ParmanentDistrictID = oDisPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Permanent District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPar = oParmanentsThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Permanent Thana"].ToString().ToUpper().Trim(); });
if (oThanaPar != null)
oEmpContact.ParmanentThanaID = oThanaPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Permanent Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.ParmanentTelephone = oDr["Permanent Telephone No"].ToString();
oEmpContact.ParmanentMobile = oDr["PerMobile No"].ToString();
oEmpContact.PresentAddress = oDr["Present Address"].ToString();
District oPerDis = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present District"].ToString().ToUpper().Trim(); });
oPresentThanas = Thana.GetByDistID(oPerDis.ID);
if (oPerDis != null)
oEmpContact.PresentDistrictID = oPerDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Present District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPre = oPresentThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present Thana"].ToString().ToUpper().Trim(); });
if (oThanaPre != null)
oEmpContact.PresentThanaID = oThanaPre.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Present Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.PresentTelephone = oDr["Present Telephone No"].ToString();
oEmpContact.PresentMobile = oDr["PreMobile No"].ToString();
oEmpContact.PersonalTelephone = oDr["Personal Land Phone No"].ToString();
oEmpContact.Mobile = oDr["Personal Mobile No"].ToString();
oEmpContact.PersonalEMail = oDr["Personal E-Mail"].ToString();
oEmpContact.OfficalEMail = oDr["Offical E-Mail"].ToString();
oEmpContact.Fax = oDr["Fax"].ToString();
oEmpContact.EmergencyContactAddress = oDr["Emergency Contact Address"].ToString();
oEmpContact.EmergencyContactPerson = oDr["Emergency Contact Person"].ToString();
oEmpContact.EmergencyTelephone = oDr["Emergency Telephone No"].ToString();
oEmpContact.EmergencyMobile = oDr["EmeMobile No"].ToString();
Relation oRel = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRel != null)
oEmpContact.ContactPersonRelationId = oRel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Emergency Relation is not valid for employee " + oDTable.TableName + " Information."));
oHREmployee.Contacts.Add(oEmpContact);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Contacts;
}
#endregion
#region Import Employee Spouse Information
public void ImportAllEmpSpouseInfo(DataTable oDTable)
{
EmpSpouse oEmpSpouse = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Spouse Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpSpouse = new EmpSpouse();
oEmpSpouse.Name = oDr["Spouse Name"].ToString();
if (oDr["Spouse Level of Education"].ToString() != string.Empty)
{
EducationLevel oEdLevel = _EducationLevels.Find(delegate(EducationLevel oItem) { return oItem.Description.ToUpper().Trim() == oDr["Spouse Level of Education"].ToString().ToUpper().Trim(); });
if (oEdLevel != null)
oEmpSpouse.EducationLevelID = oEdLevel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Spouse Level of Education", nRow, "Spouse level of education is not valid for employee " + oDTable.TableName + " Information."));
}
else
{
oEmpSpouse.EducationLevelID = null;
}
Occupation oOccup = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Spouse Occupation"].ToString().ToUpper().Trim(); });
if (oOccup != null)
oEmpSpouse.OccupationID = oOccup.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Spouse Occupation", nRow, "Spouse Occupation is not valid for employee " + oDTable.TableName + " Information."));
DateTime dTemBDate;
if (DateTime.TryParse(oDr["Date of Birth"].ToString(), out dTemBDate))
oEmpSpouse.MarriageDate = dTemBDate;//Convert.ToDateTime(oDr["Date of Birth"].ToString());
else
oEmpSpouse.MarriageDate = DateTime.MinValue;
oHREmployee.Spouses.Add(oEmpSpouse);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Spouses;
}
#endregion
#region Import Employee Child Information
public void ImportAllEmpChildInfo(DataTable oDTable)
{
EmpChildren oEmpChildren = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Child's Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpChildren = new EmpChildren();
oEmpChildren.Name = oDr["Child's Name"].ToString();
oEmpChildren.Gender = (oDr["Child's Gender"].ToString().Trim() == "Male") ? EnumGender.Male : EnumGender.Female;
DateTime dTemCBdate;
if (DateTime.TryParse(oDr["Child's Date of Birth"].ToString(), out dTemCBdate))
oEmpChildren.BirthDate = dTemCBdate;//Convert.ToDateTime(oDr["Child's Date of Birth"].ToString());
else
oEmpChildren.BirthDate = DateTime.MinValue;
Occupation oCCP = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Child's Occupation"].ToString().ToUpper().Trim(); });
if (oCCP != null)
oEmpChildren.OccupationID = oCCP.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Child's Occupation", nRow, "Child's Occupation is not valid for employee " + oDTable.TableName + " Information."));
switch (oDr["Child's Marital Status"].ToString().Trim())
{
case "Married":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Married;
break;
case "UnMarried":
oEmpChildren.MaritalStatus = EnumMaritalStatus.UnMarried;
break;
case "Divorced":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Divorced;
break;
case "Widow":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Widow;
break;
default:
break;
}
oHREmployee.Childrens.Add(oEmpChildren);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Childrens;
}
#endregion
#region Import Employee Experience Information
public void ImportAllEmpExperienceInfo(DataTable oDTable)
{
EmpExperience oEmpExperience = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Employer"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpExperience = new EmpExperience();
oEmpExperience.Employer = oDr["Employer"].ToString();
oEmpExperience.ContactPerson = oDr["Contact Person"].ToString() != string.Empty ? oDr["Contact Person"].ToString() : "";
oEmpExperience.Address = oDr["Address"].ToString();
oEmpExperience.Telephone = oDr["Telephone No"].ToString() != string.Empty ? oDr["Telephone No"].ToString() : "";
oEmpExperience.EmployerActivity = oDr["Industry/ Business Type"].ToString();
oEmpExperience.Designation = oDr["Designation"].ToString();
oEmpExperience.JobDescription = oDr["Role Description"].ToString() != string.Empty ? oDr["Role Description"].ToString() : "";
DateTime dTemFDate;
if (DateTime.TryParse(oDr["Employed From Date"].ToString(), out dTemFDate))
oEmpExperience.FromDate = dTemFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
oEmpExperience.FromDate = DateTime.MinValue;
DateTime dTempDate;
if (DateTime.TryParse(oDr["Employed To Date"].ToString(), out dTempDate))
oEmpExperience.ToDate = dTempDate;
else
oEmpExperience.ToDate = DateTime.MinValue;
oHREmployee.Experiences.Add(oEmpExperience);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Experiences;
}
#endregion
#region Import Employee Training Information
public void ImportAllEmpTrainingInfo(DataTable oDTable)
{
EmpTraining oEmpTraining = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Training Title"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpTraining = new EmpTraining();
oEmpTraining.Name = oDr["Training Title"].ToString();
TrainingType oTType = _TrainingTypes.Find(delegate(TrainingType oItem) { return oItem.Name.ToUpper().Trim() == oDr["Training Type"].ToString().ToUpper().Trim(); });
if (oTType != null)
oEmpTraining.TrainingTypeID = oTType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Training Type", nRow, "Training Type is not valid for employee " + oDTable.TableName + " Information."));
NatureOfTraining oNOFTraning = _NatureOfTrainings.Find(delegate(NatureOfTraining oItem) { return oItem.Name.ToUpper().Trim() == oDr["Nature of Training"].ToString().ToUpper().Trim(); });
if (oNOFTraning != null)
oEmpTraining.NatureOfTrainingID = oNOFTraning.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nature of Training", nRow, "Nature of Training is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Description = oDr["Description"].ToString();
Institution oIns = _Institutions.Find(delegate(Institution oItem) { return oItem.Name.ToUpper().Trim() == oDr["Institution"].ToString().ToUpper().Trim(); });
if (oIns != null)
oEmpTraining.InstitutionID = oIns.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Institution", nRow, "Institution is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Place = oDr["Training Place"].ToString();
Country oCountry = _Contries.Find(delegate(Country oItem) { return oItem.Name.ToUpper().Trim() == oDr["Country"].ToString().ToUpper().Trim(); });
if (oCountry != null)
oEmpTraining.CountryID = oCountry.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Country", nRow, "Country is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Achievement = oDr["Achievement"].ToString() != string.Empty ? oDr["Achievement"].ToString() : "";
oEmpTraining.TrainingCompletedFrom = (oDr["Sponsor Type"].ToString().ToUpper().Trim() == "Own".ToUpper().Trim()) ? EnumTrainingCompletedFrom.Own : EnumTrainingCompletedFrom.Company;
if (oDr["Training Fees"].ToString().Trim() != string.Empty)
oEmpTraining.Fees = Convert.ToDouble(oDr["Training Fees"]);
else
oEmpTraining.Fees = 0.0;
if (oDr["Other Cost"].ToString().Trim() != string.Empty)
oEmpTraining.OtherCost = Convert.ToDouble(oDr["Other Cost"]);
else
oEmpTraining.OtherCost = 0.0;
DateTime dTempFdate;
if (DateTime.TryParse(oDr["From Date"].ToString(), out dTempFdate))
oEmpTraining.FromDate = dTempFdate;//Convert.ToDateTime(oDr["From Date"]);
else
oEmpTraining.FromDate = DateTime.MinValue;
DateTime oTEmpDate;
if (DateTime.TryParse(oDr["To Date"].ToString(), out oTEmpDate))
oEmpTraining.ToDate = oTEmpDate;
else
oEmpTraining.ToDate = DateTime.MinValue;
oHREmployee.Trainings.Add(oEmpTraining);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Trainings;
}
#endregion
#region Import Employee Academic Information
public void ImportAllEmpAcademicInfo(DataTable oDTable)
{
EmpAcademic oEmpAcademic = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Education Type"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpAcademic = new EmpAcademic();
EducationType oEDType = _EducationTypes.Find(delegate(EducationType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Education Type"].ToString().ToUpper().Trim(); });
if (oEDType != null)
oEmpAcademic.EducationTypeID = oEDType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Education Type", nRow, "Education Type is not valid for employee " + oDTable.TableName + " Information."));
EducationLevel oEducLevel = _EducationLevels.Find(delegate(EducationLevel oItem) { return oItem.Description.ToUpper().Trim() == oDr["Degree Title"].ToString().ToUpper().Trim(); });
if (oEducLevel != null)
oEmpAcademic.EducationLevelID = oEducLevel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Degree Title", nRow, "Degree Title is not valid for employee " + oDTable.TableName + " Information."));
Discipline oDis = _Disciplines.Find(delegate(Discipline oItem) { return oItem.Description.ToUpper().Trim() == oDr["Discipline/ Department"].ToString().ToUpper().Trim(); });
if (oDis != null)
oEmpAcademic.DisciplineID = oDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Discipline/ Department", nRow, "Discipline/ Department is not valid for employee " + oDTable.TableName + " Information."));
Institution oIns = _Institutions.Find(delegate(Institution oItem) { return oItem.Name.ToUpper().Trim() == oDr["Institution (Board/University)"].ToString().ToUpper().Trim(); });
if (oIns != null)
oEmpAcademic.InstitutionID = oIns.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Institution (Board/University)", nRow, "Institution (Board/University) is not valid for employee " + oDTable.TableName + " Information."));
oEmpAcademic.InstituteName = oDr["Institution Name"].ToString();
DateTime dExamdate = Convert.ToDateTime(oDr["Exam Held on"]);
oEmpAcademic.ExamDate = dExamdate.Year;
DateTime dPassingYear = Convert.ToDateTime(oDr["Passing Year"]);
oEmpAcademic.PassingYear = dPassingYear.Year;
ResultType oRType = _ResultTypes.Find(delegate(ResultType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Result"].ToString().ToUpper().Trim(); });
if (oRType != null)
oEmpAcademic.ResultTypeID = oRType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Result", nRow, "Result is not valid for employee " + oDTable.TableName + " Information."));
if (oDr["CGPA/ Marks"].ToString() != string.Empty || oDr["CGPA/ Marks"].ToString().Length > 0)
oEmpAcademic.GPAOrMarks = Convert.ToDouble(oDr["CGPA/ Marks"]);
oEmpAcademic.LastLevel = (oDr["Highest Education"].ToString().ToUpper().Trim() == "Yes".ToUpper().Trim()) ? true : false;
oHREmployee.Academics.Add(oEmpAcademic);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Academics;
}
#endregion
#region Import Employee Reference Information
public void ImportAllEmpReferenceInfo(DataTable oDTable)
{
EmpReference oEmpReference = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Referee's Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpReference = new EmpReference();
oEmpReference.Name = oDr["Referee's Name"].ToString();
Occupation oCcupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Referee's Occupation"].ToString().ToUpper().Trim(); });
if (oCcupation != null)
{
oEmpReference.OccupationID = oCcupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Referee's Occupation", nRow, "Referee's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpReference.RelationID = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpReference.Address = oDr["Address"].ToString();
oEmpReference.EmailAddress = oDr["E-mail Address"].ToString() != string.Empty ? oDr["E-mail Address"].ToString() : "";
oEmpReference.Telephone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpReference.ReferenceMobile = oDr["Mobile No(s)"].ToString() != string.Empty ? oDr["Mobile No(s)"].ToString() : "";
oHREmployee.References.Add(oEmpReference);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.References;
}
#endregion
#region Import Employee Publication Information
public void ImportAllEmpPublicationInfo(DataTable oDTable)
{
EmpPublication oEmpPublication = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Publication Title"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpPublication = new EmpPublication();
oEmpPublication.Title = oDr["Publication Title"].ToString();
oEmpPublication.PublicationType = oDr["Publication Type"].ToString();
oEmpPublication.PublishersName = oDr["Publication Name"].ToString() != string.Empty ? oDr["Publication Name"].ToString() : "";
oEmpPublication.Description = oDr["Description"].ToString() != string.Empty ? oDr["Description"].ToString() : "";
oEmpPublication.Remarks = oDr["Remarks"].ToString() != string.Empty ? oDr["Remarks"].ToString() : "";
DateTime dTempDate;
if (DateTime.TryParse(oDr["Date of Publication"].ToString(), out dTempDate))
oEmpPublication.PublicationDate = dTempDate;//Convert.ToDateTime(oDr["Date of Publication"].ToString());
else
oEmpPublication.PublicationDate = DateTime.MinValue;
oHREmployee.Publications.Add(oEmpPublication);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Publications;
}
#endregion
#region Import Employee Nominee Information
public void ImportAllEmpNomineeInfo(DataTable oDTable)
{
EmpNominee oEmpNominee = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Nomination Purpose"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpNominee = new EmpNominee();
NominationPurpose oNominationPurpose = _NominationPurposes.Find(delegate(NominationPurpose oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nomination Purpose"].ToString().ToUpper().Trim(); });
if (oNominationPurpose != null)
{
oEmpNominee.NominationPurposeID = oNominationPurpose.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nomination Purpose", nRow, "Nomination Purpose is not valid for employee " + oDTable.TableName + " Information."));
}
DateTime dTemDate;
if (DateTime.TryParse(Convert.ToString(oDr["Date Of Nomination"]), out dTemDate))
oEmpNominee.NominationDate = dTemDate;
else
oEmpNominee.NominationDate = DateTime.MinValue;
oEmpNominee.Name = oDr["Nominee's Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpNominee.RelationID = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpNominee.Percentage = Convert.ToDouble(oDr["Percentage"].ToString()) > 0 ? Convert.ToDouble(oDr["Percentage"].ToString()) : 0.0;
DateTime dtempDate;
if (DateTime.TryParse(Convert.ToString(oDr["Nominee's Date of Birth"]), out dtempDate))
oEmpNominee.BirthDate = dtempDate;//Convert.ToDateTime(oDr["Nominee's Date of Birth"]);
else
oEmpNominee.BirthDate = DateTime.MinValue;
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nominee's Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpNominee.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nominee's Occupation", nRow, "Nominee's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpNominee.Address = oDr["Address"].ToString();
oEmpNominee.TelePhone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpNominee.EmailAddress = oDr["E-mail Address"].ToString() != string.Empty ? oDr["E-mail Address"].ToString() : "";
oHREmployee.Nominees.Add(oEmpNominee);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Nominees;
}
#endregion
#region Import Employee Hospitalization Information
public void ImportAllEmpHospitalizationInfo(DataTable oDTable)
{
EmpHospitalization oEmpHospitalization = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Registered Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpHospitalization = new EmpHospitalization();
oEmpHospitalization.RegistrationDate = Convert.ToDateTime(oDr["Date Of Registration"].ToString());
oEmpHospitalization.RegisteredPerson = oDr["Registered Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpHospitalization.RelationId = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
DateTime dTEmpDate;
if (DateTime.TryParse(oDr["Registered Person's Date of Birth"].ToString(), out dTEmpDate))
oEmpHospitalization.BirthDate = dTEmpDate;//Convert.ToDateTime(oDr["Registered Person's Date of Birth"]);
else
oEmpHospitalization.BirthDate = DateTime.MinValue;
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Registered Person's Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpHospitalization.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Registered Person's Occupation", nRow, "Registered Person's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpHospitalization.Email = oDr["Email"].ToString() != string.Empty ? oDr["Email"].ToString() : "";
oEmpHospitalization.Address = oDr["Address"].ToString();
oEmpHospitalization.Telephone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpHospitalization.Mobile = oDr["Mobile No (s)"].ToString() != string.Empty ? oDr["Mobile No (s)"].ToString() : "";
oHREmployee.Hospitalizations.Add(oEmpHospitalization);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Hospitalizations;
}
#endregion
#region Import Employee Guarantor Information
public void ImportAllEmpGuarantorInfo(DataTable oDTable)
{
EmpGuarantor oEmpGuarantor = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpGuarantor = new EmpGuarantor();
oEmpGuarantor.Name = oDr["Name"].ToString();
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpGuarantor.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpGuarantor.Address = oDr["Address"].ToString();
oEmpGuarantor.EmailAddress = oDr["Email"].ToString() != string.Empty ? oDr["Email"].ToString() : "";
oEmpGuarantor.Telephone = oDr["Telephone No(s)"].ToString() != string.Empty ? oDr["Telephone No(s)"].ToString() : "";
oEmpGuarantor.GuarantorMobile = oDr["Mobile No(s)"].ToString() != string.Empty ? oDr["Mobile No(s)"].ToString() : "";
GuarantorDocumentType oGDType = _GuarantorDocumentTypes.Find(delegate(GuarantorDocumentType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Document Category"].ToString().ToUpper().Trim(); });
if (oGDType != null)
{
oEmpGuarantor.CategotyDocId = oGDType.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Document Category", nRow, "Document Category is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpGuarantor.DocumentPath = oDr["Document Path"].ToString() != string.Empty ? oDr["Document Path"].ToString() : "";
oHREmployee.Guarantors.Add(oEmpGuarantor);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.Guarantors;
}
#endregion
#region Import Employee Language Information
public void ImportAllEmpLanguageInfo(DataTable oDTable)
{
EmpLanguage oEmpLanguage = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["LanguageName"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpLanguage = new EmpLanguage();
oEmpLanguage.LanguageName = oDr["LanguageName"].ToString();
if (oDr["SpokenStatus"].ToString().ToUpper().Trim() == "Basic".ToUpper().Trim())
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Basic;
}
else if (oDr["SpokenStatus"].ToString().ToUpper().Trim() == "Intermideate".ToUpper().Trim())
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Intermideate;
}
else
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Advanced;
}
if (oDr["WrittenStatus"].ToString().ToUpper().Trim() == "Basic".ToUpper().Trim())
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Basic;
}
else if (oDr["WrittenStatus"].ToString().ToUpper().Trim() == "Intermideate".ToUpper().Trim())
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Intermideate;
}
else
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Advanced;
}
oHREmployee.EmpLanguages.Add(oEmpLanguage);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.EmpLanguages;
}
#endregion
#region Import Employee Relative Information
public void ImportAllEmpRelativeInfo(DataTable oDTable)
{
EmpRelative oEmpRelative = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpRelative = new EmpRelative();
oEmpRelative.Name = oDr["Name"].ToString();
oEmpRelative.Designation = oDr["Designation"].ToString();
oEmpRelative.EmpNo = oDr["EmpID"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
oEmpRelative.RelationID = oRelation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
DateTime dTempJDate;
if (DateTime.TryParse(oDr["JoiningDate"].ToString(), out dTempJDate))
oEmpRelative.JoiningDate = dTempJDate;//Convert.ToDateTime(oDr["JoiningDate"]);
else
oEmpRelative.JoiningDate = DateTime.MinValue;
DateTime dTempDate;
if (DateTime.TryParse(oDr["EndDate"].ToString(), out dTempDate))
oEmpRelative.EndDate = dTempDate;//Convert.ToDateTime(oDr["EndDate"]);
else
oEmpRelative.EndDate = DateTime.MinValue;
oHREmployee.EmpRelatives.Add(oEmpRelative);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.EmpRelatives;
}
#endregion
#region Import Employee MemberShip Information
public void ImportAllEmpMembershipInfo(DataTable oDTable)
{
EmpMembership oEmpMembership = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Organization"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpMembership = new EmpMembership();
oEmpMembership.Organization = oDr["Organization"].ToString();
oEmpMembership.Activity = oDr["YourRole"].ToString();
switch (oDr["OrganizationType"].ToString().Trim())
{
case "Academic":
oEmpMembership.OrganizationType = EnumOrganizationType.Academic;
break;
case "Charitable":
oEmpMembership.OrganizationType = EnumOrganizationType.Charitable;
break;
case "Professional":
oEmpMembership.OrganizationType = EnumOrganizationType.Professional;
break;
case "Social":
oEmpMembership.OrganizationType = EnumOrganizationType.Social;
break;
default:
break;
}
DateTime dTemFDate;
if (DateTime.TryParse(oDr["FromDate"].ToString(), out dTemFDate))
oEmpMembership.FromDate = dTemFDate;
else
oEmpMembership.FromDate = DateTime.MinValue;
DateTime dTemDate;
if (DateTime.TryParse(oDr["EndDate"].ToString(), out dTemDate))
oEmpMembership.EndDate = dTemDate;//Convert.ToDateTime(oDr["EndDate"]);
else
oEmpMembership.EndDate = DateTime.MinValue;
oHREmployee.EmpMemberships.Add(oEmpMembership);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.EmpMemberships;
}
#endregion
#region Import Employee Relation Information
public void ImportAllEmpRelationInfo(DataTable oDTable)
{
EmpRelation oEmpRelation = null;
int nRow = 0;
try
{
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmployee = _HREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["Employee No"].ToString(); });
if (oHREmployee != null)
{
nRow = nRow + 1;
oEmpRelation = new EmpRelation();
oEmpRelation.Name = oDr["Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
oEmpRelation.RelationID = oRelation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Occupation"].ToString().ToUpper().Trim(); });
if (oCCupation != null)
oEmpRelation.OccupationID = oCCupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Occupation is not valid for employee " + oDTable.TableName + " Information."));
oHREmployee.EmpRelations.Add(oEmpRelation);
}
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
//return _HREmployee.EmpRelations;
}
#endregion
#region Import Employee Question Information
//public ObjectsTemplate<EmpHRQuestionAnswer> ImportAllEmpHRQuestionAnswerInfo(DataTable oDTable)
//{
// EmpHRQuestionAnswer oEmpHRQuestionAnswer = null;
// int nRow = 0;
// try
// {
// foreach (DataRow oDr in oDTable.Rows)
// {
// if (oDr["QuestionNo"].ToString().Trim() != string.Empty)
// {
// nRow = nRow + 1;
// oEmpHRQuestionAnswer = new EmpHRQuestionAnswer();
// HRJoiningQuestionary oHRJQuestion = _HRJoiningQuestionaries.Find(delegate(HRJoiningQuestionary oItem) { return oItem.Description.ToUpper().Trim() == oDr["Question"].ToString().ToUpper().Trim(); });
// if (oHRJQuestion != null)
// {
// oEmpHRQuestionAnswer.QuestionNo = oDr["QuestionNo"].ToString();
// oEmpHRQuestionAnswer.QuestionaryID = oHRJQuestion.ID;
// oEmpHRQuestionAnswer.QAnswer = oDr["Qanswer"].ToString();
// oEmpHRQuestionAnswer.QuestionDes = oDr["Question"].ToString();
// }
// else
// {
// _errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Question", nRow, "Question is not valid for employee " + oDTable.TableName + " Information."));
// }
// _HREmployee.EmpHRQuestionAnswers.Add(oEmpHRQuestionAnswer);
// }
// }
// }
// catch (Exception ex)
// {
// throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
// }
// return _HREmployee.EmpHRQuestionAnswers;
//}
#endregion
#endregion
#region Import Employee General Information
public ObjectsTemplate<HREmployee> ImportAllEmpGeneralInForNavana(DataTable oDTable)
{
int nRow = 0;
try
{
//ObjectsTemplate<EmpContact> oEmployee
_CheckHREmployees = HREmployee.Get();
EmpContact oEmpContact = null;
ObjectsTemplate<Thana> oParmanentsThanas = null;
ObjectsTemplate<Thana> oPresentThanas = null;
//HREmployee oHREmployee=null;
ObjectsTemplate<EmpContact> oEmpContacts = new ObjectsTemplate<EmpContact>();
_HREmployees = new ObjectsTemplate<HREmployee>();
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["First Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmp = _CheckHREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["EmployeeID"].ToString().ToUpper().Trim(); });
if (oHREmp != null)
{
oHREmp.Contacts = new ObjectsTemplate<EmpContact>();
oHREmp.Childrens = new ObjectsTemplate<EmpChildren>();
oHREmp.Experiences = new ObjectsTemplate<EmpExperience>();
oHREmp.Spouses = new ObjectsTemplate<EmpSpouse>();
oHREmp.Experiences = new ObjectsTemplate<EmpExperience>();
oHREmp.Trainings = new ObjectsTemplate<EmpTraining>();
oHREmp.Academics = new ObjectsTemplate<EmpAcademic>();
oHREmp.Achievement = new ObjectsTemplate<EmpAchievement>();
oHREmp.OtherTalents = new ObjectsTemplate<EmpOtherTalent>();
oHREmp.CurricularActivities = new ObjectsTemplate<EmpCurricularActivity>();
oHREmp.Hobbys = new ObjectsTemplate<EmpHobby>();
oHREmp.References = new ObjectsTemplate<EmpReference>();
oHREmp.Allergies = new ObjectsTemplate<EmpAllergy>();
oHREmp.Publications = new ObjectsTemplate<EmpPublication>();
oHREmp.Nominees = new ObjectsTemplate<EmpNominee>();
oHREmp.Hospitalizations = new ObjectsTemplate<EmpHospitalization>();
oHREmp.Guarantors = new ObjectsTemplate<EmpGuarantor>();
oHREmp.WorkPlanSetup = new EmpWorkPlanSetup();
oHREmp.EmpLanguages = new ObjectsTemplate<EmpLanguage>();
oHREmp.EmpRelatives = new ObjectsTemplate<EmpRelative>();
oHREmp.EmpMemberships = new ObjectsTemplate<EmpMembership>();
oHREmp.EmpRelations = new ObjectsTemplate<EmpRelation>();
oHREmp.EmpHRQuestionAnswers = new ObjectsTemplate<EmpHRQuestionAnswer>();
oHREmp.CreditCards = new ObjectsTemplate<EmpCreditCard>();
_HREmployee = oHREmp;
_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//if(_HREmployee.Contacts.Count>0)
//{
//_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//}
}
else
{
//_HREmployee = oHREmp;
//_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("EmployeeID", nRow, "EmployeeID : " + oDr["EmployeeID"].ToString() + " Not found in the database"));
//continue;
//_HREmployee = new HREmployee();
}
nRow = nRow + 1;
_HREmployee.PayrollTypeID = Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID;
_HREmployee.EmployeeNo = oDr["EmployeeID"].ToString();
_HREmployee.GlobalID = oDr["GEID"].ToString();
_HREmployee.BirthPlace = oDr["Place Of Birth"].ToString();
//_HREmployee.NickName = oDr["Nick Name"].ToString();
_HREmployee.FirstName = oDr["First Name"].ToString();
_HREmployee.MiddleName = oDr["Middle Name"].ToString();
_HREmployee.LastName = oDr["Last Name"].ToString();
_HREmployee.Name = _HREmployee.FirstName + " " + _HREmployee.MiddleName + " " + _HREmployee.LastName;
_HREmployee.Gender = (oDr["Gender"].ToString().Trim().ToUpper().Trim() == "Male".ToUpper().Trim()) ? EnumGender.Male : EnumGender.Female;
Religion oReligion = _Religions.Find(delegate(Religion oItem) { return oItem.Name.ToUpper().Trim() == oDr["Religion"].ToString().ToUpper().Trim(); });
if (oReligion != null)
_HREmployee.ReligionID = oReligion.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Religion", nRow, "Religion is not valid for employee from " + oDTable.TableName + " Information."));
if (oDr["Blood Group"].ToString().ToUpper() == "B+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "B-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BNeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.APos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ANeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.OPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ONeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABNeg;
}
_HREmployee.PassportNo = oDr["Passport No"].ToString();
_HREmployee.PassportIssuePlace = oDr["Passport Issue Place"].ToString();
DateTime dTemPassIssueDate;
if (DateTime.TryParse(oDr["Passport Issue Date"].ToString(), out dTemPassIssueDate))
_HREmployee.PassportIssueDate = dTemPassIssueDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.PassportIssueDate = DateTime.MinValue;
DateTime dTemPassExpireDate;
if (DateTime.TryParse(oDr["Passport Expire Date"].ToString(), out dTemPassExpireDate))
_HREmployee.PassportExpDate = dTemPassExpireDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.PassportExpDate = DateTime.MinValue;
_HREmployee.TinNo = oDr["Tax Identification No"].ToString();
Nationality oNationality = _Nationalites.Find(delegate(Nationality oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nationality"].ToString().ToUpper().Trim(); });
if (oNationality != null)
_HREmployee.NationalityID = oNationality.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nationality", nRow, "Nationality is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.NationalID = oDr["National ID"].ToString();
DateTime dTemFDate;
if (DateTime.TryParse(oDr["Joining Date"].ToString(), out dTemFDate))
_HREmployee.JoiningDate = dTemFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.JoiningDate = DateTime.MinValue;
//_HREmployee.JoiningDate = Convert.ToDateTime(oDr["Joining Date"]);
DateTime dTemBDate;
if (DateTime.TryParse(oDr["Birth Date"].ToString(), out dTemBDate))
_HREmployee.BirthDate = dTemBDate;//Convert.ToDateTime(oDr["Date of Birth"]);
else
//_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Joining Date", nRow, "Please enter employee joining date " + oDTable.TableName + " Information."));
_HREmployee.BirthDate = DateTime.MinValue;
Category oCategory = _Categories.Find(delegate(Category oItem) { return oItem.Name.ToUpper().Trim() == oDr["Category"].ToString().ToUpper().Trim(); });
if (oCategory != null)
_HREmployee.CategoryID = oCategory.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Category", nRow, "Category is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.DrivingLicenceNo = oDr["Driving Licence No"].ToString();
_HREmployee.FatherName = oDr["Father's Name"].ToString();
_HREmployee.MotherName = oDr["Mother's Name"].ToString();
Occupation oFOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Father's Occupation"].ToString().ToUpper().Trim(); });
if (oFOccupation != null)
_HREmployee.FatherOccupationID = oFOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Father occupation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oMOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Mother's Occupation"].ToString().ToUpper().Trim(); });
if (oMOccupation != null)
_HREmployee.MotherOccupationID = oMOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Mother occupation is not valid for employee " + oDTable.TableName + " Information."));
#region Employee Contact
oEmpContact = new EmpContact();
oEmpContact.ParmanentAddress = oDr["Permanent Address"].ToString();
District oDisPar = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper() == oDr["Permanent District"].ToString().ToUpper(); });
oParmanentsThanas = Thana.GetByDistID(oDisPar.ID);
if (oDisPar != null)
oEmpContact.ParmanentDistrictID = oDisPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Permanent District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPar = oParmanentsThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Permanent Thana"].ToString().ToUpper().Trim(); });
if (oThanaPar != null)
oEmpContact.ParmanentThanaID = oThanaPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Permanent Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.ParmanentTelephone = oDr["Permanent Telephone No"].ToString();
oEmpContact.ParmanentMobile = oDr["PerMobile No"].ToString();
oEmpContact.PresentAddress = oDr["Present Address"].ToString();
District oPerDis = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present District"].ToString().ToUpper().Trim(); });
oPresentThanas = Thana.GetByDistID(oPerDis.ID);
if (oPerDis != null)
oEmpContact.PresentDistrictID = oPerDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Present District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPre = oPresentThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present Thana"].ToString().ToUpper().Trim(); });
if (oThanaPre != null)
oEmpContact.PresentThanaID = oThanaPre.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Present Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.PresentTelephone = oDr["Present Telephone No"].ToString();
oEmpContact.PresentMobile = oDr["PreMobile No"].ToString();
oEmpContact.PersonalTelephone = oDr["Personal Land Phone No"].ToString();
oEmpContact.Mobile = oDr["Personal Mobile No"].ToString();
oEmpContact.PersonalEMail = oDr["Personal E-Mail"].ToString();
oEmpContact.OfficalEMail = oDr["Official E-Mail"].ToString();
oEmpContact.Fax = oDr["Fax"].ToString();
oEmpContact.EmergencyContactAddress = oDr["Emergency Contact Address"].ToString();
oEmpContact.EmergencyContactPerson = oDr["Emergency Contact Person"].ToString();
oEmpContact.EmergencyTelephone = oDr["Emergency Telephone No"].ToString();
oEmpContact.EmergencyMobile = oDr["EmeMobile No"].ToString();
Relation oRel = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRel != null)
oEmpContact.ContactPersonRelationId = oRel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Emergency Relation is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.Contacts.Add(oEmpContact);
_HREmployees.Add(_HREmployee);
#endregion
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployees;
}
#endregion
#region Import Single Employee Information
public ObjectsTemplate<HREmployee> ImportSingleEmpInForNavana(DataTable oDTable)
{
int nRow = 0;
try
{
_CheckHREmployees = HREmployee.Get();
EmpContact oEmpContact = null;
EmpSpouse oEmpSpouse = null;
EmpChildren oEmpChildren = null;
EmpExperience oEmpExperience = null;
EmpTraining oEmpTraining = null;
EmpAcademic oEmpAcademic = null;
ObjectsTemplate<Thana> oParmanentsThanas = null;
ObjectsTemplate<Thana> oPresentThanas = null;
ObjectsTemplate<EmpContact> oEmpContacts = new ObjectsTemplate<EmpContact>();
_HREmployees = new ObjectsTemplate<HREmployee>();
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["First Name"].ToString().Trim() != string.Empty)
{
HREmployee oHREmp = _CheckHREmployees.Find(delegate(HREmployee oItem) { return oItem.EmployeeNo == oDr["EmployeeID"].ToString().ToUpper().Trim(); });
if (oHREmp != null)
{
oHREmp.Contacts = new ObjectsTemplate<EmpContact>();
oHREmp.Childrens = new ObjectsTemplate<EmpChildren>();
oHREmp.Experiences = new ObjectsTemplate<EmpExperience>();
oHREmp.Spouses = new ObjectsTemplate<EmpSpouse>();
oHREmp.Experiences = new ObjectsTemplate<EmpExperience>();
oHREmp.Trainings = new ObjectsTemplate<EmpTraining>();
oHREmp.Academics = new ObjectsTemplate<EmpAcademic>();
oHREmp.Achievement = new ObjectsTemplate<EmpAchievement>();
oHREmp.OtherTalents = new ObjectsTemplate<EmpOtherTalent>();
oHREmp.CurricularActivities = new ObjectsTemplate<EmpCurricularActivity>();
oHREmp.Hobbys = new ObjectsTemplate<EmpHobby>();
oHREmp.References = new ObjectsTemplate<EmpReference>();
oHREmp.Allergies = new ObjectsTemplate<EmpAllergy>();
oHREmp.Publications = new ObjectsTemplate<EmpPublication>();
oHREmp.Nominees = new ObjectsTemplate<EmpNominee>();
oHREmp.Hospitalizations = new ObjectsTemplate<EmpHospitalization>();
oHREmp.Guarantors = new ObjectsTemplate<EmpGuarantor>();
oHREmp.WorkPlanSetup = new EmpWorkPlanSetup();
oHREmp.EmpLanguages = new ObjectsTemplate<EmpLanguage>();
oHREmp.EmpRelatives = new ObjectsTemplate<EmpRelative>();
oHREmp.EmpMemberships = new ObjectsTemplate<EmpMembership>();
oHREmp.EmpRelations = new ObjectsTemplate<EmpRelation>();
oHREmp.EmpHRQuestionAnswers = new ObjectsTemplate<EmpHRQuestionAnswer>();
oHREmp.CreditCards = new ObjectsTemplate<EmpCreditCard>();
_HREmployee = oHREmp;
_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//if(_HREmployee.Contacts.Count>0)
//{
//_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//}
}
else
{
//_HREmployee = oHREmp;
//_HREmployee.Contacts = new ObjectsTemplate<EmpContact>();
//_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("EmployeeID", nRow, "EmployeeID : " + oDr["EmployeeID"].ToString() + " Not found in the database"));
//continue;
//_HREmployee = new HREmployee();
}
nRow = nRow + 1;
_HREmployee.PayrollTypeID = Payroll.BO.SystemInformation.CurrentSysInfo.PayrollTypeID;
_HREmployee.EmployeeNo = oDr["EmployeeID"].ToString();
_HREmployee.GlobalID = oDr["GEID"].ToString();
_HREmployee.BirthPlace = oDr["Place Of Birth"].ToString();
//_HREmployee.NickName = oDr["Nick Name"].ToString();
_HREmployee.FirstName = oDr["First Name"].ToString();
_HREmployee.MiddleName = oDr["Middle Name"].ToString();
_HREmployee.LastName = oDr["Last Name"].ToString();
_HREmployee.Name = _HREmployee.FirstName + " " + _HREmployee.MiddleName + " " + _HREmployee.LastName;
_HREmployee.Gender = (oDr["Gender"].ToString().Trim().ToUpper().Trim() == "Male".ToUpper().Trim()) ? EnumGender.Male : EnumGender.Female;
Religion oReligion = _Religions.Find(delegate(Religion oItem) { return oItem.Name.ToUpper().Trim() == oDr["Religion"].ToString().ToUpper().Trim(); });
if (oReligion != null)
_HREmployee.ReligionID = oReligion.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Religion", nRow, "Religion is not valid for employee from " + oDTable.TableName + " Information."));
if (oDr["Blood Group"].ToString().ToUpper() == "B+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "B-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.BNeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.APos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "A-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ANeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.OPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "O-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ONeg;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB+".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABPos;
}
else if (oDr["Blood Group"].ToString().ToUpper() == "AB-".ToUpper())
{
_HREmployee.BloodGroup = EnumBloodGroup.ABNeg;
}
_HREmployee.PassportNo = oDr["Passport No"].ToString();
_HREmployee.PassportIssuePlace = oDr["Passport Issue Place"].ToString();
DateTime dTemPassIssueDate;
if (DateTime.TryParse(oDr["Passport Issue Date"].ToString(), out dTemPassIssueDate))
_HREmployee.PassportIssueDate = dTemPassIssueDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.PassportIssueDate = DateTime.MinValue;
DateTime dTemPassExpireDate;
if (DateTime.TryParse(oDr["Passport Expire Date"].ToString(), out dTemPassExpireDate))
_HREmployee.PassportExpDate = dTemPassExpireDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.PassportExpDate = DateTime.MinValue;
_HREmployee.TinNo = oDr["Tax Identification No"].ToString();
Nationality oNationality = _Nationalites.Find(delegate(Nationality oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nationality"].ToString().ToUpper().Trim(); });
if (oNationality != null)
_HREmployee.NationalityID = oNationality.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nationality", nRow, "Nationality is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.NationalID = oDr["National ID"].ToString();
DateTime dTemFDate;
if (DateTime.TryParse(oDr["Joining Date"].ToString(), out dTemFDate))
_HREmployee.JoiningDate = dTemFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_HREmployee.JoiningDate = DateTime.MinValue;
//_HREmployee.JoiningDate = Convert.ToDateTime(oDr["Joining Date"]);
DateTime dTemBDate;
if (DateTime.TryParse(oDr["Birth Date"].ToString(), out dTemBDate))
_HREmployee.BirthDate = dTemBDate;//Convert.ToDateTime(oDr["Date of Birth"]);
else
//_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Joining Date", nRow, "Please enter employee joining date " + oDTable.TableName + " Information."));
_HREmployee.BirthDate = DateTime.MinValue;
Category oCategory = _Categories.Find(delegate(Category oItem) { return oItem.Name.ToUpper().Trim() == oDr["Category"].ToString().ToUpper().Trim(); });
if (oCategory != null)
_HREmployee.CategoryID = oCategory.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Category", nRow, "Category is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.DrivingLicenceNo = oDr["Driving Licence No"].ToString();
_HREmployee.FatherName = oDr["Father's Name"].ToString();
_HREmployee.MotherName = oDr["Mother's Name"].ToString();
Occupation oFOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Father's Occupation"].ToString().ToUpper().Trim(); });
if (oFOccupation != null)
_HREmployee.FatherOccupationID = oFOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Father occupation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oMOccupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Mother's Occupation"].ToString().ToUpper().Trim(); });
if (oMOccupation != null)
_HREmployee.MotherOccupationID = oMOccupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Occupation", nRow, "Mother occupation is not valid for employee " + oDTable.TableName + " Information."));
#region Employee Contact
oEmpContact = new EmpContact();
oEmpContact.ParmanentAddress = oDr["Permanent Address"].ToString();
District oDisPar = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper() == oDr["Permanent District"].ToString().ToUpper(); });
oParmanentsThanas = Thana.GetByDistID(oDisPar.ID);
if (oDisPar != null)
oEmpContact.ParmanentDistrictID = oDisPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Permanent District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPar = oParmanentsThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Permanent Thana"].ToString().ToUpper().Trim(); });
if (oThanaPar != null)
oEmpContact.ParmanentThanaID = oThanaPar.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Permanent Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.ParmanentTelephone = oDr["Permanent Telephone No"].ToString();
oEmpContact.ParmanentMobile = oDr["PerMobile No"].ToString();
oEmpContact.PresentAddress = oDr["Present Address"].ToString();
District oPerDis = _Districts.Find(delegate(District oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present District"].ToString().ToUpper().Trim(); });
oPresentThanas = Thana.GetByDistID(oPerDis.ID);
if (oPerDis != null)
oEmpContact.PresentDistrictID = oPerDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("District", nRow, "Present District is not valid for employee " + oDTable.TableName + " Information."));
Thana oThanaPre = oPresentThanas.Find(delegate(Thana oItem) { return oItem.Name.ToUpper().Trim() == oDr["Present Thana"].ToString().ToUpper().Trim(); });
if (oThanaPre != null)
oEmpContact.PresentThanaID = oThanaPre.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Thana", nRow, "Present Thana is not valid for employee " + oDTable.TableName + " Information."));
oEmpContact.PresentTelephone = oDr["Present Telephone No"].ToString();
oEmpContact.PresentMobile = oDr["PreMobile No"].ToString();
oEmpContact.PersonalTelephone = oDr["Personal Land Phone No"].ToString();
oEmpContact.Mobile = oDr["Personal Mobile No"].ToString();
oEmpContact.PersonalEMail = oDr["Personal E-Mail"].ToString();
oEmpContact.OfficalEMail = oDr["Official E-Mail"].ToString();
oEmpContact.Fax = oDr["Fax"].ToString();
oEmpContact.EmergencyContactAddress = oDr["Emergency Contact Address"].ToString();
oEmpContact.EmergencyContactPerson = oDr["Emergency Contact Person"].ToString();
oEmpContact.EmergencyTelephone = oDr["Emergency Telephone No"].ToString();
oEmpContact.EmergencyMobile = oDr["EmeMobile No"].ToString();
Relation oRel = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRel != null)
oEmpContact.ContactPersonRelationId = oRel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relation", nRow, "Emergency Relation is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.Contacts.Add(oEmpContact);
#endregion
#region EmpSpouse
oEmpSpouse = new EmpSpouse();
oEmpSpouse.Name = oDr["Spouse Name"].ToString();
if (oDr["Spouse Level of Education"].ToString() != string.Empty)
{
EducationLevel oEdLevel = _EducationLevels.Find(delegate(EducationLevel oItem) { return oItem.Description.ToUpper().Trim() == oDr["Spouse Level of Education"].ToString().ToUpper().Trim(); });
if (oEdLevel != null)
oEmpSpouse.EducationLevelID = oEdLevel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Spouse Level of Education", nRow, "Spouse level of education is not valid for employee " + oDTable.TableName + " Information."));
}
else
{
oEmpSpouse.EducationLevelID = null;
}
Occupation oOccup = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Spouse Occupation"].ToString().ToUpper().Trim(); });
if (oOccup != null)
oEmpSpouse.OccupationID = oOccup.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Spouse Occupation", nRow, "Spouse Occupation is not valid for employee " + oDTable.TableName + " Information."));
DateTime dDate;
if (DateTime.TryParse(oDr["Date of Marriage"].ToString(), out dDate))
oEmpSpouse.MarriageDate = dDate;//Convert.ToDateTime(oDr["Date of Birth"].ToString());
else
oEmpSpouse.MarriageDate = DateTime.MinValue;
_HREmployee.Spouses.Add(oEmpSpouse);
#endregion
#region Children
oEmpChildren = new EmpChildren();
oEmpChildren.Name = oDr["Child's Name"].ToString();
oEmpChildren.Gender = (oDr["Child's Gender"].ToString().Trim() == "Male") ? EnumGender.Male : EnumGender.Female;
DateTime dTemCBdate;
if (DateTime.TryParse(oDr["Child's Date of Birth"].ToString(), out dTemCBdate))
oEmpChildren.BirthDate = dTemCBdate;//Convert.ToDateTime(oDr["Child's Date of Birth"].ToString());
else
oEmpChildren.BirthDate = DateTime.MinValue;
Occupation oCCP = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Child's Occupation"].ToString().ToUpper().Trim(); });
if (oCCP != null)
oEmpChildren.OccupationID = oCCP.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Child's Occupation", nRow, "Child's Occupation is not valid for employee " + oDTable.TableName + " Information."));
switch (oDr["Child's Marital Status"].ToString().Trim())
{
case "Married":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Married;
break;
case "UnMarried":
oEmpChildren.MaritalStatus = EnumMaritalStatus.UnMarried;
break;
case "Divorced":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Divorced;
break;
case "Widow":
oEmpChildren.MaritalStatus = EnumMaritalStatus.Widow;
break;
default:
break;
}
_HREmployee.Childrens.Add(oEmpChildren);
#endregion
#region EmpExperience
oEmpExperience = new EmpExperience();
oEmpExperience.Employer = oDr["Employer"].ToString();
oEmpExperience.ContactPerson = oDr["Contact Person"].ToString() != string.Empty ? oDr["Contact Person"].ToString() : "";
oEmpExperience.Address = oDr["ConPer Address"].ToString();
oEmpExperience.Telephone = oDr["ConPer Telephone No"].ToString() != string.Empty ? oDr["ConPer Telephone No"].ToString() : "";
oEmpExperience.EmployerActivity = oDr["Industry/ Business Type"].ToString();
oEmpExperience.Designation = oDr["ConPer Designation"].ToString();
oEmpExperience.JobDescription = oDr["Role Description"].ToString() != string.Empty ? oDr["Role Description"].ToString() : "";
DateTime dFDate;
if (DateTime.TryParse(oDr["Employed From Date"].ToString(), out dFDate))
oEmpExperience.FromDate = dFDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
oEmpExperience.FromDate = DateTime.MinValue;
DateTime dpDate;
if (DateTime.TryParse(oDr["Employed To Date"].ToString(), out dpDate))
oEmpExperience.ToDate = dpDate;
else
oEmpExperience.ToDate = DateTime.MinValue;
_HREmployee.Experiences.Add(oEmpExperience);
#endregion
#region EmpTraining
oEmpTraining = new EmpTraining();
oEmpTraining.Name = oDr["Training Title"].ToString();
TrainingType oTType = _TrainingTypes.Find(delegate(TrainingType oItem) { return oItem.Name.ToUpper().Trim() == oDr["Training Type"].ToString().ToUpper().Trim(); });
if (oTType != null)
oEmpTraining.TrainingTypeID = oTType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Training Type", nRow, "Training Type is not valid for employee " + oDTable.TableName + " Information."));
NatureOfTraining oNOFTraning = _NatureOfTrainings.Find(delegate(NatureOfTraining oItem) { return oItem.Name.ToUpper().Trim() == oDr["Nature of Training"].ToString().ToUpper().Trim(); });
if (oNOFTraning != null)
oEmpTraining.NatureOfTrainingID = oNOFTraning.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nature of Training", nRow, "Nature of Training is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Description = oDr["Training Description"].ToString();
Institution oIns = _Institutions.Find(delegate(Institution oItem) { return oItem.Name.ToUpper().Trim() == oDr["Institution"].ToString().ToUpper().Trim(); });
if (oIns != null)
oEmpTraining.InstitutionID = oIns.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Institution", nRow, "Institution is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Place = oDr["Training Place"].ToString();
Country oCountry = _Contries.Find(delegate(Country oItem) { return oItem.Name.ToUpper().Trim() == oDr["Country"].ToString().ToUpper().Trim(); });
if (oCountry != null)
oEmpTraining.CountryID = oCountry.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Country", nRow, "Country is not valid for employee " + oDTable.TableName + " Information."));
oEmpTraining.Achievement = oDr["Achievement"].ToString() != string.Empty ? oDr["Achievement"].ToString() : "";
oEmpTraining.TrainingCompletedFrom = (oDr["Sponsor Type"].ToString().ToUpper().Trim() == "Own".ToUpper().Trim()) ? EnumTrainingCompletedFrom.Own : EnumTrainingCompletedFrom.Company;
if (oDr["Training Fees"].ToString().Trim() != string.Empty)
oEmpTraining.Fees = Convert.ToDouble(oDr["Training Fees"]);
else
oEmpTraining.Fees = 0.0;
if (oDr["Other Cost"].ToString().Trim() != string.Empty)
oEmpTraining.OtherCost = Convert.ToDouble(oDr["Other Cost"]);
else
oEmpTraining.OtherCost = 0.0;
DateTime dTempFdate;
if (DateTime.TryParse(oDr["Training From Date"].ToString(), out dTempFdate))
oEmpTraining.FromDate = dTempFdate;//Convert.ToDateTime(oDr["From Date"]);
else
oEmpTraining.FromDate = DateTime.MinValue;
DateTime oTEmpDate;
if (DateTime.TryParse(oDr["Training To Date"].ToString(), out oTEmpDate))
oEmpTraining.ToDate = oTEmpDate;
else
oEmpTraining.ToDate = DateTime.MinValue;
_HREmployee.Trainings.Add(oEmpTraining);
#endregion
#region EmpAcademic
oEmpAcademic = new EmpAcademic();
EducationType oEDType = _EducationTypes.Find(delegate(EducationType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Education Type"].ToString().ToUpper().Trim(); });
if (oEDType != null)
oEmpAcademic.EducationTypeID = oEDType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Education Type", nRow, "Education Type is not valid for employee " + oDTable.TableName + " Information."));
EducationLevel oEducLevel = _EducationLevels.Find(delegate(EducationLevel oItem) { return oItem.Description.ToUpper().Trim() == oDr["Degree Title"].ToString().ToUpper().Trim(); });
if (oEducLevel != null)
oEmpAcademic.EducationLevelID = oEducLevel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Degree Title", nRow, "Degree Title is not valid for employee " + oDTable.TableName + " Information."));
Discipline oDis = _Disciplines.Find(delegate(Discipline oItem) { return oItem.Description.ToUpper().Trim() == oDr["Discipline/ Department"].ToString().ToUpper().Trim(); });
if (oDis != null)
oEmpAcademic.DisciplineID = oDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Discipline/ Department", nRow, "Discipline/ Department is not valid for employee " + oDTable.TableName + " Information."));
Institution oInsti = _Institutions.Find(delegate(Institution oItem) { return oItem.Name.ToUpper().Trim() == oDr["Institution (Board/University)"].ToString().ToUpper().Trim(); });
if (oInsti != null)
oEmpAcademic.InstitutionID = oInsti.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Institution (Board/University)", nRow, "Institution (Board/University) is not valid for employee " + oDTable.TableName + " Information."));
oEmpAcademic.InstituteName = oDr["Institution Name"].ToString();
DateTime dExamdate = Convert.ToDateTime(oDr["Exam Held on"]);
oEmpAcademic.ExamDate = dExamdate.Year;
DateTime dPassingYear = Convert.ToDateTime(oDr["Passing Year"]);
oEmpAcademic.PassingYear = dPassingYear.Year;
ResultType oRType = _ResultTypes.Find(delegate(ResultType oItem) { return oItem.Description.ToUpper().Trim() == oDr["EduResult"].ToString().ToUpper().Trim(); });
if (oRType != null)
oEmpAcademic.ResultTypeID = oRType.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("EduResult", nRow, "Result is not valid for employee " + oDTable.TableName + " Information."));
if (oDr["CGPA/ Marks"].ToString() != string.Empty || oDr["CGPA/ Marks"].ToString().Length > 0)
oEmpAcademic.GPAOrMarks = Convert.ToDouble(oDr["CGPA/ Marks"]);
oEmpAcademic.LastLevel = (oDr["Highest Education"].ToString().ToUpper().Trim() == "Yes".ToUpper().Trim()) ? true : false;
_HREmployee.Academics.Add(oEmpAcademic);
#endregion
#region EmpReference
EmpReference oEmpReference = null;
if (oDr["Referee's Name"].ToString().Trim() != string.Empty)
{
oEmpReference = new EmpReference();
oEmpReference.Name = oDr["Referee's Name"].ToString();
Occupation oCcupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Referee's Occupation"].ToString().ToUpper().Trim(); });
if (oCcupation != null)
{
oEmpReference.OccupationID = oCcupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Referee's Occupation", nRow, "Referee's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpReference.RelationID = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Referee's Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpReference.Address = oDr["Referee's Address"].ToString();
oEmpReference.EmailAddress = oDr["Referee's E-mail Address"].ToString() != string.Empty ? oDr["Referee's E-mail Address"].ToString() : "";
oEmpReference.Telephone = oDr["Referee's Telephone No(s)"].ToString() != string.Empty ? oDr["Referee's Telephone No(s)"].ToString() : "";
oEmpReference.ReferenceMobile = oDr["Referee's Mobile No(s)"].ToString() != string.Empty ? oDr["Referee's Mobile No(s)"].ToString() : "";
_HREmployee.References.Add(oEmpReference);
}
#endregion
#region EmpPublication
EmpPublication oEmpPublication = null;
if (oDr["Publication Title"].ToString().Trim() != string.Empty)
{
oEmpPublication = new EmpPublication();
oEmpPublication.Title = oDr["Publication Title"].ToString();
oEmpPublication.PublicationType = oDr["Publication Type"].ToString();
oEmpPublication.PublishersName = oDr["Publication Name"].ToString() != string.Empty ? oDr["Publication Name"].ToString() : "";
oEmpPublication.Description = oDr["Publication Description"].ToString() != string.Empty ? oDr["Publication Description"].ToString() : "";
oEmpPublication.Remarks = oDr["Publication Remarks"].ToString() != string.Empty ? oDr["Publication Remarks"].ToString() : "";
DateTime dTempDate;
if (DateTime.TryParse(oDr["Date of Publication"].ToString(), out dTempDate))
oEmpPublication.PublicationDate = dTempDate;//Convert.ToDateTime(oDr["Date of Publication"].ToString());
else
oEmpPublication.PublicationDate = DateTime.MinValue;
_HREmployee.Publications.Add(oEmpPublication);
}
#endregion
#region EmpNomonee
EmpNominee oEmpNominee = null;
if (oDr["Nomination Purpose"].ToString().Trim() != string.Empty)
{
oEmpNominee = new EmpNominee();
NominationPurpose oNominationPurpose = _NominationPurposes.Find(delegate(NominationPurpose oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nomination Purpose"].ToString().ToUpper().Trim(); });
if (oNominationPurpose != null)
{
oEmpNominee.NominationPurposeID = oNominationPurpose.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nomination Purpose", nRow, "Nomination Purpose is not valid for employee " + oDTable.TableName + " Information."));
}
DateTime dTemDate;
if (DateTime.TryParse(Convert.ToString(oDr["Date Of Nomination"]), out dTemDate))
oEmpNominee.NominationDate = dTemDate;
else
oEmpNominee.NominationDate = DateTime.MinValue;
oEmpNominee.Name = oDr["Nominee's Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nominee's Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpNominee.RelationID = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nominee's Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpNominee.Percentage = Convert.ToDouble(oDr["Nominee's Percentage"].ToString()) > 0 ? Convert.ToDouble(oDr["Nominee's Percentage"].ToString()) : 0.0;
DateTime dtempDate;
if (DateTime.TryParse(Convert.ToString(oDr["Nominee's Date of Birth"]), out dtempDate))
oEmpNominee.BirthDate = dtempDate;//Convert.ToDateTime(oDr["Nominee's Date of Birth"]);
else
oEmpNominee.BirthDate = DateTime.MinValue;
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Nominee's Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpNominee.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Nominee's Occupation", nRow, "Nominee's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpNominee.Address = oDr["Nominee's Address"].ToString();
oEmpNominee.TelePhone = oDr["Nominee's Telephone No(s)"].ToString() != string.Empty ? oDr["Nominee's Telephone No(s)"].ToString() : "";
oEmpNominee.EmailAddress = oDr["Nominee's E-mail Address"].ToString() != string.Empty ? oDr["Nominee's E-mail Address"].ToString() : "";
_HREmployee.Nominees.Add(oEmpNominee);
}
#endregion
#region Hospitalization
EmpHospitalization oEmpHospitalization = null;
if (oDr["Registered Name"].ToString().Trim() != string.Empty)
{
oEmpHospitalization = new EmpHospitalization();
oEmpHospitalization.RegistrationDate = Convert.ToDateTime(oDr["Date Of Registration"].ToString());
oEmpHospitalization.RegisteredPerson = oDr["Registered Name"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Registered Person's Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
{
oEmpHospitalization.RelationId = oRelation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Registered Person's Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
}
DateTime dTEmpDate;
if (DateTime.TryParse(oDr["Registered Person's Date of Birth"].ToString(), out dTEmpDate))
oEmpHospitalization.BirthDate = dTEmpDate;//Convert.ToDateTime(oDr["Registered Person's Date of Birth"]);
else
oEmpHospitalization.BirthDate = DateTime.MinValue;
Occupation oOCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Registered Person's Occupation"].ToString().ToUpper().Trim(); });
if (oOCCupation != null)
{
oEmpHospitalization.OccupationID = oOCCupation.ID;
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Registered Person's Occupation", nRow, "Registered Person's Occupation is not valid for employee " + oDTable.TableName + " Information."));
}
oEmpHospitalization.Email = oDr["Registered Person's Email"].ToString() != string.Empty ? oDr["Registered Person's Email"].ToString() : "";
oEmpHospitalization.Address = oDr["Registered Person's Address"].ToString();
oEmpHospitalization.Telephone = oDr["Registered Person's Telephone No(s)"].ToString() != string.Empty ? oDr["Registered Person's Telephone No(s)"].ToString() : "";
oEmpHospitalization.Mobile = oDr["Registered Person's Mobile No (s)"].ToString() != string.Empty ? oDr["Registered Person's Mobile No (s)"].ToString() : "";
_HREmployee.Hospitalizations.Add(oEmpHospitalization);
}
#endregion
#region EmpLanguage
EmpLanguage oEmpLanguage = null;
if (oDr["LanguageName"].ToString().Trim() != string.Empty)
{
oEmpLanguage = new EmpLanguage();
oEmpLanguage.LanguageName = oDr["LanguageName"].ToString();
if (oDr["SpokenStatus"].ToString().ToUpper().Trim() == "Basic".ToUpper().Trim())
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Basic;
}
else if (oDr["SpokenStatus"].ToString().ToUpper().Trim() == "Intermideate".ToUpper().Trim())
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Intermideate;
}
else
{
oEmpLanguage.SpokenStatus = EnumLanguageEfficiency.Advanced;
}
if (oDr["WrittenStatus"].ToString().ToUpper().Trim() == "Basic".ToUpper().Trim())
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Basic;
}
else if (oDr["WrittenStatus"].ToString().ToUpper().Trim() == "Intermideate".ToUpper().Trim())
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Intermideate;
}
else
{
oEmpLanguage.WrittenStatus = EnumLanguageEfficiency.Advanced;
}
_HREmployee.EmpLanguages.Add(oEmpLanguage);
}
#endregion
#region EmpRelative
EmpRelative oEmpRelative = null;
if (oDr["Relative Name"].ToString().Trim() != string.Empty)
{
oEmpRelative = new EmpRelative();
oEmpRelative.Name = oDr["Relative Name"].ToString();
oEmpRelative.Designation = oDr["Relative Designation"].ToString();
oEmpRelative.EmpNo = oDr["EmployeeID"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["Relative's Relation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
oEmpRelative.RelationID = oRelation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Relative's Relation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
DateTime dTempJDate;
if (DateTime.TryParse(oDr["Relative's JoiningDate"].ToString(), out dTempJDate))
oEmpRelative.JoiningDate = dTempJDate;//Convert.ToDateTime(oDr["JoiningDate"]);
else
oEmpRelative.JoiningDate = DateTime.MinValue;
DateTime dTempDate;
if (DateTime.TryParse(oDr["Relative's EndDate"].ToString(), out dTempDate))
oEmpRelative.EndDate = dTempDate;//Convert.ToDateTime(oDr["EndDate"]);
else
oEmpRelative.EndDate = DateTime.MinValue;
_HREmployee.EmpRelatives.Add(oEmpRelative);
}
#endregion
#region EmpRelation
EmpRelation oEmpRelation = null;
if (oDr["IRName"].ToString().Trim() != string.Empty)
{
oEmpRelation = new EmpRelation();
oEmpRelation.Name = oDr["IRName"].ToString();
Relation oRelation = _Relations.Find(delegate(Relation oItem) { return oItem.Description.ToUpper().Trim() == oDr["IRRelation"].ToString().ToUpper().Trim(); });
if (oRelation != null)
oEmpRelation.RelationID = oRelation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("IRRelation", nRow, "Relation is not valid for employee " + oDTable.TableName + " Information."));
Occupation oCCupation = _Occupations.Find(delegate(Occupation oItem) { return oItem.Description.ToUpper().Trim() == oDr["IROccupation"].ToString().ToUpper().Trim(); });
if (oCCupation != null)
oEmpRelation.OccupationID = oCCupation.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("IROccupation", nRow, "Occupation is not valid for employee " + oDTable.TableName + " Information."));
_HREmployee.EmpRelations.Add(oEmpRelation);
}
#endregion
#region EmpMembership
EmpMembership oEmpMembership = null;
if (oDr["Membership Organization"].ToString().Trim() != string.Empty)
{
oEmpMembership = new EmpMembership();
oEmpMembership.Organization = oDr["Membership Organization"].ToString();
oEmpMembership.Activity = oDr["YourRole"].ToString();
switch (oDr["OrganizationType"].ToString().Trim())
{
case "Academic":
oEmpMembership.OrganizationType = EnumOrganizationType.Academic;
break;
case "Charitable":
oEmpMembership.OrganizationType = EnumOrganizationType.Charitable;
break;
case "Professional":
oEmpMembership.OrganizationType = EnumOrganizationType.Professional;
break;
case "Social":
oEmpMembership.OrganizationType = EnumOrganizationType.Social;
break;
default:
break;
}
DateTime dDateF;
if (DateTime.TryParse(oDr["Membership FromDate"].ToString(), out dDateF))
oEmpMembership.FromDate = dDateF;
else
oEmpMembership.FromDate = DateTime.MinValue;
DateTime dDateP;
if (DateTime.TryParse(oDr["Membership EndDate"].ToString(), out dDateP))
oEmpMembership.EndDate = dDateP;//Convert.ToDateTime(oDr["EndDate"]);
else
oEmpMembership.EndDate = DateTime.MinValue;
_HREmployee.EmpMemberships.Add(oEmpMembership);
}
#endregion
#region EmpCuestion
EmpHRQuestionAnswer oEmpHRQuestionAnswer = null;
if (oDr["QuestionNo"].ToString().Trim() != string.Empty)
{
oEmpHRQuestionAnswer = new EmpHRQuestionAnswer();
HRJoiningQuestionary oHRJQuestion = _HRJoiningQuestionaries.Find(delegate(HRJoiningQuestionary oItem) { return oItem.Description.ToUpper().Trim() == oDr["Question"].ToString().ToUpper().Trim(); });
if (oHRJQuestion != null)
{
oEmpHRQuestionAnswer.QuestionNo = oDr["QuestionNo"].ToString();
oEmpHRQuestionAnswer.QuestionaryID = oHRJQuestion.ID;
oEmpHRQuestionAnswer.QAnswer = oDr["QAnswer"].ToString();
oEmpHRQuestionAnswer.QuestionDes = oDr["Question"].ToString();
}
else
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Question", nRow, "Question is not valid for employee " + oDTable.TableName + " Information."));
}
_HREmployee.EmpHRQuestionAnswers.Add(oEmpHRQuestionAnswer);
}
#endregion
_HREmployees.Add(_HREmployee);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _HREmployees;
}
#endregion
#region Import CV Data
public CV ImportCVMainData(DataTable oDTable)
{
int nRow = 0;
try
{
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["TrackNo"].ToString().Trim() != string.Empty)
{
nRow = nRow + 1;
_CV.TrackNo = oDr["Name"].ToString();
_CV.TotalYearOfExperience = Convert.ToDouble(oDr["TotalYearOfExperience"]);
_CV.SpecialSkill = oDr["SpecialSkill"].ToString();
_CV.NationalId = oDr["NationalId"].ToString();
_CV.Name = oDr["Name"].ToString();
_CV.MotherName = oDr["MotherName"].ToString();
_CV.MobileNo = oDr["MobileNo"].ToString();
_CV.FatherName = oDr["FatherName"].ToString();
_CV.ExpectedMinimumSalary = Convert.ToDouble(oDr["ExpectedMinimumSalary"]);
_CV.LandPhoneNo = oDr["LandPhoneNo"].ToString();
_CV.EmailAddress = oDr["EmailAddress"].ToString();
_CV.IsFresher = oDr["IsFresher"].ToString().ToUpper().Trim() == "Yes".ToString().ToUpper().Trim() ? true : false;
_CV.ContactAddress = oDr["ContactAddress"].ToString();
DateTime dAppDate;
if (DateTime.TryParse(oDr["ApplicationDate"].ToString(), out dAppDate))
_CV.ApplicationDate = dAppDate;//Convert.ToDateTime(oDr["Employed From Date"].ToString());
else
_CV.ApplicationDate = DateTime.MinValue;
Designation oDesig = _Designations.Find(delegate(Designation oItem) { return oItem.Name.ToUpper().Trim() == oDr["Designation"].ToString().ToUpper().Trim(); });
if (oDesig != null)
_CV.Designation = oDesig.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Designation", nRow, "Designation is not valid for employee " + oDTable.TableName + " Information."));
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _CV;
}
public ObjectsTemplate<Experience> ImportCVExperienceData(DataTable oDTable)
{
int nRow = 0;
try
{
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["ContactNo"].ToString().Trim() != string.Empty)
{
Experience oExperience = new Experience();
nRow = nRow + 1;
oExperience.ContactNo = oDr["ContactNo"].ToString();
oExperience.ContactPerson = oDr["ContactPerson"].ToString();
oExperience.Employer = oDr["Employer"].ToString();
oExperience.RoleDefination = oDr["RoleDefination"].ToString();
DateTime dFDate;
if (DateTime.TryParse(oDr["FromDate"].ToString(), out dFDate))
oExperience.FromDate = dFDate;
else
oExperience.FromDate = DateTime.MinValue;
DateTime dTDate;
if (DateTime.TryParse(oDr["ToDate"].ToString(), out dTDate))
oExperience.ToDate = dTDate;
else
oExperience.ToDate = DateTime.MinValue;
//oExperience.RoleDefination = oDr["RoleDefination"].ToString();
_CV.AllExperiences.Add(oExperience);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _CV.AllExperiences;
}
public ObjectsTemplate<ReferredBy> ImportCVReferredByData(DataTable oDTable)
{
int nRow = 0;
try
{
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Name"].ToString().Trim() != string.Empty)
{
ReferredBy oReferredBy = new ReferredBy();
nRow = nRow + 1;
oReferredBy.Name = oDr["Name"].ToString();
oReferredBy.OtherDetail = oDr["OtherDetail"].ToString();
if (oDr["ReferredBy"].ToString() == "CompanyEmployee")
{
oReferredBy.ReferredBY = EnumReferredBy.CompanyEmployee;
}
else
{
oReferredBy.ReferredBY = EnumReferredBy.Other;
}
oReferredBy.EmployeeNo = oDr["EmployeeNo"].ToString();
_CV.AllReferences.Add(oReferredBy);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _CV.AllReferences;
}
public ObjectsTemplate<EductionalQualification> ImportCVEductionalQualificationData(DataTable oDTable)
{
int nRow = 0;
try
{
if (_errorOrSuccessList == null)
_errorOrSuccessList = new List<UploadErrorOrSuccess>();
foreach (DataRow oDr in oDTable.Rows)
{
if (oDr["Board"].ToString().Trim() != string.Empty)
{
EductionalQualification oEductionalQualification = new EductionalQualification();
nRow = nRow + 1;
Institution oBoard = _Institutions.Find(delegate(Institution oItem) { return oItem.Name.ToUpper() == oDr["Board"].ToString().ToUpper(); });
if (oBoard != null)
oEductionalQualification.BoardId = oBoard.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Board", nRow, "Board is not valid for employee " + oDTable.TableName + " Information."));
oEductionalQualification.InstituteName = oDr["InstituteName"].ToString();
oEductionalQualification.IsHighestEducation = oDr["IsHighestEducation"].ToString().ToUpper().Trim() == "Yes".ToString().ToUpper().Trim() ? true : false;
oEductionalQualification.Name = oDr["InstituteName"].ToString();
ResultType oResult = _ResultTypes.Find(delegate(ResultType oItem) { return oItem.Description.ToUpper().Trim() == oDr["Result"].ToString().ToUpper().Trim(); });
if (oResult != null)
oEductionalQualification.ResultID = oResult.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Result", nRow, "Result is not valid for employee " + oDTable.TableName + " Information."));
EducationLevel oEducLevel = _EducationLevels.Find(delegate(EducationLevel oItem) { return oItem.Description.ToUpper().Trim() == oDr["DegreeTitle"].ToString().ToUpper().Trim(); });
if (oEducLevel != null)
oEductionalQualification.DegreeTitleId = oEducLevel.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Degree Title", nRow, "Degree Title is not valid for employee " + oDTable.TableName + " Information."));
Discipline oDis = _Disciplines.Find(delegate(Discipline oItem) { return oItem.Description.ToUpper().Trim() == oDr["Discipline"].ToString().ToUpper().Trim(); });
if (oDis != null)
oEductionalQualification.DisciplineId = oDis.ID;
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Discipline/ Department", nRow, "Discipline/ Department is not valid for employee " + oDTable.TableName + " Information."));
//int dPassingYear = Convert.ToInt32(oDr["PassingYear"]);
oEductionalQualification.PassingYear = Convert.ToInt32(oDr["PassingYear"]);
oEductionalQualification.CgpaOrMarks = Convert.ToDouble(oDr["CgpaOrMarks"].ToString());
oEductionalQualification.CgpaOrMarksOutOf = Convert.ToDouble(oDr["CgpaOrMarksOutOf"].ToString());
_CV.AllEduQualifications.Add(oEductionalQualification);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occured on row:" + nRow + " Reason:" + ex.Message);
}
return _CV.AllEduQualifications;
}
#endregion
#region Save Methods
#region Save Employee Basic Information
public void SaveEmpBasicInformation()
{
try
{
_basicwithEmployee.Save();
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
public void SaveEmpBasicInformation2()
{
try
{
foreach (Employee item in _employees)
{
item.PayrollTypeID = SystemInformation.CurrentSysInfo.PayrollTypeID;
}
RegularDataUpload.Save(_categorys, _grades, _departments, _locations, _religions,
_designations, _banks, _branches, _employees, _accessCards);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#region Save Employee Email Address
public void SaveShortInfo()
{
try
{
new Employee().SaveShortInfo(_TempEmployees);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#endregion
#region Save Employee Individual Allowance
public void SaveEmpIndividualAllowance()
{
try
{
foreach (ADParameterEmployee item in oadparamemployees)
{
item.Save();
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Employee Individual Allowance
public void SaveChildEduAllowance()
{
try
{
new ChildrenEducation().Save(ChildrenEducations, oAdparameterEmployees);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save WPPFClaim
public void SaveWPPFClaim(DataTable dt)
{
try
{
new SalaryMonthly().WPPFClaimSave(dt);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save WPPF
public void SaveWPPF(DataTable dt)
{
try
{
new SalaryMonthly().WPPFSave(dt);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save WWF
public void SaveWWF(DataTable dt)
{
try
{
new SalaryMonthly().WWFSave(dt);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save UnAuthorized Leave
public void SaveUnAuthorizedLeave()
{
try
{
EmployeeUnAuthorizeLeave.Save(_empUnAuthoLeaves);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Employee OverTime Data
public void SaveEmployeeOverTime()
{
try
{
EmployeeOverTime.Save(_EmployeeOverTimes);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Employee Individual Deduction
public void SaveEmpIndividualDeduction()
{
try
{
foreach (ADParameterEmployee item in oadparamemployees)
{
item.Save();
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Employee Grade Salary Assignment
public void SaveEmpGradeSalaryAssignment()
{
try
{
ObjectsTemplate<HREmployee> hrEmps = HREmployee.Get();
ObjectsTemplate<EmpLifeCycle> ocyclies = new ObjectsTemplate<EmpLifeCycle>();
foreach (EmployeeGradeSalary oGradeSalary in oempgradesalarys)
{
ID nID = oGradeSalary.EmpLifeCycle.StatusDetailID;
EnumEmployeeStatus eStatus = oGradeSalary.EmpLifeCycle.Status;
string sDescription = oGradeSalary.EmpLifeCycle.Description;
oGradeSalary.EmpLifeCycle.EmployeeGradeSalary = oGradeSalary;
oGradeSalary.EmpLifeCycle.HREmployee = hrEmps.Find(delegate(HREmployee emp) { return emp.ID.Integer == oGradeSalary.EmployeeID.Integer; });
oGradeSalary.EmpLifeCycle.HREmployee.GrossSalary = oGradeSalary.GrossSalary;
oGradeSalary.EmpLifeCycle.HREmployee.BasicSalary = oGradeSalary.BasicSalary;
oGradeSalary.EmpLifeCycle.HREmployee.GradeID = oGradeSalary.GradeID;
ocyclies.Add(oGradeSalary.EmpLifeCycle);
}
EmpLifeCycle lifeCycle = new EmpLifeCycle();
lifeCycle.Save(ocyclies);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Employee Bank Account
public void SaveEmpBankAccount()
{
try
{
foreach (EmployeeBankAccount oBankAccount in oempbankaccounts)
{
oBankAccount.Save();
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Employee CC Data
public void SaveEmpCCData()
{
try
{
EmployeeCostCenter oEmpCC = new EmployeeCostCenter();
oEmpCC.Save(oempCostCenters);
//foreach (EmployeeCostCenter oEmpCC in oempCostCenters)
//{
// oEmpCC.Save();
//}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save SavePFOpeningData
public void SavePFOpeningData()
{
try
{
new PFTransaction().SaveAll(_PFTransactions);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Employee Vendor Code
public void SaveEmpVendorCode()
{
try
{
foreach (Employee oEmp in _TempEmployees)
{
oEmp.SaveBasicInfo(oEmp);
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Loan Information
public void SaveLoanInformation()
{
try
{
foreach (LoanIssue loanissue in loanissues)
{
loanissue.Save();
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion]
#region Save Bonus Data
public void SaveBonusInformation()
{
try
{
_BonusProcess.BulkSave();
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Organogram Position
public void SaveOrganPosition()
{
try
{
OrganogramEmployee.SaveEmp(_organEmps);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
public void SaveLoanInformationSetup()
{
try
{
foreach (LoanSchedule loansch in loanschs)
{
loansch.Save();
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#region SalaryComponentData
public void SaveSalaryComponent()
{
try
{
SalaryMonthly ob = new SalaryMonthly();
ob.UpdateSalaryDetail(_salaryDetails, _incomeTaxes);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save For Basic Upload
public static void Save(ObjectsTemplate<Category> categorys, ObjectsTemplate<Grade> grades, ObjectsTemplate<Department> departments, ObjectsTemplate<Location> locations,
ObjectsTemplate<Religion> religions, ObjectsTemplate<Designation> designations, ObjectsTemplate<Bank> banks, ObjectsTemplate<Branch> branches, ObjectsTemplate<Employee> employees, ObjectsTemplate<AccessCard> accessCards)
{
RegularDataUpload.Service.Save(categorys, grades, departments, locations, religions, designations, banks, branches, employees, accessCards);
}
#endregion
#region Save Employee Tax Data
public void SaveEmpTaxData(ObjectsTemplate<IncomeTax> oIncomeTaxs, EnumIncomeTaxDataFrom ITDType)
{
try
{
IncomeTax.Save(oIncomeTaxs, ITDType);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Tax Investment Data
public void SaveITInvestmentData(ObjectsTemplate<EmployeeTaxInvestment> oEmpTaxInvestments)
{
try
{
foreach (EmployeeTaxInvestment oItem in oEmpTaxInvestments)
{
oItem.Save();
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save Tax Challan Data
public void SaveITChallanData(ObjectsTemplate<TaxChallan> oTaxChallans)
{
try
{
foreach (TaxChallan oItem in oTaxChallans)
{
oItem.Save();
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save All HR Employee Data
public void SaveAllHREmpData(ObjectsTemplate<HREmployee> oEmployees)
{
try
{
foreach (HREmployee oItem in oEmployees)
{
oItem.Save(null);
}
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
public void SaveHREmpContactData(ObjectsTemplate<EmpContact> oEmpContacts)
{
try
{
HREmployee.SaveMultipleEmployeeContacts(oEmpContacts);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region Save All OPI Param Individual
private void SaveAllOPIParamIndividual()
{
//OpiParameterIndividual.
try
{
OpiParameterIndividual.BulkSave(_oPIParameterIndividual);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
private void SaveAllCarFuelParamIndividual()
{
//OpiParameterIndividual.
try
{
CarFuelParameterIndividual.BulkSave(_CarFuelParameterIndividual);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#region OPI Data
public void SaveOPIData()
{
try
{
OPIProcess ob = new OPIProcess();
ob.UpdateOPIDetail(_oPIProcessDetailItem);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
#endregion
#region Basic Data Upload
public void RefreshObject()
{
_departments = Department.Get();
int maxID = 0;
if (_departments.Count > 0)
{
maxID = (from detail in _departments
select detail.ID.Integer).Max();
_departmentid = maxID;
}
_categorys = Category.Get(EnumStatus.Regardless);
if (_categorys.Count > 0)
{
maxID = (from detail in _categorys
select detail.ID.Integer).Max();
_categoryID = maxID;
}
_grades = Grade.GetRegardlessPayrollType(EnumStatus.Regardless);
if (_grades.Count > 0)
{
maxID = (from detail in _grades
select detail.ID.Integer).Max();
_gradeid = maxID;
}
// _grades = new ObjectsTemplate<Grade>();
_locations = Location.Get();
if (_locations.Count > 0)
{
maxID = (from detail in _locations
select detail.ID.Integer).Max();
_locationid = maxID;
}
_religions = Religion.Get(EnumStatus.Regardless);
if (_religions.Count > 0)
{
maxID = (from detail in _religions
select detail.ID.Integer).Max();
_religionID = maxID;
}
_designations = Designation.Get(EnumStatus.Regardless);
if (_designations.Count > 0)
{
maxID = (from detail in _designations
select detail.ID.Integer).Max();
_designationid = maxID;
}
_banks = Bank.Get(EnumStatus.Regardless);
if (_banks.Count > 0)
{
maxID = (from detail in _banks
select detail.ID.Integer).Max();
_bankid = maxID;
}
_branches = Branch.Get(EnumStatus.Regardless);
if (_branches.Count > 0)
{
maxID = (from detail in _branches
select detail.ID.Integer).Max();
_branchid = maxID;
}
SearchManager omanager = new SearchManager(EnumSearchFrom.Employee);
omanager.Parameter.Remove(EnumSearchParameter.PayrollTypeID);
ObjectsTemplate<SearchEmployee> oemployees = omanager.Find();
if (oemployees.Count > 0)
{
maxID = (from detail in oemployees
select detail.EmployeeID.Integer).Max();
_emloyeeId = maxID;
}
_accessCards = AccessCard.Get();
if (_accessCards.Count > 0)
{
maxID = (from detail in _accessCards
select detail.ID.Integer).Max();
_accessCardID = maxID;
}
_accessCards = new ObjectsTemplate<AccessCard>();
}
public bool ProcessBasicData(DataTable uploadTable)
{
GlobalFunctions.SetProgressbarMaxValue = uploadTable.Rows.Count;
GlobalFunctions.TotalRocordCount = uploadTable.Rows.Count;
UpdateprocessStatus("Checking & Creating Basic Data");
UpdateProgressStatus(EnumProcessStatus.Start);
bool CodeautoGenerate = false;
RefreshObject();
ConfigurationManager ocManager = new ConfigurationManager();
ObjectsTemplate<Configaration> deptConfig = ocManager.GetChilds("department", EnumConfigurationType.Logic);
ObjectsTemplate<Configaration> deptTiers = ocManager.GetChilds(deptConfig, "tiernames");
ObjectsTemplate<Configaration> locConfig = ocManager.GetChilds("location", EnumConfigurationType.Logic);
ObjectsTemplate<Configaration> locTiers = ocManager.GetChilds(locConfig, "tiernames");
Employee oemployee = new Employee();
int nRow = 0;
int nIndex = 0;
int count = 0;
foreach (DataRow row in uploadTable.Rows)
{
UpdateProgressStatus(EnumProcessStatus.PerformStep);
Application.DoEvents();
_emloyeeId = _emloyeeId + 1;
count++;
oemployee = new Employee();
oemployee.EmployeeNo = row["Employee Code"].ToString();
oemployee.SetObjectID(_emloyeeId + 1);
object[] obj = row.ItemArray;
nRow = nRow + 1;
//uploadStatus.Text = string.Format("Processing Basic Data... {0}/{1}", index, uploadTable.Rows.Count);
//uploadStatus.Refresh();
/// <summary>
/// Process category whether it is already in the system or new category
/// </summary>
#region Category upload
Category oCategory = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("category", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
oCategory = _categorys.Find(delegate(Category item) { return item.Code == row["Category Code"].ToString(); });
else
oCategory = _categorys.Find(delegate(Category item) { return item.Name == row["Category Name"].ToString(); });
if (oCategory == null)
{
oCategory = new Category();
oCategory.Name = row["Category Name"].ToString();
oCategory.Status = EnumStatus.Active;
if (CodeautoGenerate == false)
oCategory.Code = row["Category Code"].ToString();
_categoryID = _categoryID + 1;
oemployee.CategoryID = ID.FromInteger(_categoryID);
oCategory.SetObjectID(_categoryID);
_categorys.Add(oCategory);
}
else
{
oemployee.CategoryID = oCategory.ID;
}
#endregion Category upload
/// <summary>
/// Process grade whether it is already in the system or new grade
/// </summary>
///
#region Grade upload
Grade ograde = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("grade", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
ograde = _grades.Find(delegate(Grade item) { return item.Code == row["Grade Code"].ToString(); });
else
ograde = _grades.Find(delegate(Grade item) { return item.Name == row["Grade Name"].ToString(); });
if (ograde == null)
{
ograde = new Grade();
ograde.Status = EnumStatus.Active;
ograde.GradeSegmentID = ID.FromInteger(1);
ograde.HasPayscale = ConfigurationManager.GetBoolValue("grade", "payscaleapplicable ", EnumConfigurationType.Logic);
ograde.HasGrossConcept = ConfigurationManager.GetBoolValue("grade", "grossapplicable", EnumConfigurationType.Logic);
ograde.Name = row["Grade Name"].ToString().Trim();
if (CodeautoGenerate == false)
ograde.Code = row["Grade Code"].ToString().Trim();
_gradeid = _gradeid + 1;
oemployee.GradeID = ID.FromInteger(_gradeid);
ograde.SetObjectID(_gradeid);
_grades.Add(ograde);
if (Grade.Get(ograde.Code) != null)
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Grade", nRow, "Grade already exist in other payroll type."));
}
else
{
oemployee.GradeID = ograde.ID;
}
#endregion Grade upload
/// <summary>
/// Process Department whether it is already in the system or new location
/// </summary>
#region Department
int nparentid = 0;
ID tempid = ID.FromInteger(0);
nIndex = 0;
foreach (Configaration oconfig in deptTiers)
{
string sValue = oconfig.ConAttributes.GetAttributeValue("tier");
if (sValue == "") continue;
nIndex = nIndex + 1;
if (row[oconfig.Value + " Name"].ToString() == "") continue;
Department odepartment = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("department", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
{
if (nIndex > 1)
odepartment = _departments.Find(delegate(Department item) { return item.Code == row[oconfig.Value + " Code"].ToString().Trim() && item.Tier == nIndex && item.ParentID.Integer == nparentid; });
else
odepartment = _departments.Find(delegate(Department item) { return item.Code == row[oconfig.Value + " Code"].ToString().Trim() && item.Tier == nIndex; });
}
else
{
if (nIndex > 1)
odepartment = _departments.Find(delegate(Department item) { return item.Name == row[oconfig.Value + " Name"].ToString().Trim() && item.Tier == nIndex && item.ParentID.Integer == nparentid; });
else
odepartment = _departments.Find(delegate(Department item) { return item.Name == row[oconfig.Value + " Name"].ToString().Trim() && item.Tier == nIndex; });
}
if (odepartment == null)
{
odepartment = new Department();
odepartment.Name = row[oconfig.Value + " Name"].ToString().Trim();
odepartment.Tier = nIndex;
odepartment.Status = EnumStatus.Active;
if (CodeautoGenerate == false)
{
odepartment.Code = row[oconfig.Value + " Code"].ToString().Trim();
if (odepartment.Code == "")
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(oconfig.Value + " Code", nRow, oconfig.Value + " Code can't be empty"));
}
if (nIndex > 1) odepartment.ParentID = ID.FromInteger(nparentid);
_departmentid = _departmentid + 1;
nparentid = _departmentid;
oemployee.DepartmentID = ID.FromInteger(_departmentid);
odepartment.SetObjectID(_departmentid);
_departments.Add(odepartment);
}
else
{
nparentid = odepartment.ID.Integer;
oemployee.DepartmentID = odepartment.ID;
}
//if (nIndex > 1) odepartment.ParentID = ID.FromInteger(nparentid);
//nparentid = odepartment.ID.Integer;
}
#endregion
/// <summary>
/// Process location whether it is already in the system or new location
/// </summary>
#region Location
nparentid = 0;
nIndex = 0;
foreach (Configaration oconfig in locConfig)
{
string sValue = oconfig.ConAttributes.GetAttributeValue("tier");
if (sValue == "") continue;
nIndex = nIndex + 1;
if (row[oconfig.Value + " Name"].ToString() == "") continue;
Location olocation = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("location", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
{
if (nIndex > 1)
{
olocation = _locations.Find(delegate(Location item) { return item.Code == row[oconfig.Value + " Code"].ToString().Trim() && item.Tier == nIndex && item.ParentID.Integer == nparentid; });
}
else
{
olocation = _locations.Find(delegate(Location item) { return item.Code == row[oconfig.Value + " Code"].ToString().Trim() && item.Tier == nIndex; });
}
}
else
{
if (nIndex > 1)
{
olocation = _locations.Find(delegate(Location item) { return item.Name == row[oconfig.Value + " Name"].ToString().Trim() && item.Tier == nIndex && item.ParentID.Integer == nparentid; });
}
else
{
olocation = _locations.Find(delegate(Location item) { return item.Name == row[oconfig.Value + " Name"].ToString().Trim() && item.Tier == nIndex; });
}
}
if (olocation == null)
{
olocation = new Location();
olocation.Name = row[oconfig.Value + " Name"].ToString().Trim();
olocation.Tier = nIndex;
olocation.Status = EnumStatus.Active;
if (olocation.Name == "")
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(oconfig.Value + " Name", nRow, oconfig.Value + " Name can't be empty"));
if (CodeautoGenerate == false)
{
olocation.Code = row[oconfig.Value + " Code"].ToString().Trim();
if (olocation.Code == "")
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(oconfig.Value + " Code", nRow, oconfig.Value + " Code can't be empty"));
}
if (nIndex > 1) olocation.ParentID = ID.FromInteger(nparentid);
_locationid = _locationid + 1;
nparentid = _locationid;
oemployee.LocationID = ID.FromInteger(_locationid);
olocation.SetObjectID(_locationid);
_locations.Add(olocation);
}
else
{
nparentid = olocation.ID.Integer;
oemployee.LocationID = olocation.ID;
}
}
#endregion
/// <summary>
/// Process religion whether it is already in the system or new religion
/// </summary>
#region Religion upload
Religion oreligion = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("religion", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
oreligion = _religions.Find(delegate(Religion item) { return item.Code == row["Religion Code"].ToString().Trim(); });
else
oreligion = _religions.Find(delegate(Religion item) { return item.Name == row["Religion Name"].ToString().Trim(); });
if (oreligion == null)
{
oreligion = new Religion();
oreligion.Name = row["Religion Name"].ToString().Trim();
if (CodeautoGenerate == false)
{
oreligion.Code = row["Religion Name"].ToString().Trim();
}
_religionID = _religionID + 1;
oemployee.ReligionID = ID.FromInteger(_religionID);
oreligion.SetObjectID(_religionID);
_religions.Add(oreligion);
}
else
{
oemployee.ReligionID = oreligion.ID;
}
#endregion Religion upload
/// <summary>
/// Process designation whether it is already in the system or new designation
/// </summary>
#region Designation upload
Designation odesignation = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("designation", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
odesignation = _designations.Find(delegate(Designation item) { return item.Code == row["Designation Code"].ToString().Trim(); });
else
odesignation = _designations.Find(delegate(Designation item) { return item.Name == row["Designation Name"].ToString().Trim(); });
if (odesignation == null)
{
odesignation = new Designation();
odesignation.Name = row["Designation Name"].ToString().Trim();
if (CodeautoGenerate == false)
odesignation.Code = row["Designation Code"].ToString().Trim();
_designationid = _designationid + 1;
oemployee.DesignationID = ID.FromInteger(_designationid);
odesignation.SetObjectID(_designationid);
odesignation.Status = EnumStatus.Active;
_designations.Add(odesignation);
}
else
{
oemployee.DesignationID = odesignation.ID;
}
#endregion Designation upload
#region Bank & Branch upload
if (row["Salary Bank Name"].ToString().Trim() != "")
{
Bank obank = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("bank", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
{
obank = _banks.Where(x =>
x.Code.ToUpper().Trim() == row["Salary Bank Code"].ToString().ToUpper().Trim())
.FirstOrDefault();
}
else
{
obank = _banks.Where(x =>
x.Name.ToUpper().Trim() == row["Salary Bank Name"].ToString().ToUpper().Trim())
.FirstOrDefault();
}
if (obank == null)
{
obank = new Bank();
obank.Name = row["Salary Bank Name"].ToString().Trim();
if (CodeautoGenerate == false)
obank.Code = row["Salary Bank Code"].ToString().Trim();
_bankid = _bankid + 1;
obank.SetObjectID(_bankid);
_banks.Add(obank);
}
if (row["Salary Branch Name"].ToString() != "")
{
Branch oBranch = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("branch", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
{
oBranch = _branches.Where(item =>
item.Code.ToUpper().Trim() == row["Salary Branch Code"].ToString().ToUpper().Trim()
&& item.BankID.Integer == obank.ID.Integer)
.FirstOrDefault();
}
else
{
oBranch = _branches.Where(item =>
item.Name.ToUpper().Trim() == row["Salary Branch Name"].ToString().ToUpper().Trim()
&& item.BankID.Integer == obank.ID.Integer)
.FirstOrDefault();
}
if (oBranch == null)
{
oBranch = new Branch();
oBranch.Name = row["Salary Branch Name"].ToString().Trim();
if (CodeautoGenerate == false)
oBranch.Code = row["Salary Branch Code"].ToString().Trim();
_branchid = _branchid + 1;
oBranch.BankID = obank.ID;
oBranch.SetObjectID(_branchid);
oemployee.BranchID = ID.FromInteger(_branchid);
_branches.Add(oBranch);
}
else
{
oemployee.BranchID = oBranch.ID;
}
}
}
bool isOPISeparateAcountApplicable = ConfigurationManager.GetBoolValue("opi", "separateaccount", EnumConfigurationType.Logic);
if (isOPISeparateAcountApplicable)
{
if (row["OPI Bank Name"].ToString() != "")
{
Bank obank = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("bank", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
{
obank = _banks.Where(x =>
x.Code.ToUpper().Trim() == row["OPI Bank Code"].ToString().ToUpper().Trim())
.FirstOrDefault();
}
else
{
obank = _banks.Where(x =>
x.Name.ToUpper().Trim() == row["OPI Bank Name"].ToString().ToUpper().Trim())
.FirstOrDefault();
}
if (obank == null)
{
obank = new Bank();
obank.Name = row["OPI Bank Name"].ToString().Trim();
if (CodeautoGenerate == false)
obank.Code = row["OPI Bank Code"].ToString().Trim();
_bankid = _bankid + 1;
obank.SetObjectID(_bankid);
_banks.Add(obank);
}
if (row["OPI Branch Name"].ToString() != "")
{
Branch oBranch = null;
CodeautoGenerate = ConfigurationManager.GetBoolValue("branch", "codeautogenerate", EnumConfigurationType.Logic);
if (CodeautoGenerate == false)
{
oBranch = _branches.Where(item =>
item.Code.ToUpper().Trim() == row["OPI Branch Code"].ToString().ToUpper().Trim()
&& item.BankID.Integer == obank.ID.Integer)
.FirstOrDefault();
}
else
{
oBranch = _branches.Where(item =>
item.Name.ToUpper().Trim() == row["OPI Branch Name"].ToString().ToUpper().Trim()
&& item.BankID.Integer == obank.ID.Integer)
.FirstOrDefault();
}
if (oBranch == null)
{
oBranch = new Branch();
oBranch.Name = row["OPI Branch Name"].ToString().Trim();
if (CodeautoGenerate == false)
oBranch.Code = row["OPI Branch Code"].ToString().Trim();
_branchid = _branchid + 1;
oBranch.BankID = obank.ID;
oBranch.SetObjectID(_branchid);
oemployee.OutPayBranchID = ID.FromInteger(_branchid);
_branches.Add(oBranch);
}
else
{
oemployee.OutPayBranchID = oBranch.ID;
}
}
}
}
#endregion Bank & Branch upload
_employees.Add(oemployee);
}
UpdateProgressStatus(EnumProcessStatus.End);
return true;
}
private BasicCodeItem ExistingItem(object ItemByCode, object ItemByName)
{
if (ItemByCode != null) return BasicCodeItem.Code;
else return BasicCodeItem.Name;
}
public void Save()
{
try
{
foreach (Employee item in _employees)
{
item.PayrollTypeID = SystemInformation.CurrentSysInfo.PayrollTypeID;
}
RegularDataUpload.Save(_categorys, _grades, _departments, _locations, _religions,
_designations, _banks, _branches, _employees, _accessCards);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#region Save Tax Data
public void SaveTaxData()
{
try
{
IncomeTax.Save(_incomeTaxs, EnumIncomeTaxDataFrom.ProcessTempData);
}
catch (Exception ex)
{
throw new ServiceException(ex.Message);
}
}
#endregion
public void ImportEmpBasicInfoRegularly(DataTable odataTable)
{
Employee oemployee = null;
#region Refresh Objects
if (ProcessBasicData(odataTable) == false) return;
int nRow = 0;
try
{
foreach (DataRow dr in odataTable.Rows)
{
Application.DoEvents();
nRow = nRow + 1;
oemployee = _employees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee Code"].ToString(); });
if (oemployee == null) throw new ServiceException("Employee not found in the collection; employeeNo:" + dr["Employee Code"].ToString());
oemployee.Name = dr["Employee Name"].ToString().Trim();
oemployee.FatherName = dr["Father's Name"].ToString().Trim();
oemployee.BirthDate = Convert.ToDateTime(dr["Date of Birth"]);
oemployee.JoiningDate = Convert.ToDateTime(dr["Date of Joining"]);
//For Novartis Discontinue Employee Upload and Fund Management Data Issue
//oemployee.Status = EnumEmployeeStatus.Discontinued;
oemployee.Gender = (dr["Gender"].ToString().Trim().ToUpper() == "M") ? EnumGender.Male : EnumGender.Female;
oemployee.MaritalStatus = (dr["Marital Status"].ToString().Trim().ToUpper() == "MARRIED") ? EnumMaritalStatus.Married : EnumMaritalStatus.UnMarried;
//oemployee.TaxCircle = dr["Tax Circle"].ToString() != string.Empty ? (EnumTaxCircle)Enum.Parse(typeof(EnumTaxCircle), dr["Tax Circle"].ToString(), true) : EnumTaxCircle.Employee;
oemployee.TaxCircle = dr["Tax Circle"].ToString().Trim();
oemployee.TinNo = dr["TIN"].ToString().Trim();
if (dr["Confirmation Date"].ToString() != "") oemployee.ConfirDate = Convert.ToDateTime(dr["Confirmation Date"]);
if (oemployee.ConfirDate != DateTime.MinValue)
oemployee.IsConfirmed = true;
if (dr["PF Membership"].ToString().ToUpper().Trim() == "Y")
oemployee.PFMemberType = EnumPFMembershipType.Live;
oemployee.ForeignExPat = dr["Is Foreign Expatriate"].ToString() != string.Empty ? (dr["Is Foreign Expatriate"].ToString() == "YES" ? true : false) : false;
//Refresh Employee Grade Salary
if (oemployee.GradeID != null)
{
Grade ograde = _grades.GetItem(oemployee.GradeID);
oemployee.EmployeeGradeSalary.SetObjectID(oemployee.ID.Integer);
oemployee.EmployeeGradeSalary.GradeID = oemployee.GradeID;
oemployee.EmployeeGradeSalary.GradeSalaryTypeID = ID.FromInteger(1);
if (ograde.HasGrossConcept == true) oemployee.EmployeeGradeSalary.GrossSalary = dr["Gross Salary"].ToString() != string.Empty ? Convert.ToDouble(dr["Gross Salary"]) : 0.0;
oemployee.EmployeeGradeSalary.BasicSalary = dr["Basic Salary"].ToString() != string.Empty ? Convert.ToDouble(dr["Basic Salary"]) : 0.0;
oemployee.BasicSalary = oemployee.EmployeeGradeSalary.BasicSalary;
oemployee.GrossSalary = oemployee.EmployeeGradeSalary.GrossSalary;
oemployee.EmployeeGradeSalary.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeGradeSalary.EmployeeID = oemployee.ID;
ObjectsTemplate<EmployeeGradeSalary> itemsToSave = oemployee.EmployeeGradeSalary.process();
oemployee.EmployeeGradeSalarys = new ObjectsTemplate<EmployeeGradeSalary>();
foreach (EmployeeGradeSalary item in itemsToSave)
{
oemployee.EmployeeGradeSalarys.Add(item);
}
}
//Refresh Employee Posting
oemployee.EmployeePosting.EffectDate = oemployee.JoiningDate;
oemployee.EmployeePosting.SetObjectID(oemployee.ID.Integer);
oemployee.EmployeePosting.DepartmentID = oemployee.DepartmentID;
oemployee.EmployeePosting.LocationID = oemployee.LocationID;
oemployee.EmployeePosting.DesignationID = oemployee.DesignationID;
//Refresh Emloyee Bank Account
if (oemployee.BranchID != null)
{
if (dr["Salary Account Number"].ToString() != "")
{
oemployee.AccountNo = dr["Salary Account Number"].ToString();
// oemployee.EmployeeBankAccount.SetObjectID(oemployee.ID.Integer);
oemployee.PaymentMode = EnumPaymentMode.BankTransfer;
oemployee.EmployeeBankAccount.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeBankAccount.BranchID = oemployee.BranchID;
oemployee.EmployeeBankAccount.AccountType = EnumBankAccountType.SalaryAccount;
oemployee.EmployeeBankAccount.AccountNo = dr["Salary Account Number"].ToString();
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Salary Account Number", nRow, "'Salary Account Number' Column not found for the employee No:" + oemployee.EmployeeNo, oemployee.EmployeeNo, oemployee.Name));
}
if (oemployee.OutPayBranchID != null)
{
if (dr["OPI Account Number"].ToString() != "")
{
oemployee.OutPayAccountNo = dr["OPI Account Number"].ToString();
// oemployee.EmployeeOPIBankAccount.SetObjectID(oemployee.ID.Integer);
oemployee.OutPayPaymentMode = EnumPaymentMode.BankTransfer;
oemployee.EmployeeOPIBankAccount.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeOPIBankAccount.BranchID = oemployee.OutPayBranchID;
oemployee.EmployeeOPIBankAccount.AccountType = EnumBankAccountType.OutPayAccount;
oemployee.EmployeeOPIBankAccount.AccountNo = dr["OPI Account Number"].ToString();
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("OPI Account Number", nRow, "'OPI Account Number' Column not found for the employee No:" + oemployee.EmployeeNo, oemployee.EmployeeNo, oemployee.Name));
}
if (dr["PROXID"].ToString() != "")
{
_accessCardID = _accessCardID + 1;
oemployee.CardID = ID.FromInteger(_accessCardID);
AccessCard ocard = new AccessCard();
ocard.SetObjectID(_accessCardID);
ocard.CardNumber = dr["PROXID"].ToString();
ocard.TypeID = ID.FromInteger(1);
ocard.Status = EnumCardStatus.Attached;
ocard.CardOperation.EmployeeID = oemployee.ID;
ocard.CardOperation.CardID = ocard.ID;
ocard.CardOperation.AssignDate = oemployee.JoiningDate;
_accessCards.Add(ocard);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occered on row:" + nRow + " Reason:" + ex.Message);
}
#endregion
}
public void ImportEmpBasicInfo(DataTable odataTable)
{
Employee oemployee = null;
#region Refresh Objects
if (ProcessBasicData(odataTable) == false) return;
int nRow = 0;
try
{
foreach (DataRow dr in odataTable.Rows)
{
Application.DoEvents();
nRow = nRow + 1;
oemployee = _employees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee Code"].ToString(); });
if (oemployee == null) throw new ServiceException("Employee not found in the collection; employeeNo:" + dr["Employee Code"].ToString());
oemployee.Name = dr["Employee Name"].ToString().Trim();
oemployee.FatherName = dr["Father's Name"].ToString().Trim();
oemployee.BirthDate = Convert.ToDateTime(dr["Date of Birth"]);
oemployee.JoiningDate = Convert.ToDateTime(dr["Date of Joining"]);
//For Novartis Discontinue Employee Upload and Fund Management Data Issue
//oemployee.Status = EnumEmployeeStatus.Discontinued;
if ((dr["Gender"].ToString().Trim().ToUpper() == "MALE") || (dr["Gender"].ToString().Trim().ToUpper() == "M"))
{
oemployee.Gender = EnumGender.Male;
}
else
{
oemployee.Gender = EnumGender.Female;
}
//oemployee.Gender = ((dr["Gender"].ToString().Trim().ToUpper() == "M") || (dr["Gender"].ToString().Trim().ToUpper() == "Male")) ? EnumGender.Male : EnumGender.Female;
oemployee.MaritalStatus = (dr["Marital Status"].ToString().Trim().ToUpper() == "MARRIED") ? EnumMaritalStatus.Married : EnumMaritalStatus.UnMarried;
//oemployee.TaxCircle = dr["Tax Circle"].ToString() != string.Empty ? (EnumTaxCircle)Enum.Parse(typeof(EnumTaxCircle), dr["Tax Circle"].ToString(), true) : EnumTaxCircle.Employee;
oemployee.TaxCircle = dr["Tax Circle"].ToString().Trim();
oemployee.TinNo = dr["TIN"].ToString().Trim();
if (dr["Confirmation Date"].ToString() != "") oemployee.ConfirDate = Convert.ToDateTime(dr["Confirmation Date"]);
if (oemployee.ConfirDate != DateTime.MinValue)
oemployee.IsConfirmed = true;
if (dr["PF Membership"].ToString().ToUpper().Trim() == "Y")
oemployee.PFMemberType = EnumPFMembershipType.Live;
oemployee.ForeignExPat = dr["Is Foreign Expatriate"].ToString() != string.Empty ? (dr["Is Foreign Expatriate"].ToString() == "YES" ? true : false) : false;
oemployee.MobileNo = dr["Mobile No"].ToString().Trim();
oemployee.EmailAddress = dr["Email Address"].ToString().Trim();
//Refresh Employee Grade Salary
if (oemployee.GradeID != null)
{
Grade ograde = _grades.GetItem(oemployee.GradeID);
oemployee.EmployeeGradeSalary.SetObjectID(oemployee.ID.Integer);
oemployee.EmployeeGradeSalary.GradeID = oemployee.GradeID;
oemployee.EmployeeGradeSalary.GradeSalaryTypeID = ID.FromInteger(1);
if (ograde.HasGrossConcept == true) oemployee.EmployeeGradeSalary.GrossSalary = dr["Gross Salary"].ToString() != string.Empty ? Convert.ToDouble(dr["Gross Salary"]) : 0.0;
oemployee.EmployeeGradeSalary.BasicSalary = dr["Basic Salary"].ToString() != string.Empty ? Convert.ToDouble(dr["Basic Salary"]) : 0.0;
oemployee.BasicSalary = oemployee.EmployeeGradeSalary.BasicSalary;
oemployee.GrossSalary = oemployee.EmployeeGradeSalary.GrossSalary;
oemployee.EmployeeGradeSalary.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeGradeSalarys = new ObjectsTemplate<EmployeeGradeSalary>();
oemployee.EmployeeGradeSalarys.Add(oemployee.EmployeeGradeSalary);
}
//Refresh Employee Posting
oemployee.EmployeePosting.EffectDate = oemployee.JoiningDate;
oemployee.EmployeePosting.SetObjectID(oemployee.ID.Integer);
oemployee.EmployeePosting.DepartmentID = oemployee.DepartmentID;
oemployee.EmployeePosting.LocationID = oemployee.LocationID;
oemployee.EmployeePosting.DesignationID = oemployee.DesignationID;
//Refresh Emloyee Bank Account
if (oemployee.BranchID != null)
{
if (dr["Salary Account Number"].ToString() != "")
{
oemployee.AccountNo = dr["Salary Account Number"].ToString();
// oemployee.EmployeeBankAccount.SetObjectID(oemployee.ID.Integer);
oemployee.PaymentMode = EnumPaymentMode.BankTransfer;
oemployee.EmployeeBankAccount.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeBankAccount.BranchID = oemployee.BranchID;
oemployee.EmployeeBankAccount.AccountType = EnumBankAccountType.SalaryAccount;
oemployee.EmployeeBankAccount.AccountNo = dr["Salary Account Number"].ToString();
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Salary Account Number", nRow, "'Salary Account Number' Column not found for the employee No:" + oemployee.EmployeeNo, oemployee.EmployeeNo, oemployee.Name));
}
if (oemployee.OutPayBranchID != null)
{
if (dr["OPI Account Number"].ToString() != "")
{
oemployee.OutPayAccountNo = dr["OPI Account Number"].ToString();
// oemployee.EmployeeOPIBankAccount.SetObjectID(oemployee.ID.Integer);
oemployee.OutPayPaymentMode = EnumPaymentMode.BankTransfer;
oemployee.EmployeeOPIBankAccount.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeOPIBankAccount.BranchID = oemployee.OutPayBranchID;
oemployee.EmployeeOPIBankAccount.AccountType = EnumBankAccountType.OutPayAccount;
oemployee.EmployeeOPIBankAccount.AccountNo = dr["OPI Account Number"].ToString();
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("OPI Account Number", nRow, "'OPI Account Number' Column not found for the employee No:" + oemployee.EmployeeNo, oemployee.EmployeeNo, oemployee.Name));
}
if (dr["PROXID"].ToString() != "")
{
_accessCardID = _accessCardID + 1;
oemployee.CardID = ID.FromInteger(_accessCardID);
AccessCard ocard = new AccessCard();
ocard.SetObjectID(_accessCardID);
ocard.CardNumber = dr["PROXID"].ToString();
ocard.TypeID = ID.FromInteger(1);
ocard.Status = EnumCardStatus.Attached;
ocard.CardOperation.EmployeeID = oemployee.ID;
ocard.CardOperation.CardID = ocard.ID;
ocard.CardOperation.AssignDate = oemployee.JoiningDate;
_accessCards.Add(ocard);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occered on row:" + nRow + " Reason:" + ex.Message);
}
#endregion
}
public void ImportEmpBasicInfo2(DataTable odataTable)
{
Employee oemployee = null;
#region Refresh Objects
if (ProcessBasicData(odataTable) == false) return;
int nRow = 0;
GlobalFunctions.SetProgressbarMaxValue = odataTable.Rows.Count;
UpdateProgressStatus(EnumProcessStatus.Start);
try
{
foreach (DataRow dr in odataTable.Rows)
{
Application.DoEvents();
nRow = nRow + 1;
UpdateprocessStatus("Collecting information " + nRow.ToString() + "/" + odataTable.Rows.Count);
UpdateProgressStatus(EnumProcessStatus.PerformStep);
oemployee = _employees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee Code"].ToString(); });
if (oemployee == null) throw new ServiceException("Employee not found in the collection; employeeNo:" + dr["Employee Code"].ToString());
oemployee.Name = dr["Employee Name"].ToString().Trim();
oemployee.FatherName = dr["Father's Name"].ToString().Trim();
oemployee.BirthDate = Convert.ToDateTime(dr["Date of Birth"]);
oemployee.JoiningDate = Convert.ToDateTime(dr["Date of Joining"]);
//For Novartis Discontinue Employee Upload and Fund Management Data Issue
//oemployee.Status = EnumEmployeeStatus.Discontinued;
if ((dr["Gender"].ToString().Trim().ToUpper() == "MALE") || (dr["Gender"].ToString().Trim().ToUpper() == "M"))
{
oemployee.Gender = EnumGender.Male;
}
else
{
oemployee.Gender = EnumGender.Female;
}
//oemployee.Gender = ((dr["Gender"].ToString().Trim().ToUpper() == "M") || (dr["Gender"].ToString().Trim().ToUpper() == "Male")) ? EnumGender.Male : EnumGender.Female;
oemployee.MaritalStatus = (dr["Marital Status"].ToString().Trim().ToUpper() == "MARRIED") ? EnumMaritalStatus.Married : EnumMaritalStatus.UnMarried;
//oemployee.TaxCircle = dr["Tax Circle"].ToString() != string.Empty ? (EnumTaxCircle)Enum.Parse(typeof(EnumTaxCircle), dr["Tax Circle"].ToString(), true) : EnumTaxCircle.Employee;
oemployee.TaxCircle = dr["Tax Circle"].ToString().Trim();
oemployee.TinNo = dr["TIN"].ToString().Trim();
if (dr["Confirmation Date"].ToString() != "") oemployee.ConfirDate = Convert.ToDateTime(dr["Confirmation Date"]);
if (oemployee.ConfirDate != DateTime.MinValue)
oemployee.IsConfirmed = true;
if (dr["PF Membership"].ToString().ToUpper().Trim() == "Y")
oemployee.PFMemberType = EnumPFMembershipType.Live;
oemployee.ForeignExPat = dr["Is Foreign Expatriate"].ToString() != string.Empty ? (dr["Is Foreign Expatriate"].ToString() == "YES" ? true : false) : false;
oemployee.MobileNo = dr["Mobile No"].ToString().Trim();
oemployee.EmailAddress = dr["Email Address"].ToString().Trim();
//Refresh Employee Grade Salary
if (oemployee.GradeID != null)
{
Grade ograde = _grades.GetItem(oemployee.GradeID);
oemployee.EmployeeGradeSalary.SetObjectID(oemployee.ID.Integer);
oemployee.EmployeeGradeSalary.GradeID = oemployee.GradeID;
oemployee.EmployeeGradeSalary.GradeSalaryTypeID = ID.FromInteger(1);
if (ograde.HasGrossConcept == true) oemployee.EmployeeGradeSalary.GrossSalary = dr["Gross Salary"].ToString() != string.Empty ? Convert.ToDouble(dr["Gross Salary"]) : 0.0;
oemployee.EmployeeGradeSalary.BasicSalary = dr["Basic Salary"].ToString() != string.Empty ? Convert.ToDouble(dr["Basic Salary"]) : 0.0;
oemployee.BasicSalary = oemployee.EmployeeGradeSalary.BasicSalary;
oemployee.GrossSalary = oemployee.EmployeeGradeSalary.GrossSalary;
oemployee.EmployeeGradeSalary.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeGradeSalarys = new ObjectsTemplate<EmployeeGradeSalary>();
oemployee.EmployeeGradeSalarys.Add(oemployee.EmployeeGradeSalary);
}
//Refresh Employee Posting
oemployee.EmployeePosting.EffectDate = oemployee.JoiningDate;
oemployee.EmployeePosting.SetObjectID(oemployee.ID.Integer);
oemployee.EmployeePosting.DepartmentID = oemployee.DepartmentID;
oemployee.EmployeePosting.LocationID = oemployee.LocationID;
oemployee.EmployeePosting.DesignationID = oemployee.DesignationID;
//Refresh Emloyee Bank Account
if (oemployee.BranchID != null)
{
if (dr["Salary Account Number"].ToString() != "")
{
oemployee.AccountNo = dr["Salary Account Number"].ToString();
// oemployee.EmployeeBankAccount.SetObjectID(oemployee.ID.Integer);
oemployee.PaymentMode = EnumPaymentMode.BankTransfer;
oemployee.EmployeeBankAccount.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeBankAccount.BranchID = oemployee.BranchID;
oemployee.EmployeeBankAccount.AccountType = EnumBankAccountType.SalaryAccount;
oemployee.EmployeeBankAccount.AccountNo = dr["Salary Account Number"].ToString();
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Salary Account Number", nRow, "'Salary Account Number' Column not found for the employee No:" + oemployee.EmployeeNo, oemployee.EmployeeNo, oemployee.Name));
}
if (oemployee.OutPayBranchID != null)
{
if (dr["OPI Account Number"].ToString() != "")
{
oemployee.OutPayAccountNo = dr["OPI Account Number"].ToString();
// oemployee.EmployeeOPIBankAccount.SetObjectID(oemployee.ID.Integer);
oemployee.OutPayPaymentMode = EnumPaymentMode.BankTransfer;
oemployee.EmployeeOPIBankAccount.EffectDate = oemployee.JoiningDate;
oemployee.EmployeeOPIBankAccount.BranchID = oemployee.OutPayBranchID;
oemployee.EmployeeOPIBankAccount.AccountType = EnumBankAccountType.OutPayAccount;
oemployee.EmployeeOPIBankAccount.AccountNo = dr["OPI Account Number"].ToString();
}
else
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("OPI Account Number", nRow, "'OPI Account Number' Column not found for the employee No:" + oemployee.EmployeeNo, oemployee.EmployeeNo, oemployee.Name));
}
if (dr["PROXID"].ToString() != "")
{
_accessCardID = _accessCardID + 1;
oemployee.CardID = ID.FromInteger(_accessCardID);
AccessCard ocard = new AccessCard();
ocard.SetObjectID(_accessCardID);
ocard.CardNumber = dr["PROXID"].ToString();
ocard.TypeID = ID.FromInteger(1);
ocard.Status = EnumCardStatus.Attached;
ocard.CardOperation.EmployeeID = oemployee.ID;
ocard.CardOperation.CardID = ocard.ID;
ocard.CardOperation.AssignDate = oemployee.JoiningDate;
_accessCards.Add(ocard);
}
}
UpdateProgressStatus(EnumProcessStatus.End);
}
catch (Exception ex)
{
UpdateProgressStatus(EnumProcessStatus.End);
throw new ServiceException("Error occered on row:" + nRow + " Reason:" + ex.Message);
}
#endregion
}
public void ImportTaxAdjustmentData(DataTable odataTable, DataUploadColumnDefinition columnDefinition)
{
ObjectsTemplate<TaxMergeMaster> oTaxMergeMasters = new ObjectsTemplate<TaxMergeMaster>();
oTaxMergeMasters = TaxMergeMaster.GetbyTaxParameter(SystemInformation.CurrentSysInfo.TaxParamID);
Employee oemployee = null;
IncomeTax oIncomeTax = null;
TaxMergeMaster oTaxMergeMaster = null;
_employees = Employee.Get();
ObjectsTemplate<ProcessItem> processItems = ProcessItem.Get();
#region Refresh Objects
int nRow = 0;
ObjectsTemplate<IncomeTax> savedData = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessTempData);
try
{
foreach (DataRow dr in odataTable.Rows)
{
nRow = nRow + 1;
oemployee = _employees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee No"].ToString(); });//Employee.Get(dr["Employee Code"].ToString());
if (oemployee == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee Code", nRow, "Employee Code not found: " + dr["Employee No"].ToString()));
continue;
}
for (int i = 1; i < odataTable.Columns.Count; i++)
{
oIncomeTax = TaxMergeMaster.Extract(oTaxMergeMasters, EnumTaxMergeType.TaxAdjustItem, columnDefinition.SelectedItemOneID.Integer);
if (oIncomeTax == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(odataTable.Columns[i].ColumnName, nRow, "Tax head grouping net yet created for the selected item", oemployee.EmployeeNo, oemployee.Name));
continue;
}
ProcessItem pitem = processItems.Find(delegate(ProcessItem item)
{ return item.ItemCode == (int)oIncomeTax.ItemGroup; });
if (pitem == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(odataTable.Columns[i].ColumnName, nRow, " Tax process item code not found in the process collection; Item Code:" + oTaxMergeMaster.ItemGroup.ToString(), oemployee.EmployeeNo, oemployee.Name));
continue;
}
oIncomeTax.EmployeeID = oemployee.ID;
double nAmount = 0;
if (double.TryParse(dr[odataTable.Columns[i].ColumnName].ToString(), out nAmount) == false)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(odataTable.Columns[i].ColumnName, nRow, odataTable.Columns[i].ColumnName + " contains Invalid value:" + dr[odataTable.Columns[i].ColumnName].ToString(), oemployee.EmployeeNo, oemployee.Name));
continue;
}
IncomeTax oNewItem = IncomeTax.Get(savedData, oemployee.ID, oIncomeTax.ItemGroup, oIncomeTax.ItemID); //.Get(savedData, oemployee.ID, oTaxMergeMaster.ItemGroup, oTaxMergeMaster.ItemID);
if (oNewItem != null)
oIncomeTax = oNewItem;
else
{
oIncomeTax.Side = (EnumIncomeTaxSide)pitem.ItemGroup;
oIncomeTax.Position = pitem.Position;
}
// if (oIncomeTax == null) oIncomeTax = new IncomeTax();
oIncomeTax.EmployeeID = oemployee.ID;
oIncomeTax.PreviousAmount = oIncomeTax.PreviousAmount + nAmount;
if (oIncomeTax.PreviousAmount != 0)
_incomeTaxs.Add(oIncomeTax);
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occered on row:" + nRow + " Reason:" + ex.Message);
}
#endregion
}
public void ImportTaxDataInfo(DataTable odataTable)
{
ObjectsTemplate<TaxMergeMaster> oTaxMergeMasters = new ObjectsTemplate<TaxMergeMaster>();
oTaxMergeMasters = TaxMergeMaster.GetbyTaxParameter(SystemInformation.CurrentSysInfo.TaxParamID);
Employee oemployee = null;
IncomeTax oIncomeTax = null;
TaxMergeMaster oTaxMergeMaster = null;
_employees = Employee.Get();
ObjectsTemplate<ProcessItem> processItems = ProcessItem.Get();
#region Refresh Objects
int nRow = 0;
ObjectsTemplate<IncomeTax> savedData = IncomeTax.Get(EnumIncomeTaxDataFrom.ProcessTempData);
try
{
foreach (DataRow dr in odataTable.Rows)
{
nRow = nRow + 1;
oemployee = _employees.Find(delegate(Employee emp) { return emp.EmployeeNo == dr["Employee Code"].ToString(); });//Employee.Get(dr["Employee Code"].ToString());
if (oemployee == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create("Employee Code", nRow, "Employee Code not found: " + dr["Employee Code"].ToString()));
continue;
}
for (int i = 1; i < odataTable.Columns.Count; i++)
{
oIncomeTax = new IncomeTax();
oTaxMergeMaster = oTaxMergeMasters.Find(delegate(TaxMergeMaster taxMerge)
{ return taxMerge.Description == odataTable.Columns[i].ColumnName; });
if (oTaxMergeMaster == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(odataTable.Columns[i].ColumnName, nRow, odataTable.Columns[i].ColumnName + " not found in the tax head groping", oemployee.EmployeeNo, oemployee.Name));
continue;
}
ProcessItem pitem = processItems.Find(delegate(ProcessItem item)
{ return item.ItemCode == (int)oTaxMergeMaster.ItemGroup; });
if (pitem == null)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(odataTable.Columns[i].ColumnName, nRow, " Tax process item code not found in the process collection; Item Code:" + oTaxMergeMaster.ItemGroup.ToString(), oemployee.EmployeeNo, oemployee.Name));
continue;
}
if (oTaxMergeMaster != null)
{
oIncomeTax.EmployeeID = oemployee.ID;
double nAmount = 0;
if (double.TryParse(dr[odataTable.Columns[i].ColumnName].ToString(), out nAmount) == false)
{
_errorOrSuccessList.Add(UploadErrorOrSuccess.Create(odataTable.Columns[i].ColumnName, nRow, odataTable.Columns[i].ColumnName + " contains Invalid value:" + dr[odataTable.Columns[i].ColumnName].ToString(), oemployee.EmployeeNo, oemployee.Name));
continue;
}
oIncomeTax = IncomeTax.Get(savedData, oemployee.ID, oTaxMergeMaster.ItemGroup, oTaxMergeMaster.ItemID);
if (oIncomeTax == null) oIncomeTax = new IncomeTax();
oIncomeTax.EmployeeID = oemployee.ID;
oIncomeTax.ItemGroup = oTaxMergeMaster.ItemGroup;
oIncomeTax.ItemID = oTaxMergeMaster.ItemID;
oIncomeTax.PreviousAmount = oIncomeTax.PreviousAmount + nAmount;
oIncomeTax.Description = oTaxMergeMaster.Description;
oIncomeTax.Side = (EnumIncomeTaxSide)pitem.ItemGroup;
oIncomeTax.Position = pitem.Position;
if (oIncomeTax.PreviousAmount != 0)
_incomeTaxs.Add(oIncomeTax);
}
else _errorOrSuccessList.Add(UploadErrorOrSuccess.Create(odataTable.Columns[i].ColumnName, nRow, "Column not found in tax setup", oemployee.EmployeeNo, oemployee.Name));
}
}
}
catch (Exception ex)
{
throw new ServiceException("Error occered on row:" + nRow + " Reason:" + ex.Message);
}
#endregion
}
#endregion
}
#region IRegularDataUploadServices
public interface IRegularDataUploadService
{
DataTable LoadData(string filePath);
DataTable LoadData(string filePath, string sheetName);
DataTable LoadExcelData(string filePath, string sheetName);
//DataSet LoadExcelData(string filePath, List<string> sheetName);
void Save(ObjectsTemplate<Category> categorys, ObjectsTemplate<Grade> grades, ObjectsTemplate<Department> departments, ObjectsTemplate<Location> locations,
ObjectsTemplate<Religion> religions, ObjectsTemplate<Designation> designations, ObjectsTemplate<Bank> banks,
ObjectsTemplate<Branch> branches, ObjectsTemplate<Employee> employees, ObjectsTemplate<AccessCard> accessCards);
DataSet LoadViewData();
}
#endregion
}