using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Web.Http; using WebAPI.Models; using SyntacticSugar.constant; namespace WebAPI.Controllers { public class Cg_CarTrajectoryBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; public const string ModName = "1119"; // 单据类型代码 public const string ModCaption = "车辆轨迹单据"; // 单据名称 public const string ModRightName = "Cg_CarTrajectoryBill"; public const string ModRightNameQuery = ModRightName + "_Query"; // 查询权限 public const string ModRightNameEdit = ModRightName + "_Edit"; // 编辑权限 public const string ModRightNameCheck = ModRightName + "_Check"; // 审核权限 public const string ModRightNameClose = ModRightName + "_Close"; // 关闭权限 public const string ModRightNameDelete = ModRightName + "_Delete"; // 作废权限 public const string ModRightNameDrop = ModRightName + "_Drop"; // 删除权限 public DataSet ds = new DataSet(); private json objJsonResult = new json(); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); public DAL.ClsCg_CarTrajectoryBill oBill = new DAL.ClsCg_CarTrajectoryBill(); public DAL.ClsCg_CarTrajectoryBill BillNew = new DAL.ClsCg_CarTrajectoryBill(); // 对应单据类 public DAL.ClsCg_CarTrajectoryBill BillOld = new DAL.ClsCg_CarTrajectoryBill(); // 对应单据类 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); // 获取系统参数 #region 车辆轨迹单据列表 /// /// 获取车辆轨迹单据列表信息 /// /// [Route("Cg_CarTrajectoryBill/GetCg_CarTrajectoryBillList")] [HttpGet] public object GetCg_CarTrajectoryBillList(string sWhere, string HMaker) { try { // 判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameQuery, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } // 返回列表信息 ds = oCn.RunProcReturn("SELECT * FROM h_v_Cg_CarTrajectoryBillMainList WHERE 1=1 " + sWhere + " ORDER BY HInterID DESC", "h_v_Cg_CarTrajectoryBillMainList"); List columnNameList = new List(); // 添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString)); } objJsonResult.code = "0"; objJsonResult.count = ds.Tables[0].Rows.Count; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询列表信息失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 车辆轨迹单据删除 /// /// 删除车辆轨迹单据 /// /// [Route("Cg_CarTrajectoryBill/DeleteCg_CarTrajectoryBill")] [HttpGet] public object DeleteCg_CarTrajectoryBill(Int64 HInterID, string HMaker) { try { // 判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameDrop, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块删除功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } // 判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { // 删除前控制 string sql1 = "EXEC h_p_Cg_CarTrajectoryBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + HMaker + "'"; ds = oCn.RunProcReturn(sql1, "h_p_Cg_CarTrajectoryBill_BeforeDelCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除失败!原因:删除前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; return objJsonResult; } // 删除单据(包含删除后控制、写入日志) if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_CarTrajectoryBill_AfterDelCtrl", HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到该车辆轨迹单据,请刷新数据后重新选择!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 车辆轨迹单据分页列表 [Route("Cg_CarTrajectoryBill/GetCg_CarTrajectoryBillList_Page")] [HttpGet] public json GetCg_CarTrajectoryBillList_Page(string sWhere, string user, int page, int size) { DataSet ds; json res = new json(); try { List columnNameList = new List(); //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameQuery, 3, false, user)) { res.code = CodeConstant.FAIL; res.count = CountConstant.FAIL; res.Message = "您没有该模块权限,请与管理员联系!"; res.data = null; return res; } sWhere = sWhere.Replace("'", "''"); if (sWhere == null || sWhere.Equals("")) { ds = oCn.RunProcReturn("exec h_p_Cg_CarTrajectoryBillList " + page + "," + size + ",''", "h_p_Cg_CarTrajectoryBillList"); } else { ds = oCn.RunProcReturn("exec h_p_Cg_CarTrajectoryBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Cg_CarTrajectoryBillList"); } //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } res.code = CodeConstant.SUCCEED; res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString()); res.Message = "Sucess!"; res.list = columnNameList; res.data = ds.Tables[0]; return res; } catch (Exception e) { res.code = CodeConstant.FAIL; res.count = CountConstant.FAIL; res.Message = "Exception!" + e.ToString(); res.data = null; return res; } } #endregion #region 车辆轨迹单据审核/反审核 /// /// 审核/反审核车辆轨迹单据 /// /// 单据ID /// 审核(1),反审核(2) /// 审核人 /// [Route("Cg_CarTrajectoryBill/AuditCg_CarTrajectoryBill")] [HttpGet] public object AuditCg_CarTrajectoryBill(Int64 HInterID, int IsAudit, string HMaker) { try { // 判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块审核/反审核功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsCg_CarTrajectoryBill oBill = new DAL.ClsCg_CarTrajectoryBill(); // 判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { // IsAudit 1 审核 2 反审核 if (IsAudit == 1) { // 审核前检查 if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核,不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HCloseMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } // 审核前控制 string sql1 = "EXEC h_p_Cg_CarTrajectoryBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + HMaker + "'"; ds = oCn.RunProcReturn(sql1, "h_p_Cg_CarTrajectoryBill_BeforeCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; oCn.RollBack(); return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; oCn.RollBack(); return objJsonResult; } // 审核单据 if (!oBill.CheckBill(HInterID, oBill.omodel.HBillNo, "h_p_Cg_CarTrajectoryBill_AfterCheckCtrl", HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " 审核成功!"; objJsonResult.data = null; return objJsonResult; } } else // 反审核 { if (oBill.omodel.HChecker.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未审核,不需要反审核!"; objJsonResult.data = null; return objJsonResult; } // 反审核前控制 string sql1 = "EXEC h_p_Cg_CarTrajectoryBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + HMaker + "'"; ds = oCn.RunProcReturn(sql1, "h_p_Cg_CarTrajectoryBill_BeforeUnCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反审核失败!原因:反审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; return objJsonResult; } // 反审核单据 if (!oBill.AbandonCheck(HInterID, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " 反审核成功!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到该车辆轨迹单据,请刷新数据后重新选择!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核或反审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 车辆轨迹单据关闭/反关闭 /// /// 关闭/反关闭车辆轨迹单据 /// /// 单据ID /// 关闭(1),反关闭(2) /// 关闭人 /// [Route("Cg_CarTrajectoryBill/CloseCg_CarTrajectoryBill")] [HttpGet] public object CloseCg_CarTrajectoryBill(Int64 HInterID, int Type, string HMaker) { try { // 判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameClose, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块关闭/反关闭功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } // 判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { // Type 1 关闭 2 反关闭 if (Type == 1) { if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能进行关闭!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HChecker.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未审核!不能进行关闭!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HCloseMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭,不能再次关闭!"; objJsonResult.data = null; return objJsonResult; } // 关闭单据 if (!oBill.CloseBill(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "关闭成功!"; objJsonResult.data = null; return objJsonResult; } } else // 反关闭 { if (oBill.omodel.HCloseMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未关闭,不需要反关闭!"; objJsonResult.data = null; return objJsonResult; } // 反关闭单据 if (!oBill.CancelClose(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反关闭成功!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到该车辆轨迹单据,请刷新数据后重新选择!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭或反关闭失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 车辆轨迹单据作废/反作废 /// /// 作废/反作废车辆轨迹单据 /// /// 单据ID /// 作废(1),反作废(2) /// 作废人 /// [Route("Cg_CarTrajectoryBill/DropCg_CarTrajectoryBill")] [HttpGet] public object DropCg_CarTrajectoryBill(Int64 HInterID, int Type, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块作废/反作废功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } // 判断存在性 if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) { // Type 1 作废 2 反作废 if (Type == 1) { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能进行作废!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能再作废!"; objJsonResult.data = null; return objJsonResult; } // 作废前控制 string sql1 = "EXEC h_p_Cg_CarTrajectoryBill_BeforeDropCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + HMaker + "'"; ds = oCn.RunProcReturn(sql1, "h_p_Cg_CarTrajectoryBill_BeforeDropCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "作废失败!原因:作废前判断失败,请与网络管理人员联系"; objJsonResult.data = null; oCn.RollBack(); return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "作废失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; oCn.RollBack(); return objJsonResult; } // 作废单据 if (!oBill.Cancelltion(HInterID, oBill.omodel.HBillNo, "h_p_Cg_CarTrajectoryBill_AfterDropCtrl", HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "作废成功!"; objJsonResult.data = null; return objJsonResult; } } else // 反作废 { if (oBill.omodel.HDeleteMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未作废,不需要反作废!"; objJsonResult.data = null; return objJsonResult; } // 反作废前控制 string sql1 = "EXEC h_p_Cg_CarTrajectoryBill_BeforeUnDropCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + HMaker + "'"; ds = oCn.RunProcReturn(sql1, "h_p_Cg_CarTrajectoryBill_BeforeUnDropCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反作废失败!原因:反作废前判断失败,请与网络管理人员联系"; objJsonResult.data = null; oCn.RollBack(); return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反作废失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; oCn.RollBack(); return objJsonResult; } // 反作废单据 if (!oBill.AbandonCancelltion(HInterID, oBill.omodel.HBillNo, "h_p_Cg_CarTrajectoryBill_AfterUnDropCtrl", HMaker, ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反作废成功!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到该车辆轨迹单据,请刷新数据后重新选择!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废或反作废失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 车辆轨迹单据编辑 /// /// 车辆轨迹单据编辑时,根据单据ID获取单据信息 /// /// [Route("Cg_CarTrajectoryBill/EditCg_CarTrajectoryBill")] [HttpGet] public object EditCg_CarTrajectoryBill(Int64 HInterID, string HMaker) { try { // 判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块编辑权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } // 返回编辑信息 ds = oCn.RunProcReturn("SELECT * FROM h_v_Cg_CarTrajectoryBillMainEdit WHERE 单据内码 = " + HInterID, "h_v_Cg_CarTrajectoryBillMainEdit"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到该车辆轨迹单据,请刷新数据后重新选择!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "返回车辆轨迹单据信息失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 车辆轨迹单据 新增 [Route("Cg_CarTrajectoryBill/SaveCg_CarTrajectoryBill")] [HttpPost] public object SaveCg_CarTrajectoryBill([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); // 主表数据 string msg3 = sArray[1].ToString(); // 子表数据 string refSav = sArray[2].ToString(); // 操作方式:Add添加 Update修改 string msg4 = sArray[3].ToString(); // 用户名 DBUtility.ClsPub.CurUserName = msg4; string UserName = ""; string s = ""; ListModels oListModels = new ListModels(); try { // 编辑权限检查 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameEdit, 3, false, msg4)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsCg_CarTrajectoryBill oBill = new DAL.ClsCg_CarTrajectoryBill(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); lsmain = oListModels.getObjectByJson_ClsCg_CarTrajectoryBillMain(msg2); foreach (Model.ClsCg_CarTrajectoryBillMain oItem in lsmain) { if (refSav == "Add") { // 单据号是否重复 if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复!不允许保存!"; objJsonResult.data = 1; return objJsonResult; } } if (refSav == "Update") { if (BillOld.ShowBill(oItem.HInterID, ref s) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据有误!"; objJsonResult.data = 1; return objJsonResult; } // 判断是否可编辑 if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据已经被审核,不允许修改!"; objJsonResult.data = 1; return objJsonResult; } if (BillOld.omodel.HBillStatus > 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!"; objJsonResult.data = 1; return objJsonResult; } if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = s + ",不允许修改"; objJsonResult.data = 1; return objJsonResult; } } UserName = oItem.HMaker; // 制单人 oItem.HBillType = "CT"; oItem.HBillSubType = "CT"; oItem.HYear = DateTime.Now.Year; oItem.HPeriod = DateTime.Now.Month; oItem.HMakeDate = DateTime.Now; if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } oBill.omodel = oItem; } // 表体数据处理(如果需要) if (!string.IsNullOrEmpty(msg3) && msg3 != "[]") { msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); List ls = new List(); ls = oListModels.getObjectByJson_ClsCg_CarTrajectoryBillSub(msg3); int i = 0; foreach (Model.ClsCg_CarTrajectoryBillSub oItemSub in ls) { i++; oItemSub.HEntryID = i; oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oItemSub.HCloseType = false; // 关闭类型 oBill.DetailColl.Add(oItemSub); } } // 保存单据 bool bResult; if (refSav == "Add") { bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else if (refSav == "Update") { bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); } else { bResult = false; } if (bResult) { // 自动审核设置 if (refSav == "Add") { objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); // 返回主ID //// 系统参数 - 自动审核 //string sReturn = ""; //if (oSystemParameter.ShowBill(ref sReturn) == true) //{ // // 这里需要根据实际系统参数配置 // if (oSystemParameter.omodel.Cg_CarTrajectoryBill_AutoCheck == "Y") // 系统参数 自动审核 // { // objJsonResult.Verify = "Y"; // } // else // { // objJsonResult.Verify = "N"; // } //} } else if (refSav == "Update") { objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); // 返回主ID objJsonResult.Verify = "N"; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } #endregion } }