redesign for mulituser

change validation concept (client and server)
using entities
This commit is contained in:
Markus
2026-10-06 08:55:35 +02:00
parent 14e050e4ba
commit 995e2ec111
41 changed files with 2402 additions and 1223 deletions

View File

@@ -0,0 +1,83 @@
<?php
namespace App\Controllers;
use App\Models\mScheduled;
use CodeIgniter\Session\Session;
use CodeIgniter\API\ResponseTrait;
include_once (dirname(__FILE__) . "/FormHandler.php");
class Scheduled extends FormHandler {
use ResponseTrait;
/**
* @var Session
*/
protected $session;
public function __construct() {
$this->session = service('session');
}
public function new(bool $transfer=false){
//log_message('debug','Bills::new');
$eBooking = new \App\Entities\eBooking();
$eBooking->transfer = $transfer;
$eBooking->scheduled = true;
$eBooking = $eBooking->getNew();
return $this->viewBill($eBooking);
}
public function edit(int $id){
$scheduled = model('App\Models\mScheduled');
$entry = $scheduled->getEntry($id);
$eBooking = new \App\Entities\eBooking($entry);
return $this->viewBill($eBooking);
}
public function sync(){
if (!$this->request->isAJAX()) return;
$scheduled = model('App\Models\mScheduled');
$schedules = $scheduled->findAll();
$lines = "";
foreach ( $schedules as $schedule ) {
$cur_date = $schedule['next_date'];
while ( strtotime( $cur_date ) <= strtotime( "now" ) ) {
$data = (array)json_decode($schedule['data']);
$data['id'] = 0; // to generate a new booking (overwrite id of scheduled DB)
$data['scheduled'] = false;
$eBooking = new \App\Entities\eBooking($data);
$eBooking->datum = $cur_date;
$lines .= " $cur_date - $eBooking->receiver <br/>";
$eBooking->saveIt();
$cur_date = $scheduled->calcNextDate( $cur_date, $data['scheduledNum'], $data['scheduledType']);
}
$scheduled->update($schedule['id'], ['next_date'=>$cur_date ]);
}
return $lines;
}
public function viewScheduled(){
helper('form');
return view('scheduled');
}
public function delete(){
if ($this->request->is('post')) {
log_message('debug',"delete id: ".$this->request->getPost("id"));
if (!ctype_digit($this->request->getPost("id"))) return $this->failForbidden("Ungültige ID");
$schmodel = model(mScheduled::class);
$result = $schmodel->delete(intval($this->request->getPost("id")));
if ($result !== true)
return $this->fail("Database error ".$result);
else
return $this->respondDeleted(['url'=>session('redirect_url') ?? site_url('/'),'ID'=>$this->request->getPost("id")]);
}
return $this->failUnauthorized("Schäm Dich");
}
public function getTabData(){
if (!$this->request->isAJAX()) return;
$scheduled = model('App\Models\mScheduled');
return json_encode($scheduled->getEntries());
}
}