X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=taxes%2Fdb%2Ftax_types_db.inc;h=ae2cb01700da5fe42633a07d2ce3b2ce76d6c5f1;hb=d81405411c4b336cbe3b2894ae719b13fc86a721;hp=c5408af0eb661c815e3a99ae14b82d276a3f5a23;hpb=57ab7b19733486db1572c646c4ff0a58c260ddd2;p=fa-stable.git diff --git a/taxes/db/tax_types_db.inc b/taxes/db/tax_types_db.inc index c5408af0..ae2cb017 100644 --- a/taxes/db/tax_types_db.inc +++ b/taxes/db/tax_types_db.inc @@ -1,84 +1,128 @@ . +***********************************************************************/ +function add_tax_type($name, $sales_gl_code, $purchasing_gl_code, $rate) { - $sql = "INSERT INTO ".TB_PREF."tax_types (name, sales_gl_code, purchasing_gl_code, rate, `out`) - VALUES ('$name', '$sales_gl_code', '$purchasing_gl_code', $rate, $out)"; - - db_query($sql, "could not add tax type"); + $sql = "INSERT INTO ".TB_PREF."tax_types (name, sales_gl_code, purchasing_gl_code, rate) + VALUES (".db_escape($name).", ".db_escape($sales_gl_code) + .", ".db_escape($purchasing_gl_code).", $rate)"; + + db_query($sql, "could not add tax type"); } -function update_tax_type($type_id, $name, $sales_gl_code, $purchasing_gl_code, $rate, $out) +function update_tax_type($type_id, $name, $sales_gl_code, $purchasing_gl_code, $rate) { - $sql = "UPDATE ".TB_PREF."tax_types SET name='$name', - sales_gl_code='$sales_gl_code', - purchasing_gl_code='$purchasing_gl_code', - rate=$rate, - `out`=$out - WHERE id=$type_id"; - - db_query($sql, "could not update tax type"); + $sql = "UPDATE ".TB_PREF."tax_types SET name=".db_escape($name).", + sales_gl_code=".db_escape($sales_gl_code).", + purchasing_gl_code=".db_escape($purchasing_gl_code).", + rate=$rate + WHERE id=".db_escape($type_id); + + db_query($sql, "could not update tax type"); } -function get_all_tax_types() +function get_all_tax_types($all=false) { - $sql = "SELECT ".TB_PREF."tax_types.*, - Chart1.account_name AS SalesAccountName, - Chart2.account_name AS PurchasingAccountName - FROM ".TB_PREF."tax_types, ".TB_PREF."chart_master AS Chart1, - ".TB_PREF."chart_master AS Chart2 - WHERE ".TB_PREF."tax_types.sales_gl_code = Chart1.account_code - AND ".TB_PREF."tax_types.purchasing_gl_code = Chart2.account_code"; - + $sql = "SELECT tax_type.*, + Chart1.account_name AS SalesAccountName, + Chart2.account_name AS PurchasingAccountName + FROM ".TB_PREF."tax_types tax_type LEFT JOIN " + .TB_PREF."chart_master AS Chart1 ON tax_type.sales_gl_code = Chart1.account_code LEFT JOIN " + .TB_PREF."chart_master AS Chart2 ON tax_type.purchasing_gl_code = Chart2.account_code"; + + if (!$all) $sql .= " AND !tax_type.inactive"; return db_query($sql, "could not get all tax types"); -} +} function get_all_tax_types_simple() { - $sql = "SELECT * FROM ".TB_PREF."tax_types"; - + $sql = "SELECT * FROM ".TB_PREF."tax_types WHERE !inactive"; + return db_query($sql, "could not get all tax types"); -} +} function get_tax_type($type_id) { - $sql = "SELECT ".TB_PREF."tax_types.*, - Chart1.account_name AS SalesAccountName, - Chart2.account_name AS PurchasingAccountName - FROM ".TB_PREF."tax_types, ".TB_PREF."chart_master AS Chart1, - ".TB_PREF."chart_master AS Chart2 - WHERE ".TB_PREF."tax_types.sales_gl_code = Chart1.account_code - AND ".TB_PREF."tax_types.purchasing_gl_code = Chart2.account_code AND id=$type_id"; - + $sql = "SELECT tax_type.*, + Chart1.account_name AS SalesAccountName, + Chart2.account_name AS PurchasingAccountName + FROM ".TB_PREF."tax_types tax_type LEFT JOIN " + .TB_PREF."chart_master AS Chart1 ON tax_type.sales_gl_code = Chart1.account_code LEFT JOIN " + .TB_PREF."chart_master AS Chart2 ON tax_type.purchasing_gl_code = Chart2.account_code + WHERE id=".db_escape($type_id); + $result = db_query($sql, "could not get tax type"); - return db_fetch($result); } -function get_tax_type_default_rate($type_id) +function get_tax_type_rate($type_id) { - $sql = "SELECT rate FROM ".TB_PREF."tax_types WHERE id=$type_id"; - + $sql = "SELECT rate FROM ".TB_PREF."tax_types WHERE id=".db_escape($type_id); + $result = db_query($sql, "could not get tax type rate"); - + $row = db_fetch_row($result); - return $row[0]; + return is_array($row) ? $row[0] : false; } function delete_tax_type($type_id) { begin_transaction(); - - $sql = "DELETE FROM ".TB_PREF."tax_types WHERE id=$type_id"; - - db_query($sql, "could not delete tax type"); - + + $sql = "DELETE FROM ".TB_PREF."tax_types WHERE id=".db_escape($type_id); + + db_query($sql, "could not delete tax type"); + // also delete any item tax exemptions associated with this type - $sql = "DELETE FROM ".TB_PREF."item_tax_type_exemptions WHERE tax_type_id=$type_id"; - + $sql = "DELETE FROM ".TB_PREF."item_tax_type_exemptions WHERE tax_type_id=".db_escape($type_id); + db_query($sql, "could not delete item tax type exemptions"); - - commit_transaction(); + + commit_transaction(); } -?> \ No newline at end of file +/* + Check if gl_code is used by more than 2 tax types, + or check if the two gl codes are not used by any other + than selected tax type. + Necessary for pre-2.2 installations. +*/ +function is_tax_gl_unique($gl_code, $gl_code2=-1, $selected_id=-1) { + + $purch_code = $gl_code2== -1 ? $gl_code : $gl_code2; + + $sql = "SELECT count(*) FROM " + .TB_PREF."tax_types + WHERE (sales_gl_code=" .db_escape($gl_code) + ." OR purchasing_gl_code=" .db_escape($purch_code). ")"; + + if ($selected_id != -1) + $sql .= " AND id!=".db_escape($selected_id); + + $res = db_query($sql, "could not query gl account uniqueness"); + $row = db_fetch($res); + + return $gl_code2 == -1 ? ($row[0] <= 1) : ($row[0] == 0); +} + +function is_tax_account($account_code) +{ + $sql= "SELECT id FROM ".TB_PREF."tax_types WHERE + sales_gl_code=".db_escape($account_code)." OR purchasing_gl_code=".db_escape($account_code); + $result = db_query($sql, "checking account is tax account"); + if (db_num_rows($result) > 0) { + $acct = db_fetch($result); + return $acct['id']; + } else + return false; +} + +