feat: enhance order sales inventory workflows

This commit is contained in:
taekyoungc
2026-04-08 00:20:09 +09:00
parent 984ddb403e
commit c2dc2fd38a
42 changed files with 764 additions and 459 deletions

View File

@@ -17,7 +17,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$startDate = $this->request->getGet('start_date') ?? date('Y-m-01');
$endDate = $this->request->getGet('end_date') ?? date('Y-m-d');
@@ -50,10 +52,7 @@ class SalesReport extends BaseController
", [$lgIdx, $startDate, $endDate])->getResult();
}
return view('admin/layout', [
'title' => '판매 대장',
'content' => view('admin/sales_report/sales_ledger', compact('result', 'startDate', 'endDate', 'mode')),
]);
return $this->renderWorkPage('판매 대장', 'admin/sales_report/sales_ledger', compact('result', 'startDate', 'endDate', 'mode'));
}
/**
@@ -63,7 +62,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$date = $this->request->getGet('date') ?? date('Y-m-d');
$db = \Config\Database::connect();
@@ -91,10 +92,7 @@ class SalesReport extends BaseController
ORDER BY bs_bag_code
", [$lgIdx, $monthStart, $date])->getResult();
return view('admin/layout', [
'title' => '일계표',
'content' => view('admin/sales_report/daily_summary', compact('daily', 'monthly', 'date')),
]);
return $this->renderWorkPage('일계표', 'admin/sales_report/daily_summary', compact('daily', 'monthly', 'date'));
}
/**
@@ -104,7 +102,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$startDate = $this->request->getGet('start_date') ?? date('Y-m-01');
$endDate = $this->request->getGet('end_date') ?? date('Y-m-d');
@@ -122,10 +122,7 @@ class SalesReport extends BaseController
ORDER BY bs_bag_code
", [$lgIdx, $startDate, $endDate])->getResult();
return view('admin/layout', [
'title' => '기간별 판매현황',
'content' => view('admin/sales_report/period_sales', compact('result', 'startDate', 'endDate')),
]);
return $this->renderWorkPage('기간별 판매현황', 'admin/sales_report/period_sales', compact('result', 'startDate', 'endDate'));
}
/**
@@ -135,7 +132,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$year = $this->request->getGet('year') ?? date('Y');
$db = \Config\Database::connect();
@@ -161,10 +160,7 @@ class SalesReport extends BaseController
ORDER BY bs_bag_code
", [$lgIdx, $year])->getResult();
return view('admin/layout', [
'title' => '년 판매 현황',
'content' => view('admin/sales_report/yearly_sales', compact('result', 'year')),
]);
return $this->renderWorkPage('년 판매 현황', 'admin/sales_report/yearly_sales', compact('result', 'year'));
}
/**
@@ -174,7 +170,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$startDate = $this->request->getGet('start_date') ?? date('Y-m-01');
$endDate = $this->request->getGet('end_date') ?? date('Y-m-d');
@@ -192,10 +190,7 @@ class SalesReport extends BaseController
ORDER BY bs_ds_name
", [$lgIdx, $startDate, $endDate])->getResult();
return view('admin/layout', [
'title' => '지정판매소별 판매현황',
'content' => view('admin/sales_report/shop_sales', compact('result', 'startDate', 'endDate')),
]);
return $this->renderWorkPage('지정판매소별 판매현황', 'admin/sales_report/shop_sales', compact('result', 'startDate', 'endDate'));
}
/**
@@ -205,7 +200,9 @@ class SalesReport extends BaseController
{
helper(['admin', 'export']);
$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', '지자체를 선택해 주세요.');
}
$startDate = $this->request->getGet('start_date') ?? date('Y-m-01');
$endDate = $this->request->getGet('end_date') ?? date('Y-m-d');
@@ -257,7 +254,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$startDate = $this->request->getGet('start_date') ?? date('Y-m-01');
$endDate = $this->request->getGet('end_date') ?? date('Y-m-d');
@@ -271,10 +270,7 @@ class SalesReport extends BaseController
ORDER BY bs_sale_date DESC, bs_ds_name
", [$lgIdx, $startDate, $endDate])->getResult();
return view('admin/layout', [
'title' => '반품/파기 현황',
'content' => view('admin/sales_report/returns', compact('result', 'startDate', 'endDate')),
]);
return $this->renderWorkPage('반품/파기 현황', 'admin/sales_report/returns', compact('result', 'startDate', 'endDate'));
}
/**
@@ -284,7 +280,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$lotNo = $this->request->getGet('lot_no') ?? '';
$order = null;
@@ -300,10 +298,7 @@ class SalesReport extends BaseController
}
}
return view('admin/layout', [
'title' => 'LOT 수불 조회',
'content' => view('admin/sales_report/lot_flow', compact('lotNo', 'order', 'items', 'receivings')),
]);
return $this->renderWorkPage('LOT 수불 조회', 'admin/sales_report/lot_flow', compact('lotNo', 'order', 'items', 'receivings'));
}
/**
@@ -313,7 +308,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$startDate = $this->request->getGet('start_date') ?? date('Y-m-01');
$endDate = $this->request->getGet('end_date') ?? date('Y-m-d');
@@ -332,12 +329,9 @@ class SalesReport extends BaseController
// 봉투 코드 목록
$kindO = model(\App\Models\CodeKindModel::class)->where('ck_code', 'O')->first();
$bagCodes = $kindO ? model(\App\Models\CodeDetailModel::class)->getByKind((int) $kindO->ck_idx, true) : [];
$bagCodes = $kindO ? model(\App\Models\CodeDetailModel::class)->getByKind((int) $kindO->ck_idx, true, $lgIdx) : [];
return view('admin/layout', [
'title' => '기타 입출고',
'content' => view('admin/sales_report/misc_flow', compact('result', 'startDate', 'endDate', 'bagCodes', 'tableExists')),
]);
return $this->renderWorkPage('기타 입출고', 'admin/sales_report/misc_flow', compact('result', 'startDate', 'endDate', 'bagCodes', 'tableExists'));
}
/**
@@ -347,7 +341,7 @@ class SalesReport extends BaseController
{
helper('admin');
$lgIdx = admin_effective_lg_idx();
if (!$lgIdx) return redirect()->to(site_url('admin/reports/misc-flow'))->with('error', '지자체를 선택해 주세요.');
if (!$lgIdx) return redirect()->to(mgmt_url('reports/misc-flow'))->with('error', '지자체를 선택해 주세요.');
$rules = [
'bmf_type' => 'required|in_list[in,out]',
@@ -366,7 +360,7 @@ class SalesReport extends BaseController
// 봉투명 조회
$kindO = model(\App\Models\CodeKindModel::class)->where('ck_code', 'O')->first();
$detail = $kindO ? model(\App\Models\CodeDetailModel::class)->where('cd_ck_idx', $kindO->ck_idx)->where('cd_code', $bagCode)->first() : null;
$detail = $kindO ? model(\App\Models\CodeDetailModel::class)->findResolvedByKindAndCode((int) $kindO->ck_idx, (string) $bagCode, $lgIdx) : null;
$bagName = $detail ? $detail->cd_name : '';
$db = \Config\Database::connect();
@@ -383,7 +377,7 @@ class SalesReport extends BaseController
$db->transComplete();
return redirect()->to(site_url('admin/reports/misc-flow'))->with('success', '기타 입출고가 등록되었습니다.');
return redirect()->to(mgmt_url('reports/misc-flow'))->with('success', '기타 입출고가 등록되었습니다.');
}
/**
@@ -393,7 +387,9 @@ class SalesReport 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', '지자체를 선택해 주세요.');
}
$startDate = $this->request->getGet('start_date') ?? date('Y-m-01');
$endDate = $this->request->getGet('end_date') ?? date('Y-m-d');
@@ -430,9 +426,6 @@ class SalesReport extends BaseController
// 현재 재고
$inventory = model(BagInventoryModel::class)->where('bi_lg_idx', $lgIdx)->findAll();
return view('admin/layout', [
'title' => '봉투 수불 현황',
'content' => view('admin/sales_report/supply_demand', compact('receiving', 'sales', 'issues', 'inventory', 'startDate', 'endDate')),
]);
return $this->renderWorkPage('봉투 수불 현황', 'admin/sales_report/supply_demand', compact('receiving', 'sales', 'issues', 'inventory', 'startDate', 'endDate'));
}
}