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 SystemDataUpload : ImportFileBase { #region public Declarations And Constructors public List _errorOrSuccessList; public DataTable _uplodedData; public DataSet _uploadHRData; public DataSet _upLoadCVData; public BonusProcess _BonusProcess = null; public HREmployee _HREmployee = new HREmployee(); public CV _CV = new CV(); public ObjectsTemplate _HREmployees = null; public ObjectsTemplate _Religions = null; public ObjectsTemplate _Categories = null; public ObjectsTemplate _Occupations = null; public ObjectsTemplate _Nationalites = null; public ObjectsTemplate _Districts = null; public ObjectsTemplate _Thanas = null; public ObjectsTemplate _Relations = null; public ObjectsTemplate _EducationLevels = null; public ObjectsTemplate _NatureOfTrainings = null; public ObjectsTemplate _Institutions = null; public ObjectsTemplate _Contries = null; public ObjectsTemplate _EducationTypes = null; public ObjectsTemplate _Disciplines = null; public ObjectsTemplate _ResultTypes = null; public ObjectsTemplate _NominationPurposes = null; public ObjectsTemplate _GuarantorDocumentTypes = null; public ObjectsTemplate _TrainingTypes = null; public ObjectsTemplate _HRJoiningQuestionaries = null; public ObjectsTemplate _EmployeeTaxInvestments = null; public ObjectsTemplate _TaxChallans = null; public ObjectsTemplate _Designations = null; public ObjectsTemplate _organograms = null; public ObjectsTemplate _organEmps = null; ObjectsTemplate _CheckHREmployees = null; public List _PFTransactions = null; public EnumEmployeeStatus _enumStatus = EnumEmployeeStatus.Live; public int _nTypeID = 0; int _nEventID = 0; public event ProgressStatus ProgressStatus; public event ProcessStatus ProcessStatus; public ObjectsTemplate _oEmpLifeCycles = new ObjectsTemplate(); public ObjectsTemplate _oSalaryMonthlys = new ObjectsTemplate(); #region New Declaration public ObjectsTemplate _categorys = new ObjectsTemplate(); public ObjectsTemplate _grades = new ObjectsTemplate(); public ObjectsTemplate _departments = new ObjectsTemplate(); public ObjectsTemplate _locations = new ObjectsTemplate(); public ObjectsTemplate _religions = new ObjectsTemplate(); public ObjectsTemplate _designations = new ObjectsTemplate(); public ObjectsTemplate _banks = new ObjectsTemplate(); public ObjectsTemplate _branches = new ObjectsTemplate(); public ObjectsTemplate _employees = new ObjectsTemplate(); public ObjectsTemplate _incomeTaxs = new ObjectsTemplate(); public ObjectsTemplate _accessCards = new ObjectsTemplate(); #endregion Class variable public int _departmentid = 0; public int _locationid = 0; public int _categoryID = 0; public int _religionID = 0; public int _designationid = 0; public int _gradeid = 0; public int _branchid = 0; public int _bankid = 0; public int _emloyeeId = 0; public int _accessCardID = 0; #endregion public void UpdateProgressStatus(EnumProcessStatus status) { if (ProgressStatus != null) ProgressStatus(status); } public void UpdateprocessStatus(string statusString) { if (ProcessStatus != null) ProcessStatus(statusString); } public SystemDataUpload() { _organograms = new ObjectsTemplate(); _organEmps = new ObjectsTemplate(); } #region Properties public BonusProcess UploadedBonus { get { return _BonusProcess; } set { _BonusProcess = value; } } public ObjectsTemplate Employees { get { return _employees; } set { _employees = value; } } public ObjectsTemplate _allowanceDeductions; public ObjectsTemplate AllowanceDeductions { get { return _allowanceDeductions; } set { _allowanceDeductions = value; } } //added by Hasib public ObjectsTemplate AccessCards { get { return _accessCards; } set { _accessCards = value; } } public ObjectsTemplate _accessCardsErrorList; public ObjectsTemplate AccessCardsErrorList { get { return _accessCardsErrorList; } set { _accessCardsErrorList = value; } } public List ErrorOrSuccessList { get { return _errorOrSuccessList; } set { _errorOrSuccessList = value; } } public BasicDataUploadProcess _basicwithEmployee; public DataUploadException _uploadException; public List oempgradesalarys; public List oadparamemployees; public List oOpiParameterIndividuals; public List oempbankaccounts; public ObjectsTemplate oempCostCenters; public ObjectsTemplate _empContacts; public List loanissues; public List loanschs; public ObjectsTemplate _salaryDetails; public ObjectsTemplate _oPIProcessDetailItem; public ObjectsTemplate _oPIParameterIndividual; public ObjectsTemplate _incomeTaxes; public ObjectsTemplate _TempEmployees; #endregion #region Service Factory internal static ISystemDataUploadService Service { get { return Services.Factory.CreateService(typeof(ISystemDataUploadService)); } } #endregion #region Export public void Export(DataTable data, string fileName, ObjectsTemplate 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(); 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 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)EnumSystemDataUpload.Bonus: // { // _BonusProcess = this.ImportEmpBonus(oColumnDefination); // break; // } // default: // { // this.ImportException(uploadId, oColumnDefination); // } // break; // } // return _errorOrSuccessList; //} public List 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)EnumSystemDataUpload.EmployeeWithBasic: this.ImportEmpBasicInfo(); break; case (int)EnumSystemDataUpload.Allowance: this.ImportEmpIndividualAllowance(oColumnDefination); break; case (int)EnumSystemDataUpload.TaxChallan: this.ImportITChallan(oColumnDefination); break; case (int)EnumSystemDataUpload.Deduction: this.ImportEmpIndividualDeduction(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpDiscontinue: break; case (int)EnumSystemDataUpload.EmployeeBankAccount: this.ImportEmpBankAccount(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeConfirmation: break; case (int)EnumSystemDataUpload.ESB: break; case (int)EnumSystemDataUpload.ITInvestment: this.ImportITInvestment(oColumnDefination); break; case (int)EnumSystemDataUpload.Leave: break; case (int)EnumSystemDataUpload.OPI: //this.ImportOPIDataAfterProcess(oColumnDefination); this.ImportOPIDataNew(oColumnDefination); //this.ImportOPIParamInividual(oColumnDefination); //this.ImportOPIDataNew(oColumnDefination); break; case (int)EnumSystemDataUpload.SalaryData: break; case (int)EnumSystemDataUpload.SalaryRemarks: break; case (int)EnumSystemDataUpload.TaxAdjustCurrYear: this.ImportTaxAdjustmentData(oColumnDefination); break; case (int)EnumSystemDataUpload.TC: break; case (int)EnumSystemDataUpload.EmpGradeSalary: this.ImportEmpGradeSalaryAssignment(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeAttendance: break; case (int)EnumSystemDataUpload.TaxData: this.ImportTaxData(); break; case (int)EnumSystemDataUpload.EmployeeLoan: this.ImportEmpLoanInformation(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeLoanSetup: this.ImportEmpLoanSetup(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpSalaryComponent: this.ImportSalaryComponet(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpCC: this.ImportEmpCC(oColumnDefination); break; case (int)EnumSystemDataUpload.PFOpening: this.PFOpening(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpVendorCode: this.ImportEmpVendorCode(oColumnDefination); break; case (int)EnumSystemDataUpload.OPI_Parameter_Individual: //this.ImportOPIData(oColumnDefination); this.ImportOPIParamInividual(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpAddressData: //this.ImportOPIData(oColumnDefination); //this.ImportOPIParamInividual(oColumnDefination); this.ImportAllEmpContactInfo(oColumnDefination); break; default: this.ImportException(uploadId, oColumnDefination); break; } return _errorOrSuccessList; } public List 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)EnumSystemDataUpload.EmpShortInfo == uploadId) _errorOrSuccessList = oColumnDefination.ValidateUploadedData2(_uplodedData); else _errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData); if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList; switch (uploadId) { case (int)EnumSystemDataUpload.EmpShortInfo: { this.ImportEmpShortInfo(oColumnDefination); break; } case (int)EnumSystemDataUpload.EmployeeWithBasic: this.ImportEmpBasicInfo(); break; case (int)EnumSystemDataUpload.EmployeeWithRegularly: this.ImportEmpBasicInfoRegularly(); break; case (int)EnumSystemDataUpload.Allowance: this.ImportEmpIndividualAllowance(oColumnDefination); break; case (int)EnumSystemDataUpload.TaxChallan: this.ImportITChallan(oColumnDefination); break; case (int)EnumSystemDataUpload.OrganogramPosition: this.ImportOrganogramPosition(oColumnDefination); break; case (int)EnumSystemDataUpload.Deduction: this.ImportEmpIndividualDeduction(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpDiscontinue: break; case (int)EnumSystemDataUpload.EmployeeBankAccount: this.ImportEmpBankAccount(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeConfirmation: break; case (int)EnumSystemDataUpload.ESB: break; case (int)EnumSystemDataUpload.ITInvestment: this.ImportITInvestment(oColumnDefination); break; case (int)EnumSystemDataUpload.Leave: break; case (int)EnumSystemDataUpload.OPI: //this.ImportOPIDataAfterProcess(oColumnDefination); this.ImportOPIDataNew(oColumnDefination); //this.ImportOPIParamInividual(oColumnDefination); //this.ImportOPIDataNew(oColumnDefination); break; case (int)EnumSystemDataUpload.SalaryData: break; case (int)EnumSystemDataUpload.SalaryRemarks: break; case (int)EnumSystemDataUpload.TaxAdjustCurrYear: this.ImportTaxAdjustmentData(oColumnDefination); break; case (int)EnumSystemDataUpload.TC: break; case (int)EnumSystemDataUpload.EmpGradeSalary: this.ImportEmpGradeSalaryAssignment(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeAttendance: break; case (int)EnumSystemDataUpload.TaxData: this.ImportTaxData(); break; case (int)EnumSystemDataUpload.EmployeeLoan: this.ImportEmpLoanInformation(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeLoanSetup: this.ImportEmpLoanSetup(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpSalaryComponent: this.ImportSalaryComponet(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpCC: this.ImportEmpCC(oColumnDefination); break; case (int)EnumSystemDataUpload.PFOpening: this.PFOpening(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpVendorCode: this.ImportEmpVendorCode(oColumnDefination); break; case (int)EnumSystemDataUpload.OPI_Parameter_Individual: //this.ImportOPIData(oColumnDefination); this.ImportOPIParamInividual(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpAddressData: //this.ImportOPIData(oColumnDefination); //this.ImportOPIParamInividual(oColumnDefination); this.ImportAllEmpContactInfo(oColumnDefination); break; default: this.ImportException(uploadId, oColumnDefination); break; } return _errorOrSuccessList; } public List 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)EnumSystemDataUpload.EmpShortInfo == uploadId) _errorOrSuccessList = oColumnDefination.ValidateUploadedData2(_uplodedData); //else // _errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData); if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList; switch (uploadId) { case (int)EnumSystemDataUpload.EmployeeWithBasic: this.ImportEmpBasicInfo2(); break; case (int)EnumSystemDataUpload.LifeCycle: this.ImportCareerHistory(); break; case (int)EnumSystemDataUpload.Allowance: this.ImportEmpIndividualAllowance(oColumnDefination); break; case (int)EnumSystemDataUpload.TaxChallan: this.ImportITChallan(oColumnDefination); break; case (int)EnumSystemDataUpload.OrganogramPosition: this.ImportOrganogramPosition(oColumnDefination); break; case (int)EnumSystemDataUpload.Deduction: this.ImportEmpIndividualDeduction(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpDiscontinue: break; case (int)EnumSystemDataUpload.EmployeeBankAccount: this.ImportEmpBankAccount(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeConfirmation: break; case (int)EnumSystemDataUpload.ESB: break; case (int)EnumSystemDataUpload.ITInvestment: this.ImportITInvestment(oColumnDefination); break; case (int)EnumSystemDataUpload.Leave: break; case (int)EnumSystemDataUpload.OPI: //this.ImportOPIDataAfterProcess(oColumnDefination); this.ImportOPIDataNew(oColumnDefination); //this.ImportOPIParamInividual(oColumnDefination); //this.ImportOPIDataNew(oColumnDefination); break; case (int)EnumSystemDataUpload.SalaryData: break; case (int)EnumSystemDataUpload.SalaryRemarks: break; case (int)EnumSystemDataUpload.TaxAdjustCurrYear: this.ImportTaxAdjustmentData(oColumnDefination); break; case (int)EnumSystemDataUpload.TC: break; case (int)EnumSystemDataUpload.EmpGradeSalary: this.ImportEmpGradeSalaryAssignment(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeAttendance: break; case (int)EnumSystemDataUpload.TaxData: this.ImportTaxData(); break; case (int)EnumSystemDataUpload.EmployeeLoan: this.ImportEmpLoanInformation(oColumnDefination); break; case (int)EnumSystemDataUpload.EmployeeLoanSetup: this.ImportEmpLoanSetup(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpSalaryComponent: this.ImportSalaryComponet(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpCC: this.ImportEmpCC(oColumnDefination); break; case (int)EnumSystemDataUpload.PFOpening: this.PFOpening(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpVendorCode: this.ImportEmpVendorCode(oColumnDefination); break; case (int)EnumSystemDataUpload.OPI_Parameter_Individual: //this.ImportOPIData(oColumnDefination); this.ImportOPIParamInividual(oColumnDefination); break; case (int)EnumSystemDataUpload.EmpAddressData: //this.ImportOPIData(oColumnDefination); //this.ImportOPIParamInividual(oColumnDefination); this.ImportAllEmpContactInfo(oColumnDefination); break; default: this.ImportException(uploadId, oColumnDefination); break; } return _errorOrSuccessList; } public List UploadBonusData(int uploadId, ID bonusID, DataUploadColumnDefinition oColumnDefination, string path, bool IsDisbursWithSalary, bool IsTaxProcess, double UsedProcess) { _uplodedData = Service.LoadExcelData(path, oColumnDefination.SheetName); //_uplodedData = Service.LoadData(path); _errorOrSuccessList = oColumnDefination.ValidateUploadedData(_uplodedData); if (_errorOrSuccessList.Count > 0) return _errorOrSuccessList; switch (uploadId) { case (int)EnumSystemDataUpload.Bonus: { _BonusProcess = this.ImportEmpBonus(oColumnDefination, IsDisbursWithSalary, IsTaxProcess, UsedProcess, bonusID); break; } default: { this.ImportException(uploadId, oColumnDefination); } break; } return _errorOrSuccessList; } #region Upload HR Employee Data public List UploadHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { List oelist = new List(); DataUploadColumnDefinition columnDefination = null; _errorOrSuccessList = new List(); if (uploadId == (int)EnumSystemDataUpload.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 UploadErrorHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { //if (uploadId == (int)EnumSystemDataUpload.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)EnumSystemDataUpload.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 UploadCVData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { List oelist = new List(); DataUploadColumnDefinition columnDefination = null; _errorOrSuccessList = new List(); if (uploadId == (int)EnumSystemDataUpload.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 UploadErrorCVData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { //if (uploadId == (int)EnumSystemDataUpload.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)EnumSystemDataUpload.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 UploadAllHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { List oelist = new List(); DataUploadColumnDefinition columnDefination = null; _errorOrSuccessList = new List(); if (uploadId == (int)EnumSystemDataUpload.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 UploadErrorAllHRData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { //if (uploadId == (int)EnumSystemDataUpload.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 UploadAllHRData(int uploadId) { switch (uploadId) { case (int)EnumSystemDataUpload.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 UploadErrorAllHRDataForIDLC(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { //if (uploadId == (int)EnumSystemDataUpload.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 UploadAllHRDataForIDLC(int uploadId) { switch (uploadId) { case (int)EnumSystemDataUpload.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 UploadAllHRDataForIDLC(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { int rowCount = 0; int slNo = 0; List oelist = new List(); DataUploadColumnDefinition columnDefination = null; _errorOrSuccessList = new List(); if (uploadId == (int)EnumSystemDataUpload.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 UploadAllHRDataForNavana(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { int rowCount = 0; int slNo = 0; List oelist = new List(); DataUploadColumnDefinition columnDefination = null; _errorOrSuccessList = new List(); if (uploadId == (int)EnumSystemDataUpload.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 UploadErrorAllHRDataForNavana(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { //if (uploadId == (int)EnumSystemDataUpload.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 UploadAllHRDataForNavana(int uploadId) { switch (uploadId) { case (int)EnumSystemDataUpload.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 UploadAllSingleData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { int rowCount = 0; int slNo = 0; List oelist = new List(); DataUploadColumnDefinition columnDefination = null; _errorOrSuccessList = new List(); if (uploadId == (int)EnumSystemDataUpload.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 UploadErrorAllSingleData(int uploadId, DataUploadColumnDefinition oColumnDefination, string path) { //if (uploadId == (int)EnumSystemDataUpload.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 UploadAllSingleData(int uploadId) { switch (uploadId) { case (int)EnumSystemDataUpload.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)EnumSystemDataUpload.EmpShortInfo: { this.SaveShortInfo(); break; } case (int)EnumSystemDataUpload.Allowance: { this.SaveEmpIndividualAllowance(); break; } case (int)EnumSystemDataUpload.EmployeeWithBasic: case (int)EnumSystemDataUpload.EmployeeWithRegularly: { this.SaveEmpBasicInformation(); break; } case (int)EnumSystemDataUpload.Bonus: { this.SaveBonusInformation(); break; } case (int)EnumSystemDataUpload.OrganogramPosition: { this.SaveOrganPosition(); break; } case (int)EnumSystemDataUpload.TaxChallan: { this.SaveITChallanData(_TaxChallans); break; } case (int)EnumSystemDataUpload.Deduction: { this.SaveEmpIndividualDeduction(); break; } case (int)EnumSystemDataUpload.EmpDiscontinue: { break; } case (int)EnumSystemDataUpload.EmployeeBankAccount: { this.SaveEmpBankAccount(); break; } case (int)EnumSystemDataUpload.EmployeeConfirmation: { break; } case (int)EnumSystemDataUpload.ESB: { break; } case (int)EnumSystemDataUpload.ITInvestment: { this.SaveITInvestmentData(_EmployeeTaxInvestments); break; } case (int)EnumSystemDataUpload.Leave: { break; } case (int)EnumSystemDataUpload.OPI: { // this.SaveOPIData(); this.SaveAllOPIParamIndividual(); break; } case (int)EnumSystemDataUpload.SalaryData: { this.SaveOPIData(); break; } case (int)EnumSystemDataUpload.SalaryRemarks: { break; } case (int)EnumSystemDataUpload.TaxAdjustCurrYear: { _basicwithEmployee.SaveTaxData(); //this.SaveEmpTaxData(_incomeTaxes,EnumIncomeTaxDataFrom.ProcessTempData); break; } case (int)EnumSystemDataUpload.TC: { break; } case (int)EnumSystemDataUpload.EmpGradeSalary: { this.SaveEmpGradeSalaryAssignment(); break; } case (int)EnumSystemDataUpload.EmployeeAttendance: { break; } case (int)EnumSystemDataUpload.TaxData: { _basicwithEmployee.SaveTaxData(); //this.SaveEmpTaxData(); break; } case (int)EnumSystemDataUpload.EmployeeLoan: { this.SaveLoanInformation(); break; } case (int)EnumSystemDataUpload.EmployeeLoanSetup: { this.SaveLoanInformationSetup(); break; } case (int)EnumSystemDataUpload.EmpSalaryComponent: { this.SaveSalaryComponent(); break; } case (int)EnumSystemDataUpload.EmpCC: { this.SaveEmpCCData(); break; } case (int)EnumSystemDataUpload.PFOpening: { this.SavePFOpeningData(); break; } case (int)EnumSystemDataUpload.EmpVendorCode: { this.SaveEmpVendorCode(); break; } case (int)EnumSystemDataUpload.EmpAllHRData: { this.SaveAllHREmpData(_HREmployees); break; } case (int)EnumSystemDataUpload.EmpSingle: { this.SaveAllHREmpData(_HREmployees); break; } case (int)EnumSystemDataUpload.CVDocument: { _CV.Save(); break; } case (int)EnumSystemDataUpload.OPI_Parameter_Individual: { this.SaveAllOPIParamIndividual(); break; } case (int)EnumSystemDataUpload.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 oemployees = Employee.Get(); ObjectsTemplate oadparameters = ADParameter.Get(EnumStatus.Active, EnumAllowOrDeduct.Allowance); ADParameter _adparam = null; Employee oemployee = null; oadparamemployees = new List(); 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 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 Individual Employee Deductions public void ImportEmpIndividualDeduction(DataUploadColumnDefinition _columnDefinition) { List oemployees = Employee.Get(); List _adparams = ADParameter.Get(EnumStatus.Active, EnumAllowOrDeduct.Deduction); ADParameter _adparam = null; Employee oemployee = null; oadparamemployees = new List(); 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 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 oemployees = Employee.Get(); Employee oemployee = null; List ogrades = Grade.Get(EnumStatus.Regardless); Grade ograde = null; int nRow = 0; oempgradesalarys = new List(); 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; 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 oemployees = Employee.Get(); Employee oemployee = null; loanissues = new List(); List 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(); List 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 oemployees = Employee.Get(); Employee oemployee = null; List loanschedules = new List(); loanschedules = LoanSchedule.Get(); loanschs = new List(); 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 oemployees = Employee.Get(); Employee oemployee = null; List obranches = Branch.Get(EnumStatus.Regardless); Branch obranch = null; oempbankaccounts = new List(); EmployeeBankAccount oempbankaccount = null; int nRow = 0; ObjectsTemplate 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); } } public void ImportSalaryData(DataUploadColumnDefinition _columnDefinition) { //RefreshObject(); //List oemployees = Employee.Get(); //Employee oemployee = null; //_oSalaryMonthlys = new ObjectsTemplate(); //int nRow = 0; //try //{ // //var query = from t in dt.AsEnumerable() // // group t by t.Field("ID") into g // // select g.First(); // 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 oemployees = Employee.Get(); ObjectsTemplate osalaryDetails = new ObjectsTemplate(); _incomeTaxes = new ObjectsTemplate(); 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 oemployees = Employee.Get(); Employee oemployee = null; _TempEmployees = new ObjectsTemplate(); 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 ImportAllEmpGeneralInfoIDLC(DataTable oDTable) { int nRow = 0; try { //ObjectsTemplate oEmployee _CheckHREmployees = HREmployee.Get(); EmpContact oEmpContact = null; ObjectsTemplate oParmanentsThanas = null; ObjectsTemplate oPresentThanas = null; //HREmployee oHREmployee=null; ObjectsTemplate oEmpContacts = new ObjectsTemplate(); _HREmployees = new ObjectsTemplate(); if (_errorOrSuccessList == null) _errorOrSuccessList = new List(); _HREmployee.Contacts = new ObjectsTemplate(); 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(); oHREmp.Childrens = new ObjectsTemplate(); oHREmp.Experiences = new ObjectsTemplate(); oHREmp.Spouses = new ObjectsTemplate(); oHREmp.Experiences = new ObjectsTemplate(); oHREmp.Trainings = new ObjectsTemplate(); oHREmp.Academics = new ObjectsTemplate(); oHREmp.Achievement = new ObjectsTemplate(); oHREmp.OtherTalents = new ObjectsTemplate(); oHREmp.CurricularActivities = new ObjectsTemplate(); oHREmp.Hobbys = new ObjectsTemplate(); oHREmp.References = new ObjectsTemplate(); oHREmp.Allergies = new ObjectsTemplate(); oHREmp.Publications = new ObjectsTemplate(); oHREmp.Nominees = new ObjectsTemplate(); oHREmp.Hospitalizations = new ObjectsTemplate(); oHREmp.Guarantors = new ObjectsTemplate(); oHREmp.WorkPlanSetup = new EmpWorkPlanSetup(); oHREmp.EmpLanguages = new ObjectsTemplate(); oHREmp.EmpRelatives = new ObjectsTemplate(); oHREmp.EmpMemberships = new ObjectsTemplate(); oHREmp.EmpRelations = new ObjectsTemplate(); oHREmp.EmpHRQuestionAnswers = new ObjectsTemplate(); oHREmp.CreditCards = new ObjectsTemplate(); if (oHREmp != null) { _HREmployee = oHREmp; _HREmployee.Contacts = new ObjectsTemplate(); //if(_HREmployee.Contacts.Count>0) //{ //_HREmployee.Contacts = new ObjectsTemplate(); //} } 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 oemployees = Employee.GetAllEmps(); Employee oemployee = null; ObjectsTemplate oContacts = null; oContacts = HREmployee.GetEmpContacts(); _Districts = District.Get(); _Thanas = Thana.Get(); _Relations = Relation.Get(); _empContacts = new ObjectsTemplate(); 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 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 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) { double BonusAdjustAmount; double BonusSalaryItemAmount; double nBasicSalary = 0; double nGrossSalary = 0; List oemployees = Employee.Get(); Employee oemployee = null; BonusProcess oProssBonus = new BonusProcess(); oProssBonus.BonusProcessDetails = new ObjectsTemplate(); List setupTypes = SetupDetail.GetTypes(EnumParameterSetup.Bonus); ObjectsTemplate setupDetails = SetupDetail.GetParameters(EnumParameterSetup.Bonus); List bonusParameters = BonusParameter.Get(EnumStatus.Regardless); 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(); }); if (oemployee != null) { ObjectsTemplate oParams = BonusParameter.ApplicableParameters(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 = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate; oProssBonus.DisburseDate = Payroll.BO.SystemInformation.CurrentSysInfo.NextPayProcessDate; oProssBonus.IsDisburseWithSalary = IsDisburshWithSalry; oProssBonus.IsTaxProcess = IsTaxProcess; oProssBonus.UsedProcess = UsedProcess; EmployeeGradeSalary ogs = EmployeeGradeSalary.GetBasicOnDate(oemployee.ID, GlobalFunctions.LastDateOfMonth(SystemInformation.CurrentSysInfo.LastPayProcessDate)); 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 = 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; 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 oEmployees = new ObjectsTemplate(); 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; } #endregion #region OPIDate private void ImportOPIDataAfterProcess(DataUploadColumnDefinition _columnDefinition) { List oemployees = Employee.GetAllEmps(); List _oOPIProcess = OPIProcess.Get(SystemInformation.CurrentSysInfo.NextPayProcessDate); OpiParameter _opParam = null; Employee oemployee = null; ObjectsTemplate oopiParameterInd = new ObjectsTemplate(); OpiParameterIndividual oOPIParameter = null; int nRow = 0; _oPIProcessDetailItem = new ObjectsTemplate(); _incomeTaxes = new ObjectsTemplate(); 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 oOpIProcessDetails = new List(); 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 oemployees = Employee.Get(); List _adparams = ADParameter.Get(EnumStatus.Active, EnumAllowOrDeduct.Deduction); ADParameter _adparam = null; Employee oemployee = null; _oPIParameterIndividual = new ObjectsTemplate(); OpiParameterIndividual oopiParamIndividual = null; ObjectsTemplate 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 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); } } public void ImportOPIData(DataUploadColumnDefinition _columnDefinition) { List oemployees = Employee.Get(); ObjectsTemplate oOPIDetailItems = new ObjectsTemplate(); _incomeTaxes = new ObjectsTemplate(); 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 oOPIParamIndividuals = new ObjectsTemplate(); List oemployees = Employee.Get(); ObjectsTemplate oPIParameters = OpiParameter.Get(); _incomeTaxes = new ObjectsTemplate(); Employee oemployee = null; int nRow = 0; double tempAmount = 0; try { List 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 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); } } #endregion #region Import Employee CC Information public void ImportEmpCC(DataUploadColumnDefinition _columnDefinition) { List oemployees = Employee.Get(); Employee oemployee = null; List oCostcenters = Costcenter.Get(); Costcenter oCC = null; oempCostCenters = new ObjectsTemplate(); 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 oemployees = Employee.Get(); Employee oemployee = null; _PFTransactions = new List(); 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 oemployees = Employee.Get(); Employee oemployee = null; _TempEmployees = new ObjectsTemplate(); 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 oemployees = Employee.Get(); EmployeeTaxInvestment oEmpTaxInvest = null; _EmployeeTaxInvestments = new ObjectsTemplate(); 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 oemployees = Employee.GetAllEmps(); TaxChallan oTaxChallan = null; _TaxChallans = new ObjectsTemplate(); 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 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(); 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 ImportEmpContactInfo(DataTable oDTable) { int nRow = 0; EmpContact oEmpContact = null; ObjectsTemplate oParmanentsThanas = null; ObjectsTemplate 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ImportAllEmpGeneralInfo(DataTable oDTable) { int nRow = 0; try { _HREmployees = new ObjectsTemplate(); if (_errorOrSuccessList == null) _errorOrSuccessList = new List(); 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 oParmanentsThanas = null; ObjectsTemplate 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 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 ImportAllEmpGeneralInForNavana(DataTable oDTable) { int nRow = 0; try { //ObjectsTemplate oEmployee _CheckHREmployees = HREmployee.Get(); EmpContact oEmpContact = null; ObjectsTemplate oParmanentsThanas = null; ObjectsTemplate oPresentThanas = null; //HREmployee oHREmployee=null; ObjectsTemplate oEmpContacts = new ObjectsTemplate(); _HREmployees = new ObjectsTemplate(); if (_errorOrSuccessList == null) _errorOrSuccessList = new List(); _HREmployee.Contacts = new ObjectsTemplate(); 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(); oHREmp.Childrens = new ObjectsTemplate(); oHREmp.Experiences = new ObjectsTemplate(); oHREmp.Spouses = new ObjectsTemplate(); oHREmp.Experiences = new ObjectsTemplate(); oHREmp.Trainings = new ObjectsTemplate(); oHREmp.Academics = new ObjectsTemplate(); oHREmp.Achievement = new ObjectsTemplate(); oHREmp.OtherTalents = new ObjectsTemplate(); oHREmp.CurricularActivities = new ObjectsTemplate(); oHREmp.Hobbys = new ObjectsTemplate(); oHREmp.References = new ObjectsTemplate(); oHREmp.Allergies = new ObjectsTemplate(); oHREmp.Publications = new ObjectsTemplate(); oHREmp.Nominees = new ObjectsTemplate(); oHREmp.Hospitalizations = new ObjectsTemplate(); oHREmp.Guarantors = new ObjectsTemplate(); oHREmp.WorkPlanSetup = new EmpWorkPlanSetup(); oHREmp.EmpLanguages = new ObjectsTemplate(); oHREmp.EmpRelatives = new ObjectsTemplate(); oHREmp.EmpMemberships = new ObjectsTemplate(); oHREmp.EmpRelations = new ObjectsTemplate(); oHREmp.EmpHRQuestionAnswers = new ObjectsTemplate(); oHREmp.CreditCards = new ObjectsTemplate(); _HREmployee = oHREmp; _HREmployee.Contacts = new ObjectsTemplate(); //if(_HREmployee.Contacts.Count>0) //{ //_HREmployee.Contacts = new ObjectsTemplate(); //} } else { //_HREmployee = oHREmp; //_HREmployee.Contacts = new ObjectsTemplate(); //_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 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 oParmanentsThanas = null; ObjectsTemplate oPresentThanas = null; ObjectsTemplate oEmpContacts = new ObjectsTemplate(); _HREmployees = new ObjectsTemplate(); if (_errorOrSuccessList == null) _errorOrSuccessList = new List(); _HREmployee.Contacts = new ObjectsTemplate(); 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(); oHREmp.Childrens = new ObjectsTemplate(); oHREmp.Experiences = new ObjectsTemplate(); oHREmp.Spouses = new ObjectsTemplate(); oHREmp.Experiences = new ObjectsTemplate(); oHREmp.Trainings = new ObjectsTemplate(); oHREmp.Academics = new ObjectsTemplate(); oHREmp.Achievement = new ObjectsTemplate(); oHREmp.OtherTalents = new ObjectsTemplate(); oHREmp.CurricularActivities = new ObjectsTemplate(); oHREmp.Hobbys = new ObjectsTemplate(); oHREmp.References = new ObjectsTemplate(); oHREmp.Allergies = new ObjectsTemplate(); oHREmp.Publications = new ObjectsTemplate(); oHREmp.Nominees = new ObjectsTemplate(); oHREmp.Hospitalizations = new ObjectsTemplate(); oHREmp.Guarantors = new ObjectsTemplate(); oHREmp.WorkPlanSetup = new EmpWorkPlanSetup(); oHREmp.EmpLanguages = new ObjectsTemplate(); oHREmp.EmpRelatives = new ObjectsTemplate(); oHREmp.EmpMemberships = new ObjectsTemplate(); oHREmp.EmpRelations = new ObjectsTemplate(); oHREmp.EmpHRQuestionAnswers = new ObjectsTemplate(); oHREmp.CreditCards = new ObjectsTemplate(); _HREmployee = oHREmp; _HREmployee.Contacts = new ObjectsTemplate(); //if(_HREmployee.Contacts.Count>0) //{ //_HREmployee.Contacts = new ObjectsTemplate(); //} } else { //_HREmployee = oHREmp; //_HREmployee.Contacts = new ObjectsTemplate(); //_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(); 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 ImportCVExperienceData(DataTable oDTable) { int nRow = 0; try { if (_errorOrSuccessList == null) _errorOrSuccessList = new List(); 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 ImportCVReferredByData(DataTable oDTable) { int nRow = 0; try { if (_errorOrSuccessList == null) _errorOrSuccessList = new List(); 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 ImportCVEductionalQualificationData(DataTable oDTable) { int nRow = 0; try { if (_errorOrSuccessList == null) _errorOrSuccessList = new List(); 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); } } #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 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 hrEmps = HREmployee.Get(); ObjectsTemplate ocyclies = new ObjectsTemplate(); 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.Save(); } 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 categorys, ObjectsTemplate grades, ObjectsTemplate departments, ObjectsTemplate locations, ObjectsTemplate religions, ObjectsTemplate designations, ObjectsTemplate banks, ObjectsTemplate branches, ObjectsTemplate employees, ObjectsTemplate accessCards) { SystemDataUpload.Service.Save(categorys, grades, departments, locations, religions, designations, banks, branches, employees, accessCards); } #endregion #region Save Employee Tax Data public void SaveEmpTaxData(ObjectsTemplate 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 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 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 oEmployees) { try { foreach (HREmployee oItem in oEmployees) { oItem.Save(null); } } catch (Exception ex) { throw new ServiceException(ex.Message); } } public void SaveHREmpContactData(ObjectsTemplate 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); } } #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(); _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 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(); } 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 deptConfig = ocManager.GetChilds("department", EnumConfigurationType.Logic); ObjectsTemplate deptTiers = ocManager.GetChilds(deptConfig, "tiernames"); ObjectsTemplate locConfig = ocManager.GetChilds("location", EnumConfigurationType.Logic); ObjectsTemplate 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(); /// /// Process category whether it is already in the system or new category /// #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 /// /// Process grade whether it is already in the system or new grade /// /// #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 /// /// Process Department whether it is already in the system or new location /// #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 /// /// Process location whether it is already in the system or new location /// #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 /// /// Process religion whether it is already in the system or new religion /// #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 /// /// Process designation whether it is already in the system or new designation /// #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; } SystemDataUpload.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 itemsToSave = oemployee.EmployeeGradeSalary.process(); oemployee.EmployeeGradeSalarys = new ObjectsTemplate(); 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(); 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(); 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 oTaxMergeMasters = new ObjectsTemplate(); oTaxMergeMasters = TaxMergeMaster.GetbyTaxParameter(SystemInformation.CurrentSysInfo.TaxParamID); Employee oemployee = null; IncomeTax oIncomeTax = null; TaxMergeMaster oTaxMergeMaster = null; _employees = Employee.Get(); ObjectsTemplate processItems = ProcessItem.Get(); #region Refresh Objects int nRow = 0; ObjectsTemplate 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 oTaxMergeMasters = new ObjectsTemplate(); oTaxMergeMasters = TaxMergeMaster.GetbyTaxParameter(SystemInformation.CurrentSysInfo.TaxParamID); Employee oemployee = null; IncomeTax oIncomeTax = null; TaxMergeMaster oTaxMergeMaster = null; _employees = Employee.Get(); ObjectsTemplate processItems = ProcessItem.Get(); #region Refresh Objects int nRow = 0; ObjectsTemplate 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 ISystemDataUploadServices public interface ISystemDataUploadService { DataTable LoadData(string filePath); DataTable LoadData(string filePath, string sheetName); DataTable LoadExcelData(string filePath, string sheetName); //DataSet LoadExcelData(string filePath, List sheetName); void Save(ObjectsTemplate categorys, ObjectsTemplate grades, ObjectsTemplate departments, ObjectsTemplate locations, ObjectsTemplate religions, ObjectsTemplate designations, ObjectsTemplate banks, ObjectsTemplate branches, ObjectsTemplate employees, ObjectsTemplate accessCards); DataSet LoadViewData(); } #endregion }