fhiiqm/inc/vertragtab_ins.inc.php
author Bettina Schwarzer
Fri, 05 Feb 2016 14:03:40 +0100
changeset 44 d652bbba2d43
parent 43 70cea8f0e807
permissions -rw-r--r--
fhiiqm: achilleus -> db2, Korrekturen

<?php

/**
 * @author Bettina Schwarzer, Fritz-Haber-Institut
 * @copyright 06/2011
 *   
 * INSERT Vertragsdaten in n:m-Tabellen fuer INSERT und UPDATE Vertragsdaten 
 */

            // Loeschen der alten Bearbeiter, Hinzufuegen der neuen
            $retb = true;
            $sql = "DELETE FROM Vertrag_Bearbeiter WHERE contract_ID = $cid";
            $retd = $dbc -> execute($sql);
            if ($retd)
            {
                if (is_array($vtr['cpers']))
                {
                    foreach ($vtr['cpers'] as $pers)
                    {
                        if ($pers != -1)
                        { 
                            $sql = "INSERT INTO Vertrag_Bearbeiter VALUES($cid, $pers)";
                //                        echo "INSERT Bearbeiter: $sql<br><br>\n";
                            $retb = $dbc -> execute($sql);
                        }
                    }
                }

            }

             // Partner
            $retp = true;
            if ($vtr['partid'] != -1)
            {
                // Loeschen alter Partner, INSERT neuer
                $sql = "DELETE FROM Vertrag_Partner WHERE contract_ID = $cid";
                $retdp = $dbc -> execute($sql);
                if ($retdp)
                {
                    $sql = "INSERT INTO Vertrag_Partner VALUES($cid," . $vtr['partid'] .")";
                    $retp = $dbc -> execute($sql);
                    if (!$retp) echo "error INSERT Vertrag_Partner: " . $dbc -> error . " <br />\n";
                }
                $pid = $vtr['partid'];
            }
            else
            {
                // Loeschen alter Partner, INSERT neuer
                $sql = "DELETE FROM Vertrag_Partner WHERE contract_ID = $cid";
                $retdp = $dbc -> execute($sql);
                if ($retdp) $retp=1;
            }
            if ($vtr['partner'])
            {
                // Test, ob Eintrag schon vorhanden
                $sql = "SELECT part_ID, part_firma FROM Partner WHERE part_firma = '" . ltrim($vtr['partner']) . "'";
                if ($res = $dbc -> queryObjectArray($sql))
                {
                    foreach ($res as $row)
                        $pid = $row->part_ID;
                }        
                else
                {
                    // INSERT in Partner, ID INSERT in Vertrag_Partner
                    $sql = "INSERT INTO Partner (part_firma) VALUES (LEFT(TRIM('" . $vtr['partner'] . "'),50))";
                    $retp = $dbc -> execute($sql); 
    //                    echo "Partner INSERT: $sql<br />\n";           
                    if ($retp) $pid = $dbc -> insertId();
                }
                if ($pid)
                { 
                    // Loeschen alter Partner, INSERT neuer
                    $sql = "DELETE FROM Vertrag_Partner WHERE contract_ID = $cid";
                    $retdp = $dbc -> execute($sql);
                    if ($retdp)
                    {
                            $sql = "INSERT INTO Vertrag_Partner VALUES($cid,$pid)";
                            $retp = $dbc -> execute($sql);
                            if (!$retp) echo "error INSERT Vertrag_Partner: " . $dbc -> error . " <br />\n";
                    }
                }
            }
            
            // Produkt
            $retd = true;
            if ($vtr['prodid'] > 0 || $vtr['prodid'] = -1) // nur Produkte, keine Gruppen, Bereiche
            {
                // Loeschen altes Produkt, INSERT neues
                $sql = "DELETE FROM Produkt_Vertrag WHERE contract_ID = $cid";
                $retdd = $dbc -> execute($sql);
                if ($retdd && $vtr['prodid'] > 0)
                {
                    //INSERT in Produkt_Vertrag
                    $sql = "INSERT INTO Produkt_Vertrag VALUES(".$vtr['prodid'].",$cid)";
                    $retd = $dbc -> execute($sql); 
                    if (!$retd) echo "error INSERT Produkt_Vertrag: " . $dbc -> error . " <br />\n";
                }
                
            }
            
            // Kosten
            $retk = true;
            if ($vtr['kost'] && ($vtr['bjahr'] || $vtr['bdat'])) // Kosten fuer mindestens Startjahr
            {
                if ($vtr['bdat'])
                {
                    $jahr = new DateTime($vtr['bdat']);
                    $bjahr = $jahr->format('Y');
                }
                else $bjahr = $vtr['bjahr'];              

                // alle bisherigen Angaben loeschen
                $sql = "DELETE FROM Vertrag_Kosten WHERE contract_ID = $cid";
                $retdk = $dbc -> execute($sql);   
                if ($retdk)
                {
                    $j=0;
                    if ($vtr['ejahr'] || $vtr['edat'])
                    { 
                        if ($vtr['ejahr']) $ejahr = $vtr['ejahr'];
                        else
                        {
                            $jahr = new DateTime($vtr['edat']);
                            $ejahr = $jahr->format('Y');   
                        }
                    }    
                    elseif ($vtr["cautoend"] && !$vtr['ejahr'] && !$vtr['edat']) // automatische Vertragsverlaengerung und kein Endjahr angegeben
                        $ejahr = date("Y");
                    else 
                        $ejahr = null;
//                    if ($vtr['ejahr']) // Endjahr angegeben
                    if ($ejahr) // Endjahr angegeben
                    {
                        for ($i=(int)$bjahr; $i< (int)$ejahr +1; $i++)
                        {
                            if ($vtr['kost'][$j])
                            {
//                                $kost = str_replace(',','.',$vtr['kost'][$j]);
                                $kost = dbformat_wert($vtr['kost'][$j]);
                                $sql = "INSERT INTO Vertrag_Kosten (contract_ID,k_year,kosten) VALUES($cid,$i,$kost)";
                                $retk = $dbc -> execute($sql);
                            }
                            $j++;   
                        }
                    }
                    else // nur fuer Startjahr
                    {
                        if ($vtr['kost'][0])
                        {
//                            $kost = str_replace(',','.',$vtr['kost'][0]);
                            $kost = dbformat_wert($vtr['kost'][0]);
                            $sql = "INSERT INTO Vertrag_Kosten (contract_ID,k_year,kosten) VALUES($cid,".(int)$bjahr.",$kost)";
                            $retk = $dbc -> execute($sql);
                        }   
                    }
                    if (!$retk) echo "error INSERT Vertrag_Kosten: " . $dbc -> error . "<br />$sql<br />\n";
                }
            }

            // Vertragfile und Schlagwort
            $retl = true;
            if (is_array($vtr['cfname']) && count($vtr['cfname']) > 0)
            {
                // alle bisherigen Dokumente loeschen
                $sql = "DELETE FROM Vertrag_File WHERE contract_ID = $cid";
                $retdl = $dbc -> execute($sql);   
                if ($retdl)
                {
                    foreach ($vtr['cfname'] as $key => $value)
                    {
                        if ($value)
                        {
                            if (!$vtr['swort'][$key] || $vtr['swort'][$key]<"!") $sw = "NULL"; else $sw = "'".$vtr['swort'][$key]."'";
                            if (substr($value,0,$len) != $cid . "_") $file = $cid . "_".$value; else $file = $value;
                            $sql = "INSERT INTO Vertrag_File (contract_ID,cf_filename,cf_schlagwort) VALUES ($cid,'$file',$sw)";
                            $retl = $retl && $dbc -> execute($sql);
                        }
                    }    
                    if (!$retl) echo "error INSERT Vertrag_File: " . $dbc -> error . "<br />$sql<br />\n";
                }
            }
?>