return false, also when delete cannot be executed
[misc/kostenrechnung] / ajax / ajax.php
index 95e2034..5b52733 100644 (file)
@@ -83,6 +83,9 @@ function format_decimal($value)
 
 function save($mask)
 {
+  if (array_key_exists('save', $mask))
+    return $mask['save']($mask);
+
   if (empty($_POST['id']))
     return array('error' => 'Missing ID');
 
@@ -194,17 +197,11 @@ function insert($mask)
   return array('status' => true);
 }
 
-function delete_or_copy($mask)
+function delete_or_copy_row($table,$id)
 {
-  if (empty($_POST['id']))
-    return array('error' => 'Missing ID');
-
-  if (!empty($mask['edit_table']))
-    return array('error' => 'Cannot handle deletion for secondary table');
-
   if (DELETE_COPY === true) {
     $sql = sprintf("INSERT INTO %s_deleted SELECT * FROM %s WHERE id = %d",
-                  $mask['table'], $mask['table'], $_POST['id']);
+                  $table, $table, $id);
 
     $sth = pg_query($sql);
 
@@ -215,7 +212,7 @@ function delete_or_copy($mask)
     }
 
     $sql = sprintf("UPDATE %s_deleted SET sys_user='%s',sys_edit=now() WHERE id = %d",
-                  $mask['table'], $_SESSION['sys']['login'], $_POST['id']);
+                  $table, $_SESSION['sys']['login'], $id);
 
     $sth = pg_query($sql);
 
@@ -226,7 +223,7 @@ function delete_or_copy($mask)
     }
   }
 
-  $sql = sprintf("DELETE FROM %s WHERE id = %d", $mask['table'], $_POST['id']);
+  $sql = sprintf("DELETE FROM %s WHERE id = %d", $table, $_POST['id']);
 
   $sth = pg_query($sql);
 
@@ -239,6 +236,20 @@ function delete_or_copy($mask)
   return array('status' => true);
 }
 
+function delete_or_copy($mask)
+{
+  if (empty($_POST['id']))
+    return array('error' => 'Missing ID');
+
+  if (array_key_exists('delete', $mask))
+    return $mask['delete']($mask);
+
+  if (!empty($mask['edit_table']))
+    return array('error' => 'Cannot handle deletion for secondary table');
+
+  return delete_or_copy_row($mask['table'],$_POST['id']);
+}
+
 function set_variable($name,$mask)
 {
   if (!array_key_exists('variables',$mask))