Location: PHPKode > projects > tbvs > tbvs-1.1/AbschnittAddCheck.php
<? // this section is managed by php-mgr : you may change / enhance the part with the program versions
//
//  This php section is being managed by php-mgr ver 1, 
//  If you make changes in this section then your changes will be overwritten in later releases of this file !
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  File          : ./AbschnittAddCheck.php ( 05/24/2010 )
//  Language      : php
//  Description   : Modul, um die im Modul 'AbschnittAdd.php' ermittelten Daten nach Validierung in der Datenbank abzuspeichern
//  Project       : tbvs - Das Tiefbauverwaltungssystem
//  Project Site  : http://tbvs.sourceforge.net/
//  Project wiki  : http://scratchpad.wikia.com/wiki/Tbvs
//  Created by    : Rainer Stötter ( hide@address.com ), 03/01/2008
//  Copyright (c) : 2007 - 2008, Rainer Stötter, All rights reserved
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  License
//
//  This file has been released under GNU GENERAL PUBLIC LICENSE
//  (see http://www.gnu.org/licenses/gpl.html)
//
//
// * GNU General Public License (Version 3, June 2009 )
// *
// * This program is free software; you can redistribute
// * it and/or modify it under the terms of the GNU
// * General Public License as published by the Free
// * Software Foundation; either version 3 of the License,
// * or (at your option) any later version.
// * 
// * This program is distributed in the hope that it will
// * be useful, but WITHOUT ANY WARRANTY; without even the
// * implied warranty of MERCHANTABILITY or FITNESS FOR A
// * PARTICULAR PURPOSE. See the GNU General Public License
// * for more details. 
//   
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  
//	[[Requests]]
//
//
//		_POST[]
//		_POST[]
//		_POST[]
//		_POST[]
//		_POST[]
//		_POST[]
//		_POST[]
//		_POST['BAUZ_BIS']
//		_POST['BAUZ_BIS_CB']
//		_POST['BAUZ_BIS_D']
//		_POST['BAUZ_BIS_M']
//		_POST['BAUZ_BIS_Y']
//		_POST['BAUZ_VON']
//		_POST['BAUZ_VON_CB']
//		_POST['BAUZ_VON_D']
//		_POST['BAUZ_VON_M']
//		_POST['BAUZ_VON_Y']
//		_POST['Eigenanteil']
//		_POST['Firma']
//		_POST['FirmaBestaetiger']
//		_POST['FirmaNachverrechnung']
//		_POST['FirmaNachverrechnungspreisperiode']
//		_POST['FirmaPreise']
//		_POST['FirmaRechnung']
//		_POST['FirmenvorgabeABS']
//		_POST['Kolonne']
//		_POST['Stage']
//		_POST['Titel']
//		_POST['bk']
//		_POST['mandant']
//		_POST['mod']
//		_POST['prj']
//		_POST['tmm']
//		_POST[CB_FIRMA]
//		_POST[Firma]
//
//	[[End of requests]]
//
//
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  
//	[[Functions]]
//
//
//		function GoodParameters()
//
//	[[End of functions]]
//
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  
//	[[Classes]]
//
//
//	no classes were found
//
//	[[End of classes]]
//
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  
//	[[Versions of file ./AbschnittAddCheck.php]]
//
//	01.03.2008	Rainer Stötter (tbvs-0.93)
//			Module created
//	08.11.2008	Rainer Stötter (tbvs-1.01)
//	03.12.2008	Rainer Stötter (tbvs-1.02)
//	05.04.2009	Rainer Stötter (tbvs-1.031)
//	13.07.2009	Rainer Stötter (tbvs-1.032)
//	06.08.2009	Rainer Stötter (tbvs-1.040)
//	05.03.2010	Rainer Stötter (tbvs-1.08006)
//			a
//
//	[[End of versions]]
//
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  CVS
//
//  $Log:…$
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 
// here ends the section which is managed by php-mgr ver 1
//

//{TOOLVER=01,00000}{OLSTART=00495}{OLLEN=00107}
?><?php


/*********************************************************************************
* AbschnittAddCheck.php
* 
*
* Funktion :
*	Daten einer neuen Abschnitt pr&uuml;fen und abspeichern
* Parameter : POST
*	$mandant 	ID des akuellen Mandanten
*       $bk             ID des Buchungskreises
*       $prj       IDs der Position
*       $mod        Modus
*       $tmm        Tiefbau/Montage oder Material
*
**********************************************************************************/

require_once("./functions/checkuser.inc.php");	//	Login ist erforderlich
require_once("./functions/prolog.inc.php");	//	Datei mit vorgestellten Routinen
require_once("./functions/debug.inc.php");	//	Debugging-Funktionen
require_once("./functions/tbvs.inc.php");	//	systemweite Konstanten und Funktionen
require_once("./functions/tbvs-db.inc.php");	//	systemweite Datenbankfunktionen
require_once("./functions/tbvs-inout.inc.php");	//	systemweite Ein- Ausgabefunktionen


function GoodParameters() {

  $msgKeinBuchungskreis = id2msg( 1071 );
  $msgKeinMandant = id2msg( 1070 );
  $msgKeinProjekt = id2msg( 1072 );
  $msgKeinModus = id2msg( 1073 );
  $msgKeintmm = id2msg( 1074 );

  if ( (! isset($_POST['bk']))  )
	die ($msgKeinBuchungskreis);
  if ( (! isset($_POST['mandant']))  )
	die ($msgKeinMandant);
  if ( (! isset($_POST['prj']))  )
	die ($msgKeinProjekt);
  if ( (! isset($_POST['mod']))  )
	die ($msgKeinModus);
  if ( (! isset($_POST['tmm']))  )
	die ($msgKeintmm);
} // function GoodParameters

// ==================================================================================

DisplayHeader();
// ShowAllParameters();
GoodParameters();

$mandant=$_POST['mandant'];
$bk=$_POST['bk'];
$prj=$_POST['prj'];
$mod=$_POST['mod'];
$tmm=$_POST['tmm'];

// ShowAllParameters();

$abs=NewAbschnittID($mandant, $bk, $prj, $mod, $tmm );


$Stage=$_POST['Stage'];
if (!$Stage) $Stage = NextAbschnittStage( $mandant, $bk, $prj, $mod, $tmm);

display_title( sprintf( id2msg(1075) , $abs, $bk, $mandant, $prj ) );


if ( ExistsAbschnitt ( $mandant, $bk, $prj, $mod, $tmm, $abs ) ) {
    die ( sprintf( id2msg(1076)  , $prj , $abs ) );
}

    if (isset ($_POST[CB_FIRMA] )) {
        $fa = substr($_POST[Firma] , 2);
        // da neuer Abschnitt, brauchen wir nicht eine Firmenvorlage zu setzen
    } else {
        $fa = "NULL";
    }

$Titel=$_POST['Titel'];
$BAUZ_VON=$_POST['BAUZ_VON'];
$BAUZ_BIS=$_POST['BAUZ_BIS'];
$ID_FIRMA = FirmaSelect2ID($_POST['Firma'] );

$startDay=$_POST['BAUZ_VON_D'];
$startMonth=$_POST['BAUZ_VON_M'];
$startYear=$_POST['BAUZ_VON_Y'];

$endDay=$_POST['BAUZ_BIS_D'];
$endMonth=$_POST['BAUZ_BIS_M'];
$endYear=$_POST['BAUZ_BIS_Y'];

    // Falls leere Eingaben f&uuml;rs Startdatum, dann wird NULL eingesetzt
    if ( ( $startDay == '' ) && 
            ($startMonth == '') &&
            ($startYear == '') 
        ) {
        $BAUZ_VON = "NULL";
    } else {
        $BAUZ_VON = strftime( "%Y-%m-%d", mktime( 0, 0, 0, $startMonth, $startDay, $startYear ) );
    }

    if ( ( $endDay == '' ) && 
            ($endMonth == '') &&
            ($endYear == '') 
        ) {
        $BAUZ_BIS = "NULL";
    } else {
        $BAUZ_BIS = strftime( "%Y-%m-%d", mktime( 0, 0, 0, $endMonth,   $endDay,   $endYear ) );
    }

    if ( !isset( $_POST['BAUZ_VON_CB'] ) ) {
        $BAUZ_VON = "NULL";
    }

    if ( !isset( $_POST['BAUZ_BIS_CB'] ) ) {
        $BAUZ_BIS = "NULL";
    }

    if ( !isset( $_POST['Firma'] ) || ( $_POST['Firma'] == 0 ) ) {
        $ID_FIRMA = "NULL";
    }


/*
$datesWrong = checkPeriod( $startMonth, $startDay, $startYear, $endMonth, $endDay, $endYear);
if ($datesWrong) {
    if ($datesWrong==1) {
        echo "<br><b>fehlerhaftes Startdatum !</b>";
    } elseif($datesWrong==2) {
        echo "<br><b>fehlerhaftes Enddatum !</b>";
    } elseif ($datesWrong==3) {
        echo "<br><b>Fehler : Das Enddatum ist &auml;lter als das Startdatum </b>";
    }
}   // if ($datesWrong) 
*/


    $USE_FIRMA  =  ( isset ($_POST[ 'CB_FIRMA'  ]))  ? 1 : 0;
    $ID_FIRMA =   ( $USE_FIRMA )  ? FirmaSelect2ID($_POST['Firma'] ) : "NULL";

    $USE_FIRMA_VORGABE_ABS  =  ( isset ($_POST[ 'CB_FIRMA_VORGABE_ABS'  ]))  ? 1 : 0;
    $ID_FIRMA_VORGABE_ABS =   ( $USE_FIRMA_VORGABE_ABS )  ? FirmaSelect2ID($_POST['FirmenvorgabeABS'] ) : "NULL";

    $USE_FIRMARECHNUNG  =  ( isset ($_POST[ 'CB_FIRMA_RECHNUNG'  ]))  ? 1 : 0;
    $ID_FIRMARECHNUNG =   ( $USE_FIRMARECHNUNG )  ? FirmaSelect2ID($_POST['FirmaRechnung'] ) : "NULL";

    $USE_FIRMANACHVERRECHNUNG  =  ( isset ($_POST[ 'CB_FIRMA_NACHVERRECHNUNG'  ]))  ? 1 : 0;
    $ID_FIRMANACHVERRECHNUNG =   ( $USE_FIRMANACHVERRECHNUNG )  ? FirmaSelect2ID($_POST['FirmaNachverrechnung'] ) : "NULL";

    $USE_FIRMAPREISE  =  ( isset ($_POST[ 'CB_FIRMA_PREISE'  ]))  ? 1 : 0;
    $ID_FIRMAPREISE =   ( $USE_FIRMAPREISE )  ? FirmaSelect2ID($_POST['FirmaPreise'] ) : "NULL";

    $USE_FIRMA_NACHVERRECHNUNGSPREISPERIODE  =  ( isset ($_POST[ 'CB_FIRMA_NACHVERRECHNUNGSPREISPERIODE'  ]))  ? 1 : 0;
    $ID_FIRMA_NACHVERRECHNUNGSPREISPERIODE =   ( $USE_FIRMA_NACHVERRECHNUNGSPREISPERIODE )  ? FirmaSelect2ID($_POST['FirmaNachverrechnungspreisperiode'] ) : "NULL";

    $USE_FIRMA_BESTAETIGER  =  ( isset ($_POST[ 'CB_FIRMA_BESTAETIGER'  ])  ? 1 : 0 ) ;
    $ID_FIRMA_BESTAETIGER =   ( $USE_FIRMA_BESTAETIGER ? FirmaSelect2ID($_POST['FirmaBestaetiger'] ) : "NULL" );

    $Kolonne = $_POST['Kolonne'];
    $Eigenanteil = $_POST['Eigenanteil'];

$datesWrong = FALSE;

if ( !$datesWrong ) { 

    // $BAUZ_VON = strftime( "%Y-%m-%d", mktime( 0, 0, 0, $startMonth, $startDay, $startYear ) );
    // $BAUZ_BIS = strftime( "%Y-%m-%d", mktime( 0, 0, 0, $endMonth,   $endDay,   $endYear ) );

    // echo "<br>$BAUZ_VON ..... $BAUZ_BIS";

    $mysqli = OpenTBVSDB();    

    
    $usr = activeUserName( );

    $query = "INSERT INTO ABSCHNITT (
                ID_MANDANT, ID_BUCHKR, ID_PROJEKT,
                ID_MODUS, ID_TMM, ID_ABSCHNITT, Stage,
                Titel, BAUZ_VON, BAUZ_BIS, 
                ID_FIRMA,
                ID_FIRMA_VORGABE_ABS,
                ID_FIRMARECHNUNG,
                ID_FIRMANACHVERRECHNUNG,
                ID_FIRMAPREISE,
                ID_FIRMA_NACHVERRECHNUNGSPREISPERIODE,
                ID_FIRMA_BESTAETIGER,
                Kolonne,
                Eigenanteil,
                REVDATE, REVNAME, REVFIRST
            ) VALUES (
                $mandant, $bk, $prj,
                '$mod', '$tmm', '$abs', '$Stage',
                '$Titel', '$BAUZ_VON', '$BAUZ_BIS', 
                $ID_FIRMA,
                $ID_FIRMA_VORGABE_ABS,
                $ID_FIRMARECHNUNG,
                $ID_FIRMANACHVERRECHNUNG,
                $ID_FIRMAPREISE,
                $ID_FIRMA_NACHVERRECHNUNGSPREISPERIODE,
                $ID_FIRMA_BESTAETIGER,
                '$Kolonne',
                '$Eigenanteil',
                 NOW(),'$usr', NOW()
            )" ;
    
     // echo "<br>$query<br>";

    TransactionBegin( $mysqli );
    $result = $mysqli->query( $query );
            
    $ret = false;

    if (!$result) {
        printf(id2msg( 1141 ), $mysqli->sqlstate,  $mysqli->error);
        TransactionRollback( $mysqli );
    } else {

        $bab = AddEmptyBauabschnitt( $mysqli, $mandant, $bk, $prj, $mod, $tmm, $abs, $Titel);
        if ($bab) {
            $tab = AddEmptyTeilabschnitt( $mysqli, $mandant, $bk, $prj, $mod, $tmm, $abs, $bab, $Titel);
            if ($tab) {
                $msgAbschnittUndEbenenGespeichert = id2msg( 1078 );
                TransactionCommit( $mysqli );
                echo $msgAbschnittUndEbenenGespeichert;
                $ret = true;
            }
        } 
    }

    $mysqli->close();

    $msgAbschnittAnzeigen = id2msg( 1079 );
    echo "<p><a href=AbschnittShow.php?mandant=$mandant&bk=$bk&prj=$prj&mod=$mod&tmm=$tmm&abs=$abs>$msgAbschnittAnzeigen</a>";

    // return $ret;

}   // if ($datesOK)




$msgZurueckZumProjekt = id2msg( 1080 );
echo "<A HREF=HierList.php?mandant=$mandant&bk=$bk&prj=$prj> $msgZurueckZumProjekt</a>  ";
/* ================================================================-------------------------------- */

require_once("./functions/epilog.inc.php");	//	Datei mit nachgestellten Routinen

?>
Return current item: tbvs