function printIndividualCTCScript($ctc_type, $basic_tax_field, $tax_a1_fields, $tax_a2_fields, $tax_a3_fields, $out_total_amount_due, $out_total_interest_due, $out_total_paid_due) { if ($ctc_type == CTC_TYPE_INDIVIDUAL) { $clsCTC_A_EX = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_A_EXRet = $clsCTC_A_EX->select("CTC_A_EX"); $clsCTC_A_NEX = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_A_NEXRet = $clsCTC_A_NEX->select("CTC_A_NEX"); $clsCTC_B1 = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_B1Ret = $clsCTC_B1->select("CTC_B1"); $clsCTC_B2 = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_B2Ret = $clsCTC_B2->select("CTC_B2"); $clsCTC_B3 = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_B3Ret = $clsCTC_B3->select("CTC_B3"); $clsCTC_TTL_TAX = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_TTL_TAXRet = $clsCTC_TTL_TAX->select("CTC_TTL_TAX"); $clsCTC_TAX_INT = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_TAX_INTRet = $clsCTC_TAX_INT->select("CTC_TAX_INT"); $clsCTC_TAX_DUE = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_TAX_DUERet = $clsCTC_TAX_DUE->select("CTC_TAX_DUE"); if (!(is_array($clsCTC_A_EXRet) && is_array($clsCTC_A_NEXRet) && is_array($clsCTC_B1Ret) && is_array($clsCTC_B2Ret) && is_array($clsCTC_B3Ret) && is_array($clsCTC_TAX_INTRet) && is_array($clsCTC_TAX_DUERet))) { $this->setError(-1, "System Configuration Error : One of the requiered CTC Records is nonexistent, Please check of Fee with code CTC_A_EX, CTC_A_NEX, CTC_B1, CTC_B2, CTC_B3 and CTC_B1 exist on tax/fee manager"); return -1; } else { $clsCTC_A_EX_Formula = $clsCTC_A_EXRet["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_B1_Formula = $clsCTC_B1Ret["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_B2_Formula = $clsCTC_B2Ret["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_B3_Formula = $clsCTC_B3Ret["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_TTL_TAX_Formula = $clsCTC_TTL_TAXRet["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_TAX_INT_Formula = $clsCTC_TAX_INTRet["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_TAX_DUE_Formula = $clsCTC_TAX_DUERet["result"][0]->getData(EBPLS_TAX_FORMULA); echo "\n" . $clsCTC_A_EX_Formula->createAutocompleteJScript(array("x1" => $basic_tax_field["in"][0]), $basic_tax_field["out"], "checked"); echo "\n" . $clsCTC_B1_Formula->createAutocompleteJScript(array("x1" => $tax_a1_fields["in"][0]), $tax_a1_fields["out"]); echo "\n" . $clsCTC_B2_Formula->createAutocompleteJScript(array("x1" => $tax_a2_fields["in"][0]), $tax_a2_fields["out"]); echo "\n" . $clsCTC_B3_Formula->createAutocompleteJScript(array("x1" => $tax_a3_fields["in"][0]), $tax_a3_fields["out"]); echo "\n" . $clsCTC_TTL_TAX_Formula->createAutocompleteJScript($out_total_amount_due["in"], $out_total_amount_due["out"]); echo "\n" . $clsCTC_TAX_INT_Formula->createAutocompleteJScript($out_total_interest_due["in"], $out_total_interest_due["out"]); echo "\n" . $clsCTC_TAX_DUE_Formula->createAutocompleteJScript($out_total_paid_due["in"], $out_total_paid_due["out"]); } } else { $clsCTCB_A_EX = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTCB_A_EXRet = $clsCTCB_A_EX->select("CTCB_BASIC_TAX"); $clsCTCB_B1 = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTCB_B1Ret = $clsCTCB_B1->select("CTCB_B1"); $clsCTCB_B2 = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTCB_B2Ret = $clsCTCB_B2->select("CTCB_B2"); $clsCTC_TTL_TAX = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_TTL_TAXRet = $clsCTC_TTL_TAX->select("CTCB_TTL_TAX"); $clsCTC_TAX_INT = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_TAX_INTRet = $clsCTC_TAX_INT->select("CTCB_TAX_INT"); $clsCTC_TAX_DUE = new EBPLTaxFeeSysRef($this->m_dbLink, false); $clsCTC_TAX_DUERet = $clsCTC_TAX_DUE->select("CTC_TAX_DUE"); if (!(is_array($clsCTCB_A_EXRet) && is_array($clsCTCB_B1Ret) && is_array($clsCTCB_B2Ret) && is_array($clsCTC_TAX_INTRet) && is_array($clsCTC_TAX_DUERet))) { $this->setError(-1, "System Configuration Error : One of the requiered CTC Records is nonexistent, Please check of Fee with code CTCB_A_EX, CTCB_B1, CTCB_B2 exist on tax/fee manager"); return -1; } else { $clsCTCB_A_EX_Formula = $clsCTCB_A_EXRet["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTCB_B1_Formula = $clsCTCB_B1Ret["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTCB_B2_Formula = $clsCTCB_B2Ret["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_TTL_TAX_Formula = $clsCTC_TTL_TAXRet["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_TAX_INT_Formula = $clsCTC_TAX_INTRet["result"][0]->getData(EBPLS_TAX_FORMULA); $clsCTC_TAX_DUE_Formula = $clsCTC_TAX_DUERet["result"][0]->getData(EBPLS_TAX_FORMULA); //echo "\n" . $clsCTCB_A_EX_Formula->createAutocompleteJScript(Array("x1"=>$basic_tax_field["in"][0]),$basic_tax_field["out"]); echo "\n" . $clsCTCB_A_EX_Formula->createAutocompleteJScript(NULL, $basic_tax_field["out"]); echo "\n" . $clsCTCB_B1_Formula->createAutocompleteJScript(array("x1" => $tax_a1_fields["in"][0]), $tax_a1_fields["out"]); echo "\n" . $clsCTCB_B2_Formula->createAutocompleteJScript(array("x1" => $tax_a2_fields["in"][0]), $tax_a2_fields["out"]); echo "\n" . $clsCTC_TTL_TAX_Formula->createAutocompleteJScript($out_total_amount_due["in"], $out_total_amount_due["out"]); echo "\n" . $clsCTC_TAX_INT_Formula->createAutocompleteJScript($out_total_interest_due["in"], $out_total_interest_due["out"]); echo "\n" . $clsCTC_TAX_DUE_Formula->createAutocompleteJScript($out_total_paid_due["in"], $out_total_paid_due["out"]); } } }
function create_bus_enterprise_nature_fee($dbLink, $trans_id, $business_id, $owner_id, $permit_id, $permit_type, $action, $creator, $nature_code = NULL) { // removed bus nature code from tax_fee table instead transfer nature code to business nature code table if (is_array($nature_code)) { $nature_code_lst = "'" . join("','", $nature_code) . "'"; $sql = " SELECT a.business_nature_code, c.tax_fee_code, c.tax_fee_desc, c.tax_account_code, c.tax_formula "; $sql .= " FROM ebpls_business_nature AS a "; $sql .= " INNER JOIN ebpls_tax_fee_table as b ON a.tax_fee_code = b.tax_fee_code WHERE a.business_nature_code IN ('{$nature_code_lst}')"; } else { $sql = " SELECT a.business_nature_code, c.tax_fee_code, c.tax_fee_desc, c.tax_account_code, c.tax_formula "; $sql .= " FROM ebpls_business_nature AS a "; $sql .= " INNER JOIN ebpls_tax_fee_table as b ON a.tax_fee_code = b.tax_fee_code WHERE a.business_nature_code = '{$nature_code}'"; } ebpls_db_funcs_debug("create_bus_enterprise_nature_fee : {$sql}"); $result = mysql_query($sql, $dbLink); if ($result) { $i = 0; while ($row = mysql_fetch_array($result)) { $clsTaxFee = new EBPLTaxFeeSysRef($dbLink, false); $res_tax = $clsTaxFee->select($row["tax_fee_code"]); if (is_array($res_tax)) { $clsNature = new EBPLSTransactionBusinessNature($dbLink, true); $clsNature->setData(TRANS_BUSNATURE_TRANS_ID, $trans_id); $clsNature->setData(TRANS_BUSNATURE_BUSINESS_ID, $business_id); $clsNature->setData(TRANS_BUSNATURE_OWNER_ID, $owner_id); $clsNature->setData(TRANS_BUSNATURE_CAPITAL_INVESTMENT, "0.0"); $clsNature->setData(TRANS_BUSNATURE_LAST_GROSS, "0.0"); $clsNature->setData(TRANS_BUSNATURE_BUSINESS_NATURE_CODE, $row["business_nature_code"]); if ($clsNature->add() < 0) { ebpls_db_funcs_debug("create_bus_enterprise_nature_fee : error on creation of business nature record"); return -5; } $clsTaxFormula = $res_tax["result"][0]->getData(EBPLS_TAX_FORMULA); $sql = "INSERT INTO ebpls_transaction_payables ( trans_id, permit_id,permit_type, tax_fee_type, tax_fee_code, tax_business_nature_code, tax_fee_desc, tax_account_code, tax_total_amount_due, ts_create, last_updated_by )"; $sql .= " values( {$trans_id}, {$permit_id}, '{$permit_type}', 'BUSTAX','" . $row["tax_fee_code"] . "','" . $row["business_nature_code"] . "','" . $row["tax_fee_desc"] . "','" . $row["tax_account_code"] . "', 0, now(), '{$creator}')"; ebpls_db_funcs_debug("create_bus_enterprise_nature_fee tax/fee found : {$sql}"); $rs = mysql_query($sql, $dbLink); // add nature to business enterprise nature table if (!$rs) { set_db_error($dbLink); return -1; } $i++; } else { ebpls_db_funcs_debug("create_bus_enterprise_nature_fee tax/fee code not found : " . $row["tax_fee_code"]); set_db_error(NULL, "create_bus_enterprise_nature_fee tax/fee code not found : " . $row["tax_fee_code"]); return -3; } } return $i; } else { set_db_error($dbLink); return -2; } }
function computeTaxTotalAmounDue($depth = 0) { if ($depth == 1) { return 0; } // terminate recursive call on comutetax // load the tax/fee record with its attached formula $clsTaxFeeRef = new EBPLTaxFeeSysRef($this->m_dbLink, false); $res_formula = $clsTaxFeeRef->select($this->getData(TF_TAX_FEE_CODE)); if (is_array($res_formula)) { $clsTaxFormula = $res_formula["result"][0]->getData(EBPLS_TAX_FORMULA); if ($clsTaxFormula) { // pass paramters to formula before computation for ($i = 1; $i <= TF_TAX_MAX_PARAMS; $i++) { $clsTaxFormula->setParameterValue($i, $this->getData(constant("TF_TAX_TAXABLE_AMOUNT{$i}")) + 0.0); } // process prerequisite tax/fees if there are any $arr_parameters = $clsTaxFormula->getParameterDescription(null, true); $this->debug("param cnt : " . count($arr_parameters)); foreach ($arr_parameters as $key => $value) { if (eregi("^\\[TF=(.*)\\]\$", $value, $arrTaxFeeCode) && eregi("^x([0-9]+)\$", $key, $arrIndex)) { $clsTaxFeeTmp = new EBPLSTransactionFee($this->m_dbLink, false); $res_formula = $clsTaxFeeTmp->view($this->getData(TF_TRANS_ID), $arrTaxFeeCode[1]); if ($res_formula) { $clsTaxFeeTmp->computeTaxTotalAmounDue(1); $this->debug("Tax/Fee Amount: " . $clsTaxFeeTmp->getData(TF_TAX_TOTAL_AMOUNT_DUE) . "!"); $this->setData(constant("TF_TAX_TAXABLE_AMOUNT" . $arrIndex[1]), $clsTaxFeeTmp->getData(TF_TAX_TOTAL_AMOUNT_DUE)); $clsTaxFormula->setParameterValue($arrIndex[1], floatval($clsTaxFeeTmp->getData(TF_TAX_TOTAL_AMOUNT_DUE))); } else { $this->setError(-6, "Unable to load prerequisite tax/fee " . $arrTaxFeeCode[1] . "!"); $this->debug("Unable to load prerequisite tax/fee " . $arrTaxFeeCode[1] . "!"); return -6; } } else { $this->debug("no match on {$value}"); } } $clsTaxFormula->setParameterTagValue("[CAPITAL]", $this->m_BusTaxCapital); $clsTaxFormula->setParameterTagValue("[LAST_GROSS]", $this->m_BusTaxLastGross); $index1 = $clsTaxFormula->getParameterTagValueIndex("[CAPITAL]"); if ($index1) { $this->setData(constant("TF_TAX_TAXABLE_AMOUNT" . $index1), $this->m_BusTaxCapital); } $index2 = $clsTaxFormula->getParameterTagValueIndex("[LAST_GROSS]"); if ($index2) { $this->setData(constant("TF_TAX_TAXABLE_AMOUNT" . $index2), $this->m_BusTaxLastGross); } $this->debug("FORMULA {$index1}=" . $this->m_BusTaxCapital . ",{$index2}=" . $this->m_BusTaxLastGross . "<BR>"); // compute $tax_amount = $clsTaxFormula->computeTax($this->m_BusTaxCapital, $this->m_BusTaxLastGross); if ($tax_amount >= 0) { $this->data_elems[TF_TAX_TOTAL_AMOUNT_DUE] = $tax_amount; $this->debug("FORMULA compuation OK<BR>"); return 1; } else { $this->setError(-1, $clsTaxFormula->getError()); return $tax_amount; } } else { $this->setError(-5, "Unable to load formula of tax/fee " . $this->getData(TF_TAX_FEE_CODE) . "!"); $this->debug("Unable to load formula of tax/fee " . $this->getData(TF_TAX_FEE_CODE) . "!"); return -5; } } else { $this->data_elems[TF_TAX_TOTAL_AMOUNT_DUE] = 0; $this->debug("FORMULA ERROR (cant find tax/fee code : " . $this->getData(TF_TAX_FEE_CODE) . "<BR>"); return -4; } }