- $sql = "UPDATE ".TB_PREF."chart_types SET name=".db_escape($name).",
- class_id=$class_id, parent=$parent WHERE id = $id";
-
- db_query($sql, "could not update account type");
+ 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($old_id);
+
+ $ret = db_query($sql, "could not update account type");
+ commit_transaction();
+ return $ret;