Commit 0c8810df by taojinrui

cptati/cptrep/cptcan交易修改

parent e6f9bc56
...@@ -6,8 +6,12 @@ export default { ...@@ -6,8 +6,12 @@ export default {
let rtnmsg = await this.executeRule("attp.getref") let rtnmsg = await this.executeRule("attp.getref")
if(rtnmsg.respCode == SUCCESS) if(rtnmsg.respCode == SUCCESS)
{ {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
Utils.copyValueFromVO(this.model, rtnmsg.data); Utils.copyValueFromVO(this.model, rtnmsg.data);
this.$message({
type: 'success',
message: '获取成功!'
});
} }
else else
{ {
...@@ -320,17 +324,18 @@ export default { ...@@ -320,17 +324,18 @@ export default {
{ {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
} }
else else
{ {
this.$notify.error({title: '错误',message: '服务请求失败!'}); this.$notify.error({title: '错误',message: '服务请求失败!'});
} }
}, },
async onChk(){
let rtnmsg = await this.executeRule("chk") async onChk(){
if(rtnmsg.respCode == SUCCESS) let rtnmsg = await this.executeRule("chk")
{ if(rtnmsg.respCode == SUCCESS)
//TODO 处理数据逻辑 {
//TODO 处理数据逻辑
} }
else else
...@@ -344,12 +349,12 @@ export default { ...@@ -344,12 +349,12 @@ export default {
{ {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
} }
else else
{ {
this.$notify.error({title: '错误',message: '服务请求失败!'}); this.$notify.error({title: '错误',message: '服务请求失败!'});
} }
}, },
async onCodsel1Selbut(){ async onCodsel1Selbut(){
let rtnmsg = await this.executeRule("codsel1.selbut") let rtnmsg = await this.executeRule("codsel1.selbut")
if(rtnmsg.respCode == SUCCESS) if(rtnmsg.respCode == SUCCESS)
...@@ -374,8 +379,8 @@ export default { ...@@ -374,8 +379,8 @@ export default {
this.$notify.error({title: '错误',message: '服务请求失败!'}); this.$notify.error({title: '错误',message: '服务请求失败!'});
} }
}, },
async onCan(){ async onBasppGetreftmp(){
let rtnmsg = await this.executeRule("can") let rtnmsg = await this.executeRule("baspp.getreftmp")
if(rtnmsg.respCode == SUCCESS) if(rtnmsg.respCode == SUCCESS)
{ {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
...@@ -386,8 +391,8 @@ export default { ...@@ -386,8 +391,8 @@ export default {
this.$notify.error({title: '错误',message: '服务请求失败!'}); this.$notify.error({title: '错误',message: '服务请求失败!'});
} }
}, },
async onBasppGetreftmp(){ async onBasppGetref(){
let rtnmsg = await this.executeRule("baspp.getreftmp") let rtnmsg = await this.executeRule("baspp.getref")
if(rtnmsg.respCode == SUCCESS) if(rtnmsg.respCode == SUCCESS)
{ {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
...@@ -398,8 +403,8 @@ export default { ...@@ -398,8 +403,8 @@ export default {
this.$notify.error({title: '错误',message: '服务请求失败!'}); this.$notify.error({title: '错误',message: '服务请求失败!'});
} }
}, },
async onBasppGetref(){ async onButpErr(){
let rtnmsg = await this.executeRule("baspp.getref") let rtnmsg = await this.executeRule("butp.err")
if(rtnmsg.respCode == SUCCESS) if(rtnmsg.respCode == SUCCESS)
{ {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
...@@ -410,9 +415,8 @@ export default { ...@@ -410,9 +415,8 @@ export default {
this.$notify.error({title: '错误',message: '服务请求失败!'}); this.$notify.error({title: '错误',message: '服务请求失败!'});
} }
}, },
async onCan(){
async onButpErr(){ let rtnmsg = await this.executeRule("can")
let rtnmsg = await this.executeRule("butp.err")
if(rtnmsg.respCode == SUCCESS) if(rtnmsg.respCode == SUCCESS)
{ {
//TODO 处理数据逻辑 //TODO 处理数据逻辑
......
...@@ -7,7 +7,6 @@ export default class Cptati{ ...@@ -7,7 +7,6 @@ export default class Cptati{
this.data = { this.data = {
fmtpayl1blk:"", fmtpayl1blk:"",
setsuml3blk:"", setsuml3blk:"",
lendoc_setsuml3blk:"",
attp:{ attp:{
shktyp:"", // static text 收汇款对象 .attp.shktyp shktyp:"", // static text 收汇款对象 .attp.shktyp
opndatlab:"", // 日期标签 .attp.opndatlab opndatlab:"", // 日期标签 .attp.opndatlab
...@@ -273,6 +272,7 @@ export default class Cptati{ ...@@ -273,6 +272,7 @@ export default class Cptati{
account:"", // ACT .lendoc.account account:"", // ACT .lendoc.account
vercerref:"", // Verification Certificate Number .lendoc.vercerref vercerref:"", // Verification Certificate Number .lendoc.vercerref
decnum:"", // Declaration Number .lendoc.decnum decnum:"", // Declaration Number .lendoc.decnum
setsuml3blk:""
}, },
bopmod:{ bopmod:{
szflg:"", // 申报类型 .bopmod.szflg szflg:"", // 申报类型 .bopmod.szflg
......
...@@ -20,7 +20,7 @@ export default { ...@@ -20,7 +20,7 @@ export default {
{max: 3,message:"长度不能超过3"} {max: 3,message:"长度不能超过3"}
], ],
"cpdgrp.cbs.nom1.amt":[ "cpdgrp.cbs.nom1.amt":[
{type: "number", required: false, message: "必输项"}, {type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"}, {max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" } {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
], ],
...@@ -33,7 +33,7 @@ export default { ...@@ -33,7 +33,7 @@ export default {
{max: 3,message:"长度不能超过3"} {max: 3,message:"长度不能超过3"}
], ],
"cpdgrp.cbs.max.amt":[ "cpdgrp.cbs.max.amt":[
{type: "number", required: false, message: "必输项"}, {type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"}, {max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" } {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
], ],
......
...@@ -5,6 +5,8 @@ import Pub from "../Public" ...@@ -5,6 +5,8 @@ import Pub from "../Public"
export default class Cptcan{ export default class Cptcan{
constructor () { constructor () {
this.data = { this.data = {
cptpybl1blk:"",
cptorcl1blk:"",
strinf:"", // Narrative .strinf strinf:"", // Narrative .strinf
cptp0:{ cptp0:{
recget:{ recget:{
......
...@@ -34,7 +34,7 @@ export default { ...@@ -34,7 +34,7 @@ export default {
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" } {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
], ],
"cpdgrp.cbs.max.amt":[ "cpdgrp.cbs.max.amt":[
{type: "number", required: false, message: "必输项"}, {type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"}, {max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" } {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
], ],
......
...@@ -218,58 +218,59 @@ export default class Cptrep{ ...@@ -218,58 +218,59 @@ export default class Cptrep{
// }, // },
// }, // },
// }, // },
trnmod:{ // trnmod:{
trndoc:{ // trndoc:{
advlabel:"", // ADVLABEL .trnmod.trndoc.advlabel // advlabel:"", // ADVLABEL .trnmod.trndoc.advlabel
amdnam:"", // AMDNAM .trnmod.trndoc.amdnam // amdnam:"", // AMDNAM .trnmod.trndoc.amdnam
advdoc:"", // 国内证通知书 .trnmod.trndoc.advdoc // advdoc:"", // 国内证通知书 .trnmod.trndoc.advdoc
advnam:"", // 国内证落款 .trnmod.trndoc.advnam // advnam:"", // 国内证落款 .trnmod.trndoc.advnam
amdapl:"", // 修改申请人名称 .trnmod.trndoc.amdapl // amdapl:"", // 修改申请人名称 .trnmod.trndoc.amdapl
doclbl:"", // Lable for CONDOCSTM .trnmod.trndoc.doclbl // doclbl:"", // Lable for CONDOCSTM .trnmod.trndoc.doclbl
doctrestm:"", // Document tree .trnmod.trndoc.doctrestm // doctrestm:"", // Document tree .trnmod.trndoc.doctrestm
shwinc:"", // Show Incoming Messages .trnmod.trndoc.shwinc // shwinc:"", // Show Incoming Messages .trnmod.trndoc.shwinc
shwout:"", // Show Outgoing Messages .trnmod.trndoc.shwout // shwout:"", // Show Outgoing Messages .trnmod.trndoc.shwout
condocstm:"", // Connected Documents .trnmod.trndoc.condocstm // condocstm:"", // Connected Documents .trnmod.trndoc.condocstm
rcvatt:{ // rcvatt:{
seainf:"", // .trnmod.trndoc.rcvatt.seainf // seainf:"", // .trnmod.trndoc.rcvatt.seainf
}, // },
filrecv:"", // File Receiver .trnmod.trndoc.filrecv // filrecv:"", // File Receiver .trnmod.trndoc.filrecv
}, // },
hvpmod:{ // hvpmod:{
agname2lab:"", // 中介机构2label .trnmod.hvpmod.agname2lab // agname2lab:"", // 中介机构2label .trnmod.hvpmod.agname2lab
agency2lab:"", // 中介机构2行号label .trnmod.hvpmod.agency2lab // agency2lab:"", // 中介机构2行号label .trnmod.hvpmod.agency2lab
remark1:"", // 备注 .trnmod.hvpmod.remark1 // remark1:"", // 备注 .trnmod.hvpmod.remark1
agnamedl:"", // 收款人开户行代理行名称(=中介机构1) .trnmod.hvpmod.agnamedl // agnamedl:"", // 收款人开户行代理行名称(=中介机构1) .trnmod.hvpmod.agnamedl
agencydl:"", // 收款人开户行代理行行号(=中介机构1) .trnmod.hvpmod.agencydl // agencydl:"", // 收款人开户行代理行行号(=中介机构1) .trnmod.hvpmod.agencydl
feecod:"", // �'� 用编码 .trnmod.hvpmod.feecod // feecod:"", // �'� 用编码 .trnmod.hvpmod.feecod
skrmc2:"", // 收款人名称2 .trnmod.hvpmod.skrmc2 // skrmc2:"", // 收款人名称2 .trnmod.hvpmod.skrmc2
skrmc3:"", // 收款人名称3 .trnmod.hvpmod.skrmc3 // skrmc3:"", // 收款人名称3 .trnmod.hvpmod.skrmc3
skrdz2:"", // 收款人地址2 .trnmod.hvpmod.skrdz2 // skrdz2:"", // 收款人地址2 .trnmod.hvpmod.skrdz2
skrdz3:"", // 收款人地址3 .trnmod.hvpmod.skrdz3 // skrdz3:"", // 收款人地址3 .trnmod.hvpmod.skrdz3
skrdz4:"", // 收款人地址4 .trnmod.hvpmod.skrdz4 // skrdz4:"", // 收款人地址4 .trnmod.hvpmod.skrdz4
skrdz5:"", // 收款人地址5 .trnmod.hvpmod.skrdz5 // skrdz5:"", // 收款人地址5 .trnmod.hvpmod.skrdz5
skrzh2:"", // 收款人�'�户2 .trnmod.hvpmod.skrzh2 // skrzh2:"", // 收款人�'�户2 .trnmod.hvpmod.skrzh2
fecomm:"", // 跨境业务附言 .trnmod.hvpmod.fecomm // fecomm:"", // 跨境业务附言 .trnmod.hvpmod.fecomm
oribusnum:"", // 端到端标识号 .trnmod.hvpmod.oribusnum // oribusnum:"", // 端到端标识号 .trnmod.hvpmod.oribusnum
fkrmc2:"", // 付款人名称2 .trnmod.hvpmod.fkrmc2 // fkrmc2:"", // 付款人名称2 .trnmod.hvpmod.fkrmc2
fkrmc3:"", // 付款人名称3 .trnmod.hvpmod.fkrmc3 // fkrmc3:"", // 付款人名称3 .trnmod.hvpmod.fkrmc3
fkrdz2:"", // 付款人地址2 .trnmod.hvpmod.fkrdz2 // fkrdz2:"", // 付款人地址2 .trnmod.hvpmod.fkrdz2
fkrdz3:"", // 付款人地址3 .trnmod.hvpmod.fkrdz3 // fkrdz3:"", // 付款人地址3 .trnmod.hvpmod.fkrdz3
fkrdz4:"", // 付款人地址4 .trnmod.hvpmod.fkrdz4 // fkrdz4:"", // 付款人地址4 .trnmod.hvpmod.fkrdz4
fkrdz5:"", // 付款人地址5 .trnmod.hvpmod.fkrdz5 // fkrdz5:"", // 付款人地址5 .trnmod.hvpmod.fkrdz5
fkrzh2:"", // 付款人�'�户2 .trnmod.hvpmod.fkrzh2 // fkrzh2:"", // 付款人�'�户2 .trnmod.hvpmod.fkrzh2
agname2:"", // 中介机构2名称 .trnmod.hvpmod.agname2 // agname2:"", // 中介机构2名称 .trnmod.hvpmod.agname2
agency2:"", // 中介机构2行号 .trnmod.hvpmod.agency2 // agency2:"", // 中介机构2行号 .trnmod.hvpmod.agency2
feecom:"", // 收报行的收 �'� .trnmod.hvpmod.feecom // feecom:"", // 收报行的收 �'� .trnmod.hvpmod.feecom
feesen:"", // 发报行的收 �'� .trnmod.hvpmod.feesen // feesen:"", // 发报行的收 �'� .trnmod.hvpmod.feesen
remark:"", // 备注 .trnmod.hvpmod.remark // remark:"", // 备注 .trnmod.hvpmod.remark
}, // },
}, // },
lendoc:{ lendoc:{
actflg:"", // Input Account .lendoc.actflg actflg:"", // Input Account .lendoc.actflg
account:"", // ACT .lendoc.account account:"", // ACT .lendoc.account
vercerref:"", // Verification Certificate Number .lendoc.vercerref vercerref:"", // Verification Certificate Number .lendoc.vercerref
decnum:"", // Declaration Number .lendoc.decnum decnum:"", // Declaration Number .lendoc.decnum
setsuml3blk:"" // .lendoc.setsuml3blk
}, },
bopmod:{ bopmod:{
szflg:"", // 申报类型 .bopmod.szflg szflg:"", // 申报类型 .bopmod.szflg
......
export default class Trnmod { export default class Trnmod {
constructor() { constructor() {
this.data = { this.data = {
hvpmod:{
agnamedl:"", //.hvpmod.agnamedl
},
reconebchnam:"", // 收款直接参与者名称 .trnmod.reconebchnam reconebchnam:"", // 收款直接参与者名称 .trnmod.reconebchnam
reconebch:"", // 收款直接参与者行号 .trnmod.reconebch reconebch:"", // 收款直接参与者行号 .trnmod.reconebch
commen:"", // 附言 .trnmod.commen commen:"", // 附言 .trnmod.commen
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
v-model="model.cpdgrp.cbs.nom1.cur" v-model="model.cpdgrp.cbs.nom1.cur"
style="width: 100%" style="width: 100%"
placeholder="请选择汇款金额" placeholder="请选择汇款金额"
@change="commonExecuteRule('cpdgrp.cbs.nom1.cur')"
> >
<el-option <el-option
v-for="item in codes.curtxt1" v-for="item in codes.curtxt1"
...@@ -66,7 +67,12 @@ ...@@ -66,7 +67,12 @@
v-model="model.cpdgrp.cbs.nom1.amt" v-model="model.cpdgrp.cbs.nom1.amt"
style="text-align: left; width: 100%" style="text-align: left; width: 100%"
placeholder="请输入汇款金额" placeholder="请输入汇款金额"
@change="commonExecuteNotify()" @keyup.enter.native="
defaultFunction(
'cpdgrp.cbs.nom1.amt',
model.cpdgrp.cbs.nom1.amt
)
"
></c-input-currency> ></c-input-currency>
</el-form-item> </el-form-item>
</c-col> </c-col>
...@@ -517,7 +523,9 @@ ...@@ -517,7 +523,9 @@
v-model="model.attp.sndbchnam" v-model="model.attp.sndbchnam"
maxlength="42" maxlength="42"
placeholder="请输入发报行名称" placeholder="请输入发报行名称"
@keyup.enter.native="showGridPromptDialog('attp.sndbchnam')" @keyup.enter.native="
showGridPromptDialog('attp.sndbchnam')
"
></c-input> ></c-input>
</el-form-item> </el-form-item>
</c-col> </c-col>
...@@ -994,16 +1002,14 @@ export default { ...@@ -994,16 +1002,14 @@ export default {
], ],
}; };
}, },
methods: { ...Event },
watch:{
},
methods: { ...Event, methods: { ...Event,
commonExecuteNotify(){
this.executeNotify().then((res) => {
if ((res.respCode == SUCCESS)) {
Utils.copyValueFromVO(this.model, res.data);
}
});
},
}, },
created: function () {}, created: function () {},
computed: { computed: {
flag() { flag() {
return this.model.cpdgrp.orc.pts.extkey == ""; return this.model.cpdgrp.orc.pts.extkey == "";
......
...@@ -117,6 +117,14 @@ ...@@ -117,6 +117,14 @@
v-on:select-ety="selectEty" v-on:select-ety="selectEty"
> >
</c-grid-ety-prompt-dialog> </c-grid-ety-prompt-dialog>
<c-grid-ety-prompt-dialog
ref="doxpDialog"
:isPty="false"
:promptData="promptData"
@select-ety="selectMsg"
>   
</c-grid-ety-prompt-dialog>
</div> </div>
</c-page> </c-page>
</template> </template>
...@@ -190,7 +198,7 @@ export default { ...@@ -190,7 +198,7 @@ export default {
this.updateModel(rtnmsg.data); this.updateModel(rtnmsg.data);
//TODO 处理数据逻辑 //TODO 处理数据逻辑
if(this.isInDisplay){ if(this.isInDisplay){
this.restoreDisplay this.restoreDisplay();
} }
} else { } else {
this.$notify.error({ title: "错误", message: "服务请求失败!" }); this.$notify.error({ title: "错误", message: "服务请求失败!" });
......
...@@ -35,13 +35,14 @@ ...@@ -35,13 +35,14 @@
style="text-align: left; width: 100%" style="text-align: left; width: 100%"
placeholder="请输入汇款金额" placeholder="请输入汇款金额"
disabled disabled
@keyup.enter.native="
></c-input-currency>
<!-- @keyup.enter.native="
defaultFunction( defaultFunction(
'cpdgrp.cbs.nom1.amt', 'cpdgrp.cbs.nom1.amt',
model.cpdgrp.cbs.nom1.amt model.cpdgrp.cbs.nom1.amt
) )
" " -->
></c-input-currency>
</el-form-item> </el-form-item>
</c-col> </c-col>
</c-col> </c-col>
...@@ -57,11 +58,12 @@ ...@@ -57,11 +58,12 @@
<el-form-item <el-form-item
style="text-align: left" style="text-align: left"
label-width="5px" label-width="5px"
prop="cpdgrp.cbs.nom1.amt" prop="cpdgrp.cbs.max.amt"
> >
<c-input-currency <c-input-currency
v-model="model.cpdgrp.cbs.max.amt" v-model="model.cpdgrp.cbs.max.amt"
style="text-align: left; width: 100%" style="text-align: left; width: 100%"
placeholder="请输入汇款金额"
disabled disabled
@keyup.enter.native=" @keyup.enter.native="
defaultFunction( defaultFunction(
...@@ -86,8 +88,19 @@ ...@@ -86,8 +88,19 @@
</c-col> </c-col>
<c-col :span="24"> <c-col :span="24">
<el-form-item label="Payment Type" prop="cpdgrp.rec.paytyp"> <el-form-item label="Payment Type" prop="cpdgrp.rec.paytyp" >
<c-input v-model="model.cpdgrp.rec.paytyp" disabled></c-input> <c-select
v-model="model.cpdgrp.rec.paytyp"
style="width:100%"
disabled
>
<el-option
v-for="item in paytyp"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</c-select>
</el-form-item> </el-form-item>
</c-col> </c-col>
</c-col> </c-col>
...@@ -254,7 +267,13 @@ export default { ...@@ -254,7 +267,13 @@ export default {
props: ["model", "codes"], props: ["model", "codes"],
mixins: [commonProcess], mixins: [commonProcess],
data() { data() {
return {}; return {
paytyp:[
{label:"Incoming Payment",value:"I"},
{label:"Outgoing Payment",value:"O"},
{label:"Transit Payment",value:"T"},
]
};
}, },
methods: { ...Event }, methods: { ...Event },
created: function () {}, created: function () {},
......
...@@ -19,23 +19,33 @@ ...@@ -19,23 +19,33 @@
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="myTabClick"> <c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="myTabClick">
<!--cptcan PD000016 Cancelation --> <!--cptcan PD000016 Cancelation -->
<el-tab-pane label="Cancelation" name="canp"> <el-tab-pane label="Cancelation" name="canp">
<c-content>
<m-canp :model="model" :codes="codes"/> <m-canp :model="model" :codes="codes"/>
</c-content>
</el-tab-pane> </el-tab-pane>
<!--setmod PD000000 Settlement 账务--> <!--setmod PD000000 Settlement 账务-->
<el-tab-pane label="Settlement" name="setpan"> <el-tab-pane label="Settlement" name="setpan">
<c-content>
<m-setpan :model="model" :codes="codes"/> <m-setpan :model="model" :codes="codes"/>
</c-content>
</el-tab-pane> </el-tab-pane>
<!--coninf PD000000 Completion 附言--> <!--coninf PD000000 Completion 附言-->
<el-tab-pane label="Completion" name="coninfp"> <el-tab-pane label="Completion" name="coninfp">
<c-content>
<m-coninfp :model="model" :codes="codes"/> <m-coninfp :model="model" :codes="codes"/>
</c-content>
</el-tab-pane> </el-tab-pane>
<!--trndoc PD000529 &Messages 报文面函--> <!--trndoc PD000529 &Messages 报文面函-->
<el-tab-pane label="Messages" name="docpan"> <el-tab-pane label="Messages" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes"/> <m-docpan :model="model" :codes="codes"/>
</c-content>
</el-tab-pane> </el-tab-pane>
<!--trndoc PD000546 Attachments 附件--> <!--trndoc PD000546 Attachments 附件-->
<el-tab-pane label="Attachments" name="doctre"> <el-tab-pane label="Attachments" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes"/> <m-doctre :model="model" :codes="codes"/>
</c-content>
</el-tab-pane> </el-tab-pane>
</c-tabs> </c-tabs>
</el-form> </el-form>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment