Add price type selection modal and backend functionality for addresses
This commit is contained in:
63
application/AddressPriceType/AddressPriceTypeController.php
Normal file
63
application/AddressPriceType/AddressPriceTypeController.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
class AddressPriceTypeController extends mfBaseController {
|
||||
|
||||
protected function init() {
|
||||
$this->needlogin = true;
|
||||
$user = new User();
|
||||
$user->loadMe();
|
||||
$this->me = $user;
|
||||
}
|
||||
|
||||
public function getAction() {
|
||||
$addressId = $_GET['address_id'] ?? null;
|
||||
|
||||
if (!$addressId) {
|
||||
self::returnJson(['success' => false, 'message' => 'Address ID required']);
|
||||
}
|
||||
|
||||
$priceType = AddressPriceTypeModel::getFirst(['address_id' => $addressId]);
|
||||
|
||||
self::returnJson([
|
||||
'success' => true,
|
||||
'priceType_id' => $priceType ? $priceType->priceType_id : null
|
||||
]);
|
||||
}
|
||||
|
||||
public function saveAction() {
|
||||
$addressId = $_POST['address_id'] ?? null;
|
||||
$priceTypeId = $_POST['priceType_id'] ?? null;
|
||||
|
||||
if (!$addressId) {
|
||||
self::returnJson(['success' => false, 'message' => 'Address ID required']);
|
||||
}
|
||||
|
||||
$existing = AddressPriceTypeModel::getFirst(['address_id' => $addressId]);
|
||||
|
||||
if (empty($priceTypeId)) {
|
||||
if ($existing) {
|
||||
AddressPriceTypeModel::delete($existing->id);
|
||||
}
|
||||
self::returnJson(['success' => true, 'message' => 'Preistyp entfernt']);
|
||||
}
|
||||
|
||||
if ($existing) {
|
||||
$updateData = (array) $existing;
|
||||
$updateData['priceType_id'] = $priceTypeId;
|
||||
$result = AddressPriceTypeModel::update($updateData);
|
||||
} else {
|
||||
$result = AddressPriceTypeModel::create([
|
||||
'address_id' => $addressId,
|
||||
'priceType_id' => $priceTypeId,
|
||||
'create' => time(),
|
||||
'createBy' => $this->me->id
|
||||
]);
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
self::returnJson(['success' => true, 'message' => 'Preistyp gespeichert']);
|
||||
} else {
|
||||
self::returnJson(['success' => false, 'message' => 'Fehler beim Speichern']);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user