import Utils from "~/utils"
export default {
	methods: {
		buildPtspta(ptsptaObj) {
			let pts = ptsptaObj.pts;
			let ptspta = {
				rol: pts.rol,
				nam: pts.nam,
				ptyinr: pts.ptyinr,
				ptainr: pts.ptainr,
				extkey: pts.extkey,
				dftdsp: pts.dftdsp,
				dftcur: pts.dftcur,
				dftact: pts.dftact,
				dftfeecur: pts.dftfeecur,
				dftactptainr: pts.dftactptainr,
				glggrpflg: pts.glggrpflg,
				adrblk: pts.adrblk,
				pts
			};
			return ptspta;
		},
		addNidgrpPts(model, ptsptaList) {
			let docprbrol = model.ncdgrp.rec.docprbrol
			let payrol = model.ncdgrp.rec.payrol
			ptsptaList.forEach(em => {
				if (docprbrol == em.rol) {
					docprbrol = ""
				}
				if (payrol == em.rol) {
					payrol = ""
				}
			});
			docprbrol = docprbrol.toLowerCase()
			if (docprbrol && model.nidgrp[docprbrol]) {
				ptsptaList.push(this.buildPtspta(model.nidgrp[docprbrol]))
			}
			payrol = payrol.toLowerCase()
			if (payrol && model.nidgrp[payrol]) {
				ptsptaList.push(this.buildPtspta(model.nidgrp[payrol]))
			}
    },
    calcDocamt(model) {
      let docamt = 0;
      if (model.setmod && model.setmod.modifySet && model.setmod.modifySet.indexOf('docamt') > -1) {
        docamt = model.setmod.docamt;
      } else {
        if (model.ncdgrp.cbs.opn1 && model.ncdgrp.cbs.opn1.amt) {
          docamt = Number(docamt) + Number(model.ncdgrp.cbs.opn1.amt);
        }
        if (model.ncdgrp.cbs.opn2 && model.ncdgrp.cbs.opn2.amt) {
          docamt = Number(docamt) + Number(model.ncdgrp.cbs.opn2.amt);
        }
      }
      return docamt;
    },
		buildCommonData(model, trnName) {
			let ptsptaList = Utils.formatPtspta(model.ncdgrp, this.buildPtspta);
			this.addNidgrpPts(model, ptsptaList);
			let dataObj = {
				rec: {
					objtyp: 'NCD',
					// use ncd info
					ownref: model.ncdgrp.rec.ownref,
					objinr: model.ncdgrp.rec.inr,
					cannowflg: model.ncdgrp.rec.cannowflg,
					payrol: model.ncdgrp.rec.payrol,
					frepayflg: model.ncdgrp.rec.frepayflg,
					docprbrol: model.ncdgrp.rec.docprbrol,
					ptytyp: model.ncdgrp.rec.ptytyp,

					// use nid info
					branchInr: model.nidgrp.rec.branchinr,
					nidinr: model.nidgrp.rec.inr,
					opndat: model.nidgrp.rec.opndat,
					expdat: model.nidgrp.rec.expdat,
					hndtyp: model.nidgrp.rec.hndtyp,
					gartyp: model.nidgrp.rec.gartyp,
					fingua: model.nidgrp.rec.fingua,
					segtyp: model.nidgrp.rec.segtyp,
					fromflg: model.nidgrp.rec.fromflg,
					othersno: model.nidgrp.rec.othersno,
					sndto: model.nidgrp.rec.sndto,
					giduil: model.nidgrp.rec.giduil,
					purpos: model.nidgrp.rec.purpos,
					revflg: model.nidgrp.rec.revflg,
					cnfsta: model.nidgrp.rec.cnfsta,
					redamt: model.nidgrp.rec.redamt,
					legfrm: model.nidgrp.rec.legfrm,
					swftyp: model.swftyp,
					// model
					cre732flg: model.cre732flg,
					paypsb: model.paypsb,
					clmrmbflg: model.clmrmbflg,
					cfaguatyp: model.cfaguatyp,
					stacty: model.stacty,
					orddat: model.orddat,
					orcref: model.orcref,
					exptyp: model.exptyp,
					liatypc: model.liatypc,

					prechkdat: model.prechkdat,
          			cmtflg: model.cmtflg,
          			docamt: this.calcDocamt(model),
		  			doccur: model.setmod.doccur,
          			feecorrol: model.setmod.feecorrol,
					nidopndat: model.nidgrp.rec.opndat,
					nidownref: model.nidgrp.rec.ownref,
				},
				cbsMap: {
					NIDMAX: model.nidgrp.cbs.max,
					NIDOPN1: model.nidgrp.cbs.opn1,
					NIDOPN2: model.nidgrp.cbs.opn2,
					NIDMAX2: model.nidgrp.cbs.max2,
					MAX: model.ncdgrp.cbs.max,
					OPN1: model.ncdgrp.cbs.opn1,
					OPN2: model.ncdgrp.cbs.opn2,
					MAX2: model.ncdgrp.cbs.max2,
					MAC: model.ncdgrp.cbs.mac,
					MAC2: model.ncdgrp.cbs.mac2,
					OPC2: model.ncdgrp.cbs.opc2,
					CNF: model.ncdgrp.cbs.cnf
				},
				ptsList: ptsptaList,
				transName: trnName,
				userId: window.sessionStorage.userId ? window.sessionStorage.userId : '742549'
			};
			return dataObj
		},
		buildRobbop(model, trnName) {
			let params = {
				...this.buildCommonData(model, trnName),
				setgllList: model.setmod.setglg.setgll,
				allamt: '',
				rmb2101: model.rmbbop.rmb2101,
				rmbbop2111Vo: model.rmbbop.rmbbop2111Vo,
				rmb2112: model.rmbbop.rmb2112,
				rmb2122: model.rmbbop.rmb2122,
				rmbbop2123Vo: model.rmbbop.rmbbop2123Vo,
			};
			return params
		},
		buildCfap(model, trnName) {
			let params = {
				...this.buildCommonData(model, trnName),
				amdRec: {
					gcdownref: model.ncdgrp.rec.ownref,
					chgdat: "",
					chgamt: "",
				},
				cfatyp: "S",
				dclflg: model.cfagit.dclflg,
				cfaflg: model.cfagit.cfaflg,
				basflg: model.cfagit.basflg,
				vasflg: model.cfagit.vasflg,
				vrfflg: model.cfagit.vrfflg,
				recgrp: model.cfagit.recgrp,
			};
			return params
		},
	}
}