/ebpls-php-lib/ebpls.global.db.funcs.php

http://ebpls.googlecode.com/ · PHP · 488 lines · 250 code · 205 blank · 33 comment · 81 complexity · f1c62c302aea4f1250e036c8bfc525f8 MD5 · raw file

  1. <?
  2. /*****************************************************
  3. *****************************************************/
  4. require_once("ebpls-php-lib/ebpls.database.funcs.php");
  5. require_once("ebpls-php-lib/ebpls.taxfeeref.class.php");
  6. require_once("ebpls-php-lib/ebpls.enterprise.class.php");
  7. require_once("ebpls-php-lib/ebpls.transaction.class.php");
  8. // code retrieval
  9. function get_next_system_code( $dbLink, $key ) {
  10. global $gCodesKeys;
  11. if ( !in_array( $key, $gCodesKeys ) ) {
  12. echo "<HR><B>get_next_system_code ( $dbLink, $key) == Param Error :Invalid key value passed $key<BR></B>";
  13. }
  14. $strValues[$key] = $key;
  15. $strWhere = NULL;
  16. $result = ebpls_select_data( $dbLink, "ebpls_codes_table", $strValues, $strWhere, NULL, NULL, "DESC", NULL );
  17. if ( is_array($result) ) {
  18. $code = $result[0][$key];
  19. $code++;
  20. return $code;
  21. } else {
  22. //print_r(get_db_error());
  23. return NULL;
  24. }
  25. }
  26. function update_system_code ( $dbLink, $key, $value ) {
  27. $strValues[$key] = $value;
  28. $strWhere["id"] = 1;
  29. $ret = ebpls_update_data( $dbLink, "ebpls_codes_table", $strValues, $strWhere );
  30. //print_r(get_db_error());
  31. return $ret;
  32. }
  33. /**************************************************************************************************************
  34. * EBPLSTransaction class utility db functions.
  35. **************************************************************************************************************/
  36. /**
  37. * Get all permit requirements of a particular type of permit type.
  38. *
  39. **/
  40. function get_permit_default_requirements( $permit_type ) {
  41. $strWhere[$permit_type] = $permit_type;
  42. $strValues[] = " * ";
  43. $result = ebpls_select_data( $dbLink, "ebpls_permit_requirements", $strValues, $strWhere, NULL, NULL, "DESC", NULL );
  44. if ( is_array($result) ) {
  45. for($i=0; $i< count($result); $i++) {
  46. $record[] = $result[$i];
  47. }
  48. return $record;
  49. } else {
  50. //print_r(get_db_error());
  51. return NULL;
  52. }
  53. }
  54. /**
  55. * Create default requiremetns to ebpls_transaction_fees and ebpls_transaction_requirements table
  56. *
  57. *
  58. **/
  59. function create_permit_requirements( $dbLink, $trans_id, $permit_id, $permit_type, $creator, $permit_req_type, $trans_type ) {
  60. if ( $permit_req_type == "FEE" || $permit_req_type == "TAX" ) {
  61. require_once("ebpls-php-lib/ebpls.taxfeeformula.class.php");
  62. if ( $permit_req_type == "FEE" ) {
  63. $sql .= " SELECT b.tax_fee_code, b.tax_fee_desc,b.tax_account_code, b.tax_formula_id ";
  64. $sql .= " FROM ebpls_permit_fee_requirements AS a INNER JOIN ebpls_tax_fee_table AS b on a.tax_fee_code = b.tax_fee_code WHERE a.permit_type = '$permit_type' and a.pfr_trans_type = '$trans_type' and b.tax_fee_type = 'FEE'";
  65. } else if ( $permit_req_type == "TAX" ) {
  66. $sql .= " SELECT b.tax_fee_code, b.tax_fee_desc,b.tax_account_code, b.tax_formula_id ";
  67. $sql .= " FROM ebpls_permit_tax_requirements AS a INNER JOIN ebpls_tax_fee_table AS b on a.tax_fee_code = b.tax_fee_code WHERE a.permit_type = '$permit_type' and a.ptr_trans_type = '$trans_type' and b.tax_fee_type = 'TAX'";
  68. }
  69. ebpls_db_funcs_debug ( "create_permit_requirements : $sql" );
  70. $result = mysql_query( $sql, $dbLink);
  71. if ( $result ) {
  72. $i = 0;
  73. while( $row = mysql_fetch_array( $result ) ) {
  74. $clsTaxFormula = new TaxFeeFormula( $dbLink, false );
  75. $clsTaxFormula->view( $row["tax_formula_id"] );
  76. $clsFormula = unserialize($clsTaxFormula->getData(EBPLS_FORMULAS_FORMULA_CLASS));
  77. if ( $clsFormula ) {
  78. $tax_total_amount_due = $clsFormula->computeTax();
  79. if ( $tax_total_amount_due >= 0 ) {
  80. if ( $tax_total_amount_due == "" || $tax_total_amount_due == NULL ) {
  81. $tax_total_amount_due = 0;
  82. }
  83. if ( $permit_req_type == "FEE" ) {
  84. $sql = "INSERT INTO ebpls_transaction_payables ( trans_id, permit_id,permit_type, tax_fee_type, tax_fee_code, tax_fee_desc, tax_account_code, tax_business_nature_code, tax_total_amount_due, ts_create, last_updated_by )";
  85. $sql .= " values($trans_id, $permit_id, '$permit_type', 'FEE','" . $row["tax_fee_code"] . "','" . $row["tax_fee_desc"] . "','" . $row["tax_account_code"] . "','NONE', $tax_total_amount_due, now(), '$creator')";
  86. } else {
  87. $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 )";
  88. $sql .= " values($trans_id, $permit_id, '$permit_type', 'TAX','" . $row["tax_fee_code"] . "','" . $row["tax_business_nature_code"] . "','" . $row["tax_fee_desc"] . "','" . $row["tax_account_code"] . "', $tax_total_amount_due, now(), '$creator')";
  89. }
  90. ebpls_db_funcs_debug ( "create_permit_requirements insert : $sql" );
  91. $rs = mysql_query( $sql, $dbLink);
  92. $i++;
  93. } else {
  94. set_db_error(NULL, "Invalid formula for tax : " . $row["tax_formula_id"]);
  95. return -5;
  96. }
  97. } else {
  98. set_db_error(NULL, "Invalid formula for tax : " . $row["tax_formula_id"]);
  99. return -5;
  100. }
  101. }
  102. return $i;
  103. } else {
  104. set_db_error($dbLink);
  105. return -1;
  106. }
  107. } else if ( $permit_req_type == "APP" ) {
  108. $sql = "INSERT INTO ebpls_transaction_requirements (trans_id,permit_id,permit_type,requirement_code,status,ts_create, last_updated_by )";
  109. $sql .= " SELECT $trans_id,$permit_id,'$permit_type',requirement_code,'PENDING',now(),'$creator' FROM ebpls_permit_app_requirements WHERE permit_type = '$permit_type' and par_trans_type = '$trans_type'";
  110. ebpls_db_funcs_debug ( "create_permit_requirements : $sql" );
  111. $result = mysql_query( $sql, $dbLink);
  112. if ( $result ) {
  113. return mysql_affected_rows($dbLink);
  114. } else {
  115. set_db_error($dbLink);
  116. return -1;
  117. }
  118. } else {
  119. set_db_error(NULL, "Invalid param $permit_req_type on function create_permit_requirements ( $dbLink, $trans_id, $permit_id, $permit_type, $creator, $permit_req_type )." );
  120. return -1;
  121. }
  122. }
  123. /**
  124. *
  125. *
  126. *
  127. **/
  128. function add_fee_requirement( $dbLink, $trans_id, $permit_id, $permit_type, $creator, $tax_fee_code, $permit_req_type = 'APP' ) {
  129. if ( $permit_req_type == "FEE" ) {
  130. $sql = "INSERT INTO ebpls_transaction_fees ( trans_id, permit_id,permit_type, tax_fee_code, tax_fee_desc, tax_account_code, tax_amount, tax_percentage, tax_total_amount_due, ts_create, last_updated_by )";
  131. $sql .= " SELECT $trans_id, $permit_id, '$permit_type', b.tax_fee_code, b.tax_fee_desc,b.tax_account_code, b.tax_amount, b.tax_percentage, b.tax_amount, now(), '$creator' " ;
  132. $sql .= " FROM ebpls_permit_requirements AS a INNER JOIN ebpls_tax_fee_table AS b on a.tax_fee_code = b.tax_fee_code WHERE a.permit_type = '$permit_type' AND a.pr_type = '$permit_req_type' AND b.tax_fee_code = '$tax_fee_code'";
  133. } elseif ( $permit_req_type == "TAX" ) {
  134. $sql = "INSERT INTO ebpls_transaction_fees ( trans_id, permit_id,permit_type, tax_fee_code, tax_fee_desc, tax_account_code, tax_amount, tax_percentage, tax_total_amount_due, ts_create, last_updated_by )";
  135. $sql .= " SELECT $trans_id, $permit_id, '$permit_type', b.tax_fee_code, b.tax_fee_desc,b.tax_account_code, b.tax_amount, b.tax_percentage, b.tax_amount, now(), '$creator' " ;
  136. $sql .= " FROM ebpls_permit_requirements AS a INNER JOIN ebpls_tax_fee_table AS b on a.tax_fee_code = b.tax_fee_code WHERE a.permit_type = '$permit_type' AND a.pr_type = '$permit_req_type' AND b.tax_fee_code = '$tax_fee_code'";
  137. } else if ( $permit_req_type == "APP" ) {
  138. $sql = "INSERT INTO ebpls_transaction_requirements (trans_id,permit_id,permit_type,requirement_code,status,ts_create, last_updated_by )";
  139. $sql .= " SELECT $trans_id,$permit_id,'$permit_type',requirement_code,'PENDING',now(),'$creator' FROM ebpls_permit_requirements WHERE permit_type = '$permit_type' AND pr_type = '$permit_req_type'";
  140. } else {
  141. set_db_error(NULL, "Invalid param $permit_req_type on function create_permit_requirements ( $dbLink, $trans_id, $permit_id, $permit_type, $creator, $permit_req_type )." );
  142. return -1;
  143. }
  144. ebpls_db_funcs_debug ( "create_permit_requirements : $sql" );
  145. $result = mysql_query( $sql, $dbLink);
  146. if ( $result ) {
  147. return mysql_affected_rows($dbLink);
  148. } else {
  149. set_db_error($dbLink);
  150. return -1;
  151. }
  152. }
  153. function set_application_requirement_status( $dbLink, $trans_id, $req_id, $status, $creator ) {
  154. if ( $status != REQUIREMENT_STATUS_PENDING && $status != REQUIREMENT_STATUS_SUBMITTED ) {
  155. set_db_error( null, "Invalid status value $status.");
  156. return -1;
  157. }
  158. $sql = "UPDATE ebpls_transaction_requirements SET status = '$status' WHERE trans_id = $trans_id AND req_id = $req_id";
  159. ebpls_db_funcs_debug ( "submit_application_requirement : $sql" );
  160. $result = mysql_query( $sql, $dbLink);
  161. if ( $result ) {
  162. return mysql_affected_rows($dbLink);
  163. } else {
  164. set_db_error($dbLink);
  165. return -1;
  166. }
  167. }
  168. function get_application_requirement_status_count( $dbLink, $trans_id, $status ) {
  169. if ( $status != REQUIREMENT_STATUS_PENDING && $status != REQUIREMENT_STATUS_SUBMITTED ) {
  170. set_db_error( null, "Invalid status value $status.");
  171. return -1;
  172. }
  173. $sql = "SELECT count(*) ebpls_transaction_requirements SET status = '$status' WHERE trans_id = $trans_id";
  174. ebpls_db_funcs_debug ( "submit_application_requirement : $sql" );
  175. $result = mysql_query( $sql, $dbLink);
  176. if ( $result ) {
  177. if( $row = mysql_affected_rows($result) ) {
  178. return $row[0];
  179. }
  180. return -1;
  181. } else {
  182. set_db_error($dbLink);
  183. return -1;
  184. }
  185. }
  186. function get_application_requirement_list( $dbLink, $trans_id, $status ) {
  187. if ( $status != NULL && $status != REQUIREMENT_STATUS_PENDING && $status != REQUIREMENT_STATUS_SUBMITTED ) {
  188. set_db_error( null, "Invalid status value $status.");
  189. return -1;
  190. }
  191. if ( $status == null ) {
  192. $sql = "SELECT a.*, b.business_requirement_desc FROM ebpls_transaction_requirements as a left join ebpls_business_requirement as b on a.requirement_code = b.business_requirement_code WHERE a.trans_id = $trans_id";
  193. } else {
  194. $sql = "SELECT a.*, b.business_requirement_desc FROM ebpls_transaction_requirements as a left join ebpls_business_requirement as b on a.requirement_code = b.business_requirement_code WHERE a.status = '$status' AND a.trans_id = $trans_id";
  195. }
  196. //ebpls_db_funcs_debug ( "get_application_requirement_list : $sql" );
  197. $result = mysql_query( $sql, $dbLink);
  198. if ( $result ) {
  199. while ( $row = mysql_fetch_array($result) ) {
  200. $records[] = $row;
  201. }
  202. return $records;
  203. } else {
  204. set_db_error($dbLink);
  205. return -1;
  206. }
  207. }
  208. /****************************************************************************************************************
  209. * Enterprise Class util db funcs
  210. *
  211. *
  212. ****************************************************************************************************************/
  213. function get_bus_enterprise_nature_list( $dbLink, $business_id ) {
  214. $sqlSelect = "SELECT b.*, a.business_nature_desc FROM ebpls_business_nature as a inner join ebpls_business_enterprise_nature as b on a.business_nature_code = b.business_nature_code AND b.business_id = $business_id";
  215. ebpls_db_funcs_debug ( "get_bus_enterprise_nature_list : $sqlSelect" );
  216. $result = mysql_query( $sqlSelect, $dbLink);
  217. if ( $result ) {
  218. while( $row = mysql_fetch_array($result) ) {
  219. $records[] = $row;
  220. }
  221. return $records;
  222. } else {
  223. set_db_error($dbLink);
  224. return -1;
  225. }
  226. }
  227. function create_bus_enterprise_nature_fee( $dbLink, $trans_id, $business_id, $owner_id, $permit_id, $permit_type, $action, $creator, $nature_code = NULL ) {
  228. // removed bus nature code from tax_fee table instead transfer nature code to business nature code table
  229. if ( is_array($nature_code) ) {
  230. $nature_code_lst = "'" . join("','",$nature_code) . "'";
  231. $sql = " SELECT a.business_nature_code, c.tax_fee_code, c.tax_fee_desc, c.tax_account_code, c.tax_formula ";
  232. $sql .= " FROM ebpls_business_nature AS a ";
  233. $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')";
  234. } else {
  235. $sql = " SELECT a.business_nature_code, c.tax_fee_code, c.tax_fee_desc, c.tax_account_code, c.tax_formula ";
  236. $sql .= " FROM ebpls_business_nature AS a ";
  237. $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'";
  238. }
  239. ebpls_db_funcs_debug ( "create_bus_enterprise_nature_fee : $sql" );
  240. $result = mysql_query( $sql, $dbLink);
  241. if ( $result ) {
  242. $i = 0;
  243. while( $row = mysql_fetch_array( $result ) ) {
  244. $clsTaxFee = new EBPLTaxFeeSysRef( $dbLink, false );
  245. $res_tax = $clsTaxFee->select( $row["tax_fee_code"] );
  246. if ( is_array($res_tax) ) {
  247. $clsNature = new EBPLSTransactionBusinessNature( $dbLink, true );
  248. $clsNature->setData(TRANS_BUSNATURE_TRANS_ID, $trans_id );
  249. $clsNature->setData(TRANS_BUSNATURE_BUSINESS_ID, $business_id );
  250. $clsNature->setData(TRANS_BUSNATURE_OWNER_ID, $owner_id );
  251. $clsNature->setData(TRANS_BUSNATURE_CAPITAL_INVESTMENT, "0.0" );
  252. $clsNature->setData(TRANS_BUSNATURE_LAST_GROSS, "0.0" );
  253. $clsNature->setData(TRANS_BUSNATURE_BUSINESS_NATURE_CODE, $row["business_nature_code"] );
  254. if ( $clsNature->add() < 0 ) {
  255. ebpls_db_funcs_debug( "create_bus_enterprise_nature_fee : error on creation of business nature record" );
  256. return -5;
  257. }
  258. $clsTaxFormula = $res_tax["result"][0]->getData(EBPLS_TAX_FORMULA);
  259. $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 )";
  260. $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')";
  261. ebpls_db_funcs_debug ( "create_bus_enterprise_nature_fee tax/fee found : $sql" );
  262. $rs = mysql_query( $sql, $dbLink );
  263. // add nature to business enterprise nature table
  264. if ( !( $rs ) ) {
  265. set_db_error( $dbLink );
  266. return -1;
  267. }
  268. $i++;
  269. } else {
  270. ebpls_db_funcs_debug ( "create_bus_enterprise_nature_fee tax/fee code not found : " . $row["tax_fee_code"] );
  271. set_db_error( NULL, "create_bus_enterprise_nature_fee tax/fee code not found : " . $row["tax_fee_code"] );
  272. return -3;
  273. }
  274. }
  275. return $i;
  276. } else {
  277. set_db_error($dbLink);
  278. return -2;
  279. }
  280. }
  281. ?>