X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gl%2Fincludes%2Fdb%2Fgl_db_account_types.inc;h=0ea366ecd7fd16a93dbc8594849648c8dcf14c4c;hb=3d154c1be37111f3659ad0d1a28b2576a51fdd38;hp=1c25db71a5a7e8fc140ee655fac052f72c84aae6;hpb=ea5da794eb3417d2a71d4fb50f831a0b365346fc;p=fa-stable.git diff --git a/gl/includes/db/gl_db_account_types.inc b/gl/includes/db/gl_db_account_types.inc index 1c25db71..0ea366ec 100644 --- a/gl/includes/db/gl_db_account_types.inc +++ b/gl/includes/db/gl_db_account_types.inc @@ -17,13 +17,39 @@ function add_account_type($id, $name, $class_id, $parent) return db_query($sql); } -function update_account_type($id, $name, $class_id, $parent) +function update_account_type($id, $name, $class_id, $parent, $old_id) { - $sql = "UPDATE ".TB_PREF."chart_types SET name=".db_escape($name).", + begin_transaction(); + if ($old_id != $id) + { + $sql = "SELECT id FROM ".TB_PREF."chart_types WHERE parent = ".db_escape($old_id); + + $result = db_query($sql, "could not get account type"); + + while ($myrow = db_fetch($result)) + { + $sql = "UPDATE ".TB_PREF."chart_types SET parent=".db_escape($id) + ." WHERE id = '".$myrow['id']."'"; + db_query($sql, "could not update account type"); + } + $sql = "SELECT account_code FROM ".TB_PREF."chart_master WHERE account_type = ".db_escape($old_id); + + $result = db_query($sql, "could not get account"); + + while ($myrow = db_fetch($result)) + { + $sql = "UPDATE ".TB_PREF."chart_master SET account_type=".db_escape($id) + ." WHERE account_code = '".$myrow['account_code']."'"; + db_query($sql, "could not update account"); + } + } + $sql = "UPDATE ".TB_PREF."chart_types SET id=".db_escape($id) .", name=".db_escape($name).", class_id=".db_escape($class_id).", parent=".db_escape($parent) - ." WHERE id = ".db_escape($id); + ." WHERE id = ".db_escape($old_id); - return db_query($sql, "could not update account type"); + $ret = db_query($sql, "could not update account type"); + commit_transaction(); + return $ret; } function get_account_types($all=false)