fhiiqm/inc/info_tab_ins.inc.php
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Thu, 23 Aug 2012 10:17:50 +0200
changeset 29 72f79dab938e
parent 26 3c1e3ac7089f
child 31 0a1eb975fbd9
permissions -rw-r--r--
+ Infotyp 7,8,81, Info-Report, Reports AS, Menu anpassen

<?php

/**
 * @author Bettina Schwarzer
 * @copyright 08/2011
 *
 * INSERT Infodaten in n:m-Tabellen fuer INSERT und UPDATE Infodaten 
 */

            // Produkt
            $retp = true;
            if (is_array($inf["prid"]) && array_sum($inf["prid"])>0)
            { // nur Produkte, keine Gruppen, Bereiche
            
                // Loeschen altes Produkt, INSERT neues
                $sql = "DELETE FROM Info_Produkt WHERE info_ID = $infid";
                $retpd = $dbc -> execute($sql);
                if ($retpd)
                {
                    foreach ($inf["prid"] as $pid)
                    {
                        //INSERT in Produkt_Vertrag
                        $sql = "INSERT INTO Info_Produkt VALUES($infid,$pid)";
                        $retpi = $dbc -> execute($sql); 
                        if (!$retpi) $retp=false;
                    }
                    if (!$retp) echo "error INSERT Info_Produkt: $dbc->error<br />\n";
                }
                else
                { 
                    echo "error INSERT Info_Produkt: " . $dbc -> error . " <br />\n";
                    $retp = false;
                }
            }
            if ($inf['ityp'] != 7 && substr($inf['ityp'],0,1) != 8)
            {
                // Adressat
                $reta = true;
                $sql = "DELETE FROM Info_Adressat WHERE info_ID = $infid";
                $retd = $dbc -> execute($sql);
                if ($retd)
                {
                    if (is_array($inf['adr']))
                    {
                        foreach ($inf['adr'] as $adr)
                        {
                            if ($adr != -1)
                            { 
                                $sql = "INSERT INTO Info_Adressat VALUES($infid, $adr)";
                                $retai = $dbc -> execute($sql);
                                if (!$retai) $reta = false;
                            }
                        }
                        if (!$reta) echo "error INSERT Info_Adressat: $dbc->error<br />\n";
                    }
    
                }
                else
                { 
                    echo "error INSERT Info_Adressat: " . $dbc -> error . " <br />\n";
                    $reta = false;
                }
                // Verantwortliche + Bemerkung (ehemals Prioritaet)
                $retv = true;
                $sql = "DELETE FROM Info_Verantwortlich WHERE info_ID = $infid";
                $retv = $dbc -> execute($sql);
                if ($retv)
                {
                    if (!is_object($stmt)) $stmt = $dbc -> stmtinit();
                    if (isset($inf["vpn"]) && $inf["vpn"])
                    {
                        $parr = explode(",",$inf["vpn"]);
                        $stmt -> prepare("INSERT INTO Info_Verantwortlich (info_ID,persknr,prioritaet) VALUES(?,?,?)");
                        foreach ($parr as $pnr)
                        {
                                $stmt -> bind_param('iis',$infid, $pnr, $inf["prio"][$pnr]);
                                $retvi = $stmt -> execute();
                                if (!$retvi) $retv = false;
                        }   
                        if (!$retv) echo "error INSERT Info_Verantwortlich: $stmt->error<br />\n";
                    }
                    elseif (is_array($inf['vpers']))
                    {
                        $stmt -> prepare("INSERT INTO Info_Verantwortlich (info_ID,persknr,prioritaet) VALUES(?,?,?)");
                        for ($k=0; $k<count($inf['vpers']); $k++)
                        {
                            if ($inf['vpers'] != -1)
                            { 
                                $stmt -> bind_param('iis',$infid, $inf["vpers"][$k], $inf["prio"][$inf["vpers"][$k]]);
                                $retvi = $stmt -> execute();
                                if (!$retvi) $retv = false;
                            }
                        }
                        if (!$retv) echo "error INSERT Info_Verantwortlich: $stmt->error<br />\n";
                    }
                }
                else
                { 
                    echo "error INSERT Info_Verantwortlich: " . $dbc -> error . " <br />\n";
                    $retv = false;
                }
            }
            elseif ($inf['ityp'] == 7)
            {
                // Adressat
                $reta = true; $retv = true; // Verantwortliche werden nicht benannt
                $sql = "DELETE FROM Info_Funktion WHERE info_ID = $infid";
                $retd = $dbc -> execute($sql);
                if ($retd)
                {
                    if (is_array($inf['adr']))
                    {
                        foreach ($inf['adr'] as $adr)
                        {
                            if ($adr != -1)
                            { 
                                $sql = "INSERT INTO Info_Funktion VALUES($infid, '$adr')";
                                $retai = $dbc -> execute($sql);
                                if (!$retai) $reta = false;
                            }
                        }
                        if (!$reta) echo "error INSERT Info_Funktion: $dbc->error<br />\n";
                    }
    
                }
                else
                { 
                    echo "error INSERT Info_Adressat: " . $dbc -> error . " <br />\n";
                    $reta = false;
                }
                
            }
            elseif (substr($inf['ityp'],0,1) == 8)
            {
                $reta = true; $retv = true; // keine Adressaten, Verantwortliche
            }
            $retl = true;
            if ($inf['ityp'] == 81 && $inf['anl'] > -1) //Anlagen
            {
                $retd = $dbc -> execute("DELETE FROM Info_Anlage WHERE info_ID = $infid");
                if ($retd)
                {
                    $retl = $dbc -> execute("INSERT INTO Info_Anlage (info_ID,al_ID) VALUES($infid," . $inf['anl'] .")" );
                    if (!$retl) echo "error INSERT Info_Anlage: $dbc->error<br />\n";
                }    
            }
?>