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>