Exemplo n.º 1
0
 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"]);
         }
     }
 }
Exemplo n.º 2
0
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;
     }
 }