From b2c60378085994fcb26e542e5f6a6829bade3cb3 Mon Sep 17 00:00:00 2001 From: yxj <1qaz@123> Date: 星期二, 25 四月 2023 17:04:11 +0800 Subject: [PATCH] 新增其他入库、其他出库、直接调拨单,MES模式上传生成方法 --- CLOUDWEB/WebService1.asmx.cs | 398 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 396 insertions(+), 2 deletions(-) diff --git a/CLOUDWEB/WebService1.asmx.cs b/CLOUDWEB/WebService1.asmx.cs index f1a94c9..c5a7acb 100644 --- a/CLOUDWEB/WebService1.asmx.cs +++ b/CLOUDWEB/WebService1.asmx.cs @@ -7024,6 +7024,20 @@ } } } + if (oSystemParameter.omodel.Kf_MoveStockBill_ERPMode.ToUpper() == "MES") //鍙敓鎴怶MS鍗曟嵁 + { + if (set_SaveMoveStockBill_MES(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) + { + //"淇濆瓨鎴愬姛锛�"; + return true; + } + else + { + //"淇濆瓨澶辫触锛�"; + return false; + } + } + sErrMsg = "淇濆瓨璋冩嫧鍗曞け璐ワ紒" + sErrMsg; return false; } @@ -9985,6 +9999,103 @@ LogService.Write("鐢熸垚鐩存帴璋冩嫧鍗曪紙婧愬崟锛氭棤婧愬崟锛夋垚鍔燂紒" + sRemark); sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo; return true; + } + } + + #endregion + + #region 鐩存帴璋冩嫧鍗� 鍙敓鎴怶MS鍗曟嵁 + + [WebMethod] + public bool set_SaveMoveStockBill_MES(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) + { + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); + try + { + //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞� + string s = ""; + int sYear = 0; + int sPeriod = 0; + if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false) + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛�" + s; + return false; + } + oMain.HYear = sYear; + oMain.HPeriod = sPeriod; + + oCn.BeginTran(); + //鍐欏叆WMS璋冩嫧鍗� + //鎻掑叆瀛愯〃 + oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','-1'"); + //鎻掑叆涓昏〃 + oCn.RunProc("Insert Into Kf_ICStockBillMain " + + "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" + + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + + ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" + + ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" + + ",HStockStyle,HTransferDirect,HShipType" + + ",HSTOCKORGID,HOWNERID" + + ") " + + " values('1207','1207'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),'" + oMain.HMainSourceBillType + "'" + + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + + ", " + oMain.HSupID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HSecManagerID.ToString() + + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + + ") "); + + //鏇存柊鍏宠仈鏁伴噺 + if (sHSourceType == "3720")//鐢熶骇鐢ㄦ枡娓呭崟 + { + oCn.RunProc("exec h_p_Sc_UpDateMoveStockPPBomRelation_Add " + oMain.HInterID.ToString()); + } + else if (sHSourceType == "1604") //濮斿鐢ㄦ枡娓呭崟 + { + oCn.RunProc("exec h_p_Kf_UpDateRelation_WWPPBomToMoveStock_Add " + oMain.HInterID.ToString()); + } + else if (sHSourceType == "1402") //鍙戣揣閫氱煡鍗� + { + oCn.RunProc("exec h_p_Kf_UpDateRelation_SeOutStockToMoveStock_Add " + oMain.HInterID.ToString()); + } + else if (sHSourceType == "1243") //璋冩嫧鐢宠鍗� + { + oCn.RunProc("exec h_p_Kf_UpDateRelation_MoveStockRequestToMoveStock_Add " + oMain.HInterID.ToString()); + } + else if (sHSourceType == "1242") //鍑哄簱鐢宠鍗� + { + oCn.RunProc("exec h_p_Kf_UpDateRelation_StockOutRequestToMoveStock_Add " + oMain.HInterID.ToString()); + } + else if (sHSourceType == "1214") //鐢熶骇鍙戞枡閫氱煡鍗� + { + oCn.RunProc("exec h_p_Kf_UpDateRelation_MateOutRequestToMoveStock_Add " + oMain.HInterID.ToString()); + } + else if (sHSourceType == "-1")//鏃犳簮鍗� + { + + } + else + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涢敊璇殑婧愬崟绫诲瀷"; + oCn.RollBack(); + return false; + } + + if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //绯荤粺鍙傛暟 鑷姩瀹℃牳 + { + //瀹℃牳WMS鍗曟嵁 + oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); + } + + sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo; + oCn.Commit(); + return true; + } + catch (Exception e) + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涚敓鎴愮洿鎺ヨ皟鎷ㄥ崟澶辫触锛�" + e.Message; + oCn.RollBack(); + return false; } } @@ -22887,6 +22998,19 @@ } } } + if (oSystemParameter.omodel.Kf_OtherOutBill_ERPMode.ToUpper() == "MES") //鍙敓鎴怶MS鍗曟嵁 + { + if (set_SaveOtherOutBill_MES(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) + { + //"淇濆瓨鎴愬姛锛�"; + return true; + } + else + { + //"淇濆瓨澶辫触锛�"; + return false; + } + } sErrMsg = "淇濆瓨鍏朵粬鍑哄簱鍗曞け璐ワ紒" + sErrMsg; return false; @@ -23812,6 +23936,90 @@ LogService.Write("鐢熸垚鍏朵粬鍑哄簱鍗曪紙婧愬崟锛氭棤婧愬崟锛夋垚鍔燂紒" + sRemark); sErrMsg = "鐢熸垚鍏朵粬鍑哄簱鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo; return true; + } + } + + #endregion + + #region 鍏朵粬鍑哄簱 鍙敓鎴怶MS鍗曟嵁 + + //鍏朵粬鍑哄簱 + [WebMethod] + public bool set_SaveOtherOutBill_MES(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) + { + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); + try + { + //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞� + string s = ""; + int sYear = 0; + int sPeriod = 0; + + if (oSystemParameterMain.WMS_BillDateMode == "N") //绯荤粺鍙傛暟 鍗曟嵁鏃ユ湡鏄惁鍙栫晫闈㈤�掑叆鏃ユ湡 + { + oMain.HDate = DateTime.Today; + } + + if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false) + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛�" + s; + return false; + } + oMain.HYear = sYear; + oMain.HPeriod = sPeriod; + + oCn.BeginTran(); + //鐢熸垚鍑哄叆搴撳崟鎹� + //鎻掑叆瀛愯〃 + oCn.RunProc("EXEC h_p_Kf_OtherOutBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'"); + //鎻掑叆涓昏〃 + oCn.RunProc("Insert Into Kf_ICStockBillMain " + + "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" + + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + + ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" + + ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" + + ",HStockStyle" + + ",HSTOCKORGID,HOWNERID" + + ") " + + " values('1206','1206'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + oMain.HMainSourceBillType + "'" + + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + + ", " + oMain.HSupID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HSecManagerID.ToString() + + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + + ",'" + oMain.HStockStyle + "'" + + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + + ") "); + + //鏇存柊鍏宠仈鏁伴噺 + if (sHSourceType == "-1") //鏃犳簮鍗� + { + + } + else if (sHSourceType == "1242") //鍑哄簱鐢宠鍗� + { + oCn.RunProc("exec h_p_Kf_UpDateRelation_StockOutRequestToOtherOut_Add " + oMain.HInterID.ToString()); + } + else + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涢敊璇殑婧愬崟绫诲瀷"; + oCn.RollBack(); + return false; + } + + if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //绯荤粺鍙傛暟 鑷姩瀹℃牳 + { + //瀹℃牳WMS鍗曟嵁 + oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); + } + + sErrMsg = "鐢熸垚鍏朵粬鍑哄簱鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo; + oCn.Commit(); + return true; + } + catch (Exception e) + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涚敓鎴愬叾浠栧嚭搴撳崟澶辫触锛�" + e.Message; + oCn.RollBack(); + return false; } } @@ -33117,6 +33325,19 @@ } } } + if (oSystemParameter.omodel.Kf_OtherInBill_ERPMode.ToUpper() == "MES") //鍙敓鎴怶MS鍗曟嵁 + { + if (set_SaveOtherInBill_MES(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) + { + //"淇濆瓨鎴愬姛锛�"; + return true; + } + else + { + //"淇濆瓨澶辫触锛�"; + return false; + } + } sErrMsg = "淇濆瓨鍏朵粬鍏ュ簱鍗曞け璐ワ紒" + sErrMsg; return false; @@ -33295,7 +33516,7 @@ } else if (oSystemParameterMain.WMS_CampanyName == "妫シ" || sHSourceType == "1241") //鍏ュ簱鐢宠鍗� { - if (SaveOtherInBill_StockInRequest_CLD_SenKai(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) + if (SaveOtherInBill_StockInRequest_CLD_Merge_SenKai(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"淇濆瓨鎴愬姛锛�"; return true; @@ -34361,6 +34582,90 @@ LogService.Write("鐢熸垚鍏朵粬鍏ュ簱鍗曪紙婧愬崟锛氬叆搴撶敵璇峰崟锛�,澶氳鏁版嵁鍚堝苟涓嬫帹鐢熷崟澶辫触鎴愬姛锛�" + sRemark); sErrMsg = "鐢熸垚鍏朵粬鍏ュ簱鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo; return true; + } + } + + #endregion + + #region 鍏朵粬鍏ュ簱CLOUD 鍙敓鎴怶MS鍗曟嵁 + + //鐢熸垚鍏ュ簱鍗� + [WebMethod] + public bool set_SaveOtherInBill_MES(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) + { + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); + try + { + //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞� + string s = ""; + int sYear = 0; + int sPeriod = 0; + + if (oSystemParameterMain.WMS_BillDateMode == "N") //绯荤粺鍙傛暟 鍗曟嵁鏃ユ湡鏄惁鍙栫晫闈㈤�掑叆鏃ユ湡 + { + oMain.HDate = DateTime.Today; + } + + if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false) + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛�" + s; + return false; + } + oMain.HYear = sYear; + oMain.HPeriod = sPeriod; + + oCn.BeginTran(); + //鐢熸垚鍑哄叆搴撳崟鎹� + //鎻掑叆瀛愯〃 + oCn.RunProc("EXEC h_p_Kf_OtherInBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'"); + //鎻掑叆涓昏〃 + oCn.RunProc("Insert Into Kf_ICStockBillMain " + + "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" + + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + + ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" + + ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" + + ",HStockStyle" + + ",HSTOCKORGID,HOWNERID" + + ") " + + " values('1203','1203'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + oMain.HMainSourceBillType + "'" + + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + + ", " + oMain.HSupID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HSecManagerID.ToString() + + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + + ",'" + oMain.HStockStyle + "'" + + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + + ") "); + + //鏇存柊鍏宠仈鏁伴噺 + if (sHSourceType == "-1") //鏃犳簮鍗� + { + + } + else if (sHSourceType == "1241") //鍏ュ簱鐢宠鍗� + { + oCn.RunProc("exec h_p_Kf_UpDateRelation_StockInRequestToOtherIn_Add " + oMain.HInterID.ToString()); + } + else + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涢敊璇殑婧愬崟绫诲瀷"; + oCn.RollBack(); + return false; + } + + if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //绯荤粺鍙傛暟 鑷姩瀹℃牳 + { + //瀹℃牳WMS鍗曟嵁 + oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); + } + + sErrMsg = "鐢熸垚鍏朵粬鍏ュ簱鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo; + oCn.Commit(); + return true; + } + catch (Exception e) + { + sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涚敓鎴愬叾浠栧叆搴撳崟澶辫触锛�" + e.Message; + oCn.RollBack(); + return false; } } @@ -44366,7 +44671,10 @@ #endregion - #region 灏嗘簮鍗曚俊鎭瓨鍏ユ潯鐮佸嚭鍏ュ簱涓存椂琛� 鐢熶骇姹囨姤銆佺敓浜у叆搴撱�侀噰璐叆搴撱�佸澶栧叆搴撱�佸叾浠栧叆搴� + + #region 鎵弿鐗╂枡鏉$爜甯﹀嚭婧愬崟淇℃伅璋冪敤 + + #region 鎵弿鍞竴鏉$爜锛屽皢婧愬崟淇℃伅瀛樺叆鏉$爜鍑哄叆搴撲复鏃惰〃 鐢熶骇姹囨姤銆佺敓浜у叆搴撱�侀噰璐叆搴撱�佸澶栧叆搴撱�佸叾浠栧叆搴� [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_MaterBarCode(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) @@ -44673,6 +44981,89 @@ + #region 鎵弿鎵樼洏鏉$爜锛屽皢婧愬崟淇℃伅瀛樺叆鏉$爜鍑哄叆搴撲复鏃惰〃 鐢熶骇姹囨姤銆佺敓浜у叆搴撱�侀噰璐叆搴撱�佸澶栧叆搴撱�佸叾浠栧叆搴� + + [WebMethod] + public Model.ClsKf_ICStockBill_WMS get_SourceBill_PackBarCode(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) + { + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); + Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); + + if (HBillType == "3711") + { + //鐢熶骇姹囨姤鍗� + oBar = get_SourceBill_ICMOReport(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); + if (oBar == null) + { + return null; + } + else + { + return oBar; + } + } + else if (HBillType == "1201") + { + //閲囪喘鍏ュ簱鍗� + oBar = get_SourceBill_POStockIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); + if (oBar == null) + { + return null; + } + else + { + return oBar; + } + } + else if (HBillType == "1202") + { + //鐢熶骇鍏ュ簱鍗� + oBar = get_SourceBill_ProductIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); + if (oBar == null) + { + return null; + } + else + { + return oBar; + } + } + else if (HBillType == "1203") + { + //鍏朵粬鍏ュ簱鍗� + oBar = get_SourceBill_OtherIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); + if (oBar == null) + { + return null; + } + else + { + return oBar; + } + } + else if (HBillType == "1210") + { + //濮斿鍏ュ簱鍗� + oBar = get_SourceBill_EntrustIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); + if (oBar == null) + { + return null; + } + else + { + return oBar; + } + } + else + { + return oBar; + } + } + + #endregion + + + #endregion @@ -44714,6 +45105,8 @@ #endregion + + #region 鐩存帴鎵弿婧愬崟鏉$爜璋冪敤 #region 鐢熶骇鍏ュ簱 鎵弿婧愬崟鏉$爜 @@ -45412,6 +45805,7 @@ #endregion + #endregion #endregion -- Gitblit v1.9.1