Nimbin[12]?Web & Tools / dienstplancreator / api/objects/closingtime_person_class.php

dienstplancreator git · main

Dienstplan (roster) creator, PHP/JS web app

php javascript roster web · first commit 2023-07-13 · last commit 2023-09-14 (3 years ago) · synced 3 days ago · upstream: github.com/nimbin2/dienstplancreator

JavaScript 50% PHP 40.5% CSS 8.5%
git clone https://git.christianimmanuel.de/web-tools/dienstplancreator.gitwget https://git.christianimmanuel.de/web-tools/dienstplancreator/archive/dienstplancreator.tar.gz
api/objects/closingtime_person_class.php 6.8 KB · 182 lines raw
<?php

require_once 'person_hours_class.php';
require_once 'closingtime_class.php';

class Closingtime_person
{
	private $data_id;
	private $id;
	private $closingtime_id;
	private $person_id ;
	/* Constructor */
	public function __construct() {
		$this->data_id = NULL;
		$this->id = NULL;
		$this->closingtime_id = NULL;
		$this->person_id = NULL;
	}
	
	/* Destructor */
	public function __destruct() { }

	public function add(int $data_id, string $closingtime_id, string $person_id): int {
		global $pdo;
		$data_id	    = trim($data_id);
		$closingtime_id	= trim($closingtime_id);
		$person_id	    = trim($person_id);

		$query = 'INSERT INTO datadienstplandb.closingtime_persons (data_id, closingtime_id, person_id) VALUES (:data_id, :closingtime_id, :person_id)';

		$values = array(':data_id' => $data_id, ':closingtime_id' => $closingtime_id, ':person_id' => $person_id);

		try
		{
			$res = $pdo->prepare($query);
			$res->execute($values);
		}
		catch (PDOException $e)
		{
		   /* If there is a PDO exception, throw a standard exception */
		   throw new Exception('Database query error closingtime_person_class.php');
		}



        $closingtime = new Closingtime();
        $cl = $closingtime->get($data_id, $closingtime_id);
        $set_hours = new Person_hours();
        $set_hours->updateWhereBetweenDate($data_id, $person_id, $cl["start"], $cl["end"], "should");

		return $pdo->lastInsertId();
	}
    public function get(int $data_id, int $closingtime_id) {
        global $pdo;
		$data_id	    = trim($data_id);
		$closingtime_id	= trim($closingtime_id);
        $query          = "SELECT * FROM datadienstplandb.closingtime_persons WHERE (data_id = :data_id) AND closingtime_id = :closingtime_id";
        $values         = array(':data_id' => $data_id, ':closingtime_id' => $closingtime_id);

        try {
            $res = $pdo->prepare($query);
            $res->execute($values);
        } catch (PDOException $e) {
            throw new Exception('Database query error closingtime_person_class.php');
        }    
        $persons=array();
        while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
            extract($row);
            $persons_item=array(
                "id"         	 => (int)$id,
                "closingtime_id" => (int)$closingtime_id,
                "person_id"		 => (int)$person_id
            );
            array_push($persons, $persons_item);
        }
        return $persons;
    }
    public function getWherePerson(int $data_id, int $person_id) {
        global $pdo;
		$data_id	    = trim($data_id);
		$person_id  	= trim($person_id);
        $query          = "SELECT * FROM datadienstplandb.closingtime_persons WHERE data_id = :data_id AND person_id = :person_id";
        $values         = array(':data_id' => $data_id, ':person_id' => $person_id);

        try {
            $res = $pdo->prepare($query);
            $res->execute($values);
        } catch (PDOException $e) {
            throw new Exception('Database query error closingtime_person_class.php');
        }    
        $closingtimes=array();
        $closingtimes["closingtimes"]=array();
        while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
            extract($row);
            $persons_item=array(
                "id"         	 => (int)$id,
                "closingtime_id" => (int)$closingtime_id,
                "person_id"		 => (int)$person_id
            );
            array_push($closingtimes["closingtimes"], $persons_item);
        }
        return $closingtimes;
    }
   	public function remove(int $data_id, int $closingtime_id, int $person_id) {
        global $pdo;

        $data_id        = trim($data_id);
        $closingtime_id = trim($closingtime_id);
        $person_id      = trim($person_id);

        $cl = new Closingtime();
        $closingtime = $cl->get($data_id, $closingtime_id);

        $query          = "DELETE FROM datadienstplandb.closingtime_persons WHERE (data_id = :data_id) AND closingtime_id = :closingtime_id AND person_id = :person_id";
        $values         = array(':data_id' => $data_id, ':closingtime_id' => $closingtime_id, ':person_id' => $person_id);

        try {
            $res = $pdo->prepare($query);
            $res->execute($values);
        } catch (PDOException $e) {
            throw new Exception('Database query error closingtime_person_class.php');
        }

        $set_hours = new Person_hours();
        $set_hours->updateWhereBetweenDate($data_id, $person_id, $closingtime["start"], $closingtime["end"], "should");
    }
   	public function removeAllWherePerson(int $data_id, int $person_id) {
        global $pdo;

        $data_id        = trim($data_id);
        $person_id      = trim($person_id);

        $query          = "DELETE FROM datadienstplandb.closingtime_persons WHERE data_id = :data_id AND person_id = :person_id";
        $values         = array(':data_id' => $data_id, ':person_id' => $person_id);

        try {
            $res = $pdo->prepare($query);
            $res->execute($values);
        } catch (PDOException $e) {
            throw new Exception('Database query error closingtime_person_class.php');
        }
    }
	public function removeAll(int $data_id, int $closingtime_id) {
        global $pdo;

        $data_id        = trim($data_id);
        $closingtime_id = trim($closingtime_id);

        $closingtime = new Closingtime();
        $closingtime->get($data_id, $closingtime_id);

        $query          = "DELETE FROM datadienstplandb.closingtime_persons WHERE (data_id = :data_id) AND closingtime_id = :closingtime_id";
        $values         = array(':data_id' => $data_id, ':closingtime_id' => $closingtime_id);

        try {
            $res = $pdo->prepare($query);
            $res->execute($values);
        } catch (PDOException $e) {
            throw new Exception('Database query error closingtime_person_class.php');
        }

        $persons = $this->get($data_id, $closingtime_id);
        foreach($persons["persons"] as $key=> $value) {
            $person_id = $value["person_id"];
            $set_hours = new Person_hours();
            $set_hours->updateWhereBetweenDate($data_id, $person_id, $closingtime["start"], $closingtime["end"], "should");
        }
    }
    public function removeWhereDataId(int $data_id) {
        global $pdo;
        $data_id = trim($data_id);
        $query   = "DELETE FROM datadienstplandb.closingtime_persons WHERE data_id = :data_id";
        $values  = array(':data_id' => $data_id);

        try {
            $res = $pdo->prepare($query);
            $res->execute($values);
        } catch (PDOException $e) {
            throw new Exception('Database query error closingtime_person_class.php');
        }
    } 
}