| using DAL; | 
| using Newtonsoft.Json.Linq; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Data; | 
| using System.Linq; | 
| using System.Web; | 
| using System.Web.Http; | 
| using WebAPI.Models; | 
|   | 
| namespace WebAPI.Controllers.SCGL | 
| { | 
|     public class Sc_ICBomBillController : ApiController | 
|     { | 
|         private json objJsonResult = new json(); | 
|         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|         DataSet ds; | 
|         public DAL.ClsSc_ICMOReportBill BillNew = new DAL.ClsSc_ICMOReportBill();   //对应单据类 | 
|         public DAL.ClsSc_ICMOReportBill BillOld = new DAL.ClsSc_ICMOReportBill();   //对应单据类 | 
|   | 
|         #region 生产物料清单  查询 | 
|         /// <summary> | 
|         /// 生产BOM/生产物料清单 | 
|         /// </summary> | 
|         /// <param name="sWhere"></param> | 
|         /// <param name="user"></param> | 
|         /// <returns></returns> | 
|         [Route("Sc_ICBomBill/list")] | 
|         [HttpGet] | 
|         public object list(string sWhere, string user) | 
|         { | 
|             try | 
|             { | 
|                 //判断是否有查询权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Gy_ICBomBill_Query", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无权限查询!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (sWhere == null || sWhere.Equals("")) | 
|                 { | 
|                     ds = oCN.RunProcReturn("select * from h_v_Gy_ICBomBillList order by 日期 desc,hmainid desc ", "h_v_Gy_ICBomBillList"); | 
|                 } | 
|                 else | 
|                 { | 
|                     string sql1 = "select * from h_v_Gy_ICBomBillList where 1 = 1 "; | 
|                     string sql = sql1 + sWhere+ " order by 日期 desc,hmainid desc "; | 
|                     ds = oCN.RunProcReturn(sql, "h_v_Gy_ICBomBillList"); | 
|                 } | 
|   | 
|                 //if (ds.Tables[0].Rows.Count != 0 || ds != null) | 
|                 //{ | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "Sucess!"; | 
|                 objJsonResult.data = ds.Tables[0]; | 
|                 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 = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 生产物料清单  编辑查询 | 
|         /// <summary> | 
|         /// 生产BOM/生产物料清单 | 
|         /// </summary> | 
|         /// <param name="sWhere"></param> | 
|         /// <param name="user"></param> | 
|         /// <returns></returns> | 
|         [Route("Sc_ICBomBill/Editlist")] | 
|         [HttpGet] | 
|         public object Editlist(string sWhere) | 
|         { | 
|             try | 
|             { | 
|                 ds = oCN.RunProcReturn("select * from h_v_Gy_ICBomBillEditList where 1=1 "+ sWhere + " order by hmainid desc ", "h_v_Gy_ICBomBillEditList"); | 
|   | 
|                 | 
|                 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 生产物料清单  新增 | 
|         /// <summary> | 
|         /// 生产BOM/生产物料清单 | 
|         /// </summary> | 
|         /// <param name="sWhere"></param> | 
|         /// <param name="user"></param> | 
|         /// <returns></returns> | 
|         [Route("sc_Gy_ICBomBill/sc_Gy_ICBomBillAdd")] | 
|         [HttpPost] | 
|         public object sc_Gy_ICBomBillAdd([FromBody] JObject sMainSub) | 
|         { | 
|             var _value = sMainSub["sMainSub"].ToString(); | 
|             string msg1 = _value.ToString(); | 
|             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|             try | 
|             { | 
|                 string msg2 = sArray[0].ToString(); //主表数据 | 
|                 string msg3 = sArray[1].ToString(); //子表数据 | 
|                 int OperationType = int.Parse(sArray[2].ToString()); // 数据类型 1添加 3修改 | 
|                 string user = sArray[3].ToString(); | 
|   | 
|                 //判断是否有查询权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Gy_ICBomBill_Edit", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无权限查询!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 ClsGy_ICBomBill oBill = new ClsGy_ICBomBill(); | 
|                 msg2 = "[" + msg2 + "]"; | 
|                 List<Model.ClsGy_ICBomBillMain> lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_ICBomBillMain>>(msg2); | 
|                 foreach (Model.ClsGy_ICBomBillMain oItem in lsmain) | 
|                 { | 
|                     //oItem.HMaker = ""; | 
|                     oItem.HMaker = user;  //制单人 | 
|                     oItem.HBillType = "3302"; | 
|                     oItem.HBillSubType = "3302"; | 
|                     oItem.HBillStatus = 1; | 
|                     oItem.HUpDater = user; | 
|                     oItem.HUpDateDate = DateTime.Now.ToString(); | 
|                     DBUtility.ClsPub.CurUserName = user; | 
|                     oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); | 
|   | 
|                     if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "保存失败!没有单据日期,无法保存!"; | 
|                         objJsonResult.data = 1; | 
|                         return objJsonResult; | 
|                     } | 
|                     oBill.omodel = oItem; | 
|                 } | 
|   | 
|                 List<Model.ClsGy_ICBomBillSub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_ICBomBillSub>>(msg3); | 
|                 int i = 0; | 
|                 foreach (Model.ClsGy_ICBomBillSub oItemSub in DetailColl) | 
|                 { | 
|                     i++; | 
|                     oItemSub.HEntryID = i; | 
|                     oItemSub.HRemark2 = ""; | 
|                     oItemSub.HRemark3 = ""; | 
|                     oItemSub.HRemark4 = ""; | 
|                     oItemSub.HChildType = ""; | 
|                     oItemSub.HCloseMan = ""; | 
|                     oItemSub.HSourceBillNo = ""; | 
|                     oItemSub.HSourceBillType = ""; | 
|                     oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); | 
|                     oItemSub.HCloseType = false;   //关闭类型 | 
|                     | 
|                     oBill.DetailColl.Add(oItemSub); | 
|   | 
|                 } | 
|   | 
|   | 
|                 bool bResult; | 
|                 if (OperationType == 1) | 
|                 { | 
|                     bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 } | 
|                 else if (OperationType == 3) | 
|                 { | 
|                     bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 } | 
|                 else { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "操作类型无效!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 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 = "Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 生产物料清单 删除 | 
|         [Route("sc_Gy_ICBomBill/DeltetICBomBill")] | 
|         [HttpGet] | 
|         public object DeltetICBomBill(string HInterID,string user) | 
|         { | 
|             try | 
|             { | 
|                 //判断是否有查询权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Gy_ICBomBill_Delete", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无权限删除!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 oCN.BeginTran(); | 
|                 oCN.RunProc("Delete From Gy_ICBomBillMain where HInterID = " + HInterID); | 
|                 oCN.RunProc("Delete From Gy_ICBomBillSub where HInterID = " + HInterID); | 
|                 oCN.Commit(); | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "删除成功!"; | 
|                 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("sc_Gy_ICBomBill/AuditBomBill")] | 
|         [HttpGet] | 
|         public object AuditBomBill(int HInterID, int IsAudit, string CurUserName) | 
|         { | 
|   | 
|             try | 
|             { | 
|                 //IsAudit=1 审核;  IsAudit=2 反审核 | 
|                 //编辑权限 | 
|                 if (!DBUtility.ClsPub.Security_Log_second("Gy_ICBomBill_Check", 1, false, CurUserName)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无审核权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 Int64 lngBillKey = 0; | 
|                 lngBillKey = DBUtility.ClsPub.isLong(HInterID); | 
|                 if (lngBillKey == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "单据ID为空!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|   | 
|   | 
|                ClsGy_ICBomBill oBill = new ClsGy_ICBomBill(); | 
|                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                 { | 
|                     if (oBill.omodel.HCloseMan != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已关闭,不能进行审核"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (oBill.omodel.HDeleteMan != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已作废,不能进行审核"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (IsAudit == 1) | 
|                     { | 
|                         if (oBill.omodel.HBillStatus == 2) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "当前单据已审核,无需再次审核"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         else | 
|                         { | 
|                             string HCheckDate = DateTime.Now.Date.ToString(); | 
|                             oCN.BeginTran(); | 
|                             oCN.RunProc(" Update Gy_ICBomBillMain set HChecker='" + CurUserName + "',HCheckDate='" + HCheckDate + "',HBillStatus=2 Where   HInterID=" + HInterID); | 
|   | 
|                             oCN.Commit(); | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 1; | 
|                             objJsonResult.Message = "审核成功!"; | 
|                             objJsonResult.data = 1; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     else | 
|                     { | 
|                         if (oBill.omodel.HBillStatus == 1) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "当前单据未审核,无需反审核"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         else | 
|                         { | 
|                             string HCheckDate = DateTime.Now.Date.ToString(); | 
|                             oCN.BeginTran(); | 
|                             oCN.RunProc(" Update Gy_ICBomBillMain set HChecker=' ',HCheckDate=null,HBillStatus=1 Where  HInterID=" + HInterID); | 
|   | 
|                             oCN.Commit(); | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 1; | 
|                             objJsonResult.Message = "反审核成功!"; | 
|                             objJsonResult.data = 1; | 
|                             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 | 
|     } | 
| } |