using DBUtility; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers { public class EntrustOutBackBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更) private json objJsonResult = new json(); public DataSet ds = new DataSet(); public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); #region 委外加工出库单 [Route("Kf_EntrustOutBackBill/GetEntrustOutBackBillList")] [HttpGet] public object GetEntrustOutBackBillList(string sWhere,string user) { //判断是否有查询权限 List columnNameList = new List(); //定义声明变量 ,把通过 new List()创建的 实例,赋值给变量 if (!DBUtility.ClsPub.Security_Log("Kf_EntrustOutBillQuery", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查询权限!"; objJsonResult.data = null; return objJsonResult; } try { ds = oCn.RunProcReturn("select * from h_v_Kf_EntrustOutBillList " + sWhere + " order by hmainid desc", "h_v_Kf_EntrustOutBillList"); foreach (DataColumn col in ds.Tables[0].Columns)//遍历ds中第一个表(Tables[0])的所有列(Columns)每次循环中,col变量会持有当前列的引用 { Type dataType = col.DataType; //获取当前数据类型传入 自定义变量datadataType string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //字符串拼接 // 将列名和数据类型信息拼接成一个JSON格式的字符串 columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } //if (ds.Tables[0].Rows.Count != 0 || ds != null) //{ objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; //} //else //{ //objJsonResult.code = "0"; //objJsonResult.count = 0; //objJsonResult.Message = "无数据"; //objJsonResult.data = null; //return objJsonResult; //} } catch (Exception ex) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + ex.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 委外加工出库单 审核/反审核 [Route("Kf_EntrustOutBackBill/AuditKf_EntrustOutBackBill")] [HttpGet] public object AuditKf_EntrustOutBackBill(string HInterID, int Type, string user) { try { //判断是否有审核权限 if (!DBUtility.ClsPub.Security_Log("Kf_EntrustOutBill_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) { //判断单据是否已经审核 DataSet ds; string sql = "select * from Kf_ICStockBillMain where HinterID = " + HInterID; ds = oCn.RunProcReturn(sql, "Kf_ICStockBillMain"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } //审核单据 oCn.RunProc("update Kf_ICStockBillMain set HChecker='" + user + "',HCheckDate=getdate(),HBillStatus=2 where HinterID=" + HInterID); //审核更新 及时库存表 减少库存 ds = oCn.RunProcReturn("exec h_KF_UPDateICinventory '" + HInterID + "','" + ds.Tables[0].Rows[0]["HBillType"] + "','1'", "h_KF_UPDateICinventory"); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功"; objJsonResult.data = null; } } else { //判断单据是否已经反审核 DataSet ds; string sql = "select * from Kf_ICStockBillMain where HinterID = " + HInterID; ds = oCn.RunProcReturn(sql, "Kf_ICStockBillMain"); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭!不能进行反审核!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不能进行反审核!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据未审核!不需要反审核!"; objJsonResult.data = null; return objJsonResult; } //反审核单据 oCn.RunProc("update Kf_ICStockBillMain set HChecker='',HCheckDate=null,HBillStatus=1 where HinterID=" + HInterID); //反审核更新 及时库存表 增加库存 ds = oCn.RunProcReturn("exec h_KF_UPDateICinventory '" + HInterID + "','" + ds.Tables[0].Rows[0]["HBillType"] + "','2'", "h_KF_UPDateICinventory"); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反审核成功"; objJsonResult.data = null; } } 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 } }