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;
    },
    addGidgrpPts(model,ptsptaList){
      let docprbrol = model.gcdgrp.rec.docprbrol
      let payrol = model.gcdgrp.rec.payrol
      ptsptaList.forEach(em => {
        if(docprbrol == em.rol){
          docprbrol = ""
        }
        if(payrol == em.rol){
          payrol = ""
        }
      });
      docprbrol = docprbrol.toLowerCase()
      if(docprbrol && model.gidgrp[docprbrol]){
        ptsptaList.push( this.buildPtspta(model.gidgrp[docprbrol]))
      }
      payrol = payrol.toLowerCase()
      if(payrol && model.gidgrp[payrol]){
        ptsptaList.push( this.buildPtspta(model.gidgrp[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.gcdgrp.cbs.opn1 && model.gcdgrp.cbs.opn1.amt) {
          docamt = Number(docamt) + Number(model.gcdgrp.cbs.opn1.amt);
        }
        if (model.gcdgrp.cbs.opn2 && model.gcdgrp.cbs.opn2.amt) {
          docamt = Number(docamt) + Number(model.gcdgrp.cbs.opn2.amt);
        }
      }
      return docamt;
    },
    buildCommonData (model, trnName) {
      let ptsptaList = Utils.formatPtspta(model.gcdgrp, this.buildPtspta);
      this.addGidgrpPts(model,ptsptaList);
      let dataObj = {
        rec: {
          objtyp: "GCD",
          branchInr: model.gidgrp.rec.branchinr,
          gidinr: model.gidgrp.rec.inr,
          ownref: model.gcdgrp.rec.ownref,
          opndat: model.gidgrp.rec.opndat,
          expdat: model.gidgrp.rec.expdat,
          hndtyp: model.gidgrp.rec.hndtyp,
          gartyp: model.gidgrp.rec.gartyp,
          fingua: model.gidgrp.rec.fingua,
          fromflg: model.gidgrp.rec.fromflg,
          othersno: model.gidgrp.rec.othersno,
          sndto: model.gidgrp.rec.sndto,
          giduil: model.gidgrp.rec.giduil,
          purpos: model.gidgrp.rec.purpos,
          revflg: model.gidgrp.rec.revflg,
          cnfsta: model.gidgrp.rec.cnfsta,
          cannowflg: model.gcdgrp.rec.cannowflg,
          payrol: model.gcdgrp.rec.payrol,
          paypsb: model.paypsb,
          frepayflg: model.gcdgrp.rec.frepayflg,
          docprbrol: model.gcdgrp.rec.docprbrol,
          legfrm: model.gidgrp.rec.legfrm,
          swftyp: model.swftyp,
          clsdat: model.gidgrp.rec.clsdat,
          credat: model.gidgrp.rec.credat,
          fenlishi: model.gidgrp.rec.fenlishi,
          prechkdat: model.prechkdat,
          cfaguatyp: model.gidgrp.rec.cfaguatyp,
          stacty: model.gidgrp.rec.stacty,
          orddat: model.gidgrp.rec.orddat,
          orcref: model.gidgrp.rec.orcref,
          exptyp: model.gidgrp.rec.exptyp,
          liatypc: model.gidgrp.rec.liatypc,
          cmtflg: model.cmtflg,
          cre732flg: model.cre732flg,
          docamt:this.calcDocamt(model),
          doccur: model.setmod.doccur,
          feecorrol: model.setmod.feecorrol,
          gidopndat: model.gidgrp.rec.opndat,
          gidownref: model.gidgrp.rec.ownref,
        },
        cbsMap: {
          GIDOPN1: model.gidgrp.cbs.opn1,
          GIDOPN2: model.gidgrp.cbs.opn2,
          MAX: model.gcdgrp.cbs.max,
          MAX2: model.gcdgrp.cbs.max2,
          OPN1: model.gcdgrp.cbs.opn1,
          OPN2: model.gcdgrp.cbs.opn2,
          MAC: model.gcdgrp.cbs.mac,
          MAC2: model.gcdgrp.cbs.mac2,
          OPC2: model.gcdgrp.cbs.opc2,
          CNF: model.gcdgrp.cbs.cnf,
          GCDMAX: model.gcdgrp.cbs.max,
          GIDMAX: model.gidgrp.cbs.max,
        },
        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.gcdgrp.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
    },
  }
}