feat: improve bag price and packaging unit management

This commit is contained in:
taekyoungc
2026-04-08 00:21:53 +09:00
parent c2dc2fd38a
commit b5eed31b94
16 changed files with 362 additions and 160 deletions

View File

@@ -23,8 +23,8 @@ class PackagingUnit extends BaseController
{
helper('admin');
$lgIdx = admin_effective_lg_idx();
if (!$lgIdx) {
return redirect()->to(site_url('admin'))->with('error', '지자체를 선택해 주세요.');
if (! $lgIdx) {
return redirect()->to(work_area_home_url())->with('error', '지자체를 선택해 주세요.');
}
$builder = $this->unitModel->where('pu_lg_idx', $lgIdx);
@@ -38,31 +38,26 @@ class PackagingUnit extends BaseController
$builder->groupStart()->where('pu_end_date IS NULL')->orWhere('pu_end_date <=', $endDate)->groupEnd();
}
$list = $builder->orderBy('pu_bag_code', 'ASC')->orderBy('pu_start_date', 'DESC')->paginate(20);
$list = $builder->orderBy('pu_bag_code', 'ASC')->orderBy('pu_start_date', 'DESC')->paginate(20);
$pager = $this->unitModel->pager;
return view('admin/layout', [
'title' => '포장 단위 관리',
'content' => view('admin/packaging_unit/index', [
'list' => $list, 'startDate' => $startDate, 'endDate' => $endDate, 'pager' => $pager,
]),
return $this->renderWorkPage('포장 단위 관리', 'admin/packaging_unit/index', [
'list' => $list, 'startDate' => $startDate, 'endDate' => $endDate, 'pager' => $pager,
]);
}
public function create()
{
helper('admin');
if (!admin_effective_lg_idx()) {
return redirect()->to(site_url('admin/packaging-units'))->with('error', '지자체를 선택해 주세요.');
if (! admin_effective_lg_idx()) {
return redirect()->to(mgmt_url('packaging-units'))->with('error', '지자체를 선택해 주세요.');
}
$kind = model(CodeKindModel::class)->where('ck_code', 'O')->first();
$bagCodes = $kind ? model(CodeDetailModel::class)->getByKind((int) $kind->ck_idx, true) : [];
$lgIdx = admin_effective_lg_idx();
$kind = model(CodeKindModel::class)->where('ck_code', 'O')->first();
$bagCodes = $kind ? model(CodeDetailModel::class)->getByKind((int) $kind->ck_idx, true, $lgIdx) : [];
return view('admin/layout', [
'title' => '포장 단위 등록',
'content' => view('admin/packaging_unit/create', ['bagCodes' => $bagCodes]),
]);
return $this->renderWorkPage('포장 단위 등록', 'admin/packaging_unit/create', ['bagCodes' => $bagCodes]);
}
public function store()
@@ -83,10 +78,10 @@ class PackagingUnit extends BaseController
}
$bagCode = $this->request->getPost('pu_bag_code');
$kind = model(CodeKindModel::class)->where('ck_code', 'O')->first();
$kind = model(CodeKindModel::class)->where('ck_code', 'O')->first();
$bagName = '';
if ($kind) {
$detail = model(CodeDetailModel::class)->where('cd_ck_idx', $kind->ck_idx)->where('cd_code', $bagCode)->first();
$detail = model(CodeDetailModel::class)->findResolvedByKindAndCode((int) $kind->ck_idx, (string) $bagCode, $lgIdx);
$bagName = $detail ? $detail->cd_name : '';
}
@@ -107,32 +102,30 @@ class PackagingUnit extends BaseController
'pu_reg_mb_idx' => session()->get('mb_idx'),
]);
return redirect()->to(site_url('admin/packaging-units'))->with('success', '포장 단위가 등록되었습니다.');
return redirect()->to(mgmt_url('packaging-units'))->with('success', '포장 단위가 등록되었습니다.');
}
public function edit(int $id)
{
helper('admin');
$item = $this->unitModel->find($id);
if (!$item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(site_url('admin/packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
if (! $item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(mgmt_url('packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
}
$kind = model(CodeKindModel::class)->where('ck_code', 'O')->first();
$bagCodes = $kind ? model(CodeDetailModel::class)->getByKind((int) $kind->ck_idx, true) : [];
$lgIdx = admin_effective_lg_idx();
$kind = model(CodeKindModel::class)->where('ck_code', 'O')->first();
$bagCodes = $kind ? model(CodeDetailModel::class)->getByKind((int) $kind->ck_idx, true, $lgIdx) : [];
return view('admin/layout', [
'title' => '포장 단위 수정',
'content' => view('admin/packaging_unit/edit', ['item' => $item, 'bagCodes' => $bagCodes]),
]);
return $this->renderWorkPage('포장 단위 수정', 'admin/packaging_unit/edit', ['item' => $item, 'bagCodes' => $bagCodes]);
}
public function update(int $id)
{
helper('admin');
$item = $this->unitModel->find($id);
if (!$item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(site_url('admin/packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
if (! $item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(mgmt_url('packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
}
$rules = [
@@ -156,12 +149,12 @@ class PackagingUnit extends BaseController
$newVal = (string) $this->request->getPost($field);
if ($oldVal !== $newVal) {
$this->historyModel->insert([
'puh_pu_idx' => $id,
'puh_field' => $field,
'puh_old_value' => $oldVal,
'puh_new_value' => $newVal,
'puh_changed_at'=> date('Y-m-d H:i:s'),
'puh_changed_by'=> session()->get('mb_idx'),
'puh_pu_idx' => $id,
'puh_field' => $field,
'puh_old_value' => $oldVal,
'puh_new_value' => $newVal,
'puh_changed_at' => date('Y-m-d H:i:s'),
'puh_changed_by' => session()->get('mb_idx'),
]);
}
}
@@ -180,34 +173,33 @@ class PackagingUnit extends BaseController
]);
$db->transComplete();
return redirect()->to(site_url('admin/packaging-units'))->with('success', '포장 단위가 수정되었습니다.');
return redirect()->to(mgmt_url('packaging-units'))->with('success', '포장 단위가 수정되었습니다.');
}
public function delete(int $id)
{
helper('admin');
$item = $this->unitModel->find($id);
if (!$item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(site_url('admin/packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
if (! $item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(mgmt_url('packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
}
$this->unitModel->delete($id);
return redirect()->to(site_url('admin/packaging-units'))->with('success', '포장 단위가 삭제되었습니다.');
return redirect()->to(mgmt_url('packaging-units'))->with('success', '포장 단위가 삭제되었습니다.');
}
public function history(int $puIdx)
{
helper('admin');
$item = $this->unitModel->find($puIdx);
if (!$item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(site_url('admin/packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
if (! $item || (int) $item->pu_lg_idx !== admin_effective_lg_idx()) {
return redirect()->to(mgmt_url('packaging-units'))->with('error', '포장 단위를 찾을 수 없습니다.');
}
$list = $this->historyModel->where('puh_pu_idx', $puIdx)->orderBy('puh_changed_at', 'DESC')->findAll();
return view('admin/layout', [
'title' => '포장 단위 변경 이력 — ' . $item->pu_bag_name,
'content' => view('admin/packaging_unit/history', ['item' => $item, 'list' => $list]),
]);
return $this->renderWorkPage('포장 단위 변경 이력 — ' . $item->pu_bag_name, 'admin/packaging_unit/history', ['item' => $item, 'list' => $list]);
}
}