protected void Delete_Click(object sender, EventArgs e) { ArrayList list = new ArrayList(); foreach (DataListItem item in Repeater.Items) { CheckBox c = (CheckBox)item.FindControl("DeleteItem"); HtmlInputHidden h = (HtmlInputHidden)item.FindControl("PayScaleID"); if (c.Checked) { EPayScale obj = new EPayScale(); obj.PayScaleID = Int32.Parse(h.Value); list.Add(obj); } } foreach (EPayScale obj in list) { if (EPayScale.db.select(dbConn, obj)) { WebUtils.StartFunction(Session, FUNCTION_CODE); db.delete(dbConn, obj); WebUtils.EndFunction(dbConn); } } view = loadData(info, db, Repeater); //Response.Redirect(Request.Url.LocalPath); }
protected void Repeater_ItemDataBound(object sender, DataListItemEventArgs e) { HROne.Common.WebUtility.WebControlsLocalization(Session, e.Item.Controls); e.Item.FindControl("DeleteItem").Visible = IsAllowEdit; if (e.Item.ItemIndex == Repeater.EditItemIndex) { ebinding = new Binding(dbConn, db); ebinding.add((HtmlInputHidden)e.Item.FindControl("PayScaleID")); ebinding.add((TextBox)e.Item.FindControl("SchemeCode")); ebinding.add((TextBox)e.Item.FindControl("Capacity")); ebinding.add((TextBox)e.Item.FindControl("FirstPoint")); ebinding.add((TextBox)e.Item.FindControl("MidPoint")); ebinding.add((TextBox)e.Item.FindControl("LastPoint")); ebinding.init(Request, Session); EPayScale obj = new EPayScale(); db.toObject(((DataRowView)e.Item.DataItem).Row, obj); Hashtable values = new Hashtable(); db.populate(obj, values); ebinding.toControl(values); } else { e.Item.FindControl("Edit").Visible = IsAllowEdit; HtmlInputHidden h = (HtmlInputHidden)e.Item.FindControl("PayScaleID"); h.Value = ((DataRowView)e.Item.DataItem)["PayScaleID"].ToString(); } }
protected void Repeater_ItemCommand(object source, DataListCommandEventArgs e) { Button b = (Button)e.CommandSource; if (b.ID.Equals("Edit")) { Repeater.EditItemIndex = e.Item.ItemIndex; view = loadData(info, db, Repeater); WebUtils.SetEnabledControlSection(AddPanel, false); } else if (b.ID.Equals("Cancel")) { Repeater.EditItemIndex = -1; view = loadData(info, db, Repeater); WebUtils.SetEnabledControlSection(AddPanel, true); } else if (b.ID.Equals("Save")) { ebinding = new Binding(dbConn, db); ebinding.add((HtmlInputHidden)e.Item.FindControl("PayScaleID")); //ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("StatutoryHolidayDate")).TextBox, "StatutoryHolidayDate")); ebinding.add((TextBox)e.Item.FindControl("SchemeCode")); ebinding.add((TextBox)e.Item.FindControl("Capacity")); ebinding.add((TextBox)e.Item.FindControl("FirstPoint")); ebinding.add((TextBox)e.Item.FindControl("MidPoint")); ebinding.add((TextBox)e.Item.FindControl("LastPoint")); ebinding.init(Request, Session); EPayScale obj = new EPayScale(); Hashtable values = new Hashtable(); PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); ebinding.toValues(values); db.validate(errors, values); if (!errors.isEmpty()) { return; } db.parse(values, obj); //if (!AppUtils.checkDuplicate(dbConn, db, obj, errors, "PayScaleID")) // return; WebUtils.StartFunction(Session, FUNCTION_CODE); db.update(dbConn, obj); WebUtils.EndFunction(dbConn); Repeater.EditItemIndex = -1; view = loadData(info, db, Repeater); WebUtils.SetEnabledControlSection(AddPanel, true); } }
protected void Add_Click(object sender, EventArgs e) { Repeater.EditItemIndex = -1; EPayScale c = new EPayScale(); Hashtable values = new Hashtable(); binding.toValues(values); PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); db.validate(errors, values); if (!errors.isEmpty()) { return; } db.parse(values, c); AND andFilterTerm = new AND(); andFilterTerm.add(new Match("SchemeCode", AppUtils.Encode(EPayScale.db.getField("SchemeCode"), c.SchemeCode))); andFilterTerm.add(new Match("Capacity", AppUtils.Encode(EPayScale.db.getField("Capacity"), c.Capacity))); if (!AppUtils.checkDuplicate(dbConn, db, c, errors, "Capacity", andFilterTerm)) { return; } WebUtils.StartFunction(Session, FUNCTION_CODE); db.insert(dbConn, c); WebUtils.EndFunction(dbConn); SchemeCode.Text = string.Empty; Capacity.Text = string.Empty; FirstPoint.Text = "0.00"; MidPoint.Text = "0.00"; LastPoint.Text = "0.00"; view = loadData(info, db, Repeater); }
protected void RefreshPoint() { PointSelect.Items.Clear(); if (SchemeCode.SelectedIndex > 0 && CapacitySelect.SelectedIndex > 0) { DBFilter filter = new DBFilter(); filter.add(new Match("SchemeCode", AppUtils.Encode(EPayScale.db.getField("SchemeCode"), SchemeCode.SelectedValue))); filter.add(new Match("Capacity", AppUtils.Encode(EPayScale.db.getField("Capacity"), CapacitySelect.SelectedValue))); ArrayList m_payscaleList = EPayScale.db.select(dbConn, filter); if (m_payscaleList.Count > 0) { EPayScale m_payscale = (EPayScale)m_payscaleList[0]; DBFilter m_pointsFilter = new DBFilter(); OR m_OR = new OR(); m_pointsFilter.add(new Match("SchemeCode", AppUtils.Encode(EPayScaleMap.db.getField("SchemeCode"), m_payscale.SchemeCode))); m_pointsFilter.add(new Match("Point", ">=", m_payscale.FirstPoint)); m_pointsFilter.add(new Match("Point", "<=", m_payscale.LastPoint)); if (EmpRPEffFr.Value != "") { m_pointsFilter.add(new Match("EffectiveDate", "<=", DateTime.Parse(EmpRPEffFr.Value))); m_OR.add(new Match("ExpiryDate", ">=", DateTime.Parse(EmpRPEffFr.Value))); m_OR.add(new NullTerm("ExpiryDate")); } else { m_pointsFilter.add(new Match("EffectiveDate", "<=", AppUtils.ServerDateTime())); m_OR.add(new Match("ExpiryDate", ">=", AppUtils.ServerDateTime())); m_OR.add(new NullTerm("ExpiryDate")); } m_pointsFilter.add(m_OR); foreach (EPayScaleMap m_point in EPayScaleMap.db.select(dbConn, m_pointsFilter)) { PointSelect.Items.Add(m_point.Point.ToString("0.00")); } } } }
protected void btnUpload_Click(object sender, EventArgs e) { PageErrors errors = PageErrors.getErrors(db, Page.Master); errors.clear(); if (BatchFile.HasFile) { string strTmpFolder = HROne.Common.Folder.GetOrCreateSessionTempFolder(Session.SessionID).FullName;; //Environment.GetFolderPath(Environment.SpecialFolder.InternetCache); string strTmpFile = System.IO.Path.Combine(strTmpFolder, AppUtils.ServerDateTime().ToString("~yyyyMMddHHmmss_") + BatchFile.FileName); BatchFile.SaveAs(strTmpFile); ArrayList pendingList = new ArrayList(); try { DataTable rawDataTable = HROne.Import.ExcelImport.parse(strTmpFile, string.Empty).Tables[TABLE_NAME]; if (rawDataTable.Columns.Contains("Scheme Code") && rawDataTable.Columns.Contains("Capacity") && rawDataTable.Columns.Contains("First Point") && rawDataTable.Columns.Contains("Mid Point") && rawDataTable.Columns.Contains("Last Point")) { int row_count = 0; Decimal point; //int id; foreach (DataRow row in rawDataTable.Rows) { row_count++; EPayScale c = new EPayScale(); if (!row.IsNull("Scheme Code")) { c.SchemeCode = ((String)row["Scheme Code"]).Trim(); } else { errors.addError("Missing Scheme Code in row " + row_count.ToString()); if (errors.errors.Count > 10) { return; } } if (!row.IsNull("Capacity")) { c.Capacity = ((String)row["Capacity"]).Trim(); } else { errors.addError("Missing Capacity in row " + row_count.ToString()); if (errors.errors.Count > 10) { return; } } if (!row.IsNull("First Point") && Decimal.TryParse(((String)row["First Point"]), out point)) { c.FirstPoint = point; } else { errors.addError("Missing First Point in row " + row_count.ToString()); if (errors.errors.Count > 10) { return; } } if (!row.IsNull("Mid Point") && Decimal.TryParse(((String)row["Mid Point"]), out point)) { c.MidPoint = point; } else { errors.addError("Missing Mid Point in row " + row_count.ToString()); if (errors.errors.Count > 10) { return; } } if (!row.IsNull("Last Point") && Decimal.TryParse(((String)row["Last Point"]), out point)) { c.LastPoint = point; } else { errors.addError("Missing Mid Point in row " + row_count.ToString()); if (errors.errors.Count > 10) { return; } } pendingList.Add(c); } } else { errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE); } } catch (Exception) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE); } pendingList.Sort(new PayScaleComparer()); if (pendingList.Count > 0) { try { dbConn.BeginTransaction(); WebUtils.StartFunction(Session, FUNCTION_CODE); DBFilter filter = sbinding.createFilter(); filter.add("SchemeCode", true); filter.add("Capacity", true); ArrayList currentList = EPayScale.db.select(dbConn, filter); foreach (EPayScale currentItem in currentList) { EPayScale updateItem = null; foreach (EPayScale pendingItem in pendingList) { if (pendingItem.SchemeCode.Equals(currentItem.SchemeCode) && pendingItem.Capacity.Equals(currentItem.Capacity)) { updateItem = pendingItem; if (//!currentItem.PayScaleCDesc.Equals(pendingItem.PayScaleCDesc) || !currentItem.FirstPoint.Equals(pendingItem.FirstPoint) || !currentItem.MidPoint.Equals(pendingItem.MidPoint) || !currentItem.LastPoint.Equals(pendingItem.LastPoint)) { //currentItem.FirstPoint = pendingItem.FirstPoint; //currentItem.MidPoint = pendingItem.MidPoint; //currentItem.LastPoint = pendingItem.LastPoint; EPayScale.db.update(dbConn, currentItem); } break; } } if (updateItem != null) { pendingList.Remove(updateItem); } else { if (!EPayScale.db.delete(dbConn, currentItem)) { // failed to delete } } } foreach (EPayScale insertItem in pendingList) { AND andFilterTerm = new AND(); andFilterTerm.add(new Match("SchemeCode", insertItem.SchemeCode)); andFilterTerm.add(new Match("Capacity", insertItem.Capacity)); //if (!AppUtils.checkDuplicate(dbConn, db, insertItem, errors, "Capacity", andFilterTerm)) //{ // //errors.addError("Duplicated Rank Description : " + insertItem.PayScaleDesc); // break; //} try { // throw new SqlException(); EPayScale.db.insert(dbConn, insertItem); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Fail to clear temp table: " + ex.Message); } } if (errors.errors.Count > 0) { dbConn.RollbackTransaction(); } else { dbConn.CommitTransaction(); } WebUtils.EndFunction(dbConn); } catch (Exception ex) { errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE); dbConn.RollbackTransaction(); WebUtils.EndFunction(dbConn); } } else { errors.addError(HROne.Translation.PageErrorMessage.ERROR_NO_RECORD_IMPORT); } System.IO.File.Delete(strTmpFile); } else { errors.addError(HROne.Translation.PageErrorMessage.ERROR_INVALID_FILE); } Repeater.EditItemIndex = -1; view = loadData(info, db, Repeater); if (errors.isEmpty()) { errors.addError(HROne.Translation.PageMessage.IMPORT_SUCCESSFUL); } }
protected bool ValidateBusinessRule(ESalaryIncrementBatchDetail inputObject, out string errorMessage) { // validate if new point is .5 or .0 if (inputObject.NewPoint % Decimal.One != (decimal)0.5 && inputObject.NewPoint % Decimal.One != Decimal.Zero) { errorMessage = String.Format("Point({0}) must be a mupltiple of 0.5.", new string[] { inputObject.NewPoint.ToString("0.00") }); return(false); } if (inputObject.CurrentPoint + ALLOWABLE_POINT_CHANGE_IN_BACKPAY < inputObject.NewPoint || inputObject.CurrentPoint - ALLOWABLE_POINT_CHANGE_IN_BACKPAY > inputObject.NewPoint) { errorMessage = String.Format("Point change violation. New Point ({0}) is cannot be 0.5 point more / less than the Original Point({1})", new string[] { inputObject.NewPoint.ToString("0.00"), inputObject.CurrentPoint.ToString("0.00") }); return(false); } if (inputObject.SchemeCode != "" && inputObject.Capacity != "" && inputObject.CurrentPoint >= 0) { DBFilter m_recurringFilter = new DBFilter(); m_recurringFilter.add(new NullTerm("EmpRPEffTo")); m_recurringFilter.add(new Match("EmpID", inputObject.EmpID)); string m_schemeCode = AppUtils.Encode(EEmpRecurringPayment.db.getField("SchemeCode"), inputObject.SchemeCode); string m_capacity = AppUtils.Encode(EEmpRecurringPayment.db.getField("Capacity"), inputObject.Capacity); m_recurringFilter.add(new Match("SchemeCode", m_schemeCode)); m_recurringFilter.add(new Match("Capacity", m_capacity)); m_recurringFilter.add(new Match("Point", inputObject.CurrentPoint)); DBFilter m_paymentTypeFilter = new DBFilter(); m_paymentTypeFilter.add(new Match("PaymentTypeCode", "BASICSAL")); DBFilter m_paymentCodeFilter = new DBFilter(); m_paymentCodeFilter.add(new IN("PaymentTypeID", "SELECT PaymentTypeID FROM PaymentType", m_paymentTypeFilter)); m_recurringFilter.add(new IN("PayCodeID", "SELECT PaymentCodeID FROM PaymentCode", m_paymentCodeFilter)); m_recurringFilter.add("EmpRPID", false); ArrayList m_recurringList = EEmpRecurringPayment.db.select(dbConn, m_recurringFilter); if (m_recurringList.Count > 0) // recurring payment matched { EEmpRecurringPayment m_recurringPayment = (EEmpRecurringPayment)m_recurringList[0]; // cross check if payscale is out of range DBFilter m_payScaleFilter = new DBFilter(); m_payScaleFilter.add(new Match("SchemeCode", m_schemeCode)); m_payScaleFilter.add(new Match("Capacity", m_capacity)); ArrayList m_payScaleList = EPayScale.db.select(dbConn, m_payScaleFilter); if (m_payScaleList.Count > 0) { EPayScale m_payScale = (EPayScale)m_payScaleList[0]; if (inputObject.NewPoint < m_payScale.FirstPoint || inputObject.NewPoint > m_payScale.LastPoint) { errorMessage = string.Format("New Point({0}) is out of range({1}-{2}) according to PayScale Setup.", new string[] { inputObject.NewPoint.ToString("0.00"), m_payScale.FirstPoint.ToString("0.00"), m_payScale.LastPoint.ToString("0.00") }); return(false); } } } else { errorMessage = string.Format("Recurring Payment not matched. (Scheme Code={0}, Capacity={1}, Point={2})", new string[] { inputObject.SchemeCode, inputObject.Capacity, inputObject.CurrentPoint.ToString("0.00") }); return(false); } } else { errorMessage = string.Format("Recurring Payment not matched. (Scheme Code={0}, Capacity={1}, Point={2})", new string[] { inputObject.SchemeCode, inputObject.Capacity, inputObject.CurrentPoint.ToString("0.00") }); return(false); } errorMessage = ""; return(true); }