item을 PO생성 keys 기준으로 PO Header를 만들고 Header와 Item간에 연결구조(1:N)만들기
<script>
Polymer({
is : "ep-pr-po-info",
properties : {
poKeys : {
type : Array,
value : [ "oper_org_cd"
, "comp_cd"
, "org_cd"
, "purc_cd"
, "purc_grp_cd"
, "vd_cd"
, "agent_cd"
, "shipper_typ"
, "pay_terms_cd"
, "dely_terms_cd"
, "sg_cd"]
},
},
makePOList : function(prItemList)
{
var me = this;
var _poList = [];
prItemList.forEach(function(item)
{
// PO Keys기준으로 PO Header Map 생성
var _tempPO = {};
me.poKeys.forEach(function(key)
{
_tempPO[key] = item[key];
});
_tempPO.po_item_cnt = 0;
_tempPO.po_tot_amt = 0;
_tempPO.poItemList = [];
// PO 목록에서 Keys기준으로 일치하는 PO찾기
var _findPOs = _poList.filter(function(po)
{
var _isEqual = true;
for (var key of me.poKeys)
{
if (po[key] != _tempPO[key])
{
_isEqual = false;
break;
}
}
return _isEqual;
});
// 찾은 PO가 없다면
if (UT.isEmpty(_findPOs))
{
// PO Header에 poNo로 PO Item과 연결 번호 발번
_tempPO.poNo = _poList.length;
// PO Item에 poNo로 PO Header완 연결 번호 저장
item.poNo = _tempPO.poNo;
// PO Header 저장
_poList.push(_tempPO);
}
else
{
// PO Item에 poNo로 PO Header완 연결 번호 저장
item.poNo = _findPOs[0].poNo;
}
});
return _poList;
}
});
</script>