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,
        rmb2111: model.rmbbop.rmb2111,
        rmb2112: model.rmbbop.rmb2112,
        rmb2122: model.rmbbop.rmb2122,
        rmb2123: model.rmbbop.rmb2123,
      };
      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
		},
  }
}