Ejemplo n.º 1
0
    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("PayScaleMapID");
            if (c.Checked)
            {
                EPayScaleMap obj = new EPayScaleMap();
                obj.PayScaleMapID = Int32.Parse(h.Value);
                list.Add(obj);
            }
        }
        foreach (EPayScaleMap obj in list)
        {
            if (EPayScaleMap.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);
    }
Ejemplo n.º 2
0
    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("PayScaleMapID"));
            //ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("StatutoryHolidayDate")).TextBox, "StatutoryHolidayDate"));
            ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("EffectiveDate")).TextBox, "EffectiveDate"));
            ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("ExpiryDate")).TextBox, "ExpiryDate"));
//            ebinding.add((TextBox)e.Item.FindControl("EffectiveDate"));
//            ebinding.add((TextBox)e.Item.FindControl("ExpiryDate"));
            ebinding.add((TextBox)e.Item.FindControl("SchemeCode"));
            ebinding.add((TextBox)e.Item.FindControl("Point"));
            ebinding.add((TextBox)e.Item.FindControl("Salary"));
            ebinding.init(Request, Session);

            EPayScaleMap obj    = new EPayScaleMap();
            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, "Point", new Match("EffectiveDate", obj.EffectiveDate)))
            {
                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);
        }
    }
Ejemplo n.º 3
0
    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("PayScaleMapID"));
            //ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("StatutoryHolidayDate")).TextBox, "StatutoryHolidayDate"));
            ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("EffectiveDate")).TextBox, EffectiveDate.ID));
            ebinding.add(new TextBoxBinder(db, ((WebDatePicker)e.Item.FindControl("ExpiryDate")).TextBox, ExpiryDate.ID));
            ebinding.add((TextBox)e.Item.FindControl("SchemeCode"));
            ebinding.add((TextBox)e.Item.FindControl("Point"));
            ebinding.add((TextBox)e.Item.FindControl("Salary"));
            ebinding.init(Request, Session);

            EPayScaleMap obj = new EPayScaleMap();
            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("PayScaleMapID");
            h.Value = ((DataRowView)e.Item.DataItem)["PayScaleMapID"].ToString();
        }
    }
Ejemplo n.º 4
0
    protected void Add_Click(object sender, EventArgs e)
    {
        Repeater.EditItemIndex = -1;
        EPayScaleMap c = new EPayScaleMap();

        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);
        if (!AppUtils.checkDuplicate(dbConn, db, c, errors, "Point"))
        {
            return;
        }

        WebUtils.StartFunction(Session, FUNCTION_CODE);
        db.insert(dbConn, c);
        WebUtils.EndFunction(dbConn);

        EffectiveDate.Value = string.Empty;
        ExpiryDate.Value    = string.Empty;
        Point.Text          = "0.00";
        Salary.Text         = "0.00";

        view = loadData(info, db, Repeater);
    }
Ejemplo n.º 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);
        }
    }
Ejemplo n.º 6
0
        public override DataTable UploadToTempDatabase(string Filename, int UserID, string ZipPassword)
        {
            DataTable rawDataTable = HROne.Import.ExcelImport.parse(Filename, ZipPassword).Tables[0];
            ArrayList results      = new ArrayList();
            int       rowCount     = 0;
            string    m_errorMessage;
            string    m_colName;

            try
            {
                dbConn.BeginTransaction();

                foreach (DataRow row in rawDataTable.Rows)
                {
                    rowCount++;
                    if (!ValidateInputData(row, out m_errorMessage, out m_colName))
                    {
                        errors.addError(m_errorMessage, new string[] { rowCount.ToString("0"), m_colName });
                    }
                    else
                    {
                        EBackpayBatchDetail m_upload = Transform(row, UserID);  // m_util.Transform(row);

                        if (!ValidateBusinessRule(m_upload, out m_errorMessage))
                        {
                            errors.addError(m_errorMessage + " (row#={0})", new string[] { rowCount.ToString("0") });
                        }
                        else
                        {
                            // update payscalemap
                            DBFilter m_existingRecordFilter = new DBFilter();
                            m_existingRecordFilter.add(new Match("SchemeCode", AppUtils.Encode(EBackpayBatchDetail.db.getField("SchemeCode"), m_upload.SchemeCode)));
                            m_existingRecordFilter.add(new NullTerm("ExpiryDate"));
                            m_existingRecordFilter.add(new Match("Point", m_upload.Point));

                            ArrayList m_existingRecordList = EPayScaleMap.db.select(dbConn, m_existingRecordFilter);

                            EPayScaleMap m_newMap = new EPayScaleMap();
                            m_newMap.SchemeCode    = m_upload.SchemeCode;
                            m_newMap.Point         = m_upload.Point;
                            m_newMap.Salary        = m_upload.Salary;
                            m_newMap.EffectiveDate = m_upload.EffectiveDate;

                            if (m_existingRecordList.Count > 0)
                            {
                                EPayScaleMap m_currentMap = (EPayScaleMap)m_existingRecordList[0];

                                if (m_upload.EffectiveDate < m_currentMap.EffectiveDate)
                                {
                                    errors.addError("Invalid Effective Date({0}).  It must be before current effective date({1}).",
                                                    new string[] { m_upload.EffectiveDate.ToString("yyyy-MM-dd"), m_currentMap.EffectiveDate.ToString("yyyy-MM-dd") });
                                    break;
                                }
                                else
                                {
                                    // expire current map
                                    m_currentMap.ExpiryDate = m_upload.EffectiveDate.AddDays(-1);
                                    EPayScaleMap.db.update(dbConn, m_currentMap);
                                    // insert new salary

                                    EPayScaleMap.db.insert(dbConn, m_newMap);
                                    EBackpayBatchDetail.db.insert(dbConn, m_upload);
                                }
                            }
                            else
                            {
                                EPayScaleMap.db.insert(dbConn, m_newMap);
                                EBackpayBatchDetail.db.insert(dbConn, m_upload);
                            }

                            // go through recurring payment
                            DBFilter m_recurringPaymentFilter = new DBFilter();
                            DBFilter m_paymentTypeFilter      = new DBFilter();
                            DBFilter m_paymentCodeFilter      = new DBFilter();
                            m_paymentTypeFilter.add(new Match("PaymentTypeCode", "BASICSAL"));
                            m_paymentCodeFilter.add(new IN("PaymentTypeID", "SELECT PaymentTypeID FROM PaymentType", m_paymentTypeFilter));
                            m_recurringPaymentFilter.add(new IN("PayCodeID", "SELECT PaymentCodeID FROM PaymentCode", m_paymentCodeFilter));
                            m_recurringPaymentFilter.add(new Match("SchemeCode", AppUtils.Encode(EEmpRecurringPayment.db.getField("SchemeCode"), m_upload.SchemeCode)));
                            m_recurringPaymentFilter.add(new Match("Point", m_upload.Point));
                            m_recurringPaymentFilter.add(new Match("EmpRpEffFr", "<=", m_upload.EffectiveDate));
                            OR m_orDate = new OR();
                            m_orDate.add(new NullTerm("EmpRpEffTo"));
                            m_orDate.add(new Match("EmpRPEffTo", ">=", m_upload.EffectiveDate));
                            m_recurringPaymentFilter.add(m_orDate);
                            m_recurringPaymentFilter.add("EmpID", true);
                            m_recurringPaymentFilter.add("EmpRpEffFr", true);

                            foreach (EEmpRecurringPayment m_rp in EEmpRecurringPayment.db.select(dbConn, m_recurringPaymentFilter))
                            {
                                // find payment records of each recurring payment
                                DBFilter m_PaymentRecordFilter = new DBFilter();
                                DBFilter m_EmpPayrollFilter    = new DBFilter();
                                DBFilter m_PayrollPeriodFilter = new DBFilter();

                                m_PayrollPeriodFilter.add(new Match("PayPeriodFr", ">=", m_upload.EffectiveDate));

                                m_EmpPayrollFilter.add(new Match("EmpID", m_rp.EmpID));
                                m_EmpPayrollFilter.add(new IN("PayPeriodID", "SELECT PayPeriodID FROM PayrollPeriod", m_PayrollPeriodFilter));

                                m_PaymentRecordFilter.add(new Match("PaymentCodeID", m_rp.PayCodeID));
                                m_PaymentRecordFilter.add(new IN("EmpPayrollID", "SELECT EmpPayrollID FROM EmpPayroll", m_EmpPayrollFilter));

                                string m_remarks = "";
                                double m_amount  = 0;

                                foreach (EPaymentRecord m_payRecords in EPaymentRecord.db.select(dbConn, m_PaymentRecordFilter))
                                {
                                    if (m_remarks != "")
                                    {
                                        m_remarks = m_remarks + " + ";
                                    }

                                    m_remarks = ((m_payRecords.PayRecActAmount / m_rp.EmpRPAmount) * (System.Convert.ToDouble(m_upload.Salary) - m_rp.EmpRPAmount)).ToString("0.00");

                                    m_amount = ((m_payRecords.PayRecActAmount / m_rp.EmpRPAmount) * (System.Convert.ToDouble(m_upload.Salary) - m_rp.EmpRPAmount));
                                }


                                // insert to claims & deduction
                                EClaimsAndDeductions m_cnd = new EClaimsAndDeductions();
                                m_cnd.CNDEffDate   = m_upload.BackpayDate;
                                m_cnd.CNDAmount    = m_amount;
                                m_cnd.EmpID        = m_rp.EmpID;
                                m_cnd.CNDRemark    = m_remarks;
                                m_cnd.EmpAccID     = m_rp.EmpAccID;
                                m_cnd.CNDPayMethod = m_rp.EmpRPMethod;
                                m_cnd.CostCenterID = m_rp.CostCenterID;
                                m_cnd.CurrencyID   = m_rp.CurrencyID;
                                m_cnd.PayCodeID    = HROne.Import.Parse.GetPaymentCodeID(dbConn, m_upload.PaymentCode);

                                EClaimsAndDeductions.db.insert(dbConn, m_cnd);
                            }
                        }
                    }
                }
                dbConn.CommitTransaction();
            }
            catch (SqlException sqlEx)
            {
                errors.addError(sqlEx.Message, new string[] { });
                dbConn.RollbackTransaction();
            }

            return(rawDataTable);
        }