added new signature action
This commit is contained in:
@@ -168,6 +168,7 @@ class ConstructionConsentController extends mfBaseController {
|
||||
protected function downloadAction()
|
||||
{
|
||||
$owner_id = $this->request->owner_id;
|
||||
$open = $this->request->open;
|
||||
|
||||
if (!is_numeric($owner_id) || $owner_id < 1 || !($owner = new ConstructionConsentOwner($owner_id))->id) {
|
||||
$this->layout()->setFlash("Besitzer nicht gefunden", "error");
|
||||
@@ -184,7 +185,7 @@ class ConstructionConsentController extends mfBaseController {
|
||||
$this->redirect("ConstructionConsent", "View", ["id" => $cc->id]);
|
||||
}
|
||||
|
||||
$this->sendPdfResponse($filename, "Zustimmungserklärung-{$cc->id}-{$owner_id}.pdf");
|
||||
$this->sendPdfResponse($filename, "Zustimmungserklärung-{$cc->id}-{$owner_id}.pdf", $open === 'true');
|
||||
}
|
||||
|
||||
protected function downloadMultipleAction()
|
||||
@@ -224,10 +225,12 @@ class ConstructionConsentController extends mfBaseController {
|
||||
$this->sendPdfResponse($filename, "Zustimmungserklärungen-".date('Y-m-d').".pdf");
|
||||
}
|
||||
|
||||
private function sendPdfResponse(string $filename, string $downloadName): void
|
||||
private function sendPdfResponse(string $filename, string $downloadName, bool $open = false): void
|
||||
{
|
||||
header('Content-Type: ' . mime_content_type($filename));
|
||||
header('Content-disposition: attachment; filename="' . rawurlencode($downloadName) . '"');
|
||||
if ($open === true) header('Content-disposition: inline; filename="' . rawurlencode($downloadName) . '"');
|
||||
else header('Content-disposition: attachment; filename="' . rawurlencode($downloadName) . '"');
|
||||
|
||||
header('Content-Length: ' . filesize($filename));
|
||||
readfile($filename);
|
||||
exit;
|
||||
@@ -1278,4 +1281,84 @@ class ConstructionConsentController extends mfBaseController {
|
||||
fclose($output);
|
||||
exit();
|
||||
}
|
||||
|
||||
protected function searchTabletAction() {
|
||||
$name = '';
|
||||
$filter = [];
|
||||
|
||||
// Handle POST data - support both form data and JSON input
|
||||
if($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$postData = [];
|
||||
|
||||
// Check for JSON input (Axios sends JSON)
|
||||
$inputJSON = file_get_contents('php://input');
|
||||
$jsonData = json_decode($inputJSON, true);
|
||||
|
||||
if($jsonData !== null) {
|
||||
$postData = $jsonData;
|
||||
} else {
|
||||
$postData = $_POST;
|
||||
}
|
||||
|
||||
if(isset($postData['name'])) {
|
||||
$name = $postData['name'];
|
||||
}
|
||||
|
||||
if(isset($postData['filter']) && is_array($postData['filter'])) {
|
||||
$filter = $postData['filter'];
|
||||
}
|
||||
}
|
||||
|
||||
$results = ConstructionConsent::searchConstructionConsentBasedOnName($name, $filter);
|
||||
|
||||
self::returnJson([
|
||||
'success' => true,
|
||||
'count' => count($results),
|
||||
'results' => $results
|
||||
]);
|
||||
}
|
||||
|
||||
protected function signTabletAction() {
|
||||
$JSGlobals = ["BASE_PATH" => self::getUrl(""),
|
||||
"DASHBOARD_URL" => self::getUrl("Dashboard"),
|
||||
"MFAPPNAME" => MFAPPNAME_SLUG,
|
||||
"PAGE_TITLE" => "Zustimmungserklärungen unterzeichnen",
|
||||
"PATH" => [
|
||||
["text" => MFAPPNAME_SLUG, "href" => self::getUrl("Dashboard")],
|
||||
["text" => "Zustimmungserklärungen unterzeichnen", "href" => self::getUrl("ConstructionConsent", "SignTablet")],
|
||||
],
|
||||
"IS_ADMIN" => $this->me->is("Admin"),
|
||||
];
|
||||
|
||||
$this->layout()->set("vueViewName", "ConstructionConsentSignTablet");
|
||||
$this->layout()->set("JSGlobals", $JSGlobals);
|
||||
$this->layout()->setTemplate("VueViews/Vue");
|
||||
}
|
||||
|
||||
protected function signAction() {
|
||||
$POST = json_decode(file_get_contents('php://input'), true);
|
||||
|
||||
$owner_id = $POST['owner_id'] ?? null;
|
||||
$signature = $POST['signature'] ?? null;
|
||||
$signature_name = $POST['signature_name'] ?? null;
|
||||
$signature_date = $POST['signature_date'] ?? null;
|
||||
|
||||
if(!$owner_id || !$signature) {
|
||||
self::sendError("Invalid request");
|
||||
}
|
||||
|
||||
$owner = new ConstructionConsentOwner($owner_id);
|
||||
if(!$owner->id) self::sendError("Owner not found");
|
||||
|
||||
if($signature_name) $owner->signature_name = $signature_name;
|
||||
if($signature_date) $owner->signature_date = date("U", strtotime($signature_date));
|
||||
if($signature) $owner->signature = $signature;
|
||||
|
||||
$owner->status = 'returned';
|
||||
$owner->result = 'accepted';
|
||||
|
||||
if(!$owner->save()) self::sendError("Error saving signature");
|
||||
self::returnJson(["success" => true]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user