using CK.SCP.Models; using CK.SCP.Models.Enums; using CK.SCP.Models.ScpEntity; using CK.SCP.Models.WmsEntity; using CK.SCP.Utils; using System; using System.Collections.Generic; using System.Data.Entity.Migrations; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace CK.SCP.Controller { public class SCP_QUALITY_CONTROLLER { public static void Get_TB_QUALITY_List(V_TB_QUALITY p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { IQueryable q = db.V_TB_QUALITY; if (p_entity.UID != 0) { q = q.Where(p => p.UID == p_entity.UID); } if (!string.IsNullOrEmpty(p_entity.Type)) { q = q.Where(p => p.Type.Contains(p_entity.Type)); } if (!string.IsNullOrEmpty(p_entity.Barcode)) { q = q.Where(p => p.Barcode == p_entity.Barcode); } if (!string.IsNullOrEmpty(p_entity.Loccode)) { q = q.Where(p => p.Loccode.Contains(p_entity.Loccode)); } if (!string.IsNullOrEmpty(p_entity.Pobillnum)) { q = q.Where(p => p.Pobillnum == p_entity.Pobillnum); } if (p_entity.Poline != 0) { q = q.Where(p => p.Poline == p_entity.Poline); } if (!string.IsNullOrEmpty(p_entity.Inspecttype)) { q = q.Where(p => p.Inspecttype.Contains(p_entity.Inspecttype)); } if (!string.IsNullOrEmpty(p_entity.Partcode)) { q = q.Where(p => p.Partcode == p_entity.Partcode); } if (!string.IsNullOrEmpty(p_entity.Batch)) { q = q.Where(p => p.Batch.Contains(p_entity.Batch)); } if (p_entity.Inspqty != null) { q = q.Where(p => p.Inspqty == p_entity.Inspqty); } if (p_entity.Passqty != null) { q = q.Where(p => p.Passqty == p_entity.Passqty); } if (p_entity.Failqty != null) { q = q.Where(p => p.Failqty == p_entity.Failqty); } if (p_entity.EndTime != null) { q = q.Where(p => p_entity.EndTime >= p.Billtime); } if (p_entity.BeginTime != null) { q = q.Where(p => p_entity.BeginTime <= p.Billtime); } if (!string.IsNullOrEmpty(p_entity.Vendid)) { q = q.Where(p => p.Vendid.Contains(p_entity.Vendid)); } if (!string.IsNullOrEmpty(p_entity.Vendbatch)) { q = q.Where(p => p.Vendbatch.Contains(p_entity.Vendbatch)); } if (!string.IsNullOrEmpty(p_entity.Domain)) { q = q.Where(p => p.Domain.Contains(p_entity.Domain)); } if (!string.IsNullOrEmpty(p_entity.By1)) { q = q.Where(p => p.By1.Contains(p_entity.By1)); } if (!string.IsNullOrEmpty(p_entity.By2)) { q = q.Where(p => p.By2.Contains(p_entity.By2)); } if (!string.IsNullOrEmpty(p_entity.QualityNo)) { q = q.Where(p => p.QualityNo.Contains(p_entity.QualityNo)); } if (!string.IsNullOrEmpty(p_entity.ProjectId)) { q = q.Where(p => p.ProjectId.Contains(p_entity.ProjectId)); } if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) { q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); } if (p_entity.UserInVendIds != null && p_entity.UserInVendIds.Count > 0) { q = q.Where(p => p_entity.UserInVendIds.Contains(p.Vendid)); } _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_QUALITY), "Get_TB_QUALITY_List", e.Message); throw e; } } public static void Get_TB_RETURN_List(V_TB_RETURN p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { IQueryable q = db.V_TB_RETURN; if (p_entity.UID != 0) { q = q.Where(p => p.UID == p_entity.UID); } if (!string.IsNullOrEmpty(p_entity.Type)) { q = q.Where(p => p.Type.Contains(p_entity.Type)); } if (!string.IsNullOrEmpty(p_entity.Barcode)) { q = q.Where(p => p.Barcode == p_entity.Barcode); } if (!string.IsNullOrEmpty(p_entity.Loccode)) { q = q.Where(p => p.Loccode.Contains(p_entity.Loccode)); } if (!string.IsNullOrEmpty(p_entity.Pobillnum)) { q = q.Where(p => p.Pobillnum == p_entity.Pobillnum); } if (p_entity.Poline != 0) { q = q.Where(p => p.Poline == p_entity.Poline); } if (!string.IsNullOrEmpty(p_entity.Inspecttype)) { q = q.Where(p => p.Inspecttype.Contains(p_entity.Inspecttype)); } if (!string.IsNullOrEmpty(p_entity.Partcode)) { q = q.Where(p => p.Partcode == p_entity.Partcode); } if (!string.IsNullOrEmpty(p_entity.Batch)) { q = q.Where(p => p.Batch.Contains(p_entity.Batch)); } if (p_entity.Inspqty != null) { q = q.Where(p => p.Inspqty == p_entity.Inspqty); } if (p_entity.Passqty != null) { q = q.Where(p => p.Passqty == p_entity.Passqty); } if (p_entity.Failqty != null) { q = q.Where(p => p.Failqty == p_entity.Failqty); } if (p_entity.EndTime != null) { q = q.Where(p => p.EndTime > p.Billtime); } if (p_entity.BeginTime != null) { q = q.Where(p => p.BeginTime < p.Billtime); } if (!string.IsNullOrEmpty(p_entity.Vendid)) { q = q.Where(p => p.Vendid.Contains(p_entity.Vendid)); } if (!string.IsNullOrEmpty(p_entity.Vendbatch)) { q = q.Where(p => p.Vendbatch.Contains(p_entity.Vendbatch)); } if (!string.IsNullOrEmpty(p_entity.Domain)) { q = q.Where(p => p.Domain.Contains(p_entity.Domain)); } if (!string.IsNullOrEmpty(p_entity.By1)) { q = q.Where(p => p.By1.Contains(p_entity.By1)); } if (!string.IsNullOrEmpty(p_entity.By2)) { q = q.Where(p => p.By2.Contains(p_entity.By2)); } if (!string.IsNullOrEmpty(p_entity.QualityNo)) { q = q.Where(p => p.QualityNo.Contains(p_entity.QualityNo)); } if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) { q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); } if (p_entity.UserInVendIds != null && p_entity.UserInVendIds.Count > 0) { q = q.Where(p => p_entity.UserInVendIds.Contains(p.Vendid)); } _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_QUALITY), "Get_TB_RETURN_List", e.Message); throw e; } } public static void Get_TB_ASN_QUALITY_List(V_TB_ASN p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { StringBuilder _buffer = new StringBuilder(); _buffer.Append("select * from V_TB_ASN WHERE AsnBillNum in ("); _buffer.Append("SELECT DISTINCT b.BillNum FROM dbo.TB_QUALITY AS a INNER JOIN"); _buffer.Append(" dbo.TS_BARCODE AS b ON a.Barcode = ISNULL(b.PartCode, N'') + '.' + ISNULL(b.Batch, N'') AND a.Vendid = b.VendId)"); string _sql = _buffer.ToString(); var q=db.Database.SqlQuery(_sql).AsQueryable(); if (!string.IsNullOrEmpty(p_entity.AsnBillNum)) { q = q.Where(p => p.AsnBillNum.Contains(p_entity.AsnBillNum)); } if (!string.IsNullOrEmpty(p_entity.AskBillNum)) { q = q.Where(p => p.AskBillNum.Contains(p_entity.AskBillNum)); } if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { q = q.Where(p => p.PoBillNum.Contains(p_entity.PoBillNum)); } if (!string.IsNullOrEmpty(p_entity.VendId)) { q = q.Where(p => p.VendId.Contains(p_entity.VendId)); } if (p_entity.State != null) { q = q.Where(p => p.State == p_entity.State); } if (!string.IsNullOrEmpty(p_entity.ShipUser)) { q = q.Where(p => p.ShipUser.Contains(p_entity.ShipUser)); } if (!string.IsNullOrEmpty(p_entity.ReceiveUser)) { q = q.Where(p => p.ReceiveUser.Contains(p_entity.ReceiveUser)); } if (!string.IsNullOrEmpty(p_entity.ErpBillNum)) { q = q.Where(p => p.ErpBillNum.Contains(p_entity.ErpBillNum)); } if (p_entity.ModType != null) { q = q.Where(p => p.ModType == p_entity.ModType); } //if (!string.IsNullOrEmpty(p_entity.Contacter)) //{ // q = q.Where(p => p.Contacter.Contains(p_entity.Contacter)); //} if (!string.IsNullOrEmpty(p_entity.Buyer)) { q = q.Where(p => p.Buyer.Contains(p_entity.Buyer)); } if (!string.IsNullOrEmpty(p_entity.VendName)) { q = q.Where(p => p.VendName.Contains(p_entity.VendName)); } if (!string.IsNullOrEmpty(p_entity.State_DESC)) { q = q.Where(p => p.State_DESC.Contains(p_entity.State_DESC)); } if (!string.IsNullOrEmpty(p_entity.ModType_DESC)) { q = q.Where(p => p.ModType_DESC.Contains(p_entity.ModType_DESC)); } if (!string.IsNullOrEmpty(p_entity.CreateUser)) { q = q.Where(p => p.CreateUser.Contains(p_entity.CreateUser)); } if (!string.IsNullOrEmpty(p_entity.UpdateUser)) { q = q.Where(p => p.UpdateUser.Contains(p_entity.UpdateUser)); } if (!string.IsNullOrEmpty(p_entity.UpdateInfo)) { q = q.Where(p => p.UpdateInfo.Contains(p_entity.UpdateInfo)); } q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) { q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); } if (p_entity.UserInVendIds != null && p_entity.UserInVendIds.Count > 0) { q = q.Where(p => p_entity.UserInVendIds.Contains(p.VendId)); } _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_QUALITY), "Get_TB_QUALITY_List", e.Message); throw e; } } public static ResultObject Save_ASN_TO_QUALITY(List p_asnList,string p_user) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { foreach (var itm in p_asnList) { var _entity = db.V_TB_ASN_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); var _asn=db.V_TB_ASN.Where(p => p.AsnBillNum == _entity.AsnBillNum).FirstOrDefault(); if (_entity != null) { TB_QUALITY _quality = new TB_QUALITY(); _quality.QualityNo = SCP_BILLCODE_CONTROLLER.MakeQualityCode(); _quality.Failqty = itm.FailQty; _quality.Pobillnum = itm.PoBillNum; _quality.Billtime = DateTime.Parse(DateTime.Now.ToShortDateString()); _quality.Poline = itm.PoLine; _quality.By1 = itm.AsnBillNum; _quality.CreateTime = DateTime.Parse(DateTime.Now.ToShortDateString()); _quality.CreateUser = p_user; _quality.Domain = _entity.Site; _quality.Vendid = _entity.VendId; _quality.Partcode = _entity.PartCode; _quality.Batch = _entity.Batch; _quality.Barcode = _entity.PartCode + "." + _entity.Batch; _quality.Failreason = itm.FailReason; _quality.Site = _asn.Site; db.TB_QUALITY.AddOrUpdate(_quality); } } if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_QUALITY), "Save_ASN_TO_QUALITY", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } public static ResultObject Save_ASN_TO_RETURN(List p_asnList, string p_user) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { foreach (var itm in p_asnList) { var _entity = db.V_TB_ASN_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); var _asn = db.V_TB_ASN.Where(p => p.AsnBillNum == _entity.AsnBillNum).FirstOrDefault(); if (_entity != null) { TB_RETURN _quality = new TB_RETURN(); _quality.QualityNo = SCP_BILLCODE_CONTROLLER.MakeQualityCode(); _quality.Failqty = itm.FailQty; _quality.Pobillnum = itm.PoBillNum; _quality.Billtime = DateTime.Parse(DateTime.Now.ToShortDateString()); _quality.Poline = itm.PoLine; _quality.AsnBillNum = itm.AsnBillNum; _quality.RejectBillNum = itm.RejectBillNum; _quality.CreateTime = itm.CreateTime; _quality.CreateUser = p_user; _quality.Domain = _entity.Site; _quality.Vendid = _entity.VendId; _quality.Partcode = _entity.PartCode; _quality.Batch = _entity.Batch; _quality.Barcode = _entity.PartCode + "." + _entity.Batch; _quality.Failreason = itm.FailReason; _quality.Site = _asn.Site; db.TB_RETURN.AddOrUpdate(_quality); } } if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_RETURN), "Save_ASN_TO_QUALITY", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } public static ResultObject Save_TB_QUALITY(List p_list, QUAL_STATE p_state ) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { var _entityList=db.TB_QUALITY.Where(p=>p_list.Contains(p.UID)).ToList(); foreach (var itm in _entityList) { itm.state = ((int)p_state).ToString(); db.TB_QUALITY.AddOrUpdate(itm); } if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_QUALITY), "Save_TB_QUALITY", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } public static ResultObject Del_TB_QUALITY(List p_entitys) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { var _ids= p_entitys.Select(q => q.UID).ToList(); var query=db.TB_QUALITY.Where(p => _ids.Contains(p.UID)); var _ls=query.ToList(); db.TB_QUALITY.RemoveRange(_ls); if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_QUALITY), "Del_TB_QUALITY", e.Message); throw e; } return _ret; } public static ResultObject Del_TB_RETURN(List p_entitys) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { var _ids = p_entitys.Select(q => q.UID).ToList(); var query = db.TB_RETURN.Where(p => _ids.Contains(p.UID)); var _ls = query.ToList(); db.TB_RETURN.RemoveRange(_ls); if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_QUALITY), "Del_TB_QUALITY", e.Message); throw e; } return _ret; } public static void Get_TM_HYANTOLIN_REVIEW_List(V_TM_HYANTOLIN_REVIEW p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); try { using (var db = EntitiesFactory.CreateScpInstance()) { IQueryable q = db.V_TM_HYANTOLIN_REVIEW; if (p_entity.UID != 0) { q = q.Where(p => p.UID == p_entity.UID); } if (!string.IsNullOrEmpty(p_entity.ReviewBillNum)) { q = q.Where(p => p.ReviewBillNum == p_entity.ReviewBillNum); } if (!string.IsNullOrEmpty(p_entity.RelationReviewNo)) { q = q.Where(p => p.RelationReviewNo == p_entity.RelationReviewNo); } if (!string.IsNullOrEmpty(p_entity.BarCode)) { q = q.Where(p => p.BarCode.Contains(p_entity.BarCode)); } if (!string.IsNullOrEmpty(p_entity.PartCode)) { q = q.Where(p => p.PartCode.Contains(p_entity.PartCode)); } if (!string.IsNullOrEmpty(p_entity.Batch)) { q = q.Where(p => p.Batch.Contains(p_entity.Batch)); } if (!string.IsNullOrEmpty(p_entity.ProjectId)) { q = q.Where(p => p.ProjectId.Contains(p_entity.ProjectId)); } if (!string.IsNullOrEmpty(p_entity.BadCouse)) { q = q.Where(p => p.BadCouse.Contains(p_entity.BadCouse)); } if (!string.IsNullOrEmpty(p_entity.ReviewResult)) { q = q.Where(p => p.ReviewResult.Contains(p_entity.ReviewResult)); } if (!string.IsNullOrEmpty(p_entity.UltimateDepart)) { q = q.Where(p => p.UltimateDepart.Contains(p_entity.UltimateDepart)); } if (!string.IsNullOrEmpty(p_entity.UltimateName)) { q = q.Where(p => p.UltimateName.Contains(p_entity.UltimateName)); } if (!string.IsNullOrEmpty(p_entity.OperName)) { q = q.Where(p => p.OperName.Contains(p_entity.OperName)); } if (p_entity.BeginTime != null) { q = q.Where(p => p_entity.BeginTime.Value <= p.ReviewTime); } if (p_entity.EndTime != null) { q = q.Where(p => p_entity.EndTime.Value >= p.ReviewTime); } //if (p_entity.State != 3) //{ // q = q.Where(p => p.State == p_entity.State); //} if (p_entity.UserInVendIds != null && p_entity.UserInVendIds.Count > 0) { q = q.Where(p => p_entity.UserInVendIds.Contains(p.VendId)); } if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) { q = q.Where(p => p_entity.UserInAddress.Contains(p.Domain)); } if (p_entity.BillStateList != null && p_entity.BillStateList.Count > 0) { q = q.Where(p => p_entity.BillStateList.Contains(p.State.Value)); } _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TM_HYANTOLIN_REVIEW), "Get_TM_HYANTOLIN_REVIEW_List", e.Message); throw e; } } public static void Get_TM_HYANTOLIN_REVIEW_List(TM_HYANTOLIN_REVIEW p_entity, Action>> p_action) { ResultObject> _ret = new ResultObject>(); try { using (var db = EntitiesFactory.CreateScpInstance()) { IQueryable q = db.TM_HYANTOLIN_REVIEW; if (p_entity.UID != 0) { q = q.Where(p => p.UID == p_entity.UID); } if (!string.IsNullOrEmpty(p_entity.ReviewBillNum)) { q = q.Where(p => p.ReviewBillNum==p_entity.ReviewBillNum); } if (!string.IsNullOrEmpty(p_entity.RelationReviewNo)) { q = q.Where(p => p.RelationReviewNo==p_entity.RelationReviewNo); } if (!string.IsNullOrEmpty(p_entity.BarCode)) { q = q.Where(p => p.BarCode.Contains(p_entity.BarCode)); } if (!string.IsNullOrEmpty(p_entity.PartCode)) { q = q.Where(p => p.PartCode.Contains(p_entity.PartCode)); } if (!string.IsNullOrEmpty(p_entity.Batch)) { q = q.Where(p => p.Batch.Contains(p_entity.Batch)); } if (!string.IsNullOrEmpty(p_entity.ProjectId)) { q = q.Where(p => p.ProjectId.Contains(p_entity.ProjectId)); } if (p_entity.Qty != 0) { q = q.Where(p => p.Qty == p_entity.Qty); } if (!string.IsNullOrEmpty(p_entity.BadCouse)) { q = q.Where(p => p.BadCouse.Contains(p_entity.BadCouse)); } if (!string.IsNullOrEmpty(p_entity.ReviewResult)) { q = q.Where(p => p.ReviewResult.Contains(p_entity.ReviewResult)); } if (!string.IsNullOrEmpty(p_entity.UltimateDepart)) { q = q.Where(p => p.UltimateDepart.Contains(p_entity.UltimateDepart)); } if (!string.IsNullOrEmpty(p_entity.UltimateName)) { q = q.Where(p => p.UltimateName.Contains(p_entity.UltimateName)); } if (p_entity.ClaimAmount != 0) { q = q.Where(p => p.ClaimAmount == p_entity.ClaimAmount); } if (!string.IsNullOrEmpty(p_entity.OperName)) { q = q.Where(p => p.OperName.Contains(p_entity.OperName)); } if (p_entity.BeginTime!=null) { q = q.Where(p => p_entity.BeginTime.Value<=p.ReviewTime); } if (p_entity.EndTime != null) { q = q.Where(p => p_entity.EndTime.Value >= p.ReviewTime); } q = q.Where(p => p.State == 0); _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TM_HYANTOLIN_REVIEW), "Get_TM_HYANTOLIN_REVIEW_List", e.Message); throw e; } } public static ResultObject Save_TM_HYANTOLIN_REVIEW(List p_list, REVIEW_STATE p_state) { ResultObject _ret = new ResultObject(); try { using (var db = EntitiesFactory.CreateScpInstance()) { var _list = db.V_TM_HYANTOLIN_REVIEW.Where(p => p_list.Contains(p.UID)).ToList(); if (REVIEW_STATE.CLOSE == p_state) { var _entityList = db.TM_HYANTOLIN_REVIEW.Where(p => p_list.Contains(p.UID)).ToList(); foreach (var itm in _entityList) { itm.State = ((int)p_state); //if (!string.IsNullOrEmpty(itm.UltimateName) && Regex.IsMatch(itm.UltimateName,@"\S+")) //{ //} } db.TM_HYANTOLIN_REVIEW.AddOrUpdate(_entityList.ToArray()); foreach (var itm in _list) { TB_RECEIVE_DETAIL _entity = db.TB_RECEIVE_DETAIL.Where(p => p.RecvBillNum == itm.ReviewBillNum && p.PartCode==itm.PartCode ).FirstOrDefault(); if (_entity == null) { _entity = new TB_RECEIVE_DETAIL(); } _entity.RecvBillNum = itm.ReviewBillNum; _entity.PoBillNum = itm.ReviewBillNum; _entity.PoLine = 999; _entity.PartCode = itm.PartCode; _entity.Batch = itm.Batch; _entity.Qty = -1; _entity.DockCode = itm.UltimateDepart; _entity.State = 1; _entity.CreateTime = itm.CreateTime.Value; _entity.CreateUser = itm.OperName; _entity.IsDeleted = false; _entity.BillType = 2; _entity.VendBatch = itm.Batch; _entity.Remark = itm.Domain; _entity.PoUnit = itm.Unit; _entity.LocUnit = itm.Unit; _entity.GUID = Guid.NewGuid(); db.TB_RECEIVE_DETAIL.AddOrUpdate(_entity); } foreach (var itm in _list) { TB_RECEIVE_DETAIL_QAD _entity = db.TB_RECEIVE_DETAIL_QAD.Where(p => p.RecvBillNum == itm.ReviewBillNum && p.PartCode == itm.PartCode).FirstOrDefault(); if (_entity == null) { _entity = new TB_RECEIVE_DETAIL_QAD(); } _entity.RecvBillNum = itm.ReviewBillNum; _entity.ErpRecvBillNum = itm.ReviewBillNum; _entity.PoBillNum = itm.ReviewBillNum; _entity.PoLine = 999; _entity.PartCode = itm.PartCode; _entity.Batch = itm.Batch; _entity.Qty = -1; _entity.DockCode = itm.UltimateDepart; _entity.State = 1; _entity.PoUnit = itm.Unit; _entity.LocUnit = itm.Unit; _entity.Remark = itm.BadCouse; _entity.CreateTime = itm.ReviewTime.Value; _entity.CreateUser = itm.OperName; _entity.IsDeleted = false; _entity.BillType = 2; _entity.VendBatch = itm.Batch; _entity.CurAmt = itm.ClaimAmount; _entity.StdCost = itm.ClaimAmount; _entity.PurCost = itm.ClaimAmount; _entity.Tax = "13"; _entity.Site = itm.Domain; _entity.GUID = Guid.NewGuid(); db.TB_RECEIVE_DETAIL_QAD.AddOrUpdate(_entity); } foreach (var itm in _list) { TB_RECEIVE _entity= db.TB_RECEIVE.Where(p => p.RecvBillNum == itm.ReviewBillNum).FirstOrDefault(); if (_entity == null) { _entity = new TB_RECEIVE(); } _entity.RecvBillNum = itm.ReviewBillNum; _entity.PoBillNum = itm.ReviewBillNum; _entity.AsnBillNum = itm.RelationReviewNo; _entity.Site = itm.Domain; _entity.VendId = itm.UltimateName; _entity.ShipTime = itm.ReviewTime.Value; _entity.State = 1; _entity.Remark = itm.BadCouse; _entity.CreateTime = itm.CreateTime.Value; _entity.CreateUser = itm.OperName; _entity.IsDeleted = false; _entity.OperName = itm.OperName; _entity.BillType = 2; _entity.GUID = Guid.NewGuid(); db.TB_RECEIVE.AddOrUpdate(_entity); } foreach (var itm in _list) { TB_RECEIVE_QAD _entity = db.TB_RECEIVE_QAD.Where(p => p.RecvBillNum == itm.ReviewBillNum).FirstOrDefault(); if (_entity == null) { _entity = new TB_RECEIVE_QAD(); } _entity.RecvBillNum = itm.ReviewBillNum; _entity.PoBillNum = itm.ReviewBillNum; _entity.AsnBillNum = itm.RelationReviewNo; _entity.Site = itm.Domain; _entity.ErpRecvBillNum = itm.ReviewBillNum; _entity.Site = itm.Domain; _entity.VendId = itm.UltimateName; _entity.ShipTime = itm.ReviewTime.Value; _entity.State = 1; _entity.Remark = itm.BadCouse; _entity.CreateTime = itm.CreateTime.Value; _entity.CreateUser = itm.OperName; _entity.IsDeleted = false; _entity.OperName = itm.OperName; _entity.BillType = 2; _entity.Tax = "13"; _entity.GUID = Guid.NewGuid(); db.TB_RECEIVE_QAD.AddOrUpdate(_entity); } foreach (var itm in _list) { TB_PO_DETAIL _entity = db.TB_PO_DETAIL.Where(p => p.PoBillNum == itm.ReviewBillNum && p.PartCode==itm.PartCode).FirstOrDefault(); if (_entity == null) { _entity = new TB_PO_DETAIL(); } _entity.PoBillNum = itm.ReviewBillNum; _entity.PoLine = 999; _entity.BeginTime = itm.ReviewTime; _entity.EndTime = itm.ReviewTime; _entity.PartCode = itm.PartCode; _entity.ShippedQty = -1; _entity.ReceivedQty =-1; _entity.RejectQty = "-1"; _entity.Price = itm.ClaimAmount.Value; _entity.Currency = itm.Currency; _entity.PlanQty = itm.Qty.Value; _entity.PackQty = 1; _entity.TempQty = itm.Qty.Value; _entity.PoUnit = itm.Unit; _entity.LocUnit = itm.Unit; _entity.State = 0; _entity.Remark = itm.Domain; _entity.UnConv = 1; _entity.DockCode = itm.UltimateDepart; _entity.CreateTime = itm.CreateTime.Value; _entity.CreateUser = itm.OperName; _entity.IsDeleted = false; db.TB_PO_DETAIL.AddOrUpdate(_entity); } foreach (var itm in _list) { TB_PO _entity = db.TB_PO.Where(p => p.PoBillNum == itm.ReviewBillNum ).FirstOrDefault(); if (_entity == null) { _entity = new TB_PO(); } _entity.PoBillNum = itm.ReviewBillNum; _entity.ErpBillNum = itm.ReviewBillNum; _entity.VendId = itm.VendId; _entity.ModType = 3; _entity.Contacter = itm.OperName; _entity.Site = itm.Domain; _entity.Buyer = itm.OperName; _entity.BuyerPhone = itm.OperName; _entity.State = 1; _entity.Remark = "索赔单据不能操作"; _entity.BeginTime = itm.ReviewTime.Value; _entity.EndTime = itm.ReviewTime.Value; _entity.ReceivedPort = itm.UltimateDepart; _entity.CreateTime = itm.ReviewTime.Value; _entity.CreateUser = itm.OperName; _entity.UpdateTime = itm.ReviewTime.Value; _entity.UpdateUser = itm.OperName; _entity.UpdateInfo = itm.OperName; _entity.IsDeleted = false; db.TB_PO.AddOrUpdate(_entity); } } else { if (REVIEW_STATE.OPEN == p_state) { var _ls=_list.Select(p => p.ReviewBillNum).ToList(); if (_ls.Count > 0) { var _count = db.TB_INVOICE_DETAIL.Count(p => _ls.Contains(p.RecvBillNum) && p.IsDeleted==false); if (_count > 0) { _ret.MessageList.Add("索赔单信息,在发票里已经存在,不能取消索赔!"); } else { var _entityList = db.TM_HYANTOLIN_REVIEW.Where(p => p_list.Contains(p.UID)).ToList(); foreach (var itm in _entityList) { itm.State = ((int)p_state); } db.TM_HYANTOLIN_REVIEW.AddOrUpdate(_entityList.ToArray()); foreach (var itm in _list) { var rev = db.TB_RECEIVE.Where(p => p.RecvBillNum == itm.ReviewBillNum && p.Site==itm.Domain).FirstOrDefault(); var rev_detail = db.TB_RECEIVE_DETAIL.Where(p => p.RecvBillNum == itm.ReviewBillNum && p.Remark==itm.Domain).FirstOrDefault(); var qad = db.TB_RECEIVE_QAD.Where(p => p.RecvBillNum == itm.ReviewBillNum && p.Site == itm.Domain).FirstOrDefault(); var qad_detail = db.TB_RECEIVE_DETAIL_QAD.Where(p => p.RecvBillNum == itm.ReviewBillNum && p.Site == itm.Domain).FirstOrDefault(); var po = db.TB_PO.Where(p => p.PoBillNum== itm.ReviewBillNum && p.Site == itm.Domain).FirstOrDefault(); ; var po_detail = db.TB_PO_DETAIL.Where(p => p.PoBillNum == itm.ReviewBillNum && p.Remark == itm.Domain).FirstOrDefault(); if (rev != null) { db.TB_RECEIVE.Remove(rev); } if (rev_detail != null) { db.TB_RECEIVE_DETAIL.Remove(rev_detail); } if (qad != null) { db.TB_RECEIVE_QAD.Remove(qad); } if (qad_detail != null) { db.TB_RECEIVE_DETAIL_QAD.Remove(qad_detail); } if (po != null) { db.TB_PO.Remove(po); } if (po_detail != null) { db.TB_PO_DETAIL.Remove(po_detail); } } } } } } if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; LogHelper.Writlog(LogHelper.LogType.Error, typeof(TM_HYANTOLIN_REVIEW), "Save_TM_HYANTOLIN_REVIEW", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } public ResultObject Del_TM_HYANTOLIN_REVIEW(List p_entitys) { ResultObject _ret = new ResultObject(); try { using (var db = EntitiesFactory.CreateScpInstance()) { foreach (var itm in p_entitys) { db.TM_HYANTOLIN_REVIEW.Remove(itm); } if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TM_HYANTOLIN_REVIEW), "Del_TM_HYANTOLIN_REVIEW", e.Message); throw e; } return _ret; } public static ResultObject> Get_TB_CLAIM_APPEND_List(TB_CLAIM_APPEND p_entity) { ResultObject> _ret = new ResultObject>(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { IQueryable q = db.TB_CLAIM_APPEND; if (p_entity.CaimGUID!=Guid.Empty) { q = q.Where(p => p.CaimGUID==p_entity.CaimGUID); } if (!string.IsNullOrEmpty(p_entity.FileName)) { q = q.Where(p => p.FileName.Contains(p_entity.FileName)); } if (!string.IsNullOrEmpty(p_entity.Extend)) { q = q.Where(p => p.Extend.Contains(p_entity.Extend)); } if (!string.IsNullOrEmpty(p_entity.FileNameMD5)) { q = q.Where(p => p.FileNameMD5.Contains(p_entity.FileNameMD5)); } _ret.State = ReturnStatus.Succeed; _ret.Result = q.ToList(); } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_CLAIM_APPEND), "Get_TB_CLAIM_APPEND_List", e.Message); throw e; } return _ret; } public static ResultObject Save_TB_CLAIM_APPEND(List p_entitys) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { db.TB_CLAIM_APPEND.AddOrUpdate(p_entitys.ToArray()); if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_CLAIM_APPEND), "Save_TB_CLAIM_APPEND", e.Message); _ret.Result = false; _ret.ErrorList.Add(e); throw e; } return _ret; } public static ResultObject Del_TB_CLAIM_APPEND(List p_entitys) { ResultObject _ret = new ResultObject(); try { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { var _ls = p_entitys.Select(p=>p.UID).ToList(); if (_ls.Count > 0) { var _entitys=db.TB_CLAIM_APPEND.Where(p => _ls.Contains(p.UID)).ToList(); foreach (var itm in _entitys) { db.TB_CLAIM_APPEND.Remove(itm); } if (db.SaveChanges() != -1) { _ret.State = ReturnStatus.Succeed; _ret.Result = true; } else { _ret.State = ReturnStatus.Failed; _ret.Result = false; } } } } catch (Exception e) { _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(TB_CLAIM_APPEND), "Del_TB_CLAIM_APPEND", e.Message); throw e; } return _ret; } } }