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
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Models;
|
|
|
|
|
|
|
|
|
|
use CodeIgniter\Model;
|
|
|
|
|
|
|
|
|
|
class BagOrderModel extends Model
|
|
|
|
|
{
|
|
|
|
|
protected $table = 'bag_order';
|
|
|
|
|
protected $primaryKey = 'bo_idx';
|
|
|
|
|
protected $returnType = 'object';
|
|
|
|
|
protected $useTimestamps = false;
|
2026-04-23 15:43:19 +09:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 동일 발주 UUID에 대해 bo_version이 최대인 행만 (수정으로 생긴 이전 버전 행은 목록·이력에서 제외).
|
|
|
|
|
* DB에는 버전별 행이 그대로 남고, 조회 시에만 필터한다.
|
|
|
|
|
*/
|
|
|
|
|
public function whereLatestHead(int $lgIdx): self
|
|
|
|
|
{
|
|
|
|
|
$lg = (int) $lgIdx;
|
|
|
|
|
|
|
|
|
|
return $this->where(
|
|
|
|
|
"(bo_uuid, bo_version) IN (SELECT bo_uuid, MAX(bo_version) FROM {$this->table} WHERE bo_lg_idx = {$lg} GROUP BY bo_uuid)",
|
|
|
|
|
null,
|
|
|
|
|
false
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
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
|
|
|
protected $allowedFields = [
|
|
|
|
|
'bo_uuid', 'bo_version', 'bo_lg_idx', 'bo_gugun_code', 'bo_dong_code',
|
|
|
|
|
'bo_company_idx', 'bo_agency_idx', 'bo_fee_rate', 'bo_order_date',
|
2026-04-23 15:43:19 +09:00
|
|
|
'bo_bag_types', 'bo_unit_prices', 'bo_qty_boxes',
|
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
|
|
|
'bo_lot_no', 'bo_hash', 'bo_status', 'bo_orderer_idx',
|
|
|
|
|
'bo_regdate', 'bo_moddate',
|
|
|
|
|
];
|
|
|
|
|
}
|