'use strict'; const JV = require('./jpc_value_define'); const JpcField = { createNew: function(rptTpl) { const JpcFieldResult = {}; const me = this; JpcFieldResult[JV.NODE_DISCRETE_FIELDS] = {}; if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) { for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS].length; i++) { me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS][i], JpcFieldResult[JV.NODE_DISCRETE_FIELDS], rptTpl, JV.DATA_DISCRETE_DATA, i); } } JpcFieldResult[JV.NODE_MASTER_FIELDS] = {}; if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) { for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS].length; i++) { me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS][i], JpcFieldResult[JV.NODE_MASTER_FIELDS], rptTpl, JV.DATA_MASTER_DATA, i); } } JpcFieldResult[JV.NODE_DETAIL_FIELDS] = {}; if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) { for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS].length; i++) { me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS][i], JpcFieldResult[JV.NODE_DETAIL_FIELDS], rptTpl, JV.DATA_DETAIL_DATA, i); } } JpcFieldResult[JV.NODE_NO_MAPPING_FIELDS] = {}; if (rptTpl[JV.NODE_NO_MAPPING_FIELDS]) { for (let i = 0; i < rptTpl[JV.NODE_NO_MAPPING_FIELDS].length; i++) { me.createSingle(rptTpl[JV.NODE_NO_MAPPING_FIELDS][i], JpcFieldResult[JV.NODE_NO_MAPPING_FIELDS], rptTpl, 'NA', JV.BLANK_FIELD_INDEX); } } JpcFieldResult[JV.NODE_MASTER_FIELDS_EX] = {}; if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX]) { for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX].length; i++) { me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX][i], JpcFieldResult[JV.NODE_MASTER_FIELDS_EX], rptTpl, JV.DATA_MASTER_DATA_EX, i); } } JpcFieldResult[JV.NODE_DETAIL_FIELDS_EX] = {}; if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX]) { for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX].length; i++) { me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX][i], JpcFieldResult[JV.NODE_DETAIL_FIELDS_EX], rptTpl, JV.DATA_DETAIL_DATA_EX, i); } } JpcFieldResult[JV.NODE_SIGNATURE_FIELDS] = {}; if (rptTpl[JV.NODE_SIGNATURE_FIELDS]) { for (let i = 0; i < rptTpl[JV.NODE_SIGNATURE_FIELDS].length; i++) { me.createSignatureSingle(rptTpl[JV.NODE_SIGNATURE_FIELDS][i], JpcFieldResult[JV.NODE_SIGNATURE_FIELDS]); } } return JpcFieldResult; }, createSingle: function(fieldNode, parentObj, rptTpl, dataNodeName, sequence) { if (fieldNode && fieldNode[JV.PROP_ID]) { const item = {}; item[JV.PROP_ID] = fieldNode[JV.PROP_ID]; item[JV.PROP_NAME] = fieldNode[JV.PROP_NAME]; item[JV.PROP_DATA_TYPE] = fieldNode[JV.PROP_DATA_TYPE]; if (fieldNode[JV.PROP_PRECISION]) { item[JV.PROP_PRECISION] = {}; item[JV.PROP_PRECISION].type = fieldNode[JV.PROP_PRECISION].type; if (fieldNode[JV.PROP_PRECISION].type === 'fixed') { item[JV.PROP_FIXED_PRECISION_AMT] = fieldNode[JV.PROP_FIXED_PRECISION_AMT]; } else { item[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID] = fieldNode[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID]; item.flexiblePrecisionRefObj = fieldNode.flexiblePrecisionRefObj; } } if (fieldNode.hasOwnProperty('isPic')) { item.isPic = fieldNode.isPic; } item.DataNodeName = dataNodeName; item.DataSeq = sequence; parentObj[JV.PROP_ID + '_' + fieldNode[JV.PROP_ID]] = item; } }, createSignatureSingle: function(fieldNode, parentObj) { if (fieldNode && fieldNode[JV.PROP_ID]) { const item = {}; item[JV.PROP_ID] = fieldNode[JV.PROP_ID]; item[JV.PROP_NAME] = fieldNode[JV.PROP_NAME]; item[JV.PROP_DATA_TYPE] = fieldNode[JV.PROP_DATA_TYPE]; item[JV.PROP_PATH] = fieldNode[JV.PROP_PATH]; item[JV.PROP_PIC_STREAM] = fieldNode[JV.PROP_PIC_STREAM]; parentObj[JV.PROP_ID + '_' + fieldNode[JV.PROP_ID]] = item; } }, }; module.exports = JpcField;