New Preorder cancelling
This commit is contained in:
@@ -153,7 +153,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
|
||||
$return = [];
|
||||
|
||||
foreach(PreorderModel::search($preorder_search) as $preorder) {
|
||||
foreach(PreorderModel::searchActive($preorder_search) as $preorder) {
|
||||
$return[] = $preorder->getApiArray();
|
||||
}
|
||||
|
||||
@@ -216,14 +216,14 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
return mfResponse::NotFound(["message" => "Preorder not found"]);
|
||||
}
|
||||
|
||||
$preorder = PreorderModel::getFirst(['ucode' => strtoupper($code), 'partner_id' => $this->me->address_id, 'deleted' => 0, '<status_code' => 800]);
|
||||
$preorder = PreorderModel::getFirst(['ucode' => strtoupper($code), 'partner_id' => $this->me->address_id, 'deleted' => 0]);
|
||||
if(!$preorder) {
|
||||
// try oan id
|
||||
$preorder = PreorderModel::getFirst(['oaid' => strtolower($code), 'partner_id' => $this->me->address_id, 'deleted' => 0, '<status_code' => 800]);
|
||||
$preorder = PreorderModel::getFirst(['oaid' => strtolower($code), 'partner_id' => $this->me->address_id, 'deleted' => 0]);
|
||||
}
|
||||
if(!$preorder) {
|
||||
// try as extref
|
||||
$preorder = PreorderModel::getFirst(['extref' => $code, 'partner_id' => $this->me->address_id, 'deleted' => 0, '<status_code' => 800]);
|
||||
$preorder = PreorderModel::getFirst(['extref' => $code, 'partner_id' => $this->me->address_id, 'deleted' => 0]);
|
||||
}
|
||||
if(!$preorder) {
|
||||
return mfResponse::NotFound(["message" => "Preorder not found"]);
|
||||
@@ -242,17 +242,38 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
}
|
||||
}
|
||||
*/
|
||||
if($preorder->deleted || $preorder->cancel_request) {
|
||||
if($preorder->deleted || $preorder->cancel_request || $preorder->status->code >= 899) {
|
||||
return mfResponse::Forbidden(["message" => "Order already cancelled"]);
|
||||
}
|
||||
|
||||
if(array_key_exists("status", $this->get)) {
|
||||
$status_code = $this->get["status"];
|
||||
if($status_code < 899 || $status_code > 999) {
|
||||
return mfResponse::BadRequest(["message" => "Status code out of bounds"]);
|
||||
}
|
||||
|
||||
$status = PreorderstatusModel::getFirst(["code" => $status_code]);
|
||||
if(!$status) {
|
||||
return mfResponse::BadRequest(["message" => "Invalid Status code"]);
|
||||
}
|
||||
} else {
|
||||
//910 - Cancelled (ohne weitere Begründung)
|
||||
$status = PreorderstatusModel::getFirst(["code" => TT_PREORDER_DEFAULT_CANCEL_STATUSCODE]);
|
||||
if(!$status) {
|
||||
return mfResponse::InternalServerError();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// set cancel_date and canceller
|
||||
$preorder->cancel_request = date('U');
|
||||
/*$preorder->cancel_request = date('U');
|
||||
$preorder->cancel_request_by = $this->me->id;
|
||||
$preorder->cancel_approved = $this->me->id;
|
||||
$preorder->deleted = date('U');
|
||||
$preorder->deleted_by = $this->me->id;
|
||||
$preorder->status_id = 23; //910 - Cancelled (ohne weitere Begründung)
|
||||
$preorder->deleted_by = $this->me->id;*/
|
||||
$preorder->status_id = $status->id;
|
||||
$preorder->edit_by = $this->me->id;
|
||||
if(!$preorder->save()) {
|
||||
return mfResponse::InternalServerError();
|
||||
}
|
||||
@@ -569,7 +590,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
$existing_preorder = false;
|
||||
while($unit = $this->db()->fetch_object($res)) {
|
||||
// check if there is an existing preorder
|
||||
$existing_preorder = PreorderModel::getFirst(['adb_wohneinheit_id' => $unit->wohneinheit_id, 'deleted' => 0]);
|
||||
$existing_preorder = PreorderModel::getFirstActive(['adb_wohneinheit_id' => $unit->wohneinheit_id]);
|
||||
if(!$existing_preorder) {
|
||||
break;
|
||||
}
|
||||
@@ -589,7 +610,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
*/
|
||||
|
||||
if($unit && $unit->wohneinheit_id) {
|
||||
$existing_preorder = PreorderModel::getFirst(['adb_wohneinheit_id' => $unit->wohneinheit_id, 'deleted' => 0]);
|
||||
$existing_preorder = PreorderModel::getFirstActive(['adb_wohneinheit_id' => $unit->wohneinheit_id]);
|
||||
if($existing_preorder) {
|
||||
if($this->exist_is_error && !$is_additional_order) {
|
||||
return mfResponse::Forbidden(['message' => "Für diese Wohneinheit liegt bereits eine Bestellung vor"]);
|
||||
@@ -823,7 +844,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
} else {
|
||||
// else get available units with no unit data, so we can update it
|
||||
$exclude_wohneinheit_ids = [];
|
||||
$preorders_in_hausnummer = PreorderModel::search(['adb_hausnummer_id' => $address->hausnummer_id, "deleted" => 0]);
|
||||
$preorders_in_hausnummer = PreorderModel::searchActive(['adb_hausnummer_id' => $address->hausnummer_id]);
|
||||
if(count($preorders_in_hausnummer)) {
|
||||
foreach($preorders_in_hausnummer as $pih) {
|
||||
if($pih->adb_wohneinheit_id) {
|
||||
|
||||
Reference in New Issue
Block a user