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

View File

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

View File

@ -17,9 +17,9 @@ abstract class PartType3Service extends PartType2Service
public function attachToServer(ServerEntity $serverEntity, array $formDatas = []): PartEntity
{
$formDatas = [];
$formDatas['clientinfo_uid'] = $serverEntity->getClientInfoUid();
$formDatas['clientinfo_uid'] = $serverEntity->getClientInfoUid();
$formDatas['serviceinfo_uid'] = $serverEntity->getServiceInfoUid();
$formDatas['serverinfo_uid'] = $serverEntity->getPK();
$formDatas['serverinfo_uid'] = $serverEntity->getPK();
$formDatas['status'] = STATUS['OCCUPIED'];
//파트정보가져오기
$entity = $this->getPartEntityByServer($serverEntity);
@ -27,17 +27,21 @@ abstract class PartType3Service extends PartType2Service
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
{
$formDatas['clientinfo_uid'] = null;
$formDatas['serviceinfo_uid'] = null;
$formDatas['serverinfo_uid'] = null;
$formDatas['status'] = STATUS['AVAILABLE'];
$formDatas['clientinfo_uid'] = null;
$formDatas['serviceinfo_uid'] = null;
$formDatas['serverinfo_uid'] = null;
$formDatas['status'] = STATUS['AVAILABLE'];
//파트정보가져오기
$entity = $this->getPartEntityByServer($serverEntity);
return parent::modify_process($entity, $formDatas);
$entity = parent::modify_process($entity, $formDatas);
// dd($entity);
return $entity;
}
}