import Settle from "../model/Public/Settle.js";
import Api from "~/service/Api";
import Utils from "~/utils";


export default {
  data: function () {
    return {
        settle : new Settle().data,
    }
  },
  created() {
  },
  mounted() {
  },
  methods: {
    buildDoceot(){
        let doceots = [];
        let doceotList = this.model.trnmod.trndoc.doceot;
        for (let eot of doceotList) {
            let doceot = {};
            doceot.cortyp=eot.cortyp;
            doceot.docsnf=eot.docsnf;
            doceot.lev=eot.lev;
            doceot.rcv=this.buildPtspta(eot.rcv);
            doceots.push(doceot);
        }
        return doceots;
    },

    buildPtydet(ptsptaObj) {
        let ptydet = {};
        ptydet.rol=ptsptaObj.pts.rol;
        ptydet.dftfeecur=ptsptaObj.pts.dftfeecur;
        return ptydet;
    },

    buildPtspta(ptsptaObj) {
        let ptspta = {};
        let pts = ptsptaObj.pts;
        let adr = ptsptaObj.adr;
        ptspta.rol=pts.rol;
        ptspta.name=pts.nam;
        ptspta.ptyinr=pts.ptyinr;
        ptspta.ptainr=pts.ptainr;
        ptspta.extkey=pts.extkey;
        ptspta.dftdsp=pts.dftdsp;
        ptspta.dftcur=pts.dftcur;
        ptspta.dftact=pts.dftact;
        ptspta.dftfeecur=pts.dftfeecur;
        ptspta.dftactptainr=pts.dftactptainr;
        //ptspta.dftselrol=
        ptspta.glggrpflg=pts.glggrpflg;
        //ptspta.pansta=
        //ptspta.ptytyp=
        //ptspta.ptyextkey=
        ptspta.adrblk=pts.adrblk;
        //ptspta.rolsetflg=
        if (adr !== null && adr !== undefined) {
            ptspta.adrbic=adr.bic;
            ptspta.adrLoccty=adr.loccty;
        }
        return ptspta;
    },
    buildSettle() {
        let rec = {};
        let cbsMap = {};
        if (this.trnName === "litopn") {
            rec.objtyp = "LID";
            rec.ownref = this.model.lidgrp.rec.ownref;
            rec.opndat = this.model.lidgrp.rec.opndat;
            rec.branchInr = this.model.lidgrp.rec.branchinr;
            this.settle.rec = rec;

            cbsMap.NOM1 = {
                "cur":this.model.lidgrp.cbs.nom1.cur,
                "amt":this.model.lidgrp.cbs.nom1.amt,
            };

            cbsMap.OPN1 = {};
            
            cbsMap.OPN2 = {
                "cur":this.model.lidgrp.cbs.opn2.cur,
                "amt":this.model.lidgrp.cbs.opn2.amt,
            };

            cbsMap.MAX = {
                "cur":this.model.lidgrp.cbs.max.cur,
                "amt":this.model.lidgrp.cbs.max.amt,
            };

            cbsMap.MAX2 = {
                "cur":this.model.lidgrp.cbs.max2.cur,
                "amt":this.model.lidgrp.cbs.max2.amt,
            };

            this.settle.cbsMap = cbsMap;

            let ptsptaList = [];
            let ptydetList = [];
            if (this.model.lidgrp.apl.pts.extkey !== "") {
                ptsptaList.push(this.buildPtspta(this.model.lidgrp.apl));
                ptydetList.push(this.buildPtydet(this.model.lidgrp.apl));
            }
            if (this.model.lidgrp.adv.pts.extkey !== "") {
                ptsptaList.push(this.buildPtspta(this.model.lidgrp.adv));
                ptydetList.push(this.buildPtydet(this.model.lidgrp.adv));
            }
            if (this.model.lidgrp.ben.pts.extkey !== "") {
                ptsptaList.push(this.buildPtspta(this.model.lidgrp.ben));
                ptydetList.push(this.buildPtydet(this.model.lidgrp.ben));
            }
            this.settle.ptsList = ptsptaList;
            this.settle.ptydet = ptydetList;
        } else if (this.trnName === "cptopn") {
            rec.objtyp = "CPD";
            rec.ownref = this.model.cpdgrp.rec.ownref;
            rec.opndat = this.model.cpdgrp.rec.opndat;
            rec.branchInr = this.model.cpdgrp.rec.branchinr;
            rec.detchgcod = this.model.cpdgrp.rec.detchgcod;
            rec.trdinr = this.model.cpdgrp.rec.trdinr;
            rec.chato = this.model.cpdgrp.rec.chato;
            //rec.paytyp = this.model.cpdgrp.rec.paytyp;
            rec.paytyp = "O";//固定值 O 表示汇出
            rec.swftyp = this.model.cpdgrp.rec.swftyp;
            rec.valdat = this.model.cpdgrp.rec.valdat;
            rec.opndat = this.model.cpdgrp.rec.opndat;
            this.settle.rec = rec;

            cbsMap.NOM1 = {
                "cur":this.model.cpdgrp.cbs.nom1.cur,
                "amt":this.model.cpdgrp.cbs.nom1.amt,
            };

            cbsMap.MAX = {
                "cur":this.model.cpdgrp.cbs.max.cur,
                "amt":this.model.cpdgrp.cbs.max.amt,
            };
            this.settle.cbsMap = cbsMap;

            let ptsptaList = [];
            //let ptydetList = [];
            if (this.model.cpdgrp.orc.pts.extkey !== "") {
                ptsptaList.push(this.buildPtspta(this.model.cpdgrp.orc));
                //ptydetList.push(this.buildPtydet(this.model.cpdgrp.orc));
            }
            if (this.model.cpdgrp.ori.pts.extkey !== "") {
                ptsptaList.push(this.buildPtspta(this.model.cpdgrp.ori));
                //ptydetList.push(this.buildPtydet(this.model.cpdgrp.ori));
            }
            if (this.model.cpdgrp.pye.pts.extkey !== "") {
                ptsptaList.push(this.buildPtspta(this.model.cpdgrp.pye));
                //ptydetList.push(this.buildPtydet(this.model.cpdgrp.pye));
            }
            this.settle.ptsList = ptsptaList;
            //this.settle.ptydet = ptydetList;

        }
        this.settle.doceotList=this.buildDoceot();

        this.settle.transName = this.trnName;
        if (!!window.sessionStorage.userId) {
            this.settle.userId = window.sessionStorage.userId;
        } else {
            this.settle.userId = "ZL";
        }
    },

    async processSetpan() {
        //组数据,发post请求
        const loading = this.loading("正在请求数据")
        const rulePath = "/service/setmod/assertSetmod";
        this.buildSettle();
        let rtnmsg = await Api.post(rulePath, this.settle);
        if (rtnmsg.respCode == SUCCESS) {
          Utils.copyValueFromVO(this.model.setmod, rtnmsg.data);
          this.model.setmod.glemod.gleshwstm = rtnmsg.data.gleshwstm;
        }
        loading.close()
    }

  }
}