2026-03-25 12:05:33 +09:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
use CodeIgniter\Router\RouteCollection;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var RouteCollection $routes
|
|
|
|
|
*/
|
|
|
|
|
$routes->get('/', 'Home::index');
|
|
|
|
|
$routes->get('dashboard', 'Home::dashboard');
|
|
|
|
|
$routes->get('dashboard/classic-mock', 'Home::dashboardClassicMock');
|
|
|
|
|
$routes->get('dashboard/modern', 'Home::dashboardModern');
|
|
|
|
|
$routes->get('dashboard/dense', 'Home::dashboardDense');
|
|
|
|
|
$routes->get('dashboard/charts', 'Home::dashboardCharts');
|
2026-03-26 15:29:55 +09:00
|
|
|
$routes->get('dashboard/blend', 'Home::dashboardBlend');
|
2026-03-25 12:05:33 +09:00
|
|
|
$routes->get('bag/inventory-inquiry', 'Home::inventoryInquiry');
|
|
|
|
|
$routes->get('bag/waste-suibal-enterprise', 'Home::wasteSuibalEnterprise');
|
|
|
|
|
|
2026-03-26 14:30:45 +09:00
|
|
|
// 사이트 메뉴 (/bag/*)
|
|
|
|
|
$routes->get('bag/basic-info', 'Bag::basicInfo');
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('bag/prices', 'Bag::prices');
|
|
|
|
|
$routes->post('bag/prices', 'Bag::prices');
|
|
|
|
|
$routes->get('bag/packaging-units', 'Bag::packagingUnits');
|
2026-03-30 15:07:09 +09:00
|
|
|
$routes->get('bag/code-kinds', 'Bag::codeKinds');
|
|
|
|
|
$routes->get('bag/code-details/(:num)', 'Bag::codeDetails/$1');
|
|
|
|
|
|
|
|
|
|
// 옛 주소 호환: 세부 목록만 사이트로 이동
|
|
|
|
|
$routes->get('admin/code-details/(:num)', 'Admin\CodeDetail::index/$1');
|
2026-03-26 14:30:45 +09:00
|
|
|
$routes->get('bag/purchase-inbound', 'Bag::purchaseInbound');
|
|
|
|
|
$routes->get('bag/issue', 'Bag::issue');
|
|
|
|
|
$routes->get('bag/inventory', 'Bag::inventory');
|
|
|
|
|
$routes->get('bag/sales', 'Bag::sales');
|
|
|
|
|
$routes->get('bag/sales-stats', 'Bag::salesStats');
|
|
|
|
|
$routes->get('bag/flow', 'Bag::flow');
|
|
|
|
|
$routes->get('bag/analytics', 'Bag::analytics');
|
|
|
|
|
$routes->get('bag/window', 'Bag::window');
|
|
|
|
|
$routes->get('bag/help', 'Bag::help');
|
|
|
|
|
|
2026-03-26 16:13:07 +09:00
|
|
|
// 사이트 메뉴 CRUD (사이트 레이아웃)
|
2026-03-26 16:20:35 +09:00
|
|
|
$routes->get('bag/inventory/adjust', 'Bag::inventoryAdjust');
|
|
|
|
|
$routes->post('bag/inventory/adjust', 'Bag::inventoryAdjustStore');
|
2026-03-26 16:13:07 +09:00
|
|
|
$routes->get('bag/issue/create', 'Bag::issueCreate');
|
|
|
|
|
$routes->post('bag/issue/store', 'Bag::issueStore');
|
|
|
|
|
$routes->post('bag/issue/cancel/(:num)', 'Bag::issueCancel/$1');
|
|
|
|
|
$routes->get('bag/order/create', 'Bag::orderCreate');
|
|
|
|
|
$routes->post('bag/order/store', 'Bag::orderStore');
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->post('bag/order/cancel/(:num)', 'Bag::orderCancel/$1');
|
2026-03-26 16:13:07 +09:00
|
|
|
$routes->get('bag/receiving/create', 'Bag::receivingCreate');
|
|
|
|
|
$routes->post('bag/receiving/store', 'Bag::receivingStore');
|
|
|
|
|
$routes->get('bag/sale/create', 'Bag::saleCreate');
|
|
|
|
|
$routes->post('bag/sale/store', 'Bag::saleStore');
|
|
|
|
|
$routes->get('bag/shop-order/create', 'Bag::shopOrderCreate');
|
|
|
|
|
$routes->post('bag/shop-order/store', 'Bag::shopOrderStore');
|
|
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
// 메인 사이트 메뉴용 업무 URL (관리자 권한). 동일 컨트롤러가 URI 가 bag 이면 메인 사이트 레이아웃으로 렌더.
|
|
|
|
|
$routes->group('bag', ['filter' => 'adminAuth'], static function ($routes): void {
|
|
|
|
|
$routes->get('managers', 'Admin\Manager::index');
|
|
|
|
|
$routes->get('managers/create', 'Admin\Manager::create');
|
|
|
|
|
$routes->post('managers/store', 'Admin\Manager::store');
|
|
|
|
|
$routes->get('managers/edit/(:num)', 'Admin\Manager::edit/$1');
|
|
|
|
|
$routes->post('managers/update/(:num)', 'Admin\Manager::update/$1');
|
|
|
|
|
$routes->post('managers/delete/(:num)', 'Admin\Manager::delete/$1');
|
2026-03-25 12:05:33 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('sales-agencies', 'Admin\SalesAgency::index');
|
|
|
|
|
$routes->get('sales-agencies/create', 'Admin\SalesAgency::create');
|
|
|
|
|
$routes->post('sales-agencies/store', 'Admin\SalesAgency::store');
|
|
|
|
|
$routes->get('sales-agencies/edit/(:num)', 'Admin\SalesAgency::edit/$1');
|
|
|
|
|
$routes->post('sales-agencies/update/(:num)', 'Admin\SalesAgency::update/$1');
|
|
|
|
|
$routes->post('sales-agencies/delete/(:num)', 'Admin\SalesAgency::delete/$1');
|
2026-03-25 17:53:52 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('companies', 'Admin\Company::index');
|
|
|
|
|
$routes->get('companies/create', 'Admin\Company::create');
|
|
|
|
|
$routes->post('companies/store', 'Admin\Company::store');
|
|
|
|
|
$routes->get('companies/edit/(:num)', 'Admin\Company::edit/$1');
|
|
|
|
|
$routes->post('companies/update/(:num)', 'Admin\Company::update/$1');
|
|
|
|
|
$routes->post('companies/delete/(:num)', 'Admin\Company::delete/$1');
|
2026-03-25 12:05:33 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('free-recipients', 'Admin\FreeRecipient::index');
|
|
|
|
|
$routes->get('free-recipients/create', 'Admin\FreeRecipient::create');
|
|
|
|
|
$routes->post('free-recipients/store', 'Admin\FreeRecipient::store');
|
|
|
|
|
$routes->get('free-recipients/edit/(:num)', 'Admin\FreeRecipient::edit/$1');
|
|
|
|
|
$routes->post('free-recipients/update/(:num)', 'Admin\FreeRecipient::update/$1');
|
|
|
|
|
$routes->post('free-recipients/delete/(:num)', 'Admin\FreeRecipient::delete/$1');
|
2026-03-25 16:20:56 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('designated-shops/export', 'Admin\DesignatedShop::export');
|
|
|
|
|
$routes->get('designated-shops/map', 'Admin\DesignatedShop::map');
|
2026-04-14 00:14:53 +09:00
|
|
|
$routes->get('designated-shops/status/export', 'Admin\DesignatedShop::statusExport');
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('designated-shops/status', 'Admin\DesignatedShop::status');
|
2026-04-14 00:14:53 +09:00
|
|
|
$routes->get('designated-shops/barcode', 'Admin\DesignatedShop::barcode');
|
|
|
|
|
$routes->post('designated-shops/barcode/print', 'Admin\DesignatedShop::barcodePrint');
|
|
|
|
|
$routes->get('designated-shops/district-new-cancel/export', 'Admin\DesignatedShop::districtNewCancelExport');
|
|
|
|
|
$routes->get('designated-shops/district-new-cancel', 'Admin\DesignatedShop::districtNewCancel');
|
|
|
|
|
$routes->get('designated-shops/browse', 'Admin\DesignatedShop::browse');
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('designated-shops', 'Admin\DesignatedShop::index');
|
|
|
|
|
$routes->get('designated-shops/create', 'Admin\DesignatedShop::create');
|
|
|
|
|
$routes->post('designated-shops/store', 'Admin\DesignatedShop::store');
|
|
|
|
|
$routes->get('designated-shops/edit/(:num)', 'Admin\DesignatedShop::edit/$1');
|
|
|
|
|
$routes->post('designated-shops/update/(:num)', 'Admin\DesignatedShop::update/$1');
|
|
|
|
|
$routes->post('designated-shops/delete/(:num)', 'Admin\DesignatedShop::delete/$1');
|
2026-03-25 16:20:56 +09:00
|
|
|
|
2026-03-25 16:27:42 +09:00
|
|
|
$routes->get('bag-prices', 'Admin\BagPrice::index');
|
|
|
|
|
$routes->get('bag-prices/create', 'Admin\BagPrice::create');
|
|
|
|
|
$routes->post('bag-prices/store', 'Admin\BagPrice::store');
|
|
|
|
|
$routes->get('bag-prices/edit/(:num)', 'Admin\BagPrice::edit/$1');
|
|
|
|
|
$routes->post('bag-prices/update/(:num)', 'Admin\BagPrice::update/$1');
|
|
|
|
|
$routes->post('bag-prices/delete/(:num)', 'Admin\BagPrice::delete/$1');
|
|
|
|
|
$routes->get('bag-prices/history/(:num)', 'Admin\BagPrice::history/$1');
|
|
|
|
|
|
2026-03-26 16:40:49 +09:00
|
|
|
$routes->get('bag-orders/export', 'Admin\BagOrder::export');
|
Phase 3 발주/입고/재고 관리 구현
- DB: bag_order, bag_order_item, bag_receiving, bag_inventory 테이블
- 발주: UUID v4, SHA-256 해시, LOT번호 자동생성, 봉투별 품목 관리
- 포장단위 연동 (박스→낱장 자동 환산), 단가 연동 (금액 자동 계산)
- 발주 현황 (기간/상태 필터), 상세 조회, 취소/삭제 (상태 변경)
- 입고: 발주건 기반 입고 처리, 박스→낱장 환산, 재고 자동 가산
- 재고: 지자체별 봉투 종류별 현재 재고 조회
- E2E 테스트 7개 전체 통과
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:13:01 +09:00
|
|
|
$routes->get('bag-orders', 'Admin\BagOrder::index');
|
|
|
|
|
$routes->get('bag-orders/create', 'Admin\BagOrder::create');
|
|
|
|
|
$routes->post('bag-orders/store', 'Admin\BagOrder::store');
|
|
|
|
|
$routes->get('bag-orders/detail/(:num)', 'Admin\BagOrder::detail/$1');
|
|
|
|
|
$routes->post('bag-orders/cancel/(:num)', 'Admin\BagOrder::cancel/$1');
|
|
|
|
|
$routes->post('bag-orders/delete/(:num)', 'Admin\BagOrder::delete/$1');
|
|
|
|
|
|
|
|
|
|
$routes->get('bag-receivings', 'Admin\BagReceiving::index');
|
|
|
|
|
$routes->get('bag-receivings/create', 'Admin\BagReceiving::create');
|
|
|
|
|
$routes->post('bag-receivings/store', 'Admin\BagReceiving::store');
|
|
|
|
|
|
2026-03-26 16:40:49 +09:00
|
|
|
$routes->get('bag-inventory/export', 'Admin\BagInventory::export');
|
Phase 3 발주/입고/재고 관리 구현
- DB: bag_order, bag_order_item, bag_receiving, bag_inventory 테이블
- 발주: UUID v4, SHA-256 해시, LOT번호 자동생성, 봉투별 품목 관리
- 포장단위 연동 (박스→낱장 자동 환산), 단가 연동 (금액 자동 계산)
- 발주 현황 (기간/상태 필터), 상세 조회, 취소/삭제 (상태 변경)
- 입고: 발주건 기반 입고 처리, 박스→낱장 환산, 재고 자동 가산
- 재고: 지자체별 봉투 종류별 현재 재고 조회
- E2E 테스트 7개 전체 통과
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:13:01 +09:00
|
|
|
$routes->get('bag-inventory', 'Admin\BagInventory::index');
|
|
|
|
|
|
Phase 4 주문접수/판매/반품/불출 관리 구현
- DB: shop_order, shop_order_item, bag_sale, bag_issue 테이블
- 주문접수: 지정판매소 선택, 품목별 수량, 소비자가 연동, 포장단위 환산
- 접수/취소, 배달일 기간 필터
- 판매/반품: 지정판매소별 봉투 판매+반품, 재고 자동 감산/가산
- 무료용 불출: 연도/분기/불출처/봉투코드, 재고 감산, 취소 시 복원
- E2E 테스트 7개 전체 통과
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:22:30 +09:00
|
|
|
$routes->get('shop-orders', 'Admin\ShopOrder::index');
|
|
|
|
|
$routes->get('shop-orders/create', 'Admin\ShopOrder::create');
|
|
|
|
|
$routes->post('shop-orders/store', 'Admin\ShopOrder::store');
|
|
|
|
|
$routes->post('shop-orders/cancel/(:num)', 'Admin\ShopOrder::cancel/$1');
|
|
|
|
|
|
2026-03-26 16:40:49 +09:00
|
|
|
$routes->get('bag-sales/export', 'Admin\BagSale::export');
|
Phase 4 주문접수/판매/반품/불출 관리 구현
- DB: shop_order, shop_order_item, bag_sale, bag_issue 테이블
- 주문접수: 지정판매소 선택, 품목별 수량, 소비자가 연동, 포장단위 환산
- 접수/취소, 배달일 기간 필터
- 판매/반품: 지정판매소별 봉투 판매+반품, 재고 자동 감산/가산
- 무료용 불출: 연도/분기/불출처/봉투코드, 재고 감산, 취소 시 복원
- E2E 테스트 7개 전체 통과
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:22:30 +09:00
|
|
|
$routes->get('bag-sales', 'Admin\BagSale::index');
|
|
|
|
|
$routes->get('bag-sales/create', 'Admin\BagSale::create');
|
|
|
|
|
$routes->post('bag-sales/store', 'Admin\BagSale::store');
|
|
|
|
|
|
|
|
|
|
$routes->get('bag-issues', 'Admin\BagIssue::index');
|
|
|
|
|
$routes->get('bag-issues/create', 'Admin\BagIssue::create');
|
|
|
|
|
$routes->post('bag-issues/store', 'Admin\BagIssue::store');
|
|
|
|
|
$routes->post('bag-issues/cancel/(:num)', 'Admin\BagIssue::cancel/$1');
|
|
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('packaging-units/manage', 'Admin\PackagingUnit::index');
|
|
|
|
|
$routes->get('packaging-units/manage/create', 'Admin\PackagingUnit::create');
|
|
|
|
|
$routes->post('packaging-units/manage/store', 'Admin\PackagingUnit::store');
|
|
|
|
|
$routes->get('packaging-units/manage/edit/(:num)', 'Admin\PackagingUnit::edit/$1');
|
|
|
|
|
$routes->post('packaging-units/manage/update/(:num)', 'Admin\PackagingUnit::update/$1');
|
|
|
|
|
$routes->post('packaging-units/manage/delete/(:num)', 'Admin\PackagingUnit::delete/$1');
|
|
|
|
|
$routes->get('packaging-units/manage/history/(:num)', 'Admin\PackagingUnit::history/$1');
|
2026-03-25 16:32:55 +09:00
|
|
|
|
2026-03-25 18:29:31 +09:00
|
|
|
$routes->get('reports/sales-ledger', 'Admin\SalesReport::salesLedger');
|
|
|
|
|
$routes->get('reports/daily-summary', 'Admin\SalesReport::dailySummary');
|
|
|
|
|
$routes->get('reports/period-sales', 'Admin\SalesReport::periodSales');
|
|
|
|
|
$routes->get('reports/supply-demand', 'Admin\SalesReport::supplyDemand');
|
2026-03-26 16:50:28 +09:00
|
|
|
$routes->get('reports/yearly-sales', 'Admin\SalesReport::yearlySales');
|
|
|
|
|
$routes->get('reports/shop-sales', 'Admin\SalesReport::shopSales');
|
|
|
|
|
$routes->get('reports/hometax-export', 'Admin\SalesReport::hometaxExport');
|
|
|
|
|
$routes->get('reports/returns', 'Admin\SalesReport::returns');
|
|
|
|
|
$routes->get('reports/lot-flow', 'Admin\SalesReport::lotFlow');
|
|
|
|
|
$routes->get('reports/misc-flow', 'Admin\SalesReport::miscFlow');
|
|
|
|
|
$routes->post('reports/misc-flow', 'Admin\SalesReport::miscFlowStore');
|
2026-03-25 18:29:31 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
$routes->get('password-change', 'Admin\PasswordChange::index');
|
|
|
|
|
$routes->post('password-change', 'Admin\PasswordChange::update');
|
|
|
|
|
});
|
2026-03-25 17:41:15 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
// Auth
|
|
|
|
|
$routes->get('login', 'Auth::showLoginForm');
|
|
|
|
|
$routes->post('login', 'Auth::login');
|
|
|
|
|
$routes->get('login/two-factor', 'Auth::showTwoFactor');
|
|
|
|
|
$routes->post('login/two-factor', 'Auth::verifyTwoFactor');
|
|
|
|
|
$routes->get('login/totp-setup', 'Auth::showTotpSetup');
|
|
|
|
|
$routes->post('login/totp-setup', 'Auth::completeTotpSetup');
|
|
|
|
|
$routes->get('logout', 'Auth::logout');
|
|
|
|
|
$routes->get('register', 'Auth::showRegisterForm');
|
|
|
|
|
$routes->post('register', 'Auth::register');
|
2026-03-25 17:41:15 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
// Admin (adminAuth 필터 적용)
|
|
|
|
|
$routes->group('admin', ['filter' => 'adminAuth'], static function ($routes): void {
|
|
|
|
|
$routes->get('select-local-government', 'Admin\SelectLocalGovernment::index');
|
|
|
|
|
$routes->post('select-local-government', 'Admin\SelectLocalGovernment::store');
|
|
|
|
|
$routes->get('/', 'Admin\Dashboard::index');
|
|
|
|
|
$routes->get('users', 'Admin\User::index');
|
|
|
|
|
$routes->get('users/create', 'Admin\User::create');
|
|
|
|
|
$routes->post('users/store', 'Admin\User::store');
|
|
|
|
|
$routes->get('users/edit/(:num)', 'Admin\User::edit/$1');
|
|
|
|
|
$routes->post('users/update/(:num)', 'Admin\User::update/$1');
|
|
|
|
|
$routes->post('users/unlock-login/(:num)', 'Admin\User::unlockLogin/$1');
|
|
|
|
|
$routes->post('users/delete/(:num)', 'Admin\User::delete/$1');
|
|
|
|
|
$routes->get('access/login-history', 'Admin\Access::loginHistory');
|
|
|
|
|
$routes->get('access/approvals', 'Admin\Access::approvals');
|
|
|
|
|
$routes->post('access/approve/(:num)', 'Admin\Access::approve/$1');
|
|
|
|
|
$routes->post('access/reject/(:num)', 'Admin\Access::reject/$1');
|
|
|
|
|
$routes->get('roles', 'Admin\Role::index');
|
|
|
|
|
$routes->get('menus', 'Admin\Menu::index');
|
|
|
|
|
$routes->get('menus/list', 'Admin\Menu::list');
|
|
|
|
|
$routes->post('menus/store', 'Admin\Menu::store');
|
|
|
|
|
$routes->post('menus/update/(:num)', 'Admin\Menu::update/$1');
|
|
|
|
|
$routes->post('menus/delete/(:num)', 'Admin\Menu::delete/$1');
|
|
|
|
|
$routes->post('menus/move', 'Admin\Menu::move');
|
2026-03-25 17:41:15 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
// Local government & designated shop 관리
|
|
|
|
|
$routes->get('local-governments', 'Admin\LocalGovernment::index');
|
|
|
|
|
$routes->get('local-governments/create', 'Admin\LocalGovernment::create');
|
|
|
|
|
$routes->post('local-governments/store', 'Admin\LocalGovernment::store');
|
|
|
|
|
$routes->get('local-governments/edit/(:num)', 'Admin\LocalGovernment::edit/$1');
|
|
|
|
|
$routes->post('local-governments/update/(:num)', 'Admin\LocalGovernment::update/$1');
|
|
|
|
|
$routes->post('local-governments/delete/(:num)', 'Admin\LocalGovernment::delete/$1');
|
2026-03-25 17:41:15 +09:00
|
|
|
|
2026-04-08 00:18:01 +09:00
|
|
|
// 기본코드 종류 관리 (P2-01) — 등록·수정·삭제는 관리자 전용
|
|
|
|
|
$routes->get('code-kinds/create', 'Admin\CodeKind::create');
|
|
|
|
|
$routes->post('code-kinds/store', 'Admin\CodeKind::store');
|
|
|
|
|
$routes->get('code-kinds/edit/(:num)', 'Admin\CodeKind::edit/$1');
|
|
|
|
|
$routes->post('code-kinds/update/(:num)', 'Admin\CodeKind::update/$1');
|
|
|
|
|
$routes->post('code-kinds/delete/(:num)', 'Admin\CodeKind::delete/$1');
|
|
|
|
|
|
|
|
|
|
// 세부코드 관리 (P2-02)
|
|
|
|
|
$routes->get('code-details/(:num)/create', 'Admin\CodeDetail::create/$1');
|
|
|
|
|
$routes->post('code-details/store', 'Admin\CodeDetail::store');
|
|
|
|
|
$routes->get('code-details/edit/(:num)', 'Admin\CodeDetail::edit/$1');
|
|
|
|
|
$routes->post('code-details/update/(:num)', 'Admin\CodeDetail::update/$1');
|
|
|
|
|
$routes->post('code-details/delete/(:num)', 'Admin\CodeDetail::delete/$1');
|
|
|
|
|
|
|
|
|
|
// 구 업무 URL → /bag/* (실제 처리는 bag 그룹). GET 301, POST 307.
|
|
|
|
|
$adminToBagPrefixes = [
|
|
|
|
|
'managers',
|
|
|
|
|
'sales-agencies',
|
|
|
|
|
'companies',
|
|
|
|
|
'free-recipients',
|
|
|
|
|
'designated-shops',
|
|
|
|
|
'bag-prices',
|
|
|
|
|
'bag-orders',
|
|
|
|
|
'bag-receivings',
|
|
|
|
|
'bag-inventory',
|
|
|
|
|
'shop-orders',
|
|
|
|
|
'bag-sales',
|
|
|
|
|
'bag-issues',
|
|
|
|
|
'packaging-units',
|
|
|
|
|
'reports',
|
|
|
|
|
'password-change',
|
|
|
|
|
];
|
|
|
|
|
foreach ($adminToBagPrefixes as $p) {
|
|
|
|
|
$routes->match(['get', 'post'], $p, 'Admin\WorkMovedToBag::toBag/' . $p);
|
|
|
|
|
$routes->match(['get', 'post'], $p . '/(:any)', 'Admin\WorkMovedToBag::toBag/' . $p . '/$1');
|
|
|
|
|
}
|
2026-03-25 12:05:33 +09:00
|
|
|
});
|