From 2b220a1f94659199ef7524e47087891de4d0f545 Mon Sep 17 00:00:00 2001 From: Joey Schulze Date: Thu, 13 May 2010 21:50:56 +0200 Subject: [PATCH] Add edit possibility for einsatz metadata, allow individual and entire deletion, delay loading of background data --- masks/korrektur.php | 365 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 340 insertions(+), 25 deletions(-) diff --git a/masks/korrektur.php b/masks/korrektur.php index 831deb5..e1d1f12 100644 --- a/masks/korrektur.php +++ b/masks/korrektur.php @@ -4,8 +4,33 @@ $jscode[] = << false, 'error' => 'Unknown data type "'.$_POST['data_type'].'" for this call'); } return array('status' => true); } +function korrektur_delete($mask) +{ + if (!empty($_POST['table']) && is_array($mask['tables_delete']) && in_array($_POST['table'], $mask['tables_delete'])) + return delete_or_copy_row($_POST['table'],$_POST['id']); + + $id = $_POST['id']; + $subtables = array('einsatzpersonal','einsatzgeraete'); + foreach ($subtables as $table) { + $sql = sprintf("SELECT id FROM %s WHERE einsatz = %d", $table, $id); + $sth = pg_query($sql); + $row = pg_fetch_assoc($sth); + + $ret = delete_or_copy_row($table, $row['id']); + + if ($ret['status'] !== true) return $ret; + } + + return delete_or_copy_row($mask['table'], $id); +} + $mask = array( 'table' => 'einsatz', + 'tables_delete' => array('einsatzpersonal','einsatzgeraete'), 'title' => 'Korrektur von Arbeitsberichten', 'join' => array( 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id', @@ -303,13 +595,19 @@ $mask = array( 'specs' => "filterUI: 'c', ClassName: 'aligncenter', canSort: false", 'sql' => "'bearbeiten'", ), + 'controlc' => array( + 'name' => 'Einsatz', + 'width' => 70, + 'control' => "new Rico.TableColumn.link('javascript:einsatz_load({0})')", + 'specs' => "filterUI: 'c', ClassName: 'aligncenter', canSort: false", + 'sql' => "'bearbeiten'", + ), ), - 'edit_table' => 'materialverbrauch', 'edit' => array(), 'save' => korrektur_save, + 'delete' => korrektur_delete, 'buttons' => array( 'insert' => false, - 'delete' => false, ), 'info' => array( 'einheit' => array( @@ -317,6 +615,11 @@ $mask = array( 'JOIN materialien ON materialien.einheit = einheiten.id ' . 'WHERE materialien.id = {id}', ), + 'einsatz' => array( + 'sql' => "SELECT id,ordnung,datum,kostenstelle,gebiet,arbeiten,akkord,bemerkung " . + 'FROM einsatz ' . + 'WHERE id = {id}', + ), 'einsatzpersonal' => array( 'sql' => "SELECT id,personal,stunden " . 'FROM einsatzpersonal ' . @@ -327,6 +630,18 @@ $mask = array( 'FROM einsatzgeraete ' . 'WHERE einsatz = {id}', ), + 'gebiete' => array( + 'sql' => 'SELECT id,gebiet AS text FROM gebiet ORDER BY text', + ), + 'kostenstellen' => array( + 'sql' => 'SELECT id,kostenstelle AS text FROM kostenstellen WHERE gebiet = {gebiet} ORDER BY text', + ), + 'ordnungen' => array( + 'sql' => 'SELECT id,name AS text FROM ordnungen ORDER BY text', + ), + 'arbeiten' => array( + 'sql' => 'SELECT id,arbeitsart AS text FROM arbeitsarten ORDER BY text', + ), 'mitarbeiter' => array( 'sql' => 'SELECT id,name || \', \' || vorname AS text FROM personal WHERE aktiv = 1 ORDER BY text', ), -- 2.20.1