public void GenerateStandardBonusData(ArrayList pEmpList) { //double m_targetSalary = 0; EBonusProcess m_bonusProcess = EBonusProcess.GetObject(dbConn, m_BonusProcessID); if (m_bonusProcess != null) { foreach (EEmpPersonalInfo empInfo in pEmpList) { if (EEmpPersonalInfo.db.select(dbConn, empInfo) && empInfo.EmpProbaLastDate <= m_bonusProcess.BonusProcessPeriodTo) { EEmpRecurringPayment m_recurringPayment = GetSalaryMonthRecurringPayment(empInfo.EmpID, m_bonusProcess.BonusProcessSalaryMonth); if (m_recurringPayment != null) { EEmpBonusProcess m_empBonusProcess = new EEmpBonusProcess(); m_empBonusProcess.BonusProcessID = m_BonusProcessID; m_empBonusProcess.EmpID = empInfo.EmpID; m_empBonusProcess.EmpBonusProcessTargetSalary = m_recurringPayment.EmpRPBasicSalary; System.TimeSpan m_totalDaysInPeriod = m_bonusProcess.BonusProcessPeriodTo.Subtract(m_bonusProcess.BonusProcessPeriodFr); System.TimeSpan m_totalDaysJoint = m_bonusProcess.BonusProcessPeriodTo.Subtract((empInfo.EmpDateOfJoin < m_bonusProcess.BonusProcessPeriodFr) ? m_bonusProcess.BonusProcessPeriodFr : empInfo.EmpDateOfJoin); m_empBonusProcess.EmpBonusProcessBonusProportion = Math.Round(Convert.ToDouble(m_totalDaysJoint.Days + 1) / Convert.ToDouble(m_totalDaysInPeriod.Days + 1), 4); m_empBonusProcess.EmpBonusProcessType = "S"; m_empBonusProcess.EmpBonusProcessBonusAmount = Math.Round(m_recurringPayment.EmpRPBasicSalary * m_empBonusProcess.EmpBonusProcessBonusProportion * m_bonusProcess.BonusProcessStdRate, 2); EEmpBonusProcess.db.insert(dbConn, m_empBonusProcess); } } } } }
public void ImportStandardEmpBonusProcess(int pBonussProcessID, DataTable pRawDataTable, PageErrors pErrors) { if (!pRawDataTable.Columns.Contains(FIELD_EMP_NO) || !pRawDataTable.Columns.Contains(FIELD_BONUS_AMOUNT) || !pRawDataTable.Columns.Contains(FIELD_TARGET_SALARY) || !pRawDataTable.Columns.Contains(FIELD_STD_RATE)) { pErrors.addError("Invalid file selected"); return; } int m_uploadedCount = 0; int m_skippedCount = 0; int m_empID = 0; double m_bonusAmount = 0; double m_targetSalary = 0; string m_empNo = ""; bool m_dbUpdated = false; foreach (DataRow m_row in pRawDataTable.Rows) { m_empNo = m_row[FIELD_EMP_NO].ToString(); if (!string.IsNullOrEmpty(m_empNo)) { if (double.TryParse(m_row[FIELD_BONUS_AMOUNT].ToString(), out m_bonusAmount) && double.TryParse(m_row[FIELD_TARGET_SALARY].ToString(), out m_targetSalary)) { m_empID = Parse.GetEmpID(dbConn, m_empNo, m_UserID); if (m_empID > 0) { // check if the empID exists in the current EmpBonusProcess DBFilter m_filter = new DBFilter(); m_filter.add(new Match("BonusProcessID", m_BonusProcessID)); m_filter.add(new Match("EmpID", m_empID)); m_filter.add(new Match("EmpBonusProcessType", "S")); ArrayList m_list = EEmpBonusProcess.db.select(dbConn, m_filter); if (m_list.Count > 0) { EEmpBonusProcess m_empBonusProcess = (EEmpBonusProcess)m_list[0]; if (m_bonusAmount <= 0) { m_dbUpdated = EEmpBonusProcess.db.delete(dbConn, m_empBonusProcess); } else { m_empBonusProcess.EmpBonusProcessTargetSalary = m_targetSalary; m_empBonusProcess.EmpBonusProcessBonusAmount = m_bonusAmount; m_dbUpdated = EEmpBonusProcess.db.update(dbConn, m_empBonusProcess); } } else { // add new if (m_bonusAmount > 0) { EEmpBonusProcess m_newEmpBonusProcess = new EEmpBonusProcess(); m_newEmpBonusProcess.EmpID = m_empID; m_newEmpBonusProcess.BonusProcessID = m_BonusProcessID; m_newEmpBonusProcess.EmpBonusProcessType = "S"; m_newEmpBonusProcess.EmpBonusProcessTargetSalary = m_targetSalary; m_newEmpBonusProcess.EmpBonusProcessBonusAmount = m_bonusAmount; m_dbUpdated = EEmpBonusProcess.db.insert(dbConn, m_newEmpBonusProcess); } else { m_dbUpdated = false; } } if (m_dbUpdated) { m_uploadedCount++; } else { pErrors.addError("DB update failed. (Employee No.=" + m_empNo + ")"); m_skippedCount++; } } else { pErrors.addError("You are not authorized to handle specified employee (Employee No=" + m_empNo + ")"); } } else { m_skippedCount++; pErrors.addError("Employee Target Salary/Bonus Amount is not available (Employee No=" + m_empNo + ")"); } } } }