dbmsv4 init...5

This commit is contained in:
최준흠 2026-03-03 11:16:26 +09:00
parent 5fc19000ed
commit ee9d672362
3 changed files with 30 additions and 22 deletions

View File

@ -217,10 +217,6 @@ abstract class CommonService
$errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 저장 작업이 실패했습니다."; $errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 저장 작업이 실패했습니다.";
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: " . $errorMsg); throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: " . $errorMsg);
} }
// CodeIgniter 모델의 getInsertID()를 사용하여 새로 생성된 PK를 확실히 가져옵니다.
if ($this->model->useAutoIncrement()) {
$entity->{$this->getPKField()} = $this->model->getInsertID();
}
return $entity; return $entity;
} catch (\Throwable $e) { } catch (\Throwable $e) {
log_message('debug', __FUNCTION__ . ":" . var_export($entity, true)); log_message('debug', __FUNCTION__ . ":" . var_export($entity, true));
@ -255,7 +251,12 @@ abstract class CommonService
throw new RuntimeException("Return Type은 {$entityClass}만 가능"); throw new RuntimeException("Return Type은 {$entityClass}만 가능");
} }
$entity->fill($formDatas); $entity->fill($formDatas);
return $this->save_process($entity); $entity = $this->save_process($entity);
//생성PK 설정
if ($this->model->useAutoIncrement()) {
$entity->{$this->getPKField()} = $this->model->getInsertID();
}
return $entity;
} catch (FormValidationException $e) { } catch (FormValidationException $e) {
throw $e; // ✅ 감싸지 말고 그대로 throw $e; // ✅ 감싸지 말고 그대로
} catch (\Throwable $e) { } catch (\Throwable $e) {
@ -289,7 +290,8 @@ abstract class CommonService
if (!$entity->hasChanged()) { if (!$entity->hasChanged()) {
return $entity; return $entity;
} }
return $this->save_process($entity); $entity = $this->save_process($entity);
return $entity;
} catch (FormValidationException $e) { } catch (FormValidationException $e) {
throw $e; // ✅ 감싸지 말고 그대로 throw $e; // ✅ 감싸지 말고 그대로
} catch (\Throwable $e) { } catch (\Throwable $e) {

View File

@ -171,16 +171,18 @@ class ServerService extends EquipmentService
} }
} }
// ✅ 서비스 유지중이면 정상 동기화 (해지 시는 detachFromService에서 따로 처리) //가격 변동이 있는 경우
if ($entity->getServiceInfoUid() !== null) { if ($oldEntity->getPrice() !== $entity->getPrice()) {
$serviceService = service('customer_serviceservice'); // ✅ 서비스 유지중이면 정상 동기화 (해지 시는 detachFromService에서 따로 처리)
$serviceEntity = $serviceService->getEntity($entity->getServiceInfoUid()); if ($entity->getServiceInfoUid() !== null) {
if (!$serviceEntity instanceof ServiceEntity) { $serviceService = service('customer_serviceservice');
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: {$entity->getServiceInfoUid()}에 해당하는 서비스정보을 찾을수 없습니다."); $serviceEntity = $serviceService->getEntity($entity->getServiceInfoUid());
if (!$serviceEntity instanceof ServiceEntity) {
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: {$entity->getServiceInfoUid()}에 해당하는 서비스정보을 찾을수 없습니다.");
}
$serviceService->recalcAmountAndSyncPayment($serviceEntity);
} }
$serviceService->recalcAmountAndSyncPayment($serviceEntity);
} }
return $entity; return $entity;
} }

View File

@ -17,9 +17,9 @@ abstract class PartType3Service extends PartType2Service
public function attachToServer(ServerEntity $serverEntity, array $formDatas = []): PartEntity public function attachToServer(ServerEntity $serverEntity, array $formDatas = []): PartEntity
{ {
$formDatas = []; $formDatas = [];
$formDatas['clientinfo_uid'] = $serverEntity->getClientInfoUid(); $formDatas['clientinfo_uid'] = $serverEntity->getClientInfoUid();
$formDatas['serviceinfo_uid'] = $serverEntity->getServiceInfoUid(); $formDatas['serviceinfo_uid'] = $serverEntity->getServiceInfoUid();
$formDatas['serverinfo_uid'] = $serverEntity->getPK(); $formDatas['serverinfo_uid'] = $serverEntity->getPK();
$formDatas['status'] = STATUS['OCCUPIED']; $formDatas['status'] = STATUS['OCCUPIED'];
//파트정보가져오기 //파트정보가져오기
$entity = $this->getPartEntityByServer($serverEntity); $entity = $this->getPartEntityByServer($serverEntity);
@ -27,17 +27,21 @@ abstract class PartType3Service extends PartType2Service
throw new \Exception(static::class . '->' . __FUNCTION__ . ":에서 오류발생: {$entity->getTitle()}는 사용중입니다."); throw new \Exception(static::class . '->' . __FUNCTION__ . ":에서 오류발생: {$entity->getTitle()}는 사용중입니다.");
} }
//파트정보 수정 //파트정보 수정
return parent::modify_process($entity, $formDatas); $entity = parent::modify_process($entity, $formDatas);
// dd($entity);
return $entity;
} }
public function detachFromServer(ServerEntity $serverEntity, array $formDatas = []): PartEntity public function detachFromServer(ServerEntity $serverEntity, array $formDatas = []): PartEntity
{ {
$formDatas['clientinfo_uid'] = null; $formDatas['clientinfo_uid'] = null;
$formDatas['serviceinfo_uid'] = null; $formDatas['serviceinfo_uid'] = null;
$formDatas['serverinfo_uid'] = null; $formDatas['serverinfo_uid'] = null;
$formDatas['status'] = STATUS['AVAILABLE']; $formDatas['status'] = STATUS['AVAILABLE'];
//파트정보가져오기 //파트정보가져오기
$entity = $this->getPartEntityByServer($serverEntity); $entity = $this->getPartEntityByServer($serverEntity);
return parent::modify_process($entity, $formDatas); $entity = parent::modify_process($entity, $formDatas);
// dd($entity);
return $entity;
} }
} }