Nimbin[12]?Web & Tools / dienstplancreator / api/objects/closingtime_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_class.php 6.6 KB · 202 lines raw
<?php

require_once 'closingtime_person_class.php';

class Closingtime
{
	private $data_id;
	private $id;
	private $name;
	private $start;
	private $end;
	private $lawful;
	/* Constructor */
	public function __construct() {
		$this->data_id = NULL;
		$this->id = NULL;
		$this->name = NULL;
		$this->start = NULL;
		$this->end = NULL;
		$this->lawful = NULL;
	}
	
	/* Destructor */
	public function __destruct() { }

	public function add(int $data_id, string $name, string $start, string $end, int $lawful, array $persons): array {
		global $pdo;
		$data_id	= trim($data_id);
		$name   	= trim($name);
		$start	    = trim($start);
		$end  	    = trim($end);
		$lawful  	= trim($lawful);

		$query = 'INSERT INTO datadienstplandb.closingtimes (data_id, name, start, end, lawful) VALUES (:data_id, :name, :start, :end, :lawful)';

        $values = array(':data_id' => $data_id, ':name' => $name, ':start' => $start, ':end' => $end, ':lawful' => $lawful);

		try {
			$res = $pdo->prepare($query); $res->execute($values);
		} catch (PDOException $e) {
		   throw new Exception('Database query error closingtime_class.php');
		}
        $id = $pdo->lastInsertId();
        foreach ($persons as $pid) {
            $cp = new Closingtime_person();
            $cp->add($data_id, $id, $pid);
        }

        return array(
            'id'    => $id,
            'name'  => $name,
            'start' => $start,
            'end'   => $end,
            'lawful'    => $lawful,
            'persons'   => $persons
        );
	}
    public function get(int $data_id, int $id) {
        global $pdo;
		$data_id	    = trim($data_id);
		$id	= trim($id);
        $query          = 'SELECT * FROM datadienstplandb.closingtimes WHERE data_id = :data_id AND id = :id';
        $values         = array(':data_id' => $data_id, ':id' => $id);

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

        $row = $res->fetch(PDO::FETCH_ASSOC);
        extract($row);
        $cp = new Closingtime_person();
        $closingtime_person = $cp->get($data_id, $id);
        $persons=array();
        foreach ($closingtime_person as $key=>$value) {
            array_push($persons, $value["person_id"]);
        }
        return array(
				"id"         => (int)$id,
				"name"       => $name,
				"start"      => $start,
				"end"        => $end,
                "lawful"     => (int)$lawful,
                "persons"    => $persons
			);
    }
    public function getAll(int $data_id) {
        global $pdo;
		$data_id	= trim($data_id);
        $query      = 'SELECT * FROM datadienstplandb.closingtimes 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_class.php');
        }

        $closingtimes=array();
        while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
            extract($row);
            $cp = new Closingtime_person();
            $closingtime_person = $cp->get($data_id, $id);
            $persons=array();
            foreach ($closingtime_person as $key=>$value) {
                array_push($persons, $value["person_id"]);
            }
			$closingtimes_item=array(
				"id"         => (int)$id,
				"name"       => $name,
				"start"      => $start,
				"end"        => $end,
				"lawful"     => (int)$lawful,
                "persons"    => $persons
			);
			array_push($closingtimes, $closingtimes_item);
        }
		return $closingtimes;
    }
    public function getLawful(int $data_id) {
        global $pdo;
		$data_id	= trim($data_id);
        $query      = 'SELECT * FROM datadienstplandb.closingtimes WHERE data_id = :data_id AND lawful = 1';
        $values     = array(':data_id' => $data_id);

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

        $closingtimes=array();
        $closingtimes["closingtimes"]=array();
        while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
            extract($row);
			$closingtimes_item=array(
				"id"         => (int)$id,
				"name"       => $name,
				"start" => $start,
				"end"   => $end,
				"lawful"     => $lawful
			);
			array_push($closingtimes["closingtimes"], $closingtimes_item);
        }
		return $closingtimes;
    }
	public function update(int $data_id, int $id, string $name, string $start, string $end, int $lawful) {
        global $pdo;
        $data_id    = trim($data_id);
        $id         = trim($id);
        $name       = trim($name);
        $start = trim($start);
        $end   = trim($end);
        $lawful     = trim($lawful);
        $query   = "UPDATE datadienstplandb.closingtimes SET name = :name, start = :start, end = :end, lawful = :lawful WHERE data_id = :data_id AND id = :id";
        $values  = array(':data_id' => $data_id, ':id' => $id, ':name' => $name, ':start' => $start, ':end' => $end, ':lawful' => $lawful);

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

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

        try {
            $res = $pdo->prepare($query);
            $res->execute($values);
        } catch (PDOException $e) {
            throw new Exception('Database query error closingtime_class.php');
        }
        $cp = new Closingtime_person();
        $cp->removeAll($data_id, $id);
    }
    public function removeWhereDataId(int $data_id) {
        global $pdo;
        $data_id = trim($data_id);
        $query   = "DELETE FROM datadienstplandb.closingtimes 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_class.php');
        }
    } 
}