83 lines
2.6 KiB
PHP
83 lines
2.6 KiB
PHP
<?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());
|
|
}
|
|
|
|
} |