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 System.Windows.Forms; using SyntacticSugar.constant; namespace WebAPI.Controllers { //销售出库单Controller public class Kf_SellOutBillController : ApiController { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); public DBUtility.ClsPub.Enum_BillStatus BillStatus; public DAL.ClsKf_SellOutBill BillOld = new DAL.ClsKf_SellOutBill(); private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; #region 销售出库单审核/反审核功能 [Route("Kf_SellOutBill/CheckKf_SellOutBill")] [HttpGet] public object CheckKf_SellOutBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Check", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限审核!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; oCN.BeginTran();//开始事务 //Type 1 审核 2 反审核 if (Type == 1) { if (!BillOld.CheckBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { if (BillOld.AbandonCheck(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //DataSet DSet = oCn.RunProcReturn("exec h_p_Sc_ICMOBill_AbandonCheckCtrl " + int.Parse(HInterID), "h_p_Sc_ICMOBill_AbandonCheckCtrl"); //if (DBUtility.ClsPub.isInt(DSet.Tables[0].Rows[0]["Hback"]) != 0) //{ // objJsonResult.code = "0"; // objJsonResult.count = 1; // objJsonResult.Message = "该任务单已下推流转卡,不允许反审核" + DBUtility.ClsPub.isStrNull(DSet.Tables[0].Rows[0]["HBackRemark"]); // objJsonResult.data = null; // return objJsonResult; //} } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; 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("Kf_SellOutBill/CloseKf_SellOutBill")] [HttpGet] public object CloseKf_SellOutBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Close", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限关闭!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; oCN.BeginTran();//开始事务 //Type 1 关闭 2 反关闭 if (Type == 1) { if (!BillOld.CloseBill(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { if (!BillOld.CancelClose(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; 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("Kf_SellOutBill/CancellKf_SellOutBill")] [HttpGet] public object CancellKf_SellOutBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Delete", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限作废!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; oCN.BeginTran();//开始事务 //Type 1 作废 2 反作废 if (Type == 1) { if (!BillOld.Cancelltion(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { if (!BillOld.AbandonCancelltion(int.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; 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("Kf_SellOutBill/SaveSellOutBillList")] [HttpPost] public object SaveSellOutBillList([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 user = sArray[2].ToString(); string OperationType = sArray[3].ToString(); ListModels oListModels = new ListModels(); try { //判断权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限"; objJsonResult.data = null; return objJsonResult; } DAL.ClsKf_SellOutBillForLayUI oBill = new DAL.ClsKf_SellOutBillForLayUI(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getSellOutBillMainByJson(msg2); foreach (Model.ClsKf_SellOutBillMain oItem in lsmain) { oItem.HMaker = user; oItem.HUpDater = user; if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } oBill.omodel = oItem; } //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); ls = oListModels.getSellOutBillSubByJson(msg3); int i = 0; foreach (Model.ClsKf_SellOutBillSub oItemSub in ls) { i++; oItemSub.HEntryID = i; oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oItemSub.HCloseType = false; oItemSub.HCloseMan = ""; oBill.DetailColl.Add(oItemSub); } //进行 会计期间 结账 的判断和控制 string s = ""; int sYear = 0; int sPeriod = 0; DateTime HDate = DateTime.Now; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.Message = s; return objJsonResult; } //保存 //保存完毕后处理 bool bResult; if (Convert.ToInt32(OperationType) == 1) //新增保存 { bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else if(Convert.ToInt32(OperationType) == 4) //下推保存 { bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else //编辑保存 { if (BillOld.ShowBill(lsmain[0].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; } bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); } //自动审核设置 if (Convert.ToInt32(OperationType) == 1 || Convert.ToInt32(OperationType) == 4) { objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID //系统参数 自动审核 string sReturn = ""; if (oSystemParameter.ShowBill(ref sReturn) == true) { if (oSystemParameter.omodel.Kf_SellOutBill_AutoCheck == "Y") //系统参数 自动审核 { objJsonResult.Verify = "Y"; } else { objJsonResult.Verify = "N"; } } } else { objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID objJsonResult.Verify = "N"; } if (bResult) { 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 #region 销售出库单 编辑页面初始化 [Route("Kf_SellOutBill/cx")] [HttpGet] public object cx(long HInterID) { try { //ds = oCN.RunProcReturn("select * from h_v_IF_SellOutBillList where hmainid=" + HInterID, "h_v_IF_SellOutBillList"); ds = oCN.RunProcReturn("select * from h_v_IF_SellOutBillList_EditInit where hmainid=" + HInterID, "h_v_IF_SellOutBillList_EditInit"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "false!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库 审核/反审核 /// /// /// 单据ID /// 审核(0),反审核(1) /// 审核人 /// [Route("Kf_SellOutBill/AuditKf_SellOutBill")] [HttpGet] public object AuditKf_SellOutBill(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Kf_SellOutBill_Check"; DBUtility.ClsPub.CurUserName = CurUserName; try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { 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; } if (IsAudit == 0) //审核判断 { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反审核判断 { if (oBill.omodel.HChecker.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未审核!不需要反审核!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //进行 会计期间 结账 的判断和控制 string s = ""; int sYear = 0; int sPeriod = 0; DateTime HDate = DateTime.Now; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.Message = s; return objJsonResult; } //进行需要进行的审核/反审核操作 if (IsAudit == 0) //审核提交 { ds = oCN.RunProcReturn("exec h_p_Kf_CheckSellOutBill_CrediControl " + oBill.omodel.HInterID, "h_p_Kf_CheckSellOutBill_CrediControl"); if (ds.Tables[0].Rows[0]["HBack"].ToString() == "1") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; return objJsonResult; } //审核前控制========================================= string sql1 = "exec h_p_Kf_SellOutBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Kf_SellOutBill_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; 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; } //================================================================================== //审核提交 oCN.BeginTran(); //增加关联 oCN.RunProc("exec h_p_Kf_SellOutBill_Check " + HInterID + ",'" + oBill.BillType + "','" + CurUserName + "'"); //审核更新 及时库存表 减少库存 ds = oCN.RunProcReturn("exec h_KF_UPDateICinventory '" + HInterID + "','" + oBill.BillType + "','1'", "h_KF_UPDateICinventory"); //=========================审核反审核后负库存控制 DataSet ds2 = oCN.RunProcReturn("Exec h_p_KF_ICinventoryStockCtrl '" + HInterID + "', '" + oBill.BillType + "'", "h_p_KF_ICinventoryStockCtrl"); if (ds2 == null) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + "库存更新后控制判断失败"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0") { oCN.RollBack(); string sReturn = "库存更新失败!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + sReturn; objJsonResult.data = null; return objJsonResult; } //============================ //写入日志 string WorkList = "审核单据,单据号:" + oBill.omodel.HBillNo; string SystemName = "LMES-销售出库单模块"; oCN.RunProc("Insert into System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " + "(getdate(),'" + CurUserName + "','" + SystemInformation.ComputerName + "','" + WorkList + "','" + SystemName + "','','审核')" ); //审核后控制========================================= string sql = "exec h_p_Kf_SellOutBill_AfterCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql, "h_p_Kf_SellOutBill_AfterCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:审核过程中出错,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; return objJsonResult; } //========================================= oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功"; objJsonResult.data = null; return objJsonResult; //if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_SellOutBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) //{ // objJsonResult.code = "1"; // objJsonResult.count = 1; // objJsonResult.Message = "审核成功"; // objJsonResult.data = null; // return objJsonResult; //} //else //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; // objJsonResult.data = null; // return objJsonResult; //} } if (IsAudit == 1) //反审核提交 { //反审核前控制========================================= string sql1 = "exec h_p_Kf_SellOutBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Kf_SellOutBill_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; } //=========================================================== //反审核提交AbandonCheck //删除关联 oCN.BeginTran(); oCN.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOut_UnCheck " + HInterID + ",'" + CurUserName + "'"); if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_SellOutBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) { oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反审核成功"; objJsonResult.data = null; return objJsonResult; } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库 关闭/反关闭 /// /// /// 单据ID /// 关闭(0),反关闭(1) /// 关闭人 /// [Route("Kf_SellOutBill/CloseKf_SellOutBill_1")] [HttpGet] public object CloseKf_SellOutBill(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Kf_SellOutBill_Close"; DBUtility.ClsPub.CurUserName = CurUserName; try { //检查权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { 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 (IsAudit == 0) //关闭判断 { if (oBill.omodel.HCloseMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭!不能再次关闭!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭判断 { if (oBill.omodel.HCloseMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未关闭!不需要反关闭!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //进行需要进行的关闭/反关闭操作 if (IsAudit == 0) //关闭提交 { //关闭提交 if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "关闭成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭提交 { //反关闭提交 if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反关闭成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "关闭失败或者反关闭失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库 作废/反作废 /// /// /// 单据ID /// 作废(0),反作废(1) /// 作废人 /// [Route("Kf_SellOutBill/DeleteKf_SellOutBill")] [HttpGet] public object DeleteKf_SellOutBill(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Kf_SellOutBill_Delete"; DBUtility.ClsPub.CurUserName = CurUserName; try { //检查权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能进行作废!"; objJsonResult.data = null; return objJsonResult; } if (oBill.omodel.HBillStatus.ToString() == "6") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据在审核中!不能进行作废!"; objJsonResult.data = null; return objJsonResult; } if (IsAudit == 0) //作废判断 { if (oBill.omodel.HDeleteMan.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能再作废!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反作废判断 { if (oBill.omodel.HDeleteMan.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未作废!不需要反作废!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //进行需要进行的作废/反作废操作 if (IsAudit == 0) //作废提交 { //作废提交 if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反关闭提交 { //反关闭提交 if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反作废成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "作废失败或者反作废失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库 条码明细 /// /// /// 单据ID /// [Route("Kf_SellOutBill/BarCodeNote")] [HttpGet] public object SellOutBill_BarCodeNote(int HInterID) { try { List columnNameListSum = new List(); List columnNameList0 = new List(); List columnNameList1 = new List(); List columnNameList2 = new List(); string sql = "exec h_p_Kf_SellOutBillBarCodeNote " + HInterID; ds = oCN.RunProcReturn(sql, "h_p_Kf_SellOutBillBarCodeNote"); //添加 基本信息 列名 foreach (DataColumn col in ds.Tables[1].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList0.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } //添加 码单信息 列名 foreach (DataColumn col in ds.Tables[2].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList1.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } //添加 条码明细 列名 foreach (DataColumn col in ds.Tables[3].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList2.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } columnNameListSum.Add(columnNameList0); columnNameListSum.Add(columnNameList1); columnNameListSum.Add(columnNameList2); List tableList = new List(); tableList.Add(ds.Tables[1]); tableList.Add(ds.Tables[2]); tableList.Add(ds.Tables[3]); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = tableList; objJsonResult.list = columnNameListSum; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单 根据主内码与子内码获取销售出库单数据 [Route("Kf_SellOutBill/loadKf_SellOutBill_Push")] [HttpGet] public object loadKf_SellOutBill_Push(long HInterID, long HSubID) { try { ds = oCN.RunProcReturn("select * from h_v_IF_SellOutBillList_EditInit where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_IF_SellOutBillList_EditInit"); 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 = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单 根据主内码与子内码获取发货通知单数据 [Route("Kf_SellOutBill/loadXs_SeOutStockBill_Push")] [HttpGet] public object loadXs_SeOrderBill_Push(long HInterID, long HSubID) { try { ds = oCN.RunProcReturn("select * from h_v_IF_SeOutStockBillList where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_IF_SeOutStockBillList"); 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 = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单 检查单据是否存在 /// /// /// 单据ID /// [Route("Kf_SellOutBill/CheckSellOutBill_IsExist")] [HttpGet] public object CheckSellOutBill_IsExist(int HInterID) { try { //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "单据存在"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; 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("Kf_SellOutBill/SellOutBill_LookDown")] [HttpGet] public object SellOutBill_LookDown(int HInterID) { try { List columnNameListSum = new List(); List columnNameList0 = new List(); List columnNameList1 = new List(); //List columnNameList2 = new List(); //List columnNameList3 = new List(); //List columnNameList4 = new List(); string sql = "exec h_p_Kf_SellOutBill_lookdown " + HInterID; ds = oCN.RunProcReturn(sql, "h_p_Kf_SellOutBill_lookdown"); //添加 销售调价单 列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList0.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } //添加 生产订单 列名 foreach (DataColumn col in ds.Tables[1].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList1.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } ////添加 特批申请单 列名 //foreach (DataColumn col in ds.Tables[2].Columns) //{ // Type dataType = col.DataType; // string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; // columnNameList2.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 //} ////添加 销售出库单 列名 //foreach (DataColumn col in ds.Tables[3].Columns) //{ // Type dataType = col.DataType; // string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; // columnNameList3.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 //} ////添加 工序流转卡 列名 //foreach (DataColumn col in ds.Tables[4].Columns) //{ // Type dataType = col.DataType; // string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; // columnNameList4.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 //} columnNameListSum.Add(columnNameList0); columnNameListSum.Add(columnNameList1); //columnNameListSum.Add(columnNameList2); //columnNameListSum.Add(columnNameList3); //columnNameListSum.Add(columnNameList4); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables; objJsonResult.list = columnNameListSum; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单驳回 [Route("Kf_SellOutBill/RejectCheckFlow_POOrderBill")] [HttpGet] public object RejectCheckFlow_POOrderBill(string HInterID, string CurUserID) { try { Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { if (oBill.omodel.HBillStatus != 6) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未在审核中不能驳回"; objJsonResult.data = null; return objJsonResult; } //发起驳回 if (oBill.RejectCheckFlowProgress(lngBillKey, oBill.omodel.HBillNo, CurUserID, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "驳回成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "驳回失败失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单 发起审批 [Route("Kf_SellOutBill/StartCheckFlow_POOrderBill")] [HttpGet] public object StartCheckFlow_POOrderBill(int HInterID, string CurUserName) { DBUtility.ClsPub.CurUserName = CurUserName; try { ////审核权限 //if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "审核失败!无权限!"; // objJsonResult.data = null; // return objJsonResult; //} //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 //发起审批 if (oBill.startCheckFlow(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "发起审批成功"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "发起审批失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; 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 /// 审核(0),反审核(1) /// 审核人 /// [Route("Kf_SellOutBill/AuditKf_SellOutBill_Flow")] [HttpGet] public object AuditKf_SellOutBill_Flow(int HInterID, int IsAudit, string CurUserName, string CurUserID) { //string ModRightNameCheck = "Kf_SellOutBill_Check"; DBUtility.ClsPub.CurUserName = CurUserName; try { ////审核权限 //if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "审核失败!无权限!"; // objJsonResult.data = null; // return objJsonResult; //} //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { 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; } if (IsAudit == 0) //审核判断 { //判断是否已经发起审批 string sql0 = "select * from Xt_BillCheckFlowStatus where HBillInterID = " + lngBillKey + " and HBillTypeID = '" + oBill.BillType + "'"; DataSet ds0 = oCN.RunProcReturn(sql0, "Xt_BillCheckFlowStatus"); if (ds0 != null && ds0.Tables[0].Rows.Count == 0) { 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 (IsAudit == 1) //反审核判断 { //判断是否存在审核过的项目 string sql0 = "select * from Xt_BillCheckFlowStatus where HBillInterID = " + lngBillKey + " and HBillTypeID = '" + oBill.BillType + "' and ISNULL(HChecker,'') <> ''"; DataSet ds0 = oCN.RunProcReturn(sql0, "Xt_BillCheckFlowStatus"); if (ds0 != null && ds0.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:单据不存在已经审核的项目!!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran(); //进行需要进行的审核/反审核操作 if (IsAudit == 0) //审核提交 { #region 审核前的相关判断 //审核前控制========================================= string sql1 = "exec h_p_Kf_SellOutBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Kf_SellOutBill_BeforeCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; objJsonResult.data = null; return objJsonResult; } //================================================================================== //进行 会计期间 结账 的判断和控制 string s = ""; int sYear = 0; int sPeriod = 0; DateTime HDate = DateTime.Now; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.Message = s; return objJsonResult; } #endregion //获取当前审核项目 string sql0 = "select * from " + oBill.MvarItemKey + " where HInterID = " + lngBillKey; DataSet ds0 = oCN.RunProcReturn(sql0, oBill.MvarItemKey); string HCheckFlowID = ds0.Tables[0].Rows[0]["HCheckFlowID"].ToString(); //审批流内码 string HCheckItemNowID = ds0.Tables[0].Rows[0]["HCheckItemNowID"].ToString(); //当前审批项目内码 string HCheckItemNextID = ds0.Tables[0].Rows[0]["HCheckItemNextID"].ToString(); //待审批项目内码 //判断用户是否有权限 审批 当前审批流的审批项目 //string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + " and HValue = 1"; string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + ""; DataSet ds01 = oCN.RunProcReturn(sql01, "Xt_CheckUserRight"); if (ds01.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:用户无当前审核项目的审核权限!"; objJsonResult.data = null; return objJsonResult; } //更新 单据审批状态表 中对应审核项目的审核状态 string sql02 = "update Xt_BillCheckFlowStatus set HChecker='" + CurUserName + "',HCheckDate=getdate() where HBillTypeID = '" + oBill.BillType + "' and HBillInterID=" + lngBillKey + " and HCheckFlowID=" + HCheckFlowID + " and HCheckItemID=" + HCheckItemNowID; oCN.RunProc(sql02); //判断当前审核项目是否是最后一个项目,如果是,审核后反写单据的单据状态。如果不是,获取下一个审核项目并更新到销售订单主表 if (HCheckItemNextID != "0") //刚刚审核的审核项目不是最后一个审核项目 { string sql03 = "select b.HInterID,b.HCheckItemID from Xt_CheckFlowMain as a " + "inner join Xt_CheckFlowSub as b on a.HInterID = b.HInterID " + "where a.HBillTypeID = '" + oBill.BillType + "' " + "and a.HInterID = " + HCheckFlowID + " " + "order by b.HFlowNo asc"; DataSet ds03 = oCN.RunProcReturn(sql03, "Xt_CheckFlowMain"); //获取新的当前审核项目和待审核项目 for (int i = 0; i < ds03.Tables[0].Rows.Count; i++) { if (ds03.Tables[0].Rows[i]["HCheckItemID"].ToString() == HCheckItemNextID) { HCheckItemNowID = HCheckItemNextID; } else if (HCheckItemNowID == HCheckItemNextID) { HCheckItemNextID = ds03.Tables[0].Rows[i]["HCheckItemID"].ToString(); break; } } //新的当前审核项目为最后一个审核项目,待审核项目不存在,设为默认值"0" if (HCheckItemNowID == HCheckItemNextID) { HCheckItemNextID = "0"; } //更新单据主表的审批流数据 string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey; oCN.RunProc(sql04); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功"; objJsonResult.data = null; } else //刚刚审核的审核项目是最后一个审核项目 { //更新单据主表的审批流数据 HCheckItemNowID = "0"; HCheckItemNextID = "0"; string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey; oCN.RunProc(sql04); //更新单据的单据状态 if (oBill.CheckBill(oCN, oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_SellOutBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功"; objJsonResult.data = null; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } } } if (IsAudit == 1) //反审核提交 { #region 反审核前的相关判断 //反审核前控制========================================= DataSet ds = oCN.RunProcReturn("Exec h_p_Kf_SellOutBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'", "h_p_Kf_SellOutBill_BeforeUnCheckCtrl"); if (ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + "反审核前判断失败!"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } //========================================================= //进行 会计期间 结账 的判断和控制 string s = ""; int sYear = 0; int sPeriod = 0; DateTime HDate = DateTime.Now; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.Message = s; return objJsonResult; } #endregion //获取需要反审核的审核项目 string sql0 = "select c.* from Xt_CheckFlowMain as a " + "inner join Xt_CheckFlowSub as b on a.HInterID = b.HInterID " + "inner join Xt_BillCheckFlowStatus as c on a.HBillTypeID = c.HBillTypeID and b.HCheckItemID = c.HCheckItemID " + "where c.HBillTypeID = '" + oBill.BillType + "' and c.HBillInterID = " + lngBillKey + " " + "order by b.HFlowNo asc"; DataSet ds0 = oCN.RunProcReturn(sql0, "Xt_BillCheckFlowStatus"); if (ds0 == null || ds0.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:未发起审批!"; objJsonResult.data = null; return objJsonResult; } string HCheckFlowID = ds0.Tables[0].Rows[0]["HCheckFlowID"].ToString(); //审批流内码 string HCheckItemNowID = "0"; //当前审批项目内码 string HCheckItemNextID = "0"; //待审批项目内码 if (oBill.omodel.HBillStatus == 6) { for (int i = 0; i < ds0.Tables[0].Rows.Count; i++) { if (ds0.Tables[0].Rows[i]["HChecker"].ToString() != "") { HCheckItemNowID = ds0.Tables[0].Rows[i]["HCheckItemID"].ToString(); HCheckItemNextID = ds0.Tables[0].Rows[i]["HCheckItemID"].ToString(); } else { HCheckItemNextID = ds0.Tables[0].Rows[i]["HCheckItemID"].ToString(); break; } } if (HCheckItemNowID == HCheckItemNextID) { HCheckItemNextID = "0"; } } else { HCheckItemNowID = ds0.Tables[0].Rows[ds0.Tables[0].Rows.Count - 1]["HCheckItemID"].ToString(); HCheckItemNextID = "0"; } //判断用户是否有权限 审批 当前审批流的审批项目 //string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + " and HValue = 1"; string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + ""; DataSet ds01 = oCN.RunProcReturn(sql01, "Xt_CheckUserRight"); if (ds01.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:用户无当前审核项目的审核权限!"; objJsonResult.data = null; return objJsonResult; } //更新 单据审批状态表 中对应审核项目的审核状态 string sql02 = "update Xt_BillCheckFlowStatus set HChecker='',HCheckDate='' where HBillTypeID = '" + oBill.BillType + "' and HBillInterID=" + lngBillKey + " and HCheckFlowID=" + HCheckFlowID + " and HCheckItemID=" + HCheckItemNowID; oCN.RunProc(sql02); //判断反审核的单据是否已经审核完成,若审核完成,反审核需要变更单据状态。 if (oBill.omodel.HBillStatus == 6) { //更新单据主表的审批流数据 string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey; oCN.RunProc(sql04); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功"; objJsonResult.data = null; } else { //反审核提交AbandonCheck if (oBill.AbandonCheck(oCN, oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_SellOutBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) { //更新单据主表的审批流数据 string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + ",HBillStatus=6 " + " where HInterID = " + lngBillKey; oCN.RunProc(sql04); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反审核成功"; objJsonResult.data = null; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } } } oCN.Commit(); return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); objJsonResult.data = null; oCN.RollBack(); return objJsonResult; } } #endregion #region 销售出库单下推查询列表 [Route("Kf_SellOutBill/PushList")] [HttpGet] public object PushList(string HBillNo, string user) { try { List columnNameList = new List(); string sql = "select * from h_v_IF_SellOutBillList_EditInit where 单据号 = '" + HBillNo + "' and 状态 = '已审核' and 数量 - 关联数量 > 0"; ds = oCN.RunProcReturn(sql, "h_v_IF_SellOutBillList_EditInit"); if (ds.Tables[0].Rows.Count == 0) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "找不到符合条件单据!"; objJsonResult.data = null; return objJsonResult; } 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列对象的列名 } objJsonResult.code = CodeConstant.SUCCEED; objJsonResult.count = CountConstant.SUCCEED; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单查询列表 [Route("Kf_SellOutBill/QueryList")] [HttpGet] public object QueryList(string sWhere, string user) { try { List columnNameList = new List(); //判断是否有查询权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBillQuery", 1, false, user)) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "无权限查看!"; objJsonResult.data = null; return objJsonResult; } string sql = "select * from h_v_Kf_SellOutBillQuery where 1 = 1 "; if (sWhere == "" || sWhere == null) { ds = oCN.RunProcReturn("select * from h_v_Kf_SellOutBillQuery order by hmainid desc", "h_v_Kf_SellOutBillQuery"); } else { ds = oCN.RunProcReturn(sql + sWhere + " order by hmainid desc", "h_v_Kf_SellOutBillQuery"); } 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列对象的列名 } objJsonResult.code = CodeConstant.SUCCEED; objJsonResult.count = CountConstant.SUCCEED; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单查询子列表 [Route("Kf_SellOutBill/QuerySubList")] [HttpGet] public object QuerySubList(string hmainid, string user) { try { List columnNameList = new List(); //判断是否有查询权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBillQuery", 1, false, user)) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "无权限查看!"; objJsonResult.data = null; return objJsonResult; } string sql = "select * from h_v_Kf_SellOutBillQuerySub where hmainid = " + hmainid; ds = oCN.RunProcReturn(sql + " order by hsubid ASC", "h_v_Kf_SellOutBillQuerySub"); 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列对象的列名 } objJsonResult.code = CodeConstant.SUCCEED; objJsonResult.count = CountConstant.SUCCEED; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单 判断是否具备查看金额权限 [Route("Kf_SellOutBill/CheckRight_Money")] [HttpGet] public object CheckRight_Money(string user) { try { //判断查询权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Money", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限查询!"; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库单 价格查询 [Route("Kf_SellOutBill/GetKf_CheckSellOutBill_BalanceQuery")] [HttpGet] public object GetKf_CheckSellOutBill_BalanceQuery(string HInterID, string user) { try { //判断查询权限 if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Money", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限查询!"; objJsonResult.data = null; return objJsonResult; } DataSet ds2 = oCN.RunProcReturn("exec h_p_Kf_CheckSellOutBill_CrediControl " + HInterID, "h_p_Kf_CheckSellOutBill_BalanceQuery"); if (ds2 == null) { throw new Exception("无返回值!"); }else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds2.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 样品销售出库 审核/反审核 /// /// /// 单据ID /// 审核(0),反审核(1) /// 审核人 /// [Route("Kf_SellOutBill/AuditKf_SellOutBill_YP")] [HttpGet] public object AuditKf_SellOutBill_YP(int HInterID, int IsAudit, string CurUserName) { string ModRightNameCheck = "Kf_SellOutBill_Check_YP"; DBUtility.ClsPub.CurUserName = CurUserName; try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } //HInterID数据判断 if (HInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID小于0!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(HInterID); //对HInterID进行类型的转换 DAL.ClsKf_SellOutBill oBill = new DAL.ClsKf_SellOutBill(); //实例化单据操作类,用于进行相关操作 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //根据HInterID获取该单据的数据 { 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; } if (IsAudit == 0) //审核判断 { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反审核判断 { if (oBill.omodel.HChecker.Trim() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未审核!不需要反审核!"; objJsonResult.data = null; return objJsonResult; } } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //进行 会计期间 结账 的判断和控制 string s = ""; int sYear = 0; int sPeriod = 0; DateTime HDate = DateTime.Now; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) { objJsonResult.Message = s; return objJsonResult; } //进行需要进行的审核/反审核操作 if (IsAudit == 0) //审核提交 { ds = oCN.RunProcReturn("exec h_p_Kf_CheckSellOutBill_CrediControl " + oBill.omodel.HInterID, "h_p_Kf_CheckSellOutBill_CrediControl"); if (ds.Tables[0].Rows[0]["HBack"].ToString() == "1") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; return objJsonResult; } //审核前控制========================================= string sql1 = "exec h_p_Kf_SellOutBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Kf_SellOutBill_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; 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; } //================================================================================== //审核提交 oCN.BeginTran(); //增加关联 oCN.RunProc("exec h_p_Kf_SellOutBill_Check " + HInterID + ",'" + oBill.BillType + "','" + CurUserName + "'"); //审核更新 及时库存表 减少库存 ds = oCN.RunProcReturn("exec h_KF_UPDateICinventory '" + HInterID + "','" + oBill.BillType + "','1'", "h_KF_UPDateICinventory"); //=========================审核反审核后负库存控制 DataSet ds2 = oCN.RunProcReturn("Exec h_p_KF_ICinventoryStockCtrl '" + HInterID + "', '" + oBill.BillType + "'", "h_p_KF_ICinventoryStockCtrl"); if (ds2 == null) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + "库存更新后控制判断失败"; objJsonResult.data = null; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0") { oCN.RollBack(); string sReturn = "库存更新失败!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "审核失败!原因:" + sReturn; objJsonResult.data = null; return objJsonResult; } //============================ //写入日志 string WorkList = "审核单据,单据号:" + oBill.omodel.HBillNo; string SystemName = "LMES-销售出库单模块"; oCN.RunProc("Insert into System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " + "(getdate(),'" + CurUserName + "','" + SystemInformation.ComputerName + "','" + WorkList + "','" + SystemName + "','','审核')" ); //审核后控制========================================= string sql = "exec h_p_Kf_SellOutBill_AfterCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql, "h_p_Kf_SellOutBill_AfterCheckCtrl"); if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:审核过程中出错,请与网络管理人员联系"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); objJsonResult.data = null; return objJsonResult; } //========================================= oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功"; objJsonResult.data = null; return objJsonResult; //if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_SellOutBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) //{ // objJsonResult.code = "1"; // objJsonResult.count = 1; // objJsonResult.Message = "审核成功"; // objJsonResult.data = null; // return objJsonResult; //} //else //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; // objJsonResult.data = null; // return objJsonResult; //} } if (IsAudit == 1) //反审核提交 { //反审核前控制========================================= string sql1 = "exec h_p_Kf_SellOutBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; ds = oCN.RunProcReturn(sql1, "h_p_Kf_SellOutBill_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; } //=========================================================== //反审核提交AbandonCheck //删除关联 oCN.BeginTran(); oCN.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOut_UnCheck " + HInterID + ",'" + CurUserName + "'"); if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_SellOutBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) { oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反审核成功"; objJsonResult.data = null; return objJsonResult; } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 销售出库 根据销售订单主id查询条码明细 /// /// /// 单据ID /// [Route("Kf_SellOutBill/GetBarCode_Detail")] [HttpGet] public object GetBarCode_Detail(string HInterID) { try { List columnNameListSum = new List(); List columnNameList0 = new List(); List columnNameList1 = new List(); string sql = "exec h_p_Kf_SellOutBillBarCodeNote_Detail '" + HInterID+"'"; ds = oCN.RunProcReturn(sql, "h_p_Kf_SellOutBillBarCodeNote_Detail"); //添加 汇总信息 列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList0.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } //添加 条码明细 列名 foreach (DataColumn col in ds.Tables[1].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList1.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } columnNameListSum.Add(columnNameList0); columnNameListSum.Add(columnNameList1); List tableList = new List(); tableList.Add(ds.Tables[0]); tableList.Add(ds.Tables[1]); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = tableList; objJsonResult.list = columnNameListSum; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region [销售出库单同步插件] [Route("Kf_SellOutBill/SaveKf_SellOutBillApi")] [HttpPost] public object SaveKf_SellOutBillApi([FromBody] JObject sMainSub) { try { LogService.Write("销售出库单同步:" + sMainSub.ToString()); var model = sMainSub["model"].ToString(); var entry = sMainSub["model"]["HENTRY"].ToString(); model = "[" + model.ToString() + "]"; List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(model); List< Model.ClsKf_SellOutBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject> (entry); string sql = string.Empty; oCN.BeginTran(); // 判断 数据库中是否存在id和单据号相等的打单据,存在,则重建,只有id号相等,则申请新的id号 var ds1 = oCN.RunProcReturn($@"select HInterID,HBillNO from Kf_ICStockBillMain where HInterID= {mainList[0].HInterID}", "Kf_ICStockBillMain"); var HInterID_Old = mainList[0].HInterID; if (ds1.Tables[0].Rows.Count > 0 && ds1.Tables[0].Rows[0]["HInterID"] != null) { if (string.Equals(ds1.Tables[0].Rows[0]["HBillNo"].ToString(), mainList[0].HBillNo, StringComparison.OrdinalIgnoreCase)) { sql = $"delete Kf_ICStockBillMain where HinterID = {mainList[0].HInterID}"; oCN.RunProc(sql); sql = $"delete Kf_ICStockBillSub where HinterID = {mainList[0].HInterID}"; oCN.RunProc(sql); } else { // 重新申请HInterID var HInterID_Exch = DBUtility.ClsPub.CreateBillID("1205", ref DBUtility.ClsPub.sExeReturnInfo); mainList[0].HInterID = HInterID_Exch; foreach (var oSub in subList) { oSub.HInterID = HInterID_Exch; } } } //主表 sql = @"insert into Kf_ICStockBillMain (HInterID, HYear, HPeriod, HBillNo, HBillType, HBillSubType, HMainSourceBillType, HDate, HSupID, HWHID, HSCWHID, HEmpID, HManagerID, HSecManagerID, HKeeperID, HDeptID, HCurID, HSeOrderBillNo, HExplanation, HRemark, HInnerBillNo, HRedBlueFlag, HBillStatus, HMaker, HMakeDate, HChecker, HCheckDate, HUpDater, HUpDateDate, HDeleteMan, HDeleteDate, HOWNERID, HOWNERTYPEID, HERPInterID, HERPBillType, HERPBillNo, HPRDORGID, HSTOCKORGID) values(" + mainList[0].HInterID + ", " + mainList[0].HYear + ", " + mainList[0].HPeriod + ", '" + mainList[0].HBillNo + "', '" + mainList[0].HBillType + "', '" + mainList[0].HBillSubType + "', '" + mainList[0].HMainSourceBillType + "', '" + mainList[0].HDate + "'" + "," + mainList[0].HSupID + ", " + mainList[0].HWHID + ", " + mainList[0].HSCWHID + ", " + mainList[0].HEmpID + ", " + mainList[0].HManagerID + ", " + mainList[0].HSecManagerID + ", " + mainList[0].HKeeperID + ", " + mainList[0].HDeptID + "" + "," + mainList[0].HCurID + ", '" + mainList[0].HSeOrderBillNo + "', '" + mainList[0].HExplanation + "', '" + mainList[0].HRemark + "', '" + mainList[0].HInnerBillNo + "', '" + mainList[0].HRedBlueFlag + "', " + mainList[0].HBillStatus + ", '" + mainList[0].HMaker + "'" + ",'" + mainList[0].HMakeDate + "', '" + mainList[0].HChecker + "', '" + mainList[0].HCheckDate + "', '" + mainList[0].HUpDater + "', '" + mainList[0].HUpDateDate + "', '" + mainList[0].HDeleteMan + "', '" + mainList[0].HDeleteDate + "', " + mainList[0].HOWNERID + "" + ",'" + mainList[0].HOWNERTYPEID + "', " + mainList[0].HERPInterID + ", '" + mainList[0].HERPBillType + "', '" + mainList[0].HERPBillNo + "', " + mainList[0].HPRDORGID + ", " + mainList[0].HSTOCKORGID + ")"; LogService.Write("销售出库单主表同步:" + sql); oCN.RunProc(sql); //保存子表 foreach (var oSub in subList) { sql = $@"insert into Kf_ICStockBillSub (HInterID, HEntryID, HMTONo, HPlanMode, HRemark, HExpressNumber, HMaterID, HUnitID, HBatchNo, HPropertyID, HWHID, HSPID, HSCWHID, HSCSPID, HQtyMust, HQty, HPrice, HMoney, HTaxPrice, HTaxRate, HTaxMoney, HRelationQty, HRelationMoney, HSourceInterID, HSourceEntryID, HSourceBillNo, HSourceBillType, HERPInterID, HERPEntryID, HERPBillNo_Sub, HPOOrderInterID, HPOOrderEntryID, HPOOrderBillNo, HSeOrderInterID, HSeOrderEntryID, HSeOrderBillNo, HICMOInterID, HICMOEntryID, HICMOBillNo, HWWOrderInterID, HWWOrderEntryID, HWWOrderBillNo, HProduceDate, HExpiryDate, HOWNERID, HOWNERTYPEID, HKEEPERID, HKEEPERTYPEID) values('{mainList[0].HInterID }', '{oSub.HEntryID}', '{oSub.HMTONo}', '{oSub.HPlanMode}', '{oSub.HRemark}', '{oSub.HExpressNumber}', '{oSub.HMaterID}', '{oSub.HUnitID}', '{oSub.HBatchNo}', '{oSub.HPropertyID}', '{oSub.HWHID}', '{oSub.HSPID}', '{oSub.HSCWHID}', '{oSub.HSCSPID}', '{oSub.HQtyMust}', '{oSub.HQty}', '{oSub.HPrice}', '{oSub.HMoney}', '{oSub.HTaxPrice}', '{oSub.HTaxRate}', '{oSub.HTaxMoney}', '{oSub.HRelationQty}', '{oSub.HRelationMoney}', '{oSub.HSourceInterID}', '{oSub.HSourceEntryID}', '{oSub.HSourceBillNo}', '{oSub.HSourceBillType}', '{oSub.HERPInterID}', '{oSub.HERPEntryID}', '{oSub.HERPBillNo_Sub}', '{oSub.HPOOrderInterID}', '{oSub.HPOOrderEntryID}', '{oSub.HPOOrderBillNo}', '{oSub.HSeOrderInterID}', '{oSub.HSeOrderEntryID}', '{oSub.HSeOrderBillNo}', '{oSub.HICMOInterID}', '{oSub.HICMOEntryID}', '{oSub.HICMOBillNo}', '{oSub.HWWOrderInterID}', '{oSub.HWWOrderEntryID}', '{oSub.HWWOrderBillNo}', '{oSub.HProduceDate}', '{oSub.HExpiryDate}', '{oSub.HOWNERID}', '{oSub.HOWNERTYPEID}', '{oSub.HKEEPERID}', '{oSub.HKEEPERTYPEID}')"; LogService.Write("销售出库单子表同步:" + sql); oCN.RunProc(sql); } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "单据保存成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { LogService.Write("销售出库单同步异常,保存方法执行完成异常:" + e.Message.ToString()); oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }