사이트·관리자 봉투 물류 기능(수불·통계·레포트·재고·발주)과 DB·메뉴·E2E를 운영 반영한다.
통계 분석(전년대비·월별·계절별), 수급계획·LOT 수불, 지정판매소·실사·메뉴 링크 등을 포함한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -57,8 +57,21 @@ class ShopOrder extends BaseController
|
||||
$shops = model(DesignatedShopModel::class)->where('ds_lg_idx', $lgIdx)->where('ds_state', 1)->findAll();
|
||||
$kind = model(CodeKindModel::class)->where('ck_code', 'O')->first();
|
||||
$bagCodes = $kind ? model(CodeDetailModel::class)->getByKind((int) $kind->ck_idx, true, $lgIdx) : [];
|
||||
$priceMap = model(BagPriceModel::class)->latestActiveMapByBagCode($lgIdx);
|
||||
$unitRows = model(PackagingUnitModel::class)
|
||||
->where('pu_lg_idx', $lgIdx)
|
||||
->where('pu_state', 1)
|
||||
->findAll();
|
||||
$unitMap = [];
|
||||
foreach ($unitRows as $unit) {
|
||||
$code = (string) ($unit->pu_bag_code ?? '');
|
||||
if ($code === '' || isset($unitMap[$code])) {
|
||||
continue;
|
||||
}
|
||||
$unitMap[$code] = $unit;
|
||||
}
|
||||
|
||||
return $this->renderWorkPage('주문 접수', 'admin/shop_order/create', compact('shops', 'bagCodes'));
|
||||
return $this->renderWorkPage('주문 접수', 'admin/shop_order/create', compact('shops', 'bagCodes', 'priceMap', 'unitMap'));
|
||||
}
|
||||
|
||||
public function store()
|
||||
@@ -81,7 +94,7 @@ class ShopOrder extends BaseController
|
||||
$dsIdx = (int) $this->request->getPost('so_ds_idx');
|
||||
$shop = model(DesignatedShopModel::class)->find($dsIdx);
|
||||
|
||||
$this->orderModel->insert([
|
||||
$orderData = [
|
||||
'so_lg_idx' => $lgIdx,
|
||||
'so_ds_idx' => $dsIdx,
|
||||
'so_ds_name' => $shop ? $shop->ds_name : '',
|
||||
@@ -91,8 +104,24 @@ class ShopOrder extends BaseController
|
||||
'so_status' => 'normal',
|
||||
'so_orderer_idx' => session()->get('mb_idx'),
|
||||
'so_regdate' => date('Y-m-d H:i:s'),
|
||||
]);
|
||||
];
|
||||
// shop_order.so_channel 이 아직 반영되지 않은 DB와의 호환 처리
|
||||
if ($db->fieldExists('so_channel', 'shop_order')) {
|
||||
$orderData['so_channel'] = 'phone';
|
||||
}
|
||||
|
||||
$insertOk = $this->orderModel->insert($orderData);
|
||||
if ($insertOk === false) {
|
||||
$db->transRollback();
|
||||
$errors = $this->orderModel->errors();
|
||||
$msg = ! empty($errors) ? implode(' / ', array_values($errors)) : '주문 저장에 실패했습니다.';
|
||||
return redirect()->back()->withInput()->with('error', $msg);
|
||||
}
|
||||
$soIdx = (int) $this->orderModel->getInsertID();
|
||||
if ($soIdx <= 0) {
|
||||
$db->transRollback();
|
||||
return redirect()->back()->withInput()->with('error', '주문번호 생성에 실패했습니다. DB 스키마를 확인해 주세요.');
|
||||
}
|
||||
|
||||
$bagCodes = $this->request->getPost('item_bag_code') ?? [];
|
||||
$qtys = $this->request->getPost('item_qty') ?? [];
|
||||
|
||||
Reference in New Issue
Block a user