From: Joey Schulze Date: Fri, 26 Mar 2010 15:54:13 +0000 (+0100) Subject: Update formular X-Git-Tag: 2010-06-02_customer~20 X-Git-Url: https://git.infodrom.org/?p=misc%2Fkostenrechnung;a=commitdiff_plain;h=8a6d33ef85698d4e16860130df7300cb0d3a88c8 Update formular --- diff --git a/masks/overview_kosten.php b/masks/overview_kosten.php index 747388d..d504469 100644 --- a/masks/overview_kosten.php +++ b/masks/overview_kosten.php @@ -2,7 +2,7 @@ include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php'); -if (empty($_SESSION['overview_kosten.year'])) $_SESSION['overview_kosten.year'] = 0; +if (empty($_SESSION['overview_kosten.year'])) $_SESSION['overview_kosten.year'] = date('Y'); $details = << @@ -20,11 +20,6 @@ $mask = array( 'table' => 'einsatz', 'title' => 'Kostenaufwand für Kostenstellen', 'join' => array( - 'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id', - 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id', - 'personal ON einsatzpersonal.personal = personal.id', - 'gerate ON einsatzgeraete.geraet = gerate.id', - 'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id', 'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id', 'gebiet ON einsatz.gebiet = gebiet.id', 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id', @@ -71,18 +66,6 @@ $mask = array( 'width' => 250, 'specs' => "filterUI: 's'", ), - 'personal' => array( - 'name' => 'Mitarbeiter', - 'sql' => "personal.name || ', ' || personal.vorname", - 'width' => 150, - 'specs' => "filterUI: 's'", - ), - 'geraet' => array( - 'name' => 'Gerät', - 'sql' => "gerate.geraet", - 'width' => 150, - 'specs' => "filterUI: 's'", - ), 'laenge' => array( 'name' => 'Länge', 'type' => 'number', @@ -94,33 +77,72 @@ $mask = array( 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 90, - 'sql' => 'einsatzpersonal.stunden * personal.persstdsatz', + 'sql' => ' +(SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal +JOIN personal ON einsatzpersonal.personal = personal.id +WHERE einsatz = einsatz.id) +', ), 'geraetkosten' => array( 'name' => 'Gerätkosten', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 90, - 'sql' => 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' . - 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern', + 'sql' => ' +(SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) +FROM einsatzgeraete +JOIN gerate ON einsatzgeraete.geraet = gerate.id +LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id +WHERE einsatz = einsatz.id) +', ), 'gesamtkosten' => array( 'name' => 'Gesamtkosten', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 90, - 'sql' => 'einsatzpersonal.stunden * personal.persstdsatz + ' . - 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' . - 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern', + 'sql' => ' +(SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal +JOIN personal ON einsatzpersonal.personal = personal.id +WHERE einsatz = einsatz.id) ++ +CASE WHEN +(SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) +FROM einsatzgeraete +JOIN gerate ON einsatzgeraete.geraet = gerate.id +LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id +WHERE einsatz = einsatz.id) IS NULL THEN 0.0 +ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) +FROM einsatzgeraete +JOIN gerate ON einsatzgeraete.geraet = gerate.id +LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id +WHERE einsatz = einsatz.id) END +', ), 'prolfdm' => array( 'name' => 'pro lfdm', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 60, - 'sql' => '(einsatzpersonal.stunden * personal.persstdsatz + ' . - 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' . - 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern) / laenge', + 'sql' => ' +((SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal +JOIN personal ON einsatzpersonal.personal = personal.id +WHERE einsatz = einsatz.id) ++ +CASE WHEN +(SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) +FROM einsatzgeraete +JOIN gerate ON einsatzgeraete.geraet = gerate.id +LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id +WHERE einsatz = einsatz.id) IS NULL THEN 0.0 +ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) +FROM einsatzgeraete +JOIN gerate ON einsatzgeraete.geraet = gerate.id +LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id +WHERE einsatz = einsatz.id) END) / laenge +', + + ), ), 'details' => array(