사이트·관리자 봉투 물류 기능(수불·통계·레포트·재고·발주)과 DB·메뉴·E2E를 운영 반영한다.
통계 분석(전년대비·월별·계절별), 수급계획·LOT 수불, 지정판매소·실사·메뉴 링크 등을 포함한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
23
app/Models/BagIssueItemCodeModel.php
Normal file
23
app/Models/BagIssueItemCodeModel.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class BagIssueItemCodeModel extends Model
|
||||
{
|
||||
protected $table = 'bag_issue_item_code';
|
||||
protected $primaryKey = 'bic_idx';
|
||||
protected $returnType = 'object';
|
||||
protected $useTimestamps = false;
|
||||
protected $allowedFields = [
|
||||
'bic_lg_idx',
|
||||
'bic_bi2_idx',
|
||||
'bic_bag_code',
|
||||
'bic_issue_code',
|
||||
'bic_qty',
|
||||
'bic_cancel_qty',
|
||||
'bic_state',
|
||||
'bic_regdate',
|
||||
];
|
||||
}
|
||||
25
app/Models/BlockchainLedgerModel.php
Normal file
25
app/Models/BlockchainLedgerModel.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
class BlockchainLedgerModel extends Model
|
||||
{
|
||||
protected $table = 'blockchain_ledger';
|
||||
protected $primaryKey = 'bl_idx';
|
||||
protected $returnType = 'object';
|
||||
protected $useTimestamps = false;
|
||||
protected $allowedFields = [
|
||||
'bl_created_at',
|
||||
'bl_tx_type',
|
||||
'bl_entity_uuid',
|
||||
'bl_entity_version',
|
||||
'bl_payload',
|
||||
'bl_previous_hash',
|
||||
'bl_hash',
|
||||
'bl_nonce',
|
||||
'bl_actor_idx',
|
||||
'bl_lg_idx',
|
||||
];
|
||||
}
|
||||
@@ -53,7 +53,11 @@ class CodeDetailModel extends Model
|
||||
$this->where('cd_state', 1);
|
||||
}
|
||||
|
||||
return $this->orderBy('cd_sort', 'ASC')->orderBy('cd_idx', 'ASC')->findAll();
|
||||
// 동일 정렬값일 때는 코드값 기준으로 안정적으로 정렬한다.
|
||||
return $this->orderBy('cd_sort', 'ASC')
|
||||
->orderBy('cd_code', 'ASC')
|
||||
->orderBy('cd_idx', 'ASC')
|
||||
->findAll();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,6 +12,7 @@ class DesignatedShopModel extends Model
|
||||
protected $useTimestamps = false;
|
||||
protected $allowedFields = [
|
||||
'ds_lg_idx',
|
||||
'ds_sa_idx',
|
||||
'ds_mb_idx',
|
||||
'ds_shop_no',
|
||||
'ds_name',
|
||||
|
||||
@@ -252,4 +252,39 @@ class MenuModel extends Model
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 재고 관리 하위 메뉴는 "재고 현황", "실사 선별 조회"만 유지.
|
||||
*/
|
||||
public function pruneInventoryManagementMenus(int $mtIdx, int $lgIdx): void
|
||||
{
|
||||
if ($mtIdx <= 0 || $lgIdx <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$parentRows = $this->where('mt_idx', $mtIdx)
|
||||
->where('lg_idx', $lgIdx)
|
||||
->where('mm_pidx', 0)
|
||||
->groupStart()
|
||||
->where('mm_name', '재고 관리')
|
||||
->orWhere('mm_name', '재고관리')
|
||||
->groupEnd()
|
||||
->findAll();
|
||||
if ($parentRows === []) {
|
||||
return;
|
||||
}
|
||||
$parentIds = array_values(array_filter(array_map(
|
||||
static fn ($row): int => (int) ($row->mm_idx ?? 0),
|
||||
$parentRows
|
||||
)));
|
||||
if ($parentIds === []) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->where('mt_idx', $mtIdx)
|
||||
->where('lg_idx', $lgIdx)
|
||||
->whereIn('mm_pidx', $parentIds)
|
||||
->whereNotIn('mm_link', ['bag/inventory', 'bag/inventory/inspection-select'])
|
||||
->delete();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,4 +16,29 @@ class PackagingUnitModel extends Model
|
||||
'pu_start_date', 'pu_end_date', 'pu_state',
|
||||
'pu_regdate', 'pu_moddate', 'pu_reg_mb_idx',
|
||||
];
|
||||
|
||||
/**
|
||||
* 동일 봉투코드에 행이 여러 개여도 최신 등록 1건만 사용.
|
||||
*
|
||||
* @return array<string, object>
|
||||
*/
|
||||
public function latestActiveMapByBagCode(int $lgIdx): array
|
||||
{
|
||||
$rows = $this->where('pu_lg_idx', $lgIdx)
|
||||
->where('pu_state', 1)
|
||||
->orderBy('pu_regdate', 'DESC')
|
||||
->orderBy('pu_idx', 'DESC')
|
||||
->findAll();
|
||||
|
||||
$map = [];
|
||||
foreach ($rows as $row) {
|
||||
$code = (string) ($row->pu_bag_code ?? '');
|
||||
if ($code === '' || isset($map[$code])) {
|
||||
continue;
|
||||
}
|
||||
$map[$code] = $row;
|
||||
}
|
||||
|
||||
return $map;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class ShopOrderModel extends Model
|
||||
protected $useTimestamps = false;
|
||||
protected $allowedFields = [
|
||||
'so_lg_idx', 'so_ds_idx', 'so_ds_name', 'so_order_date', 'so_delivery_date',
|
||||
'so_payment_type', 'so_paid', 'so_received', 'so_total_qty', 'so_total_amount',
|
||||
'so_payment_type', 'so_channel', 'so_paid', 'so_received', 'so_total_qty', 'so_total_amount',
|
||||
'so_status', 'so_orderer_idx', 'so_regdate',
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user