@@ -446,6 +450,12 @@
@Html.TextBoxFor(m => m.SALE_NAME, new { @class = "form-control" })
+
diff --git a/BookingWeb/Web.config b/BookingWeb/Web.config
index 3493bcb7..a0b7cf53 100644
--- a/BookingWeb/Web.config
+++ b/BookingWeb/Web.config
@@ -23,7 +23,7 @@
-
+
diff --git a/D7MqClient/D7MqClient/InvtoD7.cs b/D7MqClient/D7MqClient/InvtoD7.cs
index b61eb905..29d5cd31 100644
--- a/D7MqClient/D7MqClient/InvtoD7.cs
+++ b/D7MqClient/D7MqClient/InvtoD7.cs
@@ -514,7 +514,7 @@ namespace D7MqClient
if (checker != null)
result.CHECKER = checker.USERID;
- result.INVOICETYPE = 2;
+ result.INVOICETYPE = 1;
result.OPERATETIME = TimestampHelper.GetDateTime(inv.apiSendTime);
result.EXCHANGERATE = _firstthisfee.EXCHANGERATE;
result.COMPANYID = DS7COMPANYID;
diff --git a/DSWeb/Areas/Account/DAL/Chfee_invoice_HangXin/Chfee_InvoiceDAL.cs b/DSWeb/Areas/Account/DAL/Chfee_invoice_HangXin/Chfee_InvoiceDAL.cs
index 19a2091a..a655f0f4 100644
--- a/DSWeb/Areas/Account/DAL/Chfee_invoice_HangXin/Chfee_InvoiceDAL.cs
+++ b/DSWeb/Areas/Account/DAL/Chfee_invoice_HangXin/Chfee_InvoiceDAL.cs
@@ -597,12 +597,17 @@ namespace DSWeb.Areas.Account.DAL.Chfee_Invoice_HangXin
data.FEETYPE = Convert.ToInt16(reader["FEETYPE"]);
data.FEETYPEREF = Convert.ToString(reader["FEETYPEREF"]);
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);
- data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
- data.DOAMOUNT = Convert.ToDecimal(reader["DOAMOUNT"]);
+ if (reader["AMOUNT"] != DBNull.Value)
+ data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
+ if (reader["DOAMOUNT"] != DBNull.Value)
+ data.DOAMOUNT = Convert.ToDecimal(reader["DOAMOUNT"]);
data.ORIGCURRENCY = Convert.ToString(reader["ORIGCURRENCY"]);
- data.ORIGAMOUNT = Convert.ToDecimal(reader["ORIGAMOUNT"]);
- data.ORIGSTLAMOUNT = Convert.ToDecimal(reader["ORIGSTLAMOUNT"]);
- data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]);
+ if (reader["ORIGAMOUNT"] != DBNull.Value)
+ data.ORIGAMOUNT = Convert.ToDecimal(reader["ORIGAMOUNT"]);
+ if (reader["ORIGSTLAMOUNT"] != DBNull.Value)
+ data.ORIGSTLAMOUNT = Convert.ToDecimal(reader["ORIGSTLAMOUNT"]);
+ if (reader["EXCHANGERATE"] != DBNull.Value)
+ data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]);
if (reader["ETD"] != DBNull.Value)
data.ETD = Convert.ToString(reader["ETD"]);
data.ACCDATE = Convert.ToString(reader["ACCDATE"]);
@@ -763,7 +768,8 @@ namespace DSWeb.Areas.Account.DAL.Chfee_Invoice_HangXin
data.FEETYPE = Convert.ToInt16(reader["FEETYPE"]);
data.FEETYPEREF = Convert.ToString(reader["FEETYPEREF"]);
data.CURRENCY = Convert.ToString(reader["CURRENCY"]);
- data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
+ if (reader["AMOUNT"] != DBNull.Value)
+ data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]);
#endregion
headList.Add(data);
}
diff --git a/DSWeb/Areas/Account/Viewsjs/Chfee_Audit/Chfee_AuditBL.js b/DSWeb/Areas/Account/Viewsjs/Chfee_Audit/Chfee_AuditBL.js
index 622d21ca..afc7115c 100644
--- a/DSWeb/Areas/Account/Viewsjs/Chfee_Audit/Chfee_AuditBL.js
+++ b/DSWeb/Areas/Account/Viewsjs/Chfee_Audit/Chfee_AuditBL.js
@@ -4228,6 +4228,35 @@ Ext.extend(Shipping.MsChfeeAudit, Ext.Panel, {
},
+ onCancelAuditClick: function (menu, event) {
+
+ var GidStr = '';
+ var records = this.AddGridCheckBoxModel.selected.items;
+ if (records.length == 0) {
+ Ext.Msg.show({ title: Zi.LAN.TiShi, msg: Zi.LAN.SelectShenHe, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
+ return;
+ }
+ var bodyAddDatas = [];
+ for (var i = 0; i < records.length; i++) {
+ var rec = records[i];
+ rec.REMARK = '';
+ bodyAddDatas.push(rec);
+ }
+
+ if (bodyAddDatas.length == 0) {
+ Ext.Msg.show({ title: Zi.LAN.TiShi, msg: Zi.LAN.LoaclYeWuNo, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
+ return;
+
+ } else {
+ //提示', '确定删除该记录吗?
+
+ this.winAuditBackShow.show();
+
+
+ }
+
+ },
+
onSelViewClick: function (menu, event) {
var GidStr = '';
diff --git a/DSWeb/Areas/MvcShipping/Controllers/MsChFeeController.cs b/DSWeb/Areas/MvcShipping/Controllers/MsChFeeController.cs
index 16809c3e..71502820 100644
--- a/DSWeb/Areas/MvcShipping/Controllers/MsChFeeController.cs
+++ b/DSWeb/Areas/MvcShipping/Controllers/MsChFeeController.cs
@@ -1449,8 +1449,8 @@ namespace DSWeb.MvcShipping.Controllers
}
- if (string.IsNullOrEmpty(errstr)) {
- result.Success = true;
+ if (!string.IsNullOrEmpty(errstr)) {
+ result.Success = false;
result.Message = errstr;
var jsonRespose2 = new JsonResponse
{
diff --git a/DSWeb/Areas/MvcShipping/DAL/MsChFee/MsChFeeDAL.cs b/DSWeb/Areas/MvcShipping/DAL/MsChFee/MsChFeeDAL.cs
index 59a075a3..69eda563 100644
--- a/DSWeb/Areas/MvcShipping/DAL/MsChFee/MsChFeeDAL.cs
+++ b/DSWeb/Areas/MvcShipping/DAL/MsChFee/MsChFeeDAL.cs
@@ -30,6 +30,7 @@ using System.Text.RegularExpressions;
using DSWeb.Areas.MvcShipping.DAL;
using DSWeb.Common.DB;
using System.Linq;
+using DSWeb.MvcShipping.DAL.MsCodeGoodInv;
namespace DSWeb.MvcShipping.DAL.MsChFeeDAL
{
@@ -6332,6 +6333,33 @@ namespace DSWeb.MvcShipping.DAL.MsChFeeDAL
result.Message = "客户发票抬头不能为空!";
return result;
}
+
+ var invgood = MsCodeGoodInvDAL.GetData("GOODNAME in (select top 1 GOODNAME from code_fee where [NAME]='"+fee.FeeName+"') ");
+ if (!string.IsNullOrEmpty(invgood.GOODCODE))
+ {
+ MsDjyInvLj.GoodsCode = invgood.GOODCODE;
+ MsDjyInvLj.GoodsName = invgood.GOODNAME;
+ MsDjyInvLj.Unit = invgood.UNIT;
+ MsDjyInvLj.FavouredPolicyFlag = invgood.ISUSEPREF;
+ MsDjyInvLj.FavouredPolicyName = invgood.DEFREMARK;
+ MsDjyInvLj.ZeroRateFlag = invgood.ZTAXTYPE;
+ MsDjyInvLj.TaxRate = invgood.TAXRATE.ToString();
+ }
+ else {
+ invgood = MsCodeGoodInvDAL.GetData("ISDEF='1' ");
+
+ if (!string.IsNullOrEmpty(invgood.GOODCODE))
+ {
+ MsDjyInvLj.GoodsCode = invgood.GOODCODE;
+ MsDjyInvLj.GoodsName = invgood.GOODNAME;
+ MsDjyInvLj.Unit = invgood.UNIT;
+ MsDjyInvLj.FavouredPolicyFlag = invgood.ISUSEPREF;
+ MsDjyInvLj.FavouredPolicyName = invgood.DEFREMARK;
+ MsDjyInvLj.ZeroRateFlag = invgood.ZTAXTYPE;
+ MsDjyInvLj.TaxRate = invgood.TAXRATE.ToString();
+ }
+
+ }
//if (string.IsNullOrEmpty(MsDjyInvLj.BuyerName) || string.IsNullOrEmpty(MsDjyInvLj.BuyerTaxNum) || string.IsNullOrEmpty(MsDjyInvLj.BuyerTel)
// || string.IsNullOrEmpty(MsDjyInvLj.BuyerAddress) || string.IsNullOrEmpty(MsDjyInvLj.BuyerAccount))
diff --git a/DSWeb/Areas/MvcShipping/DAL/MsCodeFeeSetList/MsCodeFeeSetListDAL.cs b/DSWeb/Areas/MvcShipping/DAL/MsCodeFeeSetList/MsCodeFeeSetListDAL.cs
index be107105..56d4b4a1 100644
--- a/DSWeb/Areas/MvcShipping/DAL/MsCodeFeeSetList/MsCodeFeeSetListDAL.cs
+++ b/DSWeb/Areas/MvcShipping/DAL/MsCodeFeeSetList/MsCodeFeeSetListDAL.cs
@@ -61,7 +61,7 @@ namespace DSWeb.MvcShipping.DAL.MsCodeFeeSetList
when 13 then '码头' when 0 then '其他' end),'') DEFAULTCREDITREF,A.CREATEUSER,
B.SHOWNAME as CREATEUSERREF,
A.CREATETIME ,
- A.FEEGROUP,A.FEEFRT,A.TAXRATE,A.DUITYPE ");
+ A.FEEGROUP,A.FEEFRT,A.TAXRATE,A.DUITYPE,A.GOODNAME ");
strSql.Append(@"FROM code_fee as A
INNER JOIN [user] as B
ON A.CREATEUSER = B.GID ");
@@ -114,7 +114,7 @@ namespace DSWeb.MvcShipping.DAL.MsCodeFeeSetList
when 13 then '码头' when 0 then '其他' end),'') DEFAULTCREDITREF,A.CREATEUSER,
B.SHOWNAME as CREATEUSERREF,
A.CREATETIME ,
- A.FEEGROUP,A.FEEFRT,A.TAXRATE,A.DUITYPE ");
+ A.FEEGROUP,A.FEEFRT,A.TAXRATE,A.DUITYPE,A.GOODNAME ");
strSql.Append(@"FROM code_fee as A
INNER JOIN [user] as B
ON A.CREATEUSER = B.GID ");
@@ -213,6 +213,7 @@ namespace DSWeb.MvcShipping.DAL.MsCodeFeeSetList
data.FEEFRT = Convert.ToString(reader["FEEFRT"]);
data.TAXRATE = Convert.ToString(reader["TAXRATE"]);
data.DUITYPE = Convert.ToString(reader["DUITYPE"]);
+ data.GOODNAME = Convert.ToString(reader["GOODNAME"]);
#endregion
headList.Add(data);
diff --git a/DSWeb/Areas/MvcShipping/DAL/MsOpSeae/MsOpSeaeEdiPortDAL.cs b/DSWeb/Areas/MvcShipping/DAL/MsOpSeae/MsOpSeaeEdiPortDAL.cs
index def67d22..7b65c810 100644
--- a/DSWeb/Areas/MvcShipping/DAL/MsOpSeae/MsOpSeaeEdiPortDAL.cs
+++ b/DSWeb/Areas/MvcShipping/DAL/MsOpSeae/MsOpSeaeEdiPortDAL.cs
@@ -11119,7 +11119,10 @@ namespace DSWeb.MvcShipping.DAL.MsOpSeaeEdiPortDAL
if (type == "COSCOEDIKR" || type == "YDEDISF")
{
- r.WriteLine("16::SOFAST SHIPPING LIMITED::::::::::" + "'");
+
+ var YDEDISFSHIPPER = MsSysParamSetDAL.GetData("PARAMNAME='YDEDISFSHIPPER'").PARAMVALUE;
+
+ r.WriteLine("16::"+ YDEDISFSHIPPER + "::::::::::" + "'");
Shipping = formatEdiStr("txt", bill.AGENT);
ShippingList = formatlengthStr(Shipping, 35);
diff --git a/DSWeb/Areas/MvcShipping/DAL/MsOp_InternalTrade/MsOp_InternalTradeDAL.cs b/DSWeb/Areas/MvcShipping/DAL/MsOp_InternalTrade/MsOp_InternalTradeDAL.cs
index a5e4ddfe..127c9e02 100644
--- a/DSWeb/Areas/MvcShipping/DAL/MsOp_InternalTrade/MsOp_InternalTradeDAL.cs
+++ b/DSWeb/Areas/MvcShipping/DAL/MsOp_InternalTrade/MsOp_InternalTradeDAL.cs
@@ -982,7 +982,7 @@ namespace DSWeb.Areas.MvcShipping.DAL.MsOp_InternalTrade
int num = 0;
foreach (DataRow row in table.Rows)
{
- if (row[1].ToString() != "")
+ if (row[0].ToString() != "")
{
num = num + 1;
var CUSTNO = Convert.ToString(row["委托编号"]);
diff --git a/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyFee.cs b/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyFee.cs
index aca9112b..463a1a1e 100644
--- a/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyFee.cs
+++ b/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyFee.cs
@@ -52,6 +52,8 @@ namespace DSWeb.MvcShipping.Models.MsChFee
public string InGate { get; set; }
public string LastFreeDay { get; set; }
public string PayingFor { get; set; }
+
+
public List
Details { get; set; }
}
diff --git a/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyInvoiceFee.cs b/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyInvoiceFee.cs
index 0438454f..f373aa03 100644
--- a/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyInvoiceFee.cs
+++ b/DSWeb/Areas/MvcShipping/Models/MsChFee/MsDjyInvoiceFee.cs
@@ -108,6 +108,13 @@ namespace DSWeb.MvcShipping.Models.MsChFee
public string Checker { get; set; }
public string Clerk { get; set; }
public string RemarkTemplate { get; set; }
+ public string GoodsCode { get; set; }
+ public string GoodsName { get; set; }
+ public string Unit { get; set; }
+ public string FavouredPolicyFlag { get; set; }
+ public string FavouredPolicyName { get; set; }
+ public string ZeroRateFlag { get; set; }
+ public string TaxRate { get; set; }
public List BillList { get; set; }
}
diff --git a/DSWeb/Areas/MvcShipping/Models/MsCodeFeeSetList/CodeFeeSetList.cs b/DSWeb/Areas/MvcShipping/Models/MsCodeFeeSetList/CodeFeeSetList.cs
index 92e67f3a..349f9a94 100644
--- a/DSWeb/Areas/MvcShipping/Models/MsCodeFeeSetList/CodeFeeSetList.cs
+++ b/DSWeb/Areas/MvcShipping/Models/MsCodeFeeSetList/CodeFeeSetList.cs
@@ -144,6 +144,9 @@ namespace DSWeb.MvcShipping.Models.MsCodeFeeSetList
[ModelDB]
public string DUITYPE { get; set; }
+ [ModelDB]
+ public string GOODNAME { get; set; }
+
public CodeFeeSetList()
{
TableName = "code_fee";
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListEdit.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListEdit.js
index 66da24cc..86a59399 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListEdit.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListEdit.js
@@ -89,7 +89,6 @@ Ext.extend(Shipping.MsCodeFeeSetListEdit, Ext.Panel, {
this.comboxFEEFRT = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: Zi.LAN.FEEFRT, //'默认FRT',
store: this.StoreFEEFRT,
- labelWidth: 60,
valueField: 'value',
displayField: 'text',
forceSelection: true,
@@ -131,7 +130,6 @@ Ext.extend(Shipping.MsCodeFeeSetListEdit, Ext.Panel, {
this.comboxFeeGroup = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: Zi.LAN.FEEGROUP, //'默认币别',
- labelWidth: 60,
store: this.StoreFeeGroup,
forceSelection: true,
name: 'FEEGROUP',
@@ -179,13 +177,30 @@ Ext.extend(Shipping.MsCodeFeeSetListEdit, Ext.Panel, {
this.comboxDUITYPE = Ext.create('DsExt.ux.RefTableCombox', {
store: this.storeDUITYPE,
fieldLabel: Zi.LAN.DUITYPE, //'对账类别',
- labelWidth: 60,
valueField: 'EnumValueName',
displayField: 'EnumValueName',
name: 'DUITYPE',
forceSelection: true
});
+ this.StoreCodeGoodInv = Ext.create('DsExt.ux.RefTableStore', {
+ model: 'MsCodeGoodInv',
+ proxy: { url: '/MvcShipping/MsCodeGoodInv/GetDataList' }
+ });
+ this.StoreCodeGoodInv.load({
+ params: { condition: "" }
+ });
+
+ this.comboxCodeGoodInv = Ext.create('DsExt.ux.RefTableCombox', {
+ store: this.StoreCodeGoodInv,
+ fieldLabel: Zi.LAN.INVGOODNAME, //'对账类别',
+ forceSelection: true,
+ name: 'GOODNAME',
+ valueField: 'GOODNAME',
+ displayField: 'GOODNAME'
+ });
+
+
//表参照相关(编辑form)
@@ -247,11 +262,16 @@ Ext.extend(Shipping.MsCodeFeeSetListEdit, Ext.Panel, {
defaultType: 'textfield',
items: [this.comboxCurr, this.comboxFEEFRT, {
fieldLabel: Zi.LAN.TAXRATE, //'TAXRATE',
- labelWidth: 60,
name: 'TAXRATE'
- }, this.comboxFeeGroup, this.comboxDUITYPE
+ }
]
- }, this.myCheckboxService
+ }, {
+ xtype: 'container',
+ layout: 'hbox',
+ defaultType: 'textfield',
+ items: [this.comboxFeeGroup, this.comboxDUITYPE, this.comboxCodeGoodInv
+ ]
+ }, this.myCheckboxService
]//end items(fieldset 1)
}//end fieldset 1
]//end root items
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListModel.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListModel.js
index 452d41d2..d1dcfc79 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListModel.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/MsCodeFeeSetListModel.js
@@ -68,4 +68,29 @@ Ext.define('MsFEEGROUP', {
{ name: 'FEEGROUPNAME', type: 'string' },
{ name: 'REMARKS', type: 'string' }
]
-});
\ No newline at end of file
+});
+
+Ext.define('MsCodeGoodInv', {
+ extend: 'Ext.data.Model',
+ idProperty: 'GID',
+ fields: [
+ { name: 'GID', type: 'string' },
+ { name: 'GOODCODE', type: 'string' },
+ { name: 'GOODNAME', type: 'string' },
+ { name: 'GOODCODENAME', type: 'string' },
+ { name: 'DESCRIP', type: 'string' },
+ { name: 'TAXRATE', type: 'string' },
+ { name: 'TAXNO', type: 'string' },
+ { name: 'TAXCLASS', type: 'string' },
+ { name: 'TAXCLASSNAME', type: 'string' },
+ { name: 'ISTAXPRICE', type: 'string' },
+ { name: 'ISUSEPREF', type: 'string' },
+ { name: 'ISDEF', type: 'string' },
+ { name: 'SPEC', type: 'string' },
+ { name: 'UNIT', type: 'string' },
+ { name: 'ZTAXTYPE', type: 'string' },
+ { name: 'DEFREMARK', type: 'string' },
+ { name: 'DEFCURR', type: 'string' }
+ ]
+});
+
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_en-us.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_en-us.js
index 3bcc8902..46073c06 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_en-us.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_en-us.js
@@ -43,6 +43,7 @@ Zi.LAN.JingGao = "Warning!";//警告
Zi.LAN.QingXianXuanZeXinXi = "Please choose first!";//请先选择要操作的信息!
Zi.LAN.ChaXunTiaoJianFuZhiCuoWu = "Inquiry condition is wrong, please check!";//查询条件赋值错误,请检查!
Zi.LAN.DUITYPE = "Fee Group";
+Zi.LAN.INVGOODNAME = "Inoice Fee Name";
//#endregion
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_zh-cn.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_zh-cn.js
index f2b5a346..bdcc0612 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_zh-cn.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsCodeFeeSetList/Zi_zh-cn.js
@@ -45,6 +45,7 @@ Zi.LAN.JingGao = "警告";
Zi.LAN.QingXianXuanZeXinXi = "请先选择要操作的信息!";
Zi.LAN.ChaXunTiaoJianFuZhiCuoWu = "查询条件赋值错误,请检查!";
Zi.LAN.DUITYPE = "对账类别";
+Zi.LAN.INVGOODNAME = "发票商品名称";
//#endregion
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusing/MsCwDesignStartusingModel.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusing/MsCwDesignStartusingModel.js
index 98105661..30680685 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusing/MsCwDesignStartusingModel.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusing/MsCwDesignStartusingModel.js
@@ -4,7 +4,7 @@
fields: [
{name: 'GID', type: 'string' },//唯一编码
{name: 'STARTNAME', type: 'string' }, //账套名称
- {name: 'STARTMONTH', type: 'date', dateFormat: 'Y-m' }, //启用年月
+ {name: 'STARTMONTH', type: 'string'}, //启用年月
{name: 'ISENABLE', type: 'bool' }, //是否启用
{name: 'ISLOGIN', type: 'string' }, //是否登录
{ name: 'FINANCESOFTCODE', type: 'string' }, //是否登录
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusingUser/MsCwDesignStartusingUserModel.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusingUser/MsCwDesignStartusingUserModel.js
index 39ee146e..852426c7 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusingUser/MsCwDesignStartusingUserModel.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsCwDesignStartusingUser/MsCwDesignStartusingUserModel.js
@@ -4,7 +4,7 @@
fields: [
{name: 'GID', type: 'string' },//唯一编码
{name: 'STARTNAME', type: 'string' }, //账套名称
- {name: 'STARTMONTH', type: 'date', dateFormat: 'Y-m' }, //启用年月
+ { name: 'STARTMONTH', type: 'string' }, //启用年月
{name: 'ISENABLE', type: 'bool' }, //是否启用
{name: 'ISLOGIN', type: 'string' }, //是否登录
{name: 'CORPID', type: 'string' },//分公司代码
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeEdit.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeEdit.js
index c615dc91..6bb50681 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeEdit.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeEdit.js
@@ -4672,6 +4672,8 @@ Ext.extend(Shipping.MsOpSeaeEdit, Ext.Panel, {
}
}, {
text: "远大EDI(顺发)", //"远大EDI",
+ id: 'EDI-YDEDISF',
+ hidden: true,
handler: function (menu, event) {
_this.onCreateEDIClick(menu, event, 'YDEDISF');
}
diff --git a/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeIndex.js b/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeIndex.js
index 4e6de29a..0c43cafa 100644
--- a/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeIndex.js
+++ b/DSWeb/Areas/MvcShipping/Viewsjs/MsOpSeae/MsOpSeaeIndex.js
@@ -2354,7 +2354,14 @@ Ext.extend(Shipping.MsOpSeaeIndex, Ext.Panel, {
handler: function (menu, event) {
_this.onCreateEDIClick(menu, event, 'YDEDI');
}
- }, {
+ }, {
+ text: "远大EDI(顺发)", //"远大EDI",
+ id: 'EDI-YDEDISF',
+ hidden: true,
+ handler: function (menu, event) {
+ _this.onCreateEDIClick(menu, event, 'YDEDISF');
+ }
+ }, {
text: Zi.LAN.ZTEDI, //"中通EDI",
hidden: true,
id: 'EDI-ZTEDI',
diff --git a/DSWeb/DSWeb.csproj.user b/DSWeb/DSWeb.csproj.user
index f1ee0275..4b503d3c 100644
--- a/DSWeb/DSWeb.csproj.user
+++ b/DSWeb/DSWeb.csproj.user
@@ -2,7 +2,7 @@
ShowAllFiles
- H:\DS7\DSWeb\Properties\PublishProfiles\配置文件1.pubxml
+ 配置文件1
true
Debug|Any CPU
diff --git a/DSWeb/Properties/PublishProfiles/配置文件1.pubxml b/DSWeb/Properties/PublishProfiles/配置文件1.pubxml
index 3e89cb16..acf4e50c 100644
--- a/DSWeb/Properties/PublishProfiles/配置文件1.pubxml
+++ b/DSWeb/Properties/PublishProfiles/配置文件1.pubxml
@@ -7,11 +7,11 @@
FileSystem
Release
- x64
+ Any CPU
- true
- false
- F:\DS7Deploy
- true
+ True
+ False
+ D:\DONGSHENGWEBZC
+ True
\ No newline at end of file
diff --git a/DSWeb/Properties/PublishProfiles/配置文件1.pubxml.user b/DSWeb/Properties/PublishProfiles/配置文件1.pubxml.user
index 875e1694..d4420ce0 100644
--- a/DSWeb/Properties/PublishProfiles/配置文件1.pubxml.user
+++ b/DSWeb/Properties/PublishProfiles/配置文件1.pubxml.user
@@ -5,8 +5,8 @@
-->
- 2022-07-01T11:51:54.8104015+08:00
- <_PublishTargetUrl>F:\DS7Deploy
+ 2022-06-28T12:17:44.7010000+08:00
+ <_PublishTargetUrl>D:\DONGSHENGWEBZC
False|2022-08-29T03:47:46.7317666Z;False|2022-08-29T11:47:01.4649176+08:00;
@@ -369,7 +369,7 @@
07/15/2022 16:45:39
- 07/15/2022 16:46:28
+ 08/30/2022 17:03:31
07/15/2022 16:46:50
@@ -5847,19 +5847,19 @@
06/28/2022 12:17:34
- 07/15/2022 08:43:32
+ 08/30/2022 16:55:27
06/28/2022 12:17:34
- 06/28/2022 12:17:34
+ 08/30/2022 16:45:17
- 06/28/2022 12:17:34
+ 08/30/2022 16:46:34
- 06/28/2022 12:17:34
+ 08/30/2022 16:46:11
06/28/2022 12:17:34
@@ -6411,7 +6411,7 @@
06/28/2022 12:17:34
- 06/28/2022 12:17:34
+ 08/31/2022 15:32:41
06/28/2022 12:17:34
@@ -6423,7 +6423,7 @@
06/28/2022 12:17:34
- 06/28/2022 12:17:34
+ 08/31/2022 15:37:24
06/28/2022 12:17:34
@@ -7731,7 +7731,7 @@
06/28/2022 12:17:34
- 08/25/2022 15:37:00
+ 08/29/2022 16:51:21
06/28/2022 12:17:34
@@ -7752,7 +7752,7 @@
06/28/2022 12:17:34
- 08/12/2022 09:06:18
+ 08/29/2022 16:51:21
08/12/2022 08:03:47
@@ -12873,7 +12873,7 @@
07/28/2022 11:31:49
- 08/29/2022 10:28:05
+ 09/01/2022 09:44:02
08/09/2022 15:32:53
@@ -12882,10 +12882,10 @@
08/09/2022 15:32:53
- 08/29/2022 10:28:05
+ 09/01/2022 09:44:02
- 08/29/2022 10:28:15
+ 09/01/2022 09:44:05
07/01/2022 17:44:01
@@ -24078,7 +24078,7 @@
06/28/2022 12:17:56
- 08/29/2022 10:05:58
+ 09/01/2022 09:35:57
06/28/2022 12:17:56
diff --git a/JobAutoCreateFee/DateTimeExtension.cs b/JobAutoCreateFee/DateTimeExtension.cs
new file mode 100644
index 00000000..31d24981
--- /dev/null
+++ b/JobAutoCreateFee/DateTimeExtension.cs
@@ -0,0 +1,141 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JobCreateFee
+{
+
+ ///
+ /// datetime数据类型拓展
+ ///
+ public static class DateTimeExtension
+ {
+
+ ///
+ ///将一个时间转换为秒级时间戳
+ ///
+ /// 时间
+ ///
+ public static long ToTimeStampSeconds(this DateTime datetime)
+ {
+ return (long)Math.Round((datetime.ToUniversalTime() - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalSeconds);
+ }
+
+ ///
+ ///将一个时间转换为毫秒级时间戳
+ ///
+ ///
+ ///
+ public static long ToTimeStampMilliSeconds(this DateTime datetime)
+ {
+
+ return (long)Math.Round((datetime.ToUniversalTime() - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalMilliseconds);
+ }
+
+ ///
+ /// 获取标准时间戳 秒级
+ ///
+ ///
+ ///
+ public static long ToTimeStamp(this DateTime datetime)
+ { return ToTimeStampSeconds(datetime); }
+
+ ///
+ /// 将时间转换为时间字符串编码 yyyyMMddHHmmssffff
+ ///
+ ///
+ ///
+ public static string ToTimeStr(this DateTime datetime)
+ {
+ return datetime.ToString("yyyyMMddHHmmssffff");
+ }
+
+ ///
+ /// 判断时间是否大于1970年的有效时间
+ ///
+ ///
+ ///
+ public static bool IsValidTime(this DateTime dateTime)
+ {
+ if (dateTime.Date >= DateTime.Parse("1970-1-1"))
+ return true;
+ else return false;
+ }
+ ///
+ /// 获时间一天中的开始时间
+ ///
+ ///
+ public static DateTime GetDayStartTime(this DateTime dateTime)
+ {
+ return dateTime.Date;
+ }
+ ///
+ /// 获取时间一天的结束时间
+ ///
+ ///
+ ///
+
+ public static DateTime GetDateEndTime(this DateTime dateTime)
+ {
+ return dateTime.Date.AddDays(1).AddSeconds(-1);
+ }
+
+ ///
+ /// 获取时间周的星期一的时间
+ ///
+ ///
+ ///
+ public static DateTime GetWeekStartTime(this DateTime dateTime)
+ {
+ return dateTime.GetWeekOfDayTime(1);
+ }
+
+ ///
+ /// 获取时间周的周日
+ ///
+ ///
+ ///
+ public static DateTime GetWeekEndTime(this DateTime dateTime)
+ {
+ return dateTime.GetWeekOfDayTime(7);
+ }
+
+ ///
+ /// 获取时间周的指定周几时间
+ ///
+ ///
+ /// 周几 1 2 3 4 5 6 7
+ ///
+ public static DateTime GetWeekOfDayTime(this DateTime dateTime, int Day)
+ {
+ if (Day < 1)
+ Day = 1;
+ if (Day > 7)
+ Day = (int)dateTime.DayOfWeek;
+ return dateTime.Subtract(new TimeSpan(dateTime.DayOfWeek - (DayOfWeek)Day, 0, 0, 0)).Date;
+ }
+
+ ///
+ /// 获取时间月开始时间
+ ///
+ ///
+ ///
+ public static DateTime GetMonthStartTime(this DateTime dateTime)
+ {
+ return new DateTime(dateTime.Year, dateTime.Month, 1).Date;
+ }
+ ///
+ /// 获取一个月的结束时间
+ ///
+ ///
+ ///
+ public static DateTime GetMonthEndTime(this DateTime dateTime)
+ {
+ return dateTime.GetMonthStartTime().AddMonths(1).AddDays(-1);
+
+ }
+ }
+
+}
diff --git a/JobAutoCreateFee/JobAutoCreateFee.csproj b/JobAutoCreateFee/JobAutoCreateFee.csproj
index 7f31befc..b82705ec 100644
--- a/JobAutoCreateFee/JobAutoCreateFee.csproj
+++ b/JobAutoCreateFee/JobAutoCreateFee.csproj
@@ -61,6 +61,7 @@
+
@@ -78,6 +79,7 @@
+
diff --git a/JobAutoCreateFee/JobD7DjyFee.cs b/JobAutoCreateFee/JobD7DjyFee.cs
index 68dcdd30..6cd1601e 100644
--- a/JobAutoCreateFee/JobD7DjyFee.cs
+++ b/JobAutoCreateFee/JobD7DjyFee.cs
@@ -31,6 +31,13 @@ namespace JobCreateFee
int reqTimeout = Convert.ToInt32(context.JobDetail.JobDataMap.GetString("RequestTimeout"));
long ts = DataTableToJsonHelper.ConvertDateTimeToInt(DateTime.Now);
+ string KFCUSTCODE = context.JobDetail.JobDataMap.GetString("KFCUSTCODE");
+ string KFCUSTKEY = context.JobDetail.JobDataMap.GetString("KFCUSTKEY");
+ string KFUSERID = context.JobDetail.JobDataMap.GetString("KFUSERID");
+ string KFURL = context.JobDetail.JobDataMap.GetString("KFURL");
+
+
+
Dictionary dicData = new Dictionary();
dicData.Add("compid", companyCode);
@@ -132,13 +139,13 @@ namespace JobCreateFee
sql = "INSERT INTO ch_fee(GID, BSNO, FEETYPE, FEENAME,CUSTOMERTYPE, CUSTOMERNAME, UNIT, UNITPRICE, QUANTITY, AMOUNT, CURRENCY,";
sql = sql + "EXCHANGERATE, REASON, REMARK, COMMISSIONRATE,ENTEROPERATOR, ENTERDATE,ISOPEN, ISADVANCEDPAY, SORT, FEESTATUS, FEEFRT,CARGO_GID,";
- sql = sql + "TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,FEEDESCRIPTION,DELIVERYNO)";
+ sql = sql + "TAXRATE,NOTAXAMOUNT,ACCTAXRATE,LINENUM,TAXUNITPRICE,MODIFIEDUSER,MODIFIEDTIME,WMSOUTBSNO,PREAMOUNT,ISINVOICE,INPUTMODE,LOCALCURR,MANAGER,ISACC,FEEDESCRIPTION,DELIVERYNO,SETTLEMENT,INVOICE,ORDERAMOUNT,ORDERINVOICE,ORDERSETTLEMENT,ORDERINVSETTLEMENT)";
sql = sql + "VALUES ";
sql = sql + "('"+ Guid.NewGuid().ToString()+ "','" + BS.BSNO + "',2,'" + FEENAME.Replace(",", "") + "','船公司','CMA','" + GETUNIT(feedata.UNIT.Replace(",", ""), feedata.CTNALL.Replace(",", "")) + "'";
sql = sql + "," + price + "," + COUNT.Replace(",", "") + "," + AMOUNT.Replace(",", "") + ",'" + curr + "'," + exrate.ToString() + ",'','',0";
sql = sql + ",'"+ ENTEROPERATOR + "',GETDATE(),0,0,10,1,'',''";
sql = sql + ",0,"+ AMOUNT.Replace(",", "") + ",0,0," + price + ","+ ENTEROPERATOR + ",GETDATE(),'',0,0,'','RMB','',0,'" + feedata.FEECODE.Replace(",", "").Replace(".", "") + "'";
- sql = sql + ",'" + returndata.INVOICE_NO + "')";
+ sql = sql + ",'" + returndata.INVOICE_NO + "',0,0,0,0,0,0)";
// log.Debug($"更新语句:{sql}");
SqlCommand cmd = new SqlCommand(sql, dbcon);
cmd.ExecuteNonQuery();
@@ -150,6 +157,9 @@ namespace JobCreateFee
feeback.Success = true;
feeback.Reason = "";
feebacklist.Add(feeback);
+ string guid = Guid.NewGuid().ToString();
+ DeductionFee(guid, returndata.MBLNO,KFCUSTCODE,KFCUSTKEY,KFUSERID,KFURL);
+
}
}
//}
@@ -421,6 +431,50 @@ namespace JobCreateFee
}
+ public bool DeductionFee(string _Guid, string _MBLNO, string custname, string custkey, string userid, string djyurl, string bsType = "7")
+ {
+
+ var seconds = DateTime.Now.ToTimeStamp();
+ var runId = Guid.NewGuid().ToString();
+ var srcBeforMD5 = $"{runId}{custname}expend{bsType}0{_Guid}{_MBLNO}{seconds}{custkey}";
+ //调用扣费接口
+ var postObj = new
+ {
+ runId,
+ userId = custname,
+ module = "expend",//固定
+ bsType = bsType,
+ sendType = "0",
+ timestamp = seconds,//秒级时间戳
+ md5 = srcBeforMD5.ToMd5(),// 加密字符串小写 RunId + UserId + Module + BsType + SendType+Timestamp+ Key
+ Data = new
+ {
+ BSNO = _Guid,
+ MBLNO = _MBLNO,
+ CtnrInfo = "",
+ CtnrCount = 1,
+ IsCredit = 1,//是否是信用支付 1 信用支付 0不允许信用支付默认值为0
+ LURURENID = userid,///当前登录人id
+ SENDUSERID = userid
+ }
+ };
+ var apiJson = JsonConvert.SerializeObject(postObj);
+ var apiRtn = WebRequestHelper.DoPost(djyurl, apiJson);
+ var jobjApiRtn = JObject.Parse(apiRtn);
+ var code = Convert.ToInt32(jobjApiRtn.GetValue("code").ToString());
+ if (code == 200 || code == 450)
+ {
+ return true;
+ }
+ else
+ {
+ log.Debug($"扣费失败提醒,执行扣费失败!");
+
+ }
+ return false;
+
+ }
+
}
diff --git a/JobAutoCreateFee/JobDjyXf.cs b/JobAutoCreateFee/JobDjyXf.cs
index 7cdca781..92272a02 100644
--- a/JobAutoCreateFee/JobDjyXf.cs
+++ b/JobAutoCreateFee/JobDjyXf.cs
@@ -108,9 +108,14 @@ namespace JobCreateFee
log.Error(ex.StackTrace);
}
}
+
+
+
}
+
+
public class JsonXFSend
{
diff --git a/JobAutoCreateFee/StringExtension.cs b/JobAutoCreateFee/StringExtension.cs
new file mode 100644
index 00000000..fe23d403
--- /dev/null
+++ b/JobAutoCreateFee/StringExtension.cs
@@ -0,0 +1,470 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Security.Cryptography;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+namespace JobCreateFee
+{
+ ///
+ /// string 拓展
+ ///
+ public static class StringExtension
+ {
+
+
+ ///
+ /// 隐藏中间字符串
+ ///
+ ///
+ ///
+ public static string GetHideCentre(this string str)
+ {
+ if (str.Length > 8)
+ {
+
+ return string.Format("{0}***{1}", str.Substring(0, 4), str.Substring(str.Length - 4, 4));
+ }
+ else if (str.Length > 5)
+ {
+ return string.Format("{0}***{1}", str.Substring(0, 2), str.Substring(str.Length - 2, 2));
+
+ }
+ else if (str.Length > 4)
+ {
+ return string.Format("{0}***{1}", str.Substring(0, 1), str.Substring(str.Length - 1, 1));
+
+ }
+ else
+ {
+ return GetHideHead(str);
+ }
+ }
+
+ ///
+ /// 隐藏头部
+ ///
+ ///
+ ///
+ public static string GetHideHead(this string str)
+ {
+ var length = 1;
+ length = length > str.Length ? str.Length : length;
+ if (str.Length < 4)
+ {
+ length = 1;
+ if (str.Length == 1)
+ {
+ return str;
+ }
+
+ return "**" + str.Substring(str.Length - length, length);
+ }
+ length = 4;
+ return "****" + str.Substring(str.Length - length, length);
+
+
+ }
+
+ ///
+ /// 用于判断是否为空字符
+ ///
+ ///
+ ///
+ public static bool IsNull(this string s)
+ {
+ return s == null || (s.Trim().Length == 0);
+ }
+
+ ///
+ /// 用于判断是否为非空字符
+ ///
+ ///
+ ///
+ public static bool IsNotNull(this string s)
+ {
+ return !s.IsNull();
+ }
+
+ #region 加密算法
+
+
+ ///
+ /// DES对称加密字符串
+ ///
+ /// 待加密的字符串
+ /// 加密密钥,要求为16位
+ /// 加密成功返回加密后的字符串,失败返回源串
+ public static string DESEncrypt(this string encryptString, string key)
+ {
+ try
+ {
+ byte[] rgbKey = Encoding.UTF8.GetBytes(key);
+ //用于对称算法的初始化向量(默认值)。
+ byte[] rgbIV = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
+ byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
+ Aes dCSP = Aes.Create();
+
+ MemoryStream mStream = new MemoryStream();
+ CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
+ cStream.Write(inputByteArray, 0, inputByteArray.Length);
+ cStream.FlushFinalBlock();
+ return Convert.ToBase64String(mStream.ToArray());
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ ///
+ /// DES对称解密字符串
+ ///
+ /// 待解密的字符串
+ /// 解密密钥,要求16位
+ ///
+ public static string DESDecrypt(this string decryptString, string key)
+ {
+ try
+ {
+ //用于对称算法的初始化向量(默认值)
+ byte[] Keys = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
+ byte[] rgbKey = Encoding.UTF8.GetBytes(key);
+ byte[] rgbIV = Keys;
+ byte[] inputByteArray = Convert.FromBase64String(decryptString);
+ Aes DCSP = Aes.Create();
+
+ MemoryStream mStream = new MemoryStream();
+ CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
+ cStream.Write(inputByteArray, 0, inputByteArray.Length);
+ cStream.FlushFinalBlock();
+ return Encoding.UTF8.GetString(mStream.ToArray());
+ }
+ catch
+ {
+ return decryptString;
+ }
+ }
+
+ ///
+ /// 将字符串转换成MD5加密字符串
+ ///
+ ///
+ ///
+ public static string ToMd5(this string orgStr)
+ {
+ using (var md5 = MD5.Create())
+ {
+ var encoding = Encoding.UTF8;
+ var encryptedBytes = md5.ComputeHash(encoding.GetBytes(orgStr));
+ var sb = new StringBuilder(32);
+ foreach (var bt in encryptedBytes)
+ {
+ sb.Append(bt.ToString("x").PadLeft(2, '0'));
+ }
+ return sb.ToString().ToLower();
+ }
+ }
+ #endregion
+ ///
+ /// 获取扩展名
+ ///
+ ///
+ ///
+ public static string GetExt(this string s)
+ {
+ var ret = string.Empty;
+ if (!s.Contains('.')) return ret;
+ var temp = s.Split('.');
+ ret = temp[temp.Length - 1];
+
+ return ret;
+ }
+ ///
+ /// 验证QQ格式
+ ///
+ ///
+ ///
+ public static bool IsQq(this string s)
+ {
+ return s.IsNull() || Regex.IsMatch(s, @"^[1-9]\d{4,15}$");
+ }
+
+ ///
+ /// 将字符串根据分隔符转换我List
+ ///
+ ///
+ /// 分隔符
+ ///
+ public static List ToListString(this string str, char split)
+ {
+ return new List(str.Split(split));
+
+ }
+
+ ///
+ /// 判断是否为有效的Email地址
+ ///
+ ///
+ ///
+ public static bool IsEmail(this string s)
+ {
+ if (!s.IsNull())
+ {
+ //return Regex.IsMatch(s,
+ // @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" +
+ // @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$");
+ const string pattern = @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$";
+ return Regex.IsMatch(s, pattern);
+ }
+ return false;
+ }
+ ///
+ /// 判断是否是url
+ ///
+ ///
+ ///
+ public static bool IsUrl(this string s)
+ {
+ if (!s.IsNull())
+ {
+ const string pattern = @"^(http://|https://)?((?:[A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\.)+([A-Za-z]+)[/\?\:]?.*$";
+ return Regex.IsMatch(s, pattern);
+ }
+ return false;
+ }
+
+ ///
+ /// 验证是否是合法的电话号码
+ ///
+ ///
+ ///
+ public static bool IsPhone(this string s)
+ {
+ if (!s.IsNull())
+ {
+ return Regex.IsMatch(s, @"^\+?((\d{2,4}(-)?)|(\(\d{2,4}\)))*(\d{0,16})*$");
+ }
+ return true;
+ }
+
+ ///
+ /// 验证是否是合法的手机号码
+ ///
+ ///
+ ///
+ public static bool IsMobile(this string s)
+ {
+ if (!s.IsNull())
+ {
+ return Regex.IsMatch(s, @"^\+?\d{0,4}?[1][3-8]\d{9}$");
+ }
+ return false;
+ }
+
+ ///
+ /// 验证是否是合法的邮编
+ ///
+ ///
+ ///
+ public static bool IsZipCode(this string s)
+ {
+ if (!s.IsNull())
+ {
+ return Regex.IsMatch(s, @"[1-9]\d{5}(?!\d)");
+ }
+ return true;
+ }
+
+ ///
+ /// 验证是否是合法的传真
+ ///
+ ///
+ ///
+ public static bool IsFax(this string s)
+ {
+ if (!s.IsNull())
+ {
+ return Regex.IsMatch(s, @"(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)");
+ }
+ return true;
+ }
+
+ ///
+ /// 检查字符串是否为有效的int数字
+ ///
+ ///
+ ///
+ public static bool Isint(this string val)
+ {
+ if (IsNull(val))
+ return false;
+ int k;
+ return int.TryParse(val, out k);
+ }
+
+ ///
+ /// 字符串转数字,未转换成功返回0
+ ///
+ ///
+ ///
+ public static int ToInt(this string val)
+ {
+
+ if (IsNull(val))
+ return 0;
+ int k;
+ return int.TryParse(val, out k) ? k : 0;
+ }
+
+
+
+ ///
+ /// 判断是否是json字符串
+ ///
+ ///
+ ///
+ public static bool IsJson(this string str)
+ {
+ try
+ {
+ if (str.IsNull())
+ return false;
+
+ JsonConvert.DeserializeObject(str);
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ ///
+ /// 检查字符串是否为有效的INT64数字
+ ///
+ ///
+ ///
+ public static bool IsInt64(this string val)
+ {
+ if (IsNull(val))
+ return false;
+ long k;
+ return long.TryParse(val, out k);
+ }
+
+ ///
+ /// 验证是否是身份证
+ ///
+ ///
+ ///
+ public static bool IsCardId(this string ID)
+ {
+ var r = false;
+ if (IsNull(ID))
+ r = false;
+ if (ID.Length == 15)
+ {
+
+ var date = $"19{ID.Substring(6, 2)}-{ID.Substring(8, 2)}-{ID.Substring(10, 2)}";
+ DateTime dt;
+ return DateTime.TryParse(date, out dt);
+ }
+ else if (ID.Length == 18)
+ {
+ var date = $"{ID.Substring(6, 4)}-{ID.Substring(10, 2)}-{ID.Substring(12, 2)}";
+ DateTime dt;
+ return DateTime.TryParse(date, out dt);
+ }
+ else { r = false; }
+
+ return r;
+ }
+
+ ///
+ /// 检查字符串是否为有效的double
+ ///
+ ///
+ ///
+ public static bool IsDecimal(this string val)
+ {
+ if (IsNull(val))
+ return false;
+ double d;
+ return double.TryParse(val, out d);
+ }
+
+ ///
+ ///检测字符串是否是时间类型
+ ///
+ ///
+ ///
+ public static bool IsDateTime(this string val)
+ {
+ if (IsNull(val))
+ return false;
+ DateTime d;
+ return DateTime.TryParse(val, out d);
+ }
+ ///
+ /// 字符串转时间 非时间返回空
+ ///
+ ///
+ ///
+ public static DateTime? ToDateTime(this string val)
+ {
+ if (val.IsDateTime())
+ {
+ return DateTime.Parse(val);
+ }
+ else
+ {
+ return null;
+ }
+ }
+ ///
+ /// 将时间类型字符转时间戳
+ ///
+ ///
+ ///
+ public static long ToTimestamp(this string Val)
+ {
+ var time = Val.ToDateTime();
+ return time != null ? ((DateTime)time).ToTimeStamp() : 0;
+ }
+
+ ///
+ /// 从左边截取N个字符
+ ///
+ ///
+ ///
+ public static string GetLeftStr(this string val, int count = 0)
+ {
+ if (count > val.Length)
+ return null;
+
+ return val.Substring(0, count);
+ }
+
+ ///
+ ///从右边截取N个字符
+ ///
+ ///
+ ///
+ ///
+ public static string GetRightStr(this string val, int count = 0)
+ {
+
+ if (count > val.Length)
+ return null;
+
+ return val.Substring(val.Length - count, count);
+
+ }
+
+
+ }
+}
diff --git a/JobAutoCreateFee/quartz_jobs_D7CreateFee.xml b/JobAutoCreateFee/quartz_jobs_D7CreateFee.xml
index 1d3cd963..62bd8a88 100644
--- a/JobAutoCreateFee/quartz_jobs_D7CreateFee.xml
+++ b/JobAutoCreateFee/quartz_jobs_D7CreateFee.xml
@@ -66,8 +66,80 @@
0 0/5 * * * ?
-
-
+
+
+ JobD7DjyFee
+ Job
+ 订阅大简云账单
+ JobCreateFee.JobD7DjyFee,JobAutoCreateFee
+ true
+ false
+
+
+
+ ConnectString
+ Data Source=223.223.95.213;Initial Catalog=DONGSHENG;Persist Security Info=True;User ID=sa;Password=Smart*DATA_80120
+
+
+
+ DjyReqFeeUrl
+ http://www.myshipping.net:8656/Booking/GetSingleBillRecord
+
+
+
+ DjyReturnFeeUrl
+ http://www.myshipping.net:8656/Booking/SingleBillFeedback
+
+
+
+ DjyFeeCompanyCode
+ 6bb062a3-f1dc-40a0-912b-e51e63cb7930
+
+
+
+ RequestTimeout
+ 30
+
+
+
+ ENTEROPERATOR
+ 6bb062a3-f1dc-40a0-912b-e51e63cb7930
+
+
+
+ KFCUSTCODE
+ 6bb062a3-f1dc-40a0-912b-e51e63cb7930
+
+
+
+ KFCUSTKEY
+ 6bb062a3-f1dc-40a0-912b-e51e63cb7930
+
+
+
+ KFUSERID
+ 6bb062a3-f1dc-40a0-912b-e51e63cb7930
+
+
+
+ KFURL
+ http://www.myshipping.net:8656
+
+
+
+
+
+
+
+
+ triggerJobDjyFee
+ Job
+ 订阅大简云账单
+ JobD7DjyFee
+ Job
+ 0 0 7,12 * * ?
+
+