示例#1
0
    //Start 0000173, Miranda, 2015-04-26
    protected void Jump_Click(object sender, EventArgs e)
    {
        DBFilter dbFilter = new DBFilter();
        OR       orEmpNo  = new OR();

        orEmpNo.add(new Match("EmpNo", EmpNo.Text));
        DBFieldTranscoder transcoder = EEmpPersonalInfo.db.getField("EmpNo").transcoder;

        if (transcoder != null)
        {
            orEmpNo.add(new Match("EmpNo", transcoder.toDB(EmpNo.Text)));
        }
        dbFilter.add(orEmpNo);
        ArrayList list = EEmpPersonalInfo.db.select(dbConn, dbFilter);

        if (list.Count > 0)
        {
            HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/Emp_View.aspx?EmpID=" + ((EEmpPersonalInfo)list[0]).EmpID);
        }
        //Start 0000173, Miranda, 2015-06-03
        else
        {
            PageErrors errors = PageErrors.getErrors(EEmpPositionInfo.db, this.Master);
            errors.addError("Employee Not Found");
        }
        //End 0000173, Miranda, 2015-06-03
    }
示例#2
0
        public DBField(DBFieldAttribute dbFieldattribute, PropertyInfo propInfo)
        {
            this.dbFieldattribute = dbFieldattribute;
            this.propInfo         = propInfo;

            if (propInfo.PropertyType == typeof(DateTime) && string.IsNullOrEmpty(dbFieldattribute.format))
            {
                //  Set default DateTime format to "yyyy-MM-dd"
                dbFieldattribute.format = "yyyy-MM-dd";
            }

            this.validationAttributeList = new List <ValidationAttribute>();

            bool hasDataTypeValidationAttribute = false;


            foreach (Attribute a in propInfo.GetCustomAttributes(false))
            {
                if (a is DBFieldTranscoder)
                {
                    if (m_transcoder == null)
                    {
                        m_transcoder = (DBFieldTranscoder)a;
                    }
                    else
                    {
                        throw new Exception("Only 1 transcoder attribute is allowed");
                    }
                }
                if (a is RequiredAttribute)
                {
                    m_required = true;
                }
                if (a is ValidationAttribute)
                {
                    validationAttributeList.Add((ValidationAttribute)a);
                    if (a is DoubleAttribute && propInfo.PropertyType == typeof(double))
                    {
                        hasDataTypeValidationAttribute = true;
                    }
                    if (a is IntAttribute && propInfo.PropertyType == typeof(int))
                    {
                        hasDataTypeValidationAttribute = true;
                    }
                }
            }
            if (!hasDataTypeValidationAttribute)
            {
                if (propInfo.PropertyType == typeof(double))
                {
                    validationAttributeList.Add(new DoubleAttribute());
                }
                else if (propInfo.PropertyType == typeof(int))
                {
                    validationAttributeList.Add(new IntAttribute());
                }
            }
        }
示例#3
0
    public DataView loadData(ListInfo info, DBManager db, DataList repeater)
    {
        //DBFilter filter = sbinding.createFilter();

        DBFilter filter = new DBFilter();
        OR       m_OR   = new OR();

        DateTime m_asAtDate = new DateTime();

        if (DateTime.TryParse(AsAtDate.TextBox.Text, out m_asAtDate))
        {
            filter.add(new Match("EffectiveDate", "<=", m_asAtDate));
            m_OR.add(new Match("ExpiryDate", ">=", m_asAtDate));
            m_OR.add(new NullTerm("ExpiryDate"));
            filter.add(m_OR);
        }
        if (SchemeSelect.SelectedIndex > 0)
        {
            DBFieldTranscoder idTranscoder = EPayScale.db.getField("SchemeCode").transcoder;
            if (idTranscoder != null)
            {
                filter.add(new Match("SchemeCode", AppUtils.Encode(EPayScaleMap.db.getField("SchemeCode"), SchemeSelect.SelectedValue.ToString())));
            }
        }

        if (info != null && info.orderby != null && !info.orderby.Equals(""))
        {
            //filter.add(info.orderby, info.order);
        }
        else
        {
            info.orderby = "SchemeCode, Point";
            info.order   = false;
        }
        string select = "*";
        string from   = "from PayscaleMap ";

        DataTable table = WebUtils.GetDataTableFromSelectQueryWithFilter(dbConn, select, from, filter, info);

        view = new DataView(table);
        if (repeater != null)
        {
            repeater.DataSource = view;
            repeater.DataBind();
        }

        return(view);
    }
示例#4
0
    protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        DataRowView row = (DataRowView)e.Item.DataItem;
        CheckBox    cb  = (CheckBox)e.Item.FindControl("ItemSelect");

        WebFormUtils.LoadKeys(db, row, cb);
        cb.Checked = true;

        Label paymentCodeLabel = (Label)e.Item.FindControl("empRPPaymentCode");

        if (paymentCodeLabel != null)
        {
            if (row["PaymentCode"] != null && (string)row["PaymentCode"] != "")
            {
                DBFieldTranscoder transcoder = EPaymentCode.db.getField("PaymentCode").transcoder;

                paymentCodeLabel.Text = (string)transcoder.fromDB(row["PaymentCode"]);// (string)row["PaymentCode"];
            }
        }
    }
示例#5
0
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();

        // m_list determine if generation of Recurring Payment is necessary
        ArrayList m_list = EPayScaleMap.db.select(dbConn, new DBFilter());

        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("Effective Date") && rawDataTable.Columns.Contains("Expiry Date") &&
                    rawDataTable.Columns.Contains("Scheme Code") &&
                    rawDataTable.Columns.Contains("Point") && rawDataTable.Columns.Contains("Salary"))
                {
                    int      row_count = 0;
                    Decimal  m_point;
                    DateTime m_date;
                    Decimal  m_salary;

                    int id;
                    foreach (DataRow row in rawDataTable.Rows)
                    {
                        row_count++;

                        EPayScaleMap c = new EPayScaleMap();

                        if (!row.IsNull("Effective Date") && DateTime.TryParse(((String)row["Effective Date"]), out m_date))
                        {
                            c.EffectiveDate = m_date;
                        }
                        else
                        {
                            errors.addError("Missing Effective Date in row " + row_count.ToString());
                            if (!errors.isEmpty())
                            {
                                return;
                            }
                        }

                        if (!row.IsNull("Expiry Date") && DateTime.TryParse(((String)row["Expiry Date"]), out m_date))
                        {
                            c.ExpiryDate = m_date;
                        }

                        if (!row.IsNull("Scheme Code") && row["Scheme Code"].ToString().Trim() != "")
                        {
                            c.SchemeCode = row["Scheme Code"].ToString().Trim();
                        }
                        else
                        {
                            errors.addError("Missing Scheme Code in row " + row_count.ToString());
                            if (errors.errors.Count > 10)
                            {
                                return;
                            }
                        }

                        if (!row.IsNull("Point") && Decimal.TryParse(((String)row["Point"]), out m_point))
                        {
                            c.Point = m_point;
                        }
                        else
                        {
                            errors.addError("Missing Point in row " + row_count.ToString());
                            if (errors.errors.Count > 10)
                            {
                                return;
                            }
                        }

                        if (!row.IsNull("Salary") && Decimal.TryParse(((String)row["Salary"]), out m_salary))
                        {
                            c.Salary = m_salary;
                        }
                        else
                        {
                            errors.addError("Missing Salary 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);
            }

            if (errors.isEmpty())
            {
                try
                {
                    WebUtils.StartFunction(Session, FUNCTION_CODE);
                    dbConn.BeginTransaction();

                    foreach (EPayScaleMap c in pendingList)
                    {
                        // check existing point-salary-mapping
                        DBFilter filter = new DBFilter();
                        OR       m_OR   = new OR();

                        DBFieldTranscoder idTranscoder = EPayScale.db.getField("SchemeCode").transcoder;
                        if (idTranscoder != null)
                        {
                            filter.add(new Match("SchemeCode", idTranscoder.toDB(c.SchemeCode).ToString()));
                        }

                        //filter.add(new Match("SchemeCode", c.SchemeCode));
                        filter.add(new Match("Point", c.Point));
                        filter.add(new Match("EffectiveDate", "<=", c.EffectiveDate));

                        m_OR.add(new NullTerm("ExpiryDate"));
                        m_OR.add(new Match("ExpiryDate", ">=", c.EffectiveDate));
                        filter.add(m_OR);
                        filter.add("EffectiveDate", true);

                        ArrayList currentList = EPayScaleMap.db.select(dbConn, filter);

                        if (currentList.Count > 0)
                        {
                            foreach (EPayScaleMap m_currentItem in currentList)
                            {
                                if ((m_currentItem.ExpiryDate.Ticks != 0) && m_currentItem.ExpiryDate.CompareTo(c.EffectiveDate) < 0) // current expiry before new become effective
                                {
                                    ;
                                }
                                else if (m_currentItem.ExpiryDate.Ticks == 0)
                                {
                                    m_currentItem.ExpiryDate = c.EffectiveDate.AddDays(-1);
                                    EPayScaleMap.db.update(dbConn, m_currentItem);
                                }
                                else
                                {
                                    errors.addError("You are trying to insert a new point (" + c.SchemeCode + " - " + c.Point.ToString("0.00") + ") with invalid Effective Date(" + c.EffectiveDate.ToString("yyyy.MM.dd") + "). ");
                                    break;
                                }
                            }

                            if (errors.isEmpty())
                            {
                                EPayScaleMap.db.insert(dbConn, c);
                            }
                        }
                        else
                        {
                            EPayScaleMap.db.insert(dbConn, c);
                        }
                    }


                    if (!errors.isEmpty())
                    {
                        dbConn.RollbackTransaction();
                    }
                    else
                    {
                        if (m_list.Count > 0)
                        {
                            GenerateRecurringPayment();
                        }

                        dbConn.CommitTransaction();
                    }

                    WebUtils.EndFunction(dbConn);
                }
                catch (Exception)
                {
                    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);
        }
    }
示例#6
0
    public static bool ValidateUser(DatabaseConnection dbConn, string username, string encryptedPassword, bool throwException, out bool ChangePasswordRequired, out EESSUser user)
    {
        string message = string.Empty;

        ChangePasswordRequired = false;
        user = null;

        if (dbConn == null)
        {
            if (throwException)
            {
                message = HROne.Common.WebUtility.GetLocalizedString("Invalid User Name or Password");
                throw new Exception(message);
            }
            return(false);
        }

        DBFilter filter       = new DBFilter();
        OR       orEmpNoTerms = new OR();

        orEmpNoTerms.add(new Match("EmpNo", username));
        DBFieldTranscoder empNoTranscoder = EESSUser.db.getField("EmpNo").transcoder;

        if (empNoTranscoder != null)
        {
            orEmpNoTerms.add(new Match("EmpNo", empNoTranscoder.toDB(username.ToUpper())));
        }
        filter.add(orEmpNoTerms);
        ArrayList list = EESSUser.db.select(dbConn, filter);

        if (list.Count == 0)
        {
            if (throwException)
            {
                message = HROne.Common.WebUtility.GetLocalizedString("Invalid User Name / Password");
                throw new Exception(message);
            }
            return(false);
        }
        {
            user = (EESSUser)list[0];

            ChangePasswordRequired = false;
            if (string.IsNullOrEmpty(user.EmpPW))
            {
                ChangePasswordRequired = true;
                if (!(user.EmpHKID == "()") && !string.IsNullOrEmpty(user.EmpHKID))
                {
                    user.EmpPW = WebUtils.PasswordHash(user.EmpHKID.Substring(0, (user.EmpHKID.Length - 3)));
                }
                else
                {
                    user.EmpPW = WebUtils.PasswordHash(user.EmpPassportNo);
                }
            }
            //if (user.EmpPW == WebUtils.PasswordHash(user.EmpPassportNo))
            //{
            //    if (!user.EmpPW.Equals(Password.Text))
            //    {
            //        Prompt.Text = "Invalid User Name / Password";
            //        return;
            //    }
            //    else
            //    {
            //        user.EmpPW = WebUtils.PasswordHash(Password.Text);
            //        EESSUser.db.update(user);
            //    }
            //}
            //else
            if (!user.EmpPW.Equals(encryptedPassword))
            {
                if (throwException)
                {
                    message = HROne.Common.WebUtility.GetLocalizedString("Invalid User Name / Password");
                    throw new Exception(message);
                }
                return(false);
            }

            EEmpTermination empTerm = EEmpTermination.GetObjectByEmpID(dbConn, user.EmpID);
            if (empTerm != null)
            {
                if (throwException)
                {
                    if (empTerm.EmpTermLastDate < AppUtils.ServerDateTime().Date)
                    {
                        message = HROne.Common.WebUtility.GetLocalizedString("User is terminated");
                        throw new Exception(message);
                    }
                    return(false);
                }
            }
        }



        return(true);
    }