DS7Zhanhao
hanxuntao 2 years ago
parent 8c0d5375a5
commit 6cedf7dd31

@ -360,7 +360,7 @@ namespace DSWeb.Areas.Account.Controllers
if (!string.IsNullOrEmpty(headData.SALECORPID)&& !string.IsNullOrEmpty(headData.ACCOUNT)) { if (!string.IsNullOrEmpty(headData.SALECORPID)&& !string.IsNullOrEmpty(headData.ACCOUNT)) {
var banklist = MsBaseInfoDAL.GetAllBANKList("LINKID='"+ headData.SALECORPID + "'"); var banklist = MsBaseInfoDAL.GetAllBANKList("LINKID='"+ headData.SALECORPID + "'");
if (banklist.Find(x => x.CURRENCY == headData.CURRENCY && x.BANKACCOUNT == headData.ACCOUNT) == null) { if (banklist.Find(x => (x.CURRENCY == headData.CURRENCY ||x.CURRENCY=="")&& x.BANKACCOUNT == headData.ACCOUNT) == null) {
isPost = false; isPost = false;
errorstr = "银行及账号于收款单位和币别不一致,请检查"; errorstr = "银行及账号于收款单位和币别不一致,请检查";

@ -1591,6 +1591,36 @@ namespace DSWeb.MvcShipping.Controllers
} }
public ContentResult CreateAgentFcFee(string bsno, string feebody, string fcbl)
{
if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "")
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
var bodyList = JsonConvert.Deserialize<List<MsChFee>>(feebody);
var result = new DBResult();
if (bodyList == null || bodyList.Count == 0)
{
var jsonRespose2 = new JsonResponse { Success = false, Message = "没有要生成的费用明细!" };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) };
}
result = MsChFeeDAL.CreateAgentFcFee(bsno, bodyList, fcbl,Convert.ToString(Session["COMPANYID"]).ToString().Trim(), Convert.ToString(Session["USERID"]).ToString().Trim());
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
// Data = MsChFeeDAL.GetDataList(headData.BillNo, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request))
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#region #region
[HttpPost] [HttpPost]

@ -6014,9 +6014,22 @@ namespace DSWeb.MvcShipping.Controllers
// //
if (error == "") if (error == "")
{ {
if (ftpset.SERVERIP != "" && ftpset.SERVERIP != null) if (filetype == "E" && (ftpset.SERVERIP2 != "" && ftpset.FOLDERNAME2 != ""))
{ {
result = MsOpSeaeEdiPortDAL.FtpFile2(filename, ftpset);
}
else if (ftpset.SERVERIP != "" && ftpset.FOLDERNAME != "")
{
result = MsOpSeaeEdiPortDAL.FtpFile(filename, ftpset); result = MsOpSeaeEdiPortDAL.FtpFile(filename, ftpset);
}
else
{
result.Success = false;
result.Message = "FTP参数没有设置,请先设置FTP参数!";
}
if (result.Success)
{
var afilename = Path.GetFileName(filename); var afilename = Path.GetFileName(filename);
MsOpSeaeEdiPortDAL.InsertEdiLog(ediheadlist[0].BSNO, strEDINAME, filetype, carrier, ftpset.SERVERIP, afilename, "../../EDIFiles/SeaeEdi/" + afilename, Convert.ToString(Session["SHOWNAME"])); MsOpSeaeEdiPortDAL.InsertEdiLog(ediheadlist[0].BSNO, strEDINAME, filetype, carrier, ftpset.SERVERIP, afilename, "../../EDIFiles/SeaeEdi/" + afilename, Convert.ToString(Session["SHOWNAME"]));
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
@ -6067,11 +6080,7 @@ namespace DSWeb.MvcShipping.Controllers
} }
} }
else
{
result.Success = false;
result.Message = "FTP参数没有设置,请先设置FTP参数!";
}
} }
} }
@ -6258,7 +6267,23 @@ namespace DSWeb.MvcShipping.Controllers
//} //}
} }
// //
if (ftpset.SERVERIP != "" && ftpset.SERVERIP != null) if (filetype == "E" && (ftpset.SERVERIP2 != "" && ftpset.FOLDERNAME2 != ""))
{
result = MsOpSeaeEdiPortDAL.FtpFile2(filename, ftpset);
}
else if (ftpset.SERVERIP != "" && ftpset.FOLDERNAME != "")
{
result = MsOpSeaeEdiPortDAL.FtpFile(filename, ftpset);
}
else
{
result.Success = false;
result.Message = "FTP参数没有设置,请先设置FTP参数!";
}
if (result.Success)
{ {
result = MsOpSeaeEdiPortDAL.FtpFile(filename, ftpset); result = MsOpSeaeEdiPortDAL.FtpFile(filename, ftpset);
var afilename = Path.GetFileName(filename); var afilename = Path.GetFileName(filename);
@ -6311,11 +6336,7 @@ namespace DSWeb.MvcShipping.Controllers
} }
} }
else
{
result.Success = false;
result.Message = "FTP参数没有设置,请先设置FTP参数!";
}
} }
else else
{ {

@ -2639,6 +2639,20 @@ namespace DSWeb.MvcShipping.DAL.MsChFeeDAL
strSql.Append(" where ASSOCIATEDNO='" + bsno + "'"); strSql.Append(" where ASSOCIATEDNO='" + bsno + "'");
return SetWMSINUnitData(strSql); return SetWMSINUnitData(strSql);
} }
else if (bstype == "op_suborder")
{
strSql.Append("SELECT PKGS,KGS,CBM,0 AS NETWEIGHT,");
strSql.Append("'' as SIZE,'' AS CTN,0 AS CTNNUM,0 AS TEU,'' AS CTNALL");
strSql.Append(" from op_sub_seaorder ");
strSql.Append(" where ORDNO='" + bsno + "'");
strSql.Append(" union ");
strSql.Append("SELECT 0 AS PKGS,0 AS KGS,0 AS CBM,0 AS NETWEIGHT,");
strSql.Append("'' as SIZE,'' as CTN,COUNT(1) AS CTNNUM,0 AS TEU,P.CTNALL");
strSql.Append(" from op_seaorder_ctn P ");
strSql.Append(" where p.BSNO IN (SELECT BSNO FROM op_sub_seaorder WHERE ORDNO='" + bsno + "')");
strSql.Append(" GROUP BY P.CTNALL order by PKGS desc ");
return SetSeaeCtnUnitData(strSql, bstype);
}
else return SetCtnUnitData(strSql); else return SetCtnUnitData(strSql);
} }
@ -6554,8 +6568,84 @@ namespace DSWeb.MvcShipping.DAL.MsChFeeDAL
#endregion #endregion
#region 代理分成费用生成
public static DBResult CreateAgentFcFee(string bsno, List<MsChFee> bodyList,string fcbl, string companyid, string userid)
{
var result = new DBResult();
var AGENTFCFEENAME = MsSysParamSetDAL.GetData("PARAMNAME='AGENTFCFEENAME'");
T_ALL_DA T_ALL_DA = new T_ALL_DA();
var AGENTID = T_ALL_DA.GetStrSQL("AGENTID", "select AGENTID from v_op_bs WHERE BSNO='"+bsno+"' ");
var feenamestr = "";
foreach (var fee in bodyList)
{
if (string.IsNullOrEmpty(feenamestr))
{
feenamestr = "'" + fee.FeeName + "'";
}
else {
feenamestr = feenamestr+",'" + fee.FeeName + "'";
}
}
feenamestr = "(" + feenamestr + ")";
var feealllist = GetAllDataList("BSNO='"+bsno+"' and FeeName in "+ feenamestr);
var Feelist = new List<MsChFee>();
foreach (var fee in feealllist)
{
var DjyInv = Feelist.Find(X => X.Currency ==fee.Currency);
if (DjyInv == null)
{
var newfee = new MsChFee();
newfee.Currency = fee.Currency;
newfee.ExChangerate = fee.ExChangerate;
if (fee.FeeType == 1)
newfee.Amount = fee.Amount;
else newfee.Amount = -fee.Amount;
Feelist.Add(newfee);
}
else {
if (fee.FeeType == 1)
DjyInv.Amount = DjyInv.Amount+fee.Amount;
else DjyInv.Amount = DjyInv.Amount- fee.Amount;
}
}
foreach (var fee in Feelist)
{
Decimal fcamount = Math.Round(fee.Amount * Convert.ToDecimal(fcbl) / 100,2, MidpointRounding.AwayFromZero);
fee.BsNo = "*";
fee.FeeType = 2;
fee.FeeName = AGENTFCFEENAME.PARAMVALUE;
fee.FeeDescription ="";
fee.CustomerType ="代理";
fee.CustomerName = AGENTID;
fee.Quantity = 1;
fee.UnitPrice = fcamount;
fee.TaxUnitPrice = fcamount;
fee.Unit = "票";
fee.TaxRate = 0;
fee.AccTaxRate = 0;
fee.ExChangerate = fee.ExChangerate;
fee.Remark ="";
fee.Reason ="";
fee.FeeStatus = 1;
fee.Amount = fcamount;
fee.NoTaxAmount = fcamount;
fee.EnteroPerator = userid;
fee.EnterDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
result=MsChFeeDAL.SaveFee(Feelist, bsno,userid);
return result;
}
#endregion
/// <summary> /// <summary>
/// 获取一个新的费用对象 /// 获取一个新的费用对象
/// </summary> /// </summary>

@ -52,8 +52,12 @@ namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
} }
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID) as COMPANY "); strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT "); strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT ");
strSql.Append(",dbo.F_GetBillDrFeeStatus(B.ORDNO) DRFEESTATUS");
strSql.Append(",dbo.F_GetBillCrFeeStatus(B.ORDNO) CRFEESTATUS");
strSql.Append(" from op_sub_seaorder B"); strSql.Append(" from op_sub_seaorder B");
if (!string.IsNullOrEmpty(strCondition)) if (!string.IsNullOrEmpty(strCondition))
{ {
strSql.Append(" where " + strCondition); strSql.Append(" where " + strCondition);
@ -103,8 +107,12 @@ namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
} }
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID) as COMPANY "); strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT "); strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT ");
strSql.Append(",dbo.F_GetBillDrFeeStatus(B.ORDNO) DRFEESTATUS");
strSql.Append(",dbo.F_GetBillCrFeeStatus(B.ORDNO) CRFEESTATUS");
strSql.Append(" from op_sub_seaorder B"); strSql.Append(" from op_sub_seaorder B");
strSql.Append(" LEFT JOIN v_op_gain_dr_INV I ON (I.BSNO=B.ORDNO) ");
if (!string.IsNullOrEmpty(strCondition)) if (!string.IsNullOrEmpty(strCondition))
{ {
strSql.Append(" where " + strCondition); strSql.Append(" where " + strCondition);
@ -133,6 +141,7 @@ namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
strSql.Append(",REMARK,AUDITOPERATOR,AUDITDATE,DPAGE,DLABEL,LINKMAN,BILLTYPE,COMPANYID,AGENTID,SPCHARGE"); strSql.Append(",REMARK,AUDITOPERATOR,AUDITDATE,DPAGE,DLABEL,LINKMAN,BILLTYPE,COMPANYID,AGENTID,SPCHARGE");
strSql.Append(",SHIPPERCODE,SHIPPERCOUNTRY,SHIPPERTEL,CONSIGNEECODE,CONSIGNEECOUNTRY,CONSIGNEETEL,NOTIFYPARTYCODE,NOTIFYPARTYCOUNTRY,NOTIFYPARTYTEL"); strSql.Append(",SHIPPERCODE,SHIPPERCOUNTRY,SHIPPERTEL,CONSIGNEECODE,CONSIGNEECOUNTRY,CONSIGNEETEL,NOTIFYPARTYCODE,NOTIFYPARTYCOUNTRY,NOTIFYPARTYTEL");
if (ortype == 1) if (ortype == 1)
{ {
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN 'RECEIVE' WHEN '1' THEN 'POSTED' WHEN '2' THEN 'REJECTED' else 'ENTRY' end) as ORSTATUSREF "); strSql.Append(",(CASE ORSTATUS WHEN '0' THEN 'RECEIVE' WHEN '1' THEN 'POSTED' WHEN '2' THEN 'REJECTED' else 'ENTRY' end) as ORSTATUSREF ");
@ -144,8 +153,12 @@ namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
} }
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID ) as COMPANY "); strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID ) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID ) as AGENT "); strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID ) as AGENT ");
strSql.Append(",dbo.F_GetBillDrFeeStatus(B.ORDNO) DRFEESTATUS");
strSql.Append(",dbo.F_GetBillCrFeeStatus(B.ORDNO) CRFEESTATUS");
strSql.Append(" from op_sub_seaorder B"); strSql.Append(" from op_sub_seaorder B");
if (!string.IsNullOrEmpty(condition)) if (!string.IsNullOrEmpty(condition))
{ {
strSql.Append(" where " + condition); strSql.Append(" where " + condition);
@ -245,6 +258,9 @@ namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
data.NOTIFYPARTYCOUNTRY = Convert.ToString(reader["NOTIFYPARTYCOUNTRY"]);//卸货代理 data.NOTIFYPARTYCOUNTRY = Convert.ToString(reader["NOTIFYPARTYCOUNTRY"]);//卸货代理
data.NOTIFYPARTYTEL = Convert.ToString(reader["NOTIFYPARTYTEL"]);//卸货代理 data.NOTIFYPARTYTEL = Convert.ToString(reader["NOTIFYPARTYTEL"]);//卸货代理
data.DRFEESTATUS = getfeestatus(Convert.ToString(reader["DRFEESTATUS"]));
data.CRFEESTATUS = getfeestatus(Convert.ToString(reader["CRFEESTATUS"]));
if (reader["SPCHARGE"] != DBNull.Value) if (reader["SPCHARGE"] != DBNull.Value)
data.SPCHARGE = Convert.ToBoolean(reader["SPCHARGE"]); data.SPCHARGE = Convert.ToBoolean(reader["SPCHARGE"]);
@ -255,8 +271,81 @@ namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
} }
return headList; return headList;
} }
public static string getfeestatus(string feestatusint)
{
var result = "";
if (feestatusint == "0:")
{
return "审核通过";
}
else if (feestatusint == "1:")
{
return "录入状态";
}
else if (feestatusint == "2:")
{
return "提交审核";
}
else if (feestatusint == "8:")
{
return "部分结算";
}
else if (feestatusint == "9:")
{
return "结算完毕";
}
else if (feestatusint == "")
{
return "未录入";
}
else if (feestatusint == "3:")
{
return "申请修改";
}
else if (feestatusint == "4:")
{
return "申请删除";
}
else if (feestatusint.IndexOf("6:") > -1)
{
return "驳回提交";
}
else if (feestatusint.IndexOf("7:") > -1)
{
return "驳回申请";
}
else if (feestatusint.IndexOf("1:") > -1)
{
return "部分录入";
}
else if (feestatusint.IndexOf("2:") > -1)
{
return "部分提交";
}
else if (feestatusint.IndexOf("9:") > -1)
{
return "部分结算";
}
else if (feestatusint.IndexOf("8:") > -1)
{
return "部分结算";
}
else if (feestatusint.IndexOf("0:") > -1)
{
return "部分审核";
}
else if (feestatusint.IndexOf("2:") > -1)
{
return "部分提交";
}
return result;
}
#endregion #endregion
#region 集装箱 #region 集装箱
static public List<MsOpSubSeaOrderCtn> GetBodyList(string strCondition) static public List<MsOpSubSeaOrderCtn> GetBodyList(string strCondition)
{ {
@ -1993,6 +2082,10 @@ namespace DSWeb.MvcShipping.DAL.MsOpSubSeaOrderDAL
strSql.Append(",(CASE ORSTATUS WHEN '0' THEN '引入' WHEN '1' THEN '提交' WHEN '2' THEN '驳回' else '录入' end) as ORSTATUSREF "); strSql.Append(",(CASE ORSTATUS WHEN '0' THEN '引入' WHEN '1' THEN '提交' WHEN '2' THEN '驳回' else '录入' end) as ORSTATUSREF ");
strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID ) as COMPANY "); strSql.Append(",(SELECT [NAME] from company where GID=B.COMPANYID ) as COMPANY ");
strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT "); strSql.Append(",(SELECT [NAME] from company where GID=B.AGENTID) as AGENT ");
strSql.Append(",'' DRFEESTATUS");
strSql.Append(",'' CRFEESTATUS");
strSql.Append(" from op_sub_seaorder B"); strSql.Append(" from op_sub_seaorder B");
if (!string.IsNullOrEmpty(strCondition)) if (!string.IsNullOrEmpty(strCondition))
{ {

@ -829,7 +829,17 @@ namespace DSWeb.MvcShipping.Models.MsOpSubSeaOrder
} }
#endregion public string DRFEESTATUS { get; set; }
public string CRFEESTATUS { get; set; }
private string _DRINVSTATUS = "";
public string DRINVSTATUS { get; set; }
public string DRDUISTATUS { set; get; }
public string CRINVSTATUS { get; set; }
public string CRDUISTATUS { set; get; }
#endregion
public MsOpSubSeaOrder() public MsOpSubSeaOrder()
{ {

@ -1513,6 +1513,11 @@ Ext.extend(Shipping.FeeEditGrid, Ext.Panel, {
handler: function (menu, event) { handler: function (menu, event) {
_thisfee.onSubmitDjyClick(menu, event, 1); _thisfee.onSubmitDjyClick(menu, event, 1);
} }
}, {
text: Zi.LAN.FEE.btnAgentFc, //"提交审核",
handler: function (menu, event) {
_thisfee.onAgentFcClick(menu, event, 1);
}
} }
], ],
scope: this scope: this
@ -5820,7 +5825,6 @@ Ext.extend(Shipping.FeeEditGrid, Ext.Panel, {
//Ext.Ajax.request({ //Ext.Ajax.request({
// waitMsg: '', // waitMsg: '',
// url: '/MvcShipping/MsSysParamSet/GetData', // url: '/MvcShipping/MsSysParamSet/GetData',
@ -11650,6 +11654,186 @@ Ext.extend(Shipping.FeeEditGrid, Ext.Panel, {
}, },
onAgentFcClick: function (button, event, type) {
var GidStr = '';
var store = null;
if (type == 1) {
store = this.storeDrChFee;
} else if (type == 2) {
store = this.storeCrChFee;
} else {
alert(Zi.LAN.FEE.HanShuCanShuSheZhiBuDui);
return;
}
if (type == '1') {
var records = this.feeDrGridCheckBoxModel.selected.items;
} else if (type == '2') {
var records = this.feeCrGridCheckBoxModel.selected.items;
};
if (records.length == 0) {
Ext.Msg.show({ title: Zi.LAN.FEE.TiShi, msg: Zi.LAN.FEE.QingXianXuanZeFeiYong, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });//请先选择要提交审核的费用!
return;
}
this.formAgentFcFee = Ext.widget('form', {
frame: true,
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [{
labelWidth: 70,
fieldLabel: Zi.LAN.Fcbl, //'总尺码',
name: 'FENCHENGBILI'
}, {
xtype: 'label',
width: 50,
text: '%', //'CBM'
}
]
}
]//end items(fieldset 1)
}//end fieldset 1
]//end root items
});
this.winAgentFcFee = Ext.create('Ext.window.Window', {
title: '代理分成费用生成', //"生成分部委托",
width: 350,
//height : 120,
//plain : true,
iconCls: "addicon",
resizable: false,
// 是否可以拖动
// draggable:false,
collapsible: true, // 允许缩放条
closeAction: 'close',
closable: true,
modal: 'true',
buttonAlign: "center",
bodyStyle: "padding:0 0 0 0",
items: [this.formAgentFcFee],
buttons: [{
text: Zi.LAN.QueRenShengCheng, //"确认生成",
minWidth: 70,
handler: function () {
var form = _thisfee.formAgentFcFee.getForm();
var FENCHENGBILI = form.findField('FENCHENGBILI').getValue();
if (FENCHENGBILI == '' || FENCHENGBILI == null || FENCHENGBILI == undefined) {
Ext.Msg.show({ title: Zi.LAN.TiShi, msg: '分成比例不能为空!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });//'委托分公司为必填!'
return;
};
_thisfee.onAgentFcClickFn(FENCHENGBILI);
}
}, {
text: Zi.LAN.GuanBi, //"关闭",
minWidth: 70,
handler: function () {
_thisfee.winAgentFcFee.close();
}
}]
});
_thisfee.winAgentFcFee.show();
},
onAgentFcClickFn: function (FENCHENGBILI) {
var GidStr = '';
var records = this.feeDrGridCheckBoxModel.selected.items;
if (records.length == 0) {
Ext.Msg.show({ title: Zi.LAN.FEE.TiShi, msg: Zi.LAN.FEE.QingXianXuanZeFeiYong, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });//请先选择要提交审核的费用!
return;
}
var insert;
var bodyDrChFeeDatas = [];
for (var i = 0; i < records.length; i++) {
var rec = records[i];
var feeStatus = rec.data.FeeStatus;
var Gid = rec.data.GId;
bodyDrChFeeDatas.push(rec);
GidStr = GidStr + Gid;
}
var jsonChFeeBody = ConvertRecordsToJsonAll(bodyDrChFeeDatas);
_thisfee = this;
if (GidStr == '') {
} else {
var urlStr = '/MvcShipping/MsChFee/CreateAgentFcFee';
Ext.Ajax.request({
waitMsg: Zi.LAN.FEE.ZhengZaiCaoZuoShuJu, //'正在添加数据...',
url: urlStr,
params: {
feebody: jsonChFeeBody,
bsno: _thisfee.strBSNO,
fcbl: FENCHENGBILI
},
callback: function (options, success, response) {
if (success) {
var result = Ext.JSON.decode(response.responseText);
if (!result.Success) {
Ext.Msg.show({
title: Zi.LAN.FEE.TiShi,
msg: result.Message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
return;
} else {
_thisfee.LoadCrChFee();
_thisfee.winAgentFcFee.close();
}
} else {
Ext.MessageBox.alert(Zi.LAN.FEE.FuWuQiXiangYingChuCuo, response.responseText);
}
},
scope: this
});
}
},
onCancelSubmitAuditBillClick: function () { onCancelSubmitAuditBillClick: function () {
var bsno = _thisfee.strBSNO; var bsno = _thisfee.strBSNO;

@ -251,6 +251,7 @@ Zi.LAN.FEE.ShenCFCust = '费用拆分';
Zi.LAN.FEE.QueDingChaiFen = '确定拆分'; Zi.LAN.FEE.QueDingChaiFen = '确定拆分';
Zi.LAN.FEE.DangQianFeiYongYiShengChenFaPiaoZizhuWuFaShenQingXiuGai = '当前费用已生成发票自助,不允许修改'; Zi.LAN.FEE.DangQianFeiYongYiShengChenFaPiaoZizhuWuFaShenQingXiuGai = '当前费用已生成发票自助,不允许修改';
Zi.LAN.FEE.AutoInv = "自助开票"; Zi.LAN.FEE.AutoInv = "自助开票";
Zi.LAN.FEE.btnAgentFc = "代理分成";
//#endregion //#endregion
//Zi.LAN.FEE. = ""; //Zi.LAN.FEE. = "";

@ -256,6 +256,7 @@ Zi.LAN.FEE.QueDingChaiFen = '确定拆分';
Zi.LAN.FEE.NewSALECORPShow = '批量修改核算单位'; Zi.LAN.FEE.NewSALECORPShow = '批量修改核算单位';
Zi.LAN.FEE.DangQianFeiYongYiShengChenFaPiaoZizhuWuFaShenQingXiuGai = '当前费用已生成发票自助,不允许修改'; Zi.LAN.FEE.DangQianFeiYongYiShengChenFaPiaoZizhuWuFaShenQingXiuGai = '当前费用已生成发票自助,不允许修改';
Zi.LAN.FEE.AutoInv = "上传账单"; Zi.LAN.FEE.AutoInv = "上传账单";
Zi.LAN.FEE.btnAgentFc = "代理分成";
//#endregion //#endregion
//Zi.LAN.FEE. = ""; //Zi.LAN.FEE. = "";

@ -27,6 +27,7 @@ Ext.extend(Shipping.MsOpAireBillEdit, Ext.Panel, {
this.BsNo = this.MainEditRecord.get('BSNO'); this.BsNo = this.MainEditRecord.get('BSNO');
} }
this.formname = "MsOpAireBillEdit"; //页面名称
_this = this; _this = this;
//#region 信息加载 //#region 信息加载
@ -1451,7 +1452,23 @@ Ext.extend(Shipping.MsOpAireBillEdit, Ext.Panel, {
} }
], ],
scope: this scope: this
}] }, '-', {
text: "保存列表样式",
id: "btntest",
menu: [
{
text: "保存",
handler: function (button, event) {
this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.girdcolums, 1, true);
}
}, {
text: "初始化",
handler: function (menu, event) {
_this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.initgirdcolums, 1, true);
}
}],
scope: this
}]
}); //end 按钮Toolbar }); //end 按钮Toolbar
//#endregion //#endregion
@ -1536,8 +1553,8 @@ Ext.extend(Shipping.MsOpAireBillEdit, Ext.Panel, {
this.gridList = new Ext.grid.GridPanel({ this.gridList = new Ext.grid.GridPanel({
store: this.storeList, store: this.storeList,
enableHdMenu: false, enableHdMenu: false,
region: 'west', region: 'center',
width: 160, //width: 160,
loadMask: { msg: "数据加载中,请稍等..." }, loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true, trackMouseOver: true,
disableSelection: false, disableSelection: false,
@ -1553,9 +1570,9 @@ Ext.extend(Shipping.MsOpAireBillEdit, Ext.Panel, {
}); });
// /////////////以下部分为获取存储的gridpanel显示样式 // /////////////以下部分为获取存储的gridpanel显示样式
// this.column = DsTruck.GetGridPanel(USERID, this.formname, this.girdcolums, 1); //使用者id表名中间column数组跳过一开始的几列 this.girdcolums = DsTruck.GetGridPanel(USERID, this.formname, this.girdcolums, 1); //使用者id表名中间column数组跳过一开始的几列
this.girdcolums.unshift(new Ext.grid.RowNumberer());
this.gridList.reconfigure(this.storeList, this.girdcolums); this.gridList.reconfigure(this.storeList, this.girdcolums);
this.gridList.columns[0] = new Ext.grid.RowNumberer();
//////////////////////////////////////////////// ////////////////////////////////////////////////
this.gridList.addListener('itemclick', function (dataview, record, item, index, e, b) { this.gridList.addListener('itemclick', function (dataview, record, item, index, e, b) {
@ -1564,7 +1581,10 @@ Ext.extend(Shipping.MsOpAireBillEdit, Ext.Panel, {
_this.LoadData("edit", "AS_ID='" + record.data.AS_ID + "'"); _this.LoadData("edit", "AS_ID='" + record.data.AS_ID + "'");
}, this); }, this);
this.storeList.on('beforeload', function (store) {
var sql = "BSNO='" + this.BsNo + "'";
Ext.apply(store.proxy.extraParams, { condition: sql });
}, this);
//#region 框架结构 //#region 框架结构
@ -1580,11 +1600,24 @@ Ext.extend(Shipping.MsOpAireBillEdit, Ext.Panel, {
frame: false, frame: false,
items: [this.formEdit] items: [this.formEdit]
}); });
this.panellist = new Ext.Panel({
// title: '提单信息',
layout: "border",
region: 'center',
animate: true,
autoScroll: true,
split: true,
region: 'west',
width: 192,
// containerScroll: true,
frame: false,
items: [this.gridList]
});
Ext.apply(this, { Ext.apply(this, {
items: [this.panelBtn, this.gridList, this.panelpage] items: [this.panelBtn, this.panellist, this.panelpage]
}); });
//#endregion //#endregion

@ -13634,14 +13634,14 @@ Ext.extend(Shipping.MsOpSeaeEdit, Ext.Panel, {
var TEMPMIN = this.formEdit.getForm().findField('TEMPMIN').getValue(); var TEMPMIN = this.formEdit.getForm().findField('TEMPMIN').getValue();
var HUMIDITY = this.formEdit.getForm().findField('HUMIDITY').getValue(); var HUMIDITY = this.formEdit.getForm().findField('HUMIDITY').getValue();
if (TEMPSET != '' || REEFERF != '' || TEMPMAX != '' || TEMPMIN != '' || HUMIDITY!='') { //if (TEMPSET != '' || REEFERF != '' || TEMPMAX != '' || TEMPMIN != '' || HUMIDITY!='') {
Ext.Msg.show({ title: Zi.LAN.JingGao, msg: '此业务为普通货业务,冻柜货物信息有值,请先清空!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); // Ext.Msg.show({ title: Zi.LAN.JingGao, msg: '此业务为普通货业务,冻柜货物信息有值,请先清空!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK });
return; // return;
} //}
if (DCLASS != '' || DUNNO != '' || DPAGE != '' || DLABEL != '' || LINKMAN != '') { //if (DCLASS != '' || DUNNO != '' || DPAGE != '' || DLABEL != '' || LINKMAN != '') {
Ext.Msg.show({ title: Zi.LAN.JingGao, msg: '此业务为普通货业务,危险品货物信息有值,请先清空!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK }); // Ext.Msg.show({ title: Zi.LAN.JingGao, msg: '此业务为普通货业务,危险品货物信息有值,请先清空!', icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK });
return; // return;
} //}
} }

@ -676,4 +676,5 @@ Zi.LAN.DGYARD = "大港场站";
Zi.LAN.plbs = "集团内业务处理"; Zi.LAN.plbs = "集团内业务处理";
Zi.LAN.plfee = "费用批量处理"; Zi.LAN.plfee = "费用批量处理";
Zi.LAN.plbsedi = "业务批量处理"; Zi.LAN.plbsedi = "业务批量处理";
Zi.LAN.SubCorpFee = "分部费用生成"; Zi.LAN.SubCorpFee = "分部费用生成";
Zi.LAN.Fcbl = "分成比例";

@ -704,6 +704,7 @@ Zi.LAN.plbs = "集团内业务处理";
Zi.LAN.plfee = "费用批量处理"; Zi.LAN.plfee = "费用批量处理";
Zi.LAN.plbsedi = "业务批量处理"; Zi.LAN.plbsedi = "业务批量处理";
Zi.LAN.SubCorpFee = "分部费用生成"; Zi.LAN.SubCorpFee = "分部费用生成";
Zi.LAN.Fcbl = "分成比例";
//Zi.LAN. = ""; //Zi.LAN. = "";

@ -40,6 +40,8 @@ Ext.extend(Shipping.MsOpSubSeaeImportAIndex, Ext.Panel, {
} }
}); });
_this = this;
//#region List列表显示信息 //#region List列表显示信息
Ext.grid.RowNumberer = Ext.extend(Ext.grid.RowNumberer, { Ext.grid.RowNumberer = Ext.extend(Ext.grid.RowNumberer, {
width: 30 width: 30
@ -61,7 +63,71 @@ Ext.extend(Shipping.MsOpSubSeaeImportAIndex, Ext.Panel, {
} else { return "NO" } } else { return "NO" }
}, },
width: 60 width: 60
}, },
{
sortable: true,
id: '',
dataIndex: 'DRFEESTATUS',
header: 'DRFEESTATUS', //'应收费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{
sortable: true,
id: '',
dataIndex: 'CRFEESTATUS',
header: 'CRFEESTATUS', //'应付费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{ {
sortable: true, sortable: true,
dataIndex: 'MBLNO', dataIndex: 'MBLNO',
@ -197,6 +263,9 @@ Ext.extend(Shipping.MsOpSubSeaeImportAIndex, Ext.Panel, {
}, this); }, this);
this.girdcolums = DsTruck.GetGridPanel(USERID, this.formname, this.girdcolums, 1); //使用者id表名中间column数组跳过一开始的几列
this.girdcolums.unshift(new Ext.grid.RowNumberer());
this.gridList.reconfigure(this.storeList, this.girdcolums);
//国际港口(进口装货港、出口卸货港) //国际港口(进口装货港、出口卸货港)
@ -335,11 +404,20 @@ Ext.extend(Shipping.MsOpSubSeaeImportAIndex, Ext.Panel, {
scope: this scope: this
}, '-', { }, '-', {
text: "Save Display List", text: "Save Display List",
id: "btntest", id: "btntest",
handler: function (button, event) { menu: [
this.column = DsTruck.SaveGridPanel(USERID, this.formname, this.gridList.columns, this.column, 1, true); {
}, text: "Save",
scope: this handler: function (button, event) {
this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.girdcolums, 1, true);
}
}, {
text: "Init..",
handler: function (menu, event) {
_this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.gridList.columns, _this.initgirdcolums, 1, true);
}
}],
scope: this
}] }]
}); });

@ -70,7 +70,71 @@ Ext.extend(Shipping.MsOpSubSeaeImportIndex, Ext.Panel, {
} else { return "否" } } else { return "否" }
}, },
width: 60 width: 60
}, },
{
sortable: true,
id: '',
dataIndex: 'DRFEESTATUS',
header: '应收费用', //'应收费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{
sortable: true,
id: '',
dataIndex: 'CRFEESTATUS',
header: '应付费用', //'应付费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{ {
sortable: true, sortable: true,
dataIndex: 'BSDATE', dataIndex: 'BSDATE',

@ -1237,7 +1237,7 @@ Ext.extend(Shipping.MsOpSubSeaeOrderAEdit, Ext.Panel, {
layout: 'border' layout: 'border'
}); });
this.panelFee.stroplb = 'op_other'; this.panelFee.stroplb = 'op_suborder';
this.panelFee.StoreCustType.add({ "SCUSTTYPE": "WTDW-委托单位", "CUSTTYPE": "委托单位", "CUSTNAME": "" }); this.panelFee.StoreCustType.add({ "SCUSTTYPE": "WTDW-委托单位", "CUSTTYPE": "委托单位", "CUSTNAME": "" });
this.panelFee.StoreCustType.add({ "SCUSTTYPE": "BGH-报关行", "CUSTTYPE": "报关行", "CUSTNAME": "" }); this.panelFee.StoreCustType.add({ "SCUSTTYPE": "BGH-报关行", "CUSTTYPE": "报关行", "CUSTNAME": "" });
this.panelFee.StoreCustType.add({ "SCUSTTYPE": "HG-海关", "CUSTTYPE": "海关", "CUSTNAME": "" }); this.panelFee.StoreCustType.add({ "SCUSTTYPE": "HG-海关", "CUSTTYPE": "海关", "CUSTNAME": "" });
@ -1246,7 +1246,7 @@ Ext.extend(Shipping.MsOpSubSeaeOrderAEdit, Ext.Panel, {
this.panelFee.StoreCrOpRange.load({ params: { optype: "modOtherPayFeeManagement" } }); this.panelFee.StoreCrOpRange.load({ params: { optype: "modOtherPayFeeManagement" } });
this.panelFee.storeFeeNameRef.load({ params: { condition: "" } }); this.panelFee.storeFeeNameRef.load({ params: { condition: "" } });
this.panelFee.storeBodyList_GuDingFeeWeiHu.load(); this.panelFee.storeBodyList_GuDingFeeWeiHu.load();
//this.panelFee.StoreUnit.load({ params: { bsno: this.bsno, bstype: "op_Seae" } });
@ -1495,6 +1495,7 @@ Ext.extend(Shipping.MsOpSubSeaeOrderAEdit, Ext.Panel, {
this.panelFee.storeCrChFee.load({ params: { billno: this.panelFee.strBSNO, type: 2, optype: "op_other"} }); this.panelFee.storeCrChFee.load({ params: { billno: this.panelFee.strBSNO, type: 2, optype: "op_other"} });
} }
this.panelFee.StoreUnit.load({ params: { bsno: this.panelFee.strBSNO, bstype: "op_suborder" } });
}, // end LoadDate }, // end LoadDate
//#endregion //#endregion
@ -1600,7 +1601,7 @@ Ext.extend(Shipping.MsOpSubSeaeOrderAEdit, Ext.Panel, {
this.panelFee.strBSNO = this.editRecord.get("ORDNO"); this.panelFee.strBSNO = this.editRecord.get("ORDNO");
this.panelFee.storeDrChFee.load({ params: { billno: this.panelFee.strBSNO, type: 1, optype: "op_other" } }); this.panelFee.storeDrChFee.load({ params: { billno: this.panelFee.strBSNO, type: 1, optype: "op_other" } });
this.panelFee.storeCrChFee.load({ params: { billno: this.panelFee.strBSNO, type: 2, optype: "op_other" } }); this.panelFee.storeCrChFee.load({ params: { billno: this.panelFee.strBSNO, type: 2, optype: "op_other" } });
this.panelFee.StoreUnit.load({ params: { bsno: this.panelFee.strBSNO, bstype: "op_suborder" } });
if (type == '0') { if (type == '0') {
this.opStatus = 'edit'; this.opStatus = 'edit';
basicForm2.findField('BSNO').setDisabled(true); basicForm2.findField('BSNO').setDisabled(true);

@ -74,7 +74,71 @@ Ext.extend(Shipping.MsOpSubSeaeOrderAIndex, Ext.Panel, {
} else { return "NO" } } else { return "NO" }
}, },
width: 60 width: 60
}, },
{
sortable: true,
id: '',
dataIndex: 'DRFEESTATUS',
header:'DRFEESTATUS', //'应收费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{
sortable: true,
id: '',
dataIndex: 'CRFEESTATUS',
header: 'CRFEESTATUS', //'应付费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{ {
sortable: true, sortable: true,
dataIndex: 'BSDATE', dataIndex: 'BSDATE',

@ -71,7 +71,70 @@ Ext.extend(Shipping.MsOpSubSeaeOrderIndex, Ext.Panel, {
} else { return "否" } } else { return "否" }
}, },
width: 60 width: 60
}, }, {
sortable: true,
id: '',
dataIndex: 'DRFEESTATUS',
header: '应收费用', //'应收费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{
sortable: true,
id: '',
dataIndex: 'CRFEESTATUS',
header: '应付费用', //'应付费用',
align: 'center',
width: 60,
renderer: function (value, meta) {
if (value == '审核通过') {
meta.tdCls = 'feestatus_pass';
} else if (value == '录入状态') {
} else if (value == '提交审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_refer';
} else if (value == '结算完毕') {
meta.tdCls = 'feestatus_settle';
} else if (value == '未录入') {
} else if (value == '部分结算') {
meta.tdCls = 'feestatus_settle';
} else if (value == '部分审核') {
meta.tdCls = 'feestatus_refer';
} else if (value == '部分提交') {
meta.tdCls = 'feestatus_refer';
} else if (value == '驳回提交') {
meta.tdCls = 'feestatus_nopass';
}
return value;
}
},
{ {
sortable: true, sortable: true,
dataIndex: 'BSDATE', dataIndex: 'BSDATE',

@ -7,7 +7,9 @@
{ name: 'ORSTATUS', type: 'string' }, { name: 'ORSTATUS', type: 'string' },
{ name: 'ORSTATUSREF', type: 'string' }, { name: 'ORSTATUSREF', type: 'string' },
{ name: 'ORREASON', type: 'string' }, { name: 'ORREASON', type: 'string' },
{ name: 'BSDATE', type: 'string' }, { name: 'BSDATE', type: 'string' },
{ name: 'DRFEESTATUS', type: 'string' },
{ name: 'CRFEESTATUS', type: 'string' },
{ name: 'MBLNO', type: 'string' }, { name: 'MBLNO', type: 'string' },
{ name: 'CUSTOMERNAME', type: 'string' }, { name: 'CUSTOMERNAME', type: 'string' },
{ name: 'SHIPPERCODE', type: 'string' }, { name: 'SHIPPERCODE', type: 'string' },

Loading…
Cancel
Save