Ejemplo n.º 1
0
        public override void ImportToDatabase()
        {
            DataTable dataTable = GetImportDataFromTempDatabase(null);

            if (dataTable.Rows.Count > 0)
            {
                EHitRateProcessImportBatch batchDetail = new EHitRateProcessImportBatch();
                batchDetail.HitRateProcessImportBatchDateTime = AppUtils.ServerDateTime();
                //batchDetail.HitRateProcessImportBatchOriginalFilename = OriginalBatchFilename;
                batchDetail.HitRateProcessImportBatchRemark     = Remark;
                batchDetail.HitRateProcessImportBatchUploadedBy = m_UserID;
                EHitRateProcessImportBatch.db.insert(dbConn, batchDetail);


                foreach (DataRow row in dataTable.Rows)
                {
                    EUploadHitRateProcess obj = new EUploadHitRateProcess();
                    EUploadHitRateProcess.db.toObject(row, obj);

                    EHitRateProcess HitRateProcess = new EHitRateProcess();
                    HitRateProcess.HitRate   = obj.HitRate;
                    HitRateProcess.payCodeID = obj.payCodeID;
                    HitRateProcess.EmpID     = obj.EmpID;
                    HitRateProcess.HitRateProcessImportBatchID = batchDetail.HitRateProcessImportBatchID;

                    EHitRateProcess.db.insert(dbConn, HitRateProcess);
                    EUploadHitRateProcess.db.delete(dbConn, obj);
                }
            }
        }
    protected bool loadObject()
    {
        EHitRateProcessImportBatch obj = new EHitRateProcessImportBatch();
        bool isNew = WebFormWorkers.loadKeys(EHitRateProcessImportBatch.db, obj, DecryptedRequest);

        if (!EHitRateProcessImportBatch.db.select(dbConn, obj))
        {
            return(false);
        }

        Hashtable values = new Hashtable();

        EHitRateProcessImportBatch.db.populate(obj, values);
        binding.toControl(values);
        return(true);
    }
    //protected void init_PaymentCodeDropdown()
    //{
    //    if (PaymentCode.Items.Count <= 0)
    //    {
    //        PaymentCode.Items.Add(new ListItem("Not Selected", "-1"));

    //        DBFilter m_filter = new DBFilter();
    //        m_filter.add("PaymentCode", true);

    //        foreach (EPaymentCode o in EPaymentCode.db.select(dbConn, m_filter))
    //        {
    //            PaymentCode.Items.Add(new ListItem(string.Format("{0} - {1}", o.PaymentCode, o.PaymentCodeDesc), o.PaymentCodeID.ToString()));
    //        }
    //    }
    //}

    protected DataSet GenerateCND(int ProcessID, DateTime PaymentDate)
    {
        EHitRateProcessImportBatch m_process = EHitRateProcessImportBatch.GetObject(dbConn, ProcessID);

        DataSet   dataSet   = new DataSet();//export.GetDataSet();
        DataTable dataTable = new DataTable("ClaimsAndDeduction$");

        dataSet.Tables.Add(dataTable);

        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO, typeof(string));
        dataTable.Columns.Add("English Name", typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE, typeof(DateTime));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT, typeof(double));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST, typeof(double));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK, typeof(string));
        dataTable.Columns.Add(HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER, typeof(string));

        DBFilter m_detailFilter = new DBFilter();

        m_detailFilter.add(new Match("HitRateProcessImportBatchID", ProcessID));
        m_detailFilter.add("EmpID", true);

        foreach (EHitRateProcess m_detail in EHitRateProcess.db.select(dbConn, m_detailFilter))
        {
            DBFilter m_rpFilter = new DBFilter();
            m_rpFilter.add(new NullTerm("EmpRPEffTo"));
            m_rpFilter.add(new Match("PayCodeID", m_detail.payCodeID));
            m_rpFilter.add(new Match("EmpID", m_detail.EmpID));
            m_rpFilter.add("EmpRPEffTo", true);

            ArrayList m_empRPList = EEmpRecurringPayment.db.select(dbConn, m_rpFilter);

            if (m_empRPList.Count > 0)
            {
                EEmpRecurringPayment m_empRP = (EEmpRecurringPayment)m_empRPList[0];

                double m_amount = m_empRP.EmpRPAmount * m_detail.HitRate / (double)100;
                string m_remarks;

//                if (m_amount > 0 && Math.Abs(m_amount) >= 0.01)
                {
                    m_remarks = String.Format("{0}*{1}%", m_empRP.EmpRPAmount.ToString("#,##0.00"),
                                              m_detail.HitRate.ToString("#,##0.00"));

                    EEmpPersonalInfo m_empInfo = new EEmpPersonalInfo();
                    m_empInfo.EmpID = m_empRP.EmpID;
                    EEmpPersonalInfo.db.select(dbConn, m_empInfo);

                    DataRow m_row = dataTable.NewRow();
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EMP_NO] = m_empInfo.EmpNo;
                    m_row["English Name"] = m_empInfo.EmpEngFullName;
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_EFFECTIVE_DATE] = PaymentDate;

                    EPaymentCode m_paymentCode = EPaymentCode.GetObject(dbConn, m_empRP.PayCodeID);
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_CODE] = m_paymentCode.PaymentCode;

                    switch (m_empRP.EmpRPMethod)
                    {
                    case "A":
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Autopay";
                        break;

                    case "Q":
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cheque";
                        break;

                    case "C":
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Cash";
                        break;

                    default:
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_PAYMENT_METHOD] = "Other";
                        break;
                    }
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_AMOUNT]            = Math.Round(m_amount, 2);
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_NUM_OF_DAY_ADJUST] = 0; //DateTime.DaysInMonth(m_process.AsAtDate);
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REST_PAYMENT]      = "No";
                    m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_REMARK]            = m_remarks;

                    if (m_empRP.EmpAccID > 0)   // account number specified
                    {
                        EEmpBankAccount m_bank = new EEmpBankAccount();
                        m_bank.EmpBankAccountID = m_empRP.EmpAccID;
                        if (EEmpBankAccount.db.select(dbConn, m_bank))
                        {
                            m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = m_bank.EmpAccountNo;
                        }
                    }
                    //else
                    //{
                    //    // get default bank account
                    //    DBFilter m_bankAccFilter = new DBFilter();
                    //    m_bankAccFilter.add(new Match("EmpID", m_empRP.EmpID));
                    //    m_bankAccFilter.add(new Match("EmpAccDefault", true));
                    //    m_bankAccFilter.add("empBankAccountID", true);
                    //    ArrayList m_bankAccList = EEmpBankAccount.db.select(dbConn, m_bankAccFilter);
                    //    if (m_bankAccList.Count > 0)
                    //    {
                    //        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_BANK_ACCOUNT_NO] = ((EEmpBankAccount)m_bankAccList[0]).EmpAccountNo;
                    //    }
                    //}

                    ECostCenter m_costCenter = new ECostCenter();
                    m_costCenter.CostCenterID = m_empRP.CostCenterID;
                    if (ECostCenter.db.select(dbConn, m_costCenter))
                    {
                        m_row[HROne.Import.ImportClaimsAndDeductionsProcess.FIELD_COST_CENTER] = m_costCenter.CostCenterCode;
                    }
                    dataTable.Rows.Add(m_row);
                }
            }
        }
        return(dataSet);
    }