diff --git a/Controller/SCP_MPO_CONTROLLER.cs b/Controller/SCP_MPO_CONTROLLER.cs index 998c5c2..55efac1 100644 --- a/Controller/SCP_MPO_CONTROLLER.cs +++ b/Controller/SCP_MPO_CONTROLLER.cs @@ -135,6 +135,10 @@ namespace CK.SCP.Controller using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { IQueryable q = db.V_TB_MPO_DETAIL; + if (!string.IsNullOrWhiteSpace(p_entity.Ctype)) + { + q = q.Where(p => p.Ctype == p_entity.Ctype); + } if (p_entity.purdocnolist != null && p_entity.purdocnolist.Count > 0) { q = q.Where(p => p_entity.purdocnolist.Contains(p.PurdocNO)); diff --git a/Models/CK.SCP.Models.csproj b/Models/CK.SCP.Models.csproj index 8c4e597..bdf2ed7 100644 --- a/Models/CK.SCP.Models.csproj +++ b/Models/CK.SCP.Models.csproj @@ -500,6 +500,7 @@ + diff --git a/Models/UniApiEntity/UniApiEntities.cs b/Models/UniApiEntity/UniApiEntities.cs index a5a39c6..112322a 100644 --- a/Models/UniApiEntity/UniApiEntities.cs +++ b/Models/UniApiEntity/UniApiEntities.cs @@ -55,6 +55,7 @@ namespace CK.SCP.Models.UniApiEntity public virtual DbSet PURReplenishQty { get; set; } public virtual DbSet xxwms_review_det { get; set; } public virtual DbSet PURSubcontractors { get; set; } + public virtual DbSet xxDiMaxes_Order { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() diff --git a/Models/UniApiEntity/xxDiMaxes_Order.cs b/Models/UniApiEntity/xxDiMaxes_Order.cs new file mode 100644 index 0000000..518c23b --- /dev/null +++ b/Models/UniApiEntity/xxDiMaxes_Order.cs @@ -0,0 +1,14 @@ +using System; +using System.ComponentModel.DataAnnotations; +namespace CK.SCP.Models.UniApiEntity +{ + public partial class xxDiMaxes_Order + { + [Key] + public int UID { get; set; } + public string PURDOCNO { get; set; } + public int DI_BATCHNO { get; set; } + public string PURDOCITEMNO { get; set; } + public DateTime CREATEDDATE { get; set; } + } +} diff --git a/Models/UniApiEntity/xxDiMaxes_Po.cs b/Models/UniApiEntity/xxDiMaxes_Po.cs index c4008b7..dfae6a5 100644 --- a/Models/UniApiEntity/xxDiMaxes_Po.cs +++ b/Models/UniApiEntity/xxDiMaxes_Po.cs @@ -5,7 +5,7 @@ namespace CK.SCP.Models.UniApiEntity { [Key] public int UID { get; set; } - public int Di_Batchno { get; set; } + public int Di_Batchno { get; set; } } } diff --git a/SCP/Views/PlanData/SCP_PO_MATERIAL.aspx.cs b/SCP/Views/PlanData/SCP_PO_MATERIAL.aspx.cs index de02700..0b568d5 100644 --- a/SCP/Views/PlanData/SCP_PO_MATERIAL.aspx.cs +++ b/SCP/Views/PlanData/SCP_PO_MATERIAL.aspx.cs @@ -152,6 +152,7 @@ namespace SCP.Views.PlanData {"PURDOCITEMNO","行号" }, { "PurchaseReqNO", "申请单号" }, { "ProposerDesc", "申请人" }, + {"State_DESC","状态" }, { "OASTATUS", "OA审批状态" }, { "MtlNO", "物料号" }, { "Shorttext", "物料描述" }, diff --git a/SCP/Views/SupplierData/SCP_MPO_DETAIL.aspx.cs b/SCP/Views/SupplierData/SCP_MPO_DETAIL.aspx.cs index 9109699..cb5adc3 100644 --- a/SCP/Views/SupplierData/SCP_MPO_DETAIL.aspx.cs +++ b/SCP/Views/SupplierData/SCP_MPO_DETAIL.aspx.cs @@ -33,6 +33,7 @@ namespace SCP.Views.SupplierData V_TB_MPO_DETAIL _entity = new V_TB_MPO_DETAIL(); string purdocnolist =Request["PurdocNO"]; _entity.purdocnolist = purdocnolist.Split(',').ToList(); + _entity.Ctype = "N"; SCP_MPO_CONTROLLER.Get_V_TB_MPO_DETAIL_List(_entity,(_ret)=> { if (_ret.State == ReturnStatus.Succeed) { diff --git a/SCP/Views/SupplierData/SCP_PO_MATERIAL.aspx.cs b/SCP/Views/SupplierData/SCP_PO_MATERIAL.aspx.cs index 38f8090..5e76944 100644 --- a/SCP/Views/SupplierData/SCP_PO_MATERIAL.aspx.cs +++ b/SCP/Views/SupplierData/SCP_PO_MATERIAL.aspx.cs @@ -127,6 +127,7 @@ namespace SCP.Views.SupplierData { "PurdocNO", "订单号" }, { "PurchaseReqNO", "申请单号" }, { "ProposerDesc", "申请人" }, + {"State_DESC","状态" }, { "OASTATUS", "OA审批状态" }, { "MtlNO", "物料号" }, { "Shorttext", "物料描述" }, @@ -151,11 +152,18 @@ namespace SCP.Views.SupplierData { int[] selections = Grid_V_TB_MPO.SelectedRowIndexArray; List NOList = new List(); + List order = new List(); if (selections.Count() > 0) { foreach (int rowIndex in selections) { NOList.Add(Grid_V_TB_MPO.DataKeys[rowIndex][1] as string); + order.Add(Grid_V_TB_MPO.DataKeys[rowIndex][12] as string); + } + if (order.Contains("D")) + { + Alert.Show("请选择未被作废的数据进行查看明细"); + return; } string BillNum = String.Join(",", NOList); string url = string.Format("../SupplierData/SCP_MPO_DETAIL.aspx?PurdocNO={0}", BillNum); diff --git a/UniApiGroup/Controller/OdbcApiQadController.cs b/UniApiGroup/Controller/OdbcApiQadController.cs index c211d3e..6a56753 100644 --- a/UniApiGroup/Controller/OdbcApiQadController.cs +++ b/UniApiGroup/Controller/OdbcApiQadController.cs @@ -927,7 +927,6 @@ namespace CK.SCP.GrupUniApi.Controller var maxlist1 = new xxDiMaxes_Po { Di_Batchno = qadPoNbr.DI_BATCHNO, - }; xxMaxbath.Add(maxlist1); @@ -1638,50 +1637,64 @@ namespace CK.SCP.GrupUniApi.Controller { try { - var max = idb.xxDiMaxes_Po.OrderByDescending(r => r.Di_Batchno).FirstOrDefault(); - int a = max.Di_Batchno; - var FATCTORY = sdb.TB_FACTORY.FirstOrDefault(); - // ȡһ϶ - DataTable b = GetGeneralMaterialOrder(a, FATCTORY.FactoryId); - List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); + // ȡһ һ϶ + DataTable b = GetGeneralMaterialOrder(); + List orderlist = ChangKeTec.Utils.ListHelper.DataTableToList(b); + Listmaxes_Orders = ChangKeTec.Utils.ListHelper.DataTableToList(b); + DateTime time = DateTime.Now.AddYears(-1); + var hisList = idb.xxDiMaxes_Order.Where(q=>q.CREATEDDATE> time).ToList(); + // ȡʷڵ + var expectedList = maxes_Orders.Where(x=> !hisList.Any(e=>e.DI_BATCHNO == x.DI_BATCHNO && e.PURDOCNO == x.PURDOCNO && e.PURDOCITEMNO ==x.PURDOCITEMNO)).ToList(); + if (expectedList.Count() == 0) + { + return; + } + List list = new List(); + foreach (var exitem in expectedList) + { + var selectList = orderlist.Where(q => q.PURDOCNO == exitem.PURDOCNO && q.DI_BATCHNO == exitem.DI_BATCHNO && q.PURDOCITEMNO == exitem.PURDOCITEMNO).ToList(); + list.AddRange(selectList); + } + var PoList = new List(); var PoDetailList = new List(); var InPoList = new List(); var InPoDetailList = new List(); - var xxMaxbath = new List(); + var xxMaxbath = new List(); var emails = new List(); var Dlist = list.Where(p => p.CTYPE == "D"); - var Ilist = list.Where(p => p.CTYPE != "D").GroupBy(p => p.PURDOCNO).Distinct(); + var Ilist = list.Where(p => p.CTYPE == "I").GroupBy(p => p.PURDOCNO).Distinct(); var _Dlist = Dlist.GroupBy(p => p.PURDOCNO).Distinct(); string wwadres= sdb.TA_CONFIG.FirstOrDefault(q => q.ParamName == "ӿʼַ").ParamValue; foreach (var DeleteItem in _Dlist) { var _list = DeleteItem.ToList(); var _entity = _list.First(); - // - //var MATERIALORDERList = sdb.TB_MATERIALORDERS.Where(q => q.PurdocNO == _entity.PURDOCNO).ToList(); - //MATERIALORDERList.ForEach(p => - //{ - // p.Ctype = "D" ; - // p.AcceptStatus = (int)GeneralMaterialOrderState.Cancel; - // PoList.Add(p); - //}); foreach (var Ditem in _list) { - var MATERIALORDERDETAILList = sdb.TB_MATERIALORDERS_DETAIL.Where(q => q.PurdocNO == Ditem.PURDOCNO && q.PURDOCITEMNO == Ditem.PURDOCITEMNO).ToList(); + var MATERIALORDERDETAILList = sdb.TB_MATERIALORDERS_DETAIL.Where(q => q.PurdocNO == Ditem.PURDOCNO).ToList(); + if (MATERIALORDERDETAILList.Count() == 0) + { + continue; + } MATERIALORDERDETAILList.ForEach(p => { - p.Ctype = "D"; - p.AcceptStatus = (int)GeneralMaterialOrderState.Cancel; - PoDetailList.Add(p); + if (p.PURDOCITEMNO == Ditem.PURDOCITEMNO) + { + p.Ctype = Ditem.CTYPE; + p.AcceptStatus = (int)GeneralMaterialOrderState.Cancel; + PoDetailList.Add(p); + } }); var valueType = MATERIALORDERDETAILList.Select(q => q.Ctype).Distinct().ToList(); var type = valueType.FirstOrDefault(); + // ӱȫdΨһ if (valueType.Count() == 1 && type =="D") { var MATERIALORDERList = sdb.TB_MATERIALORDERS.Where(q => q.PurdocNO == Ditem.PURDOCNO).ToList(); MATERIALORDERList.ForEach(p => { + p.AcceptStatus = (int)GeneralMaterialOrderState.Cancel; p.Ctype = "D"; PoList.Add(p); }); @@ -1712,14 +1725,27 @@ namespace CK.SCP.GrupUniApi.Controller emails.Add(email); #endregion } + else //½״̬ + { + var MATERIALORDERList = sdb.TB_MATERIALORDERS.Where(q => q.PurdocNO == Ditem.PURDOCNO).ToList(); + MATERIALORDERList.ForEach(p => + { + p.Ctype = "N"; + p.AcceptStatus = (int)GeneralMaterialOrderState.New; + PoList.Add(p); + }); + } + var maxlist1 = new xxDiMaxes_Order + { + DI_BATCHNO = Ditem.DI_BATCHNO, + PURDOCNO = Ditem.PURDOCNO, + PURDOCITEMNO = Ditem.PURDOCITEMNO, + CREATEDDATE = Ditem.CREATEDDATE, + }; + xxMaxbath.Add(maxlist1); } - var maxlist1 = new xxDiMaxes_Po - { - Di_Batchno = _entity.DI_BATCHNO, - - }; - xxMaxbath.Add(maxlist1); + } foreach (var InsertItem in Ilist) @@ -1766,6 +1792,14 @@ namespace CK.SCP.GrupUniApi.Controller orderdetail.StoreLocation = initem.STORELOCATION; orderdetail.PURDOCITEMNO = initem.PURDOCITEMNO; InPoDetailList.Add(orderdetail); + var maxlist1 = new xxDiMaxes_Order + { + DI_BATCHNO = initem.DI_BATCHNO, + PURDOCNO = initem.PURDOCNO, + PURDOCITEMNO = initem.PURDOCITEMNO, + CREATEDDATE = initem.CREATEDDATE, + }; + xxMaxbath.Add(maxlist1); } #endregion #region @@ -1793,19 +1827,14 @@ namespace CK.SCP.GrupUniApi.Controller } emails.Add(email); #endregion - var maxlist1 = new xxDiMaxes_Po - { - Di_Batchno = inentity.DI_BATCHNO, - - }; - xxMaxbath.Add(maxlist1); + } sdb.BulkInsert(emails);// һ϶ʼ sdb.BulkInsert(InPoList);// Ӳ sdb.BulkInsert(InPoDetailList);// ϸ item.Remark = ((int)UniApiState.ɹ).ToString(); item.MaxdibatchNO = item.MaxdibatchNO + list.Count; - idb.xxDiMaxes_Po.AddOrUpdate(xxMaxbath.ToArray()); + idb.xxDiMaxes_Order.AddOrUpdate(xxMaxbath.ToArray()); // sdb.TB_MATERIALORDERS.BulkUpdate(PoList); sdb.TB_MATERIALORDERS_DETAIL.BulkUpdate(PoDetailList); diff --git a/UniApiGroup/Controller/PoBillNumcontroller.cs b/UniApiGroup/Controller/PoBillNumcontroller.cs index 87df35b..9f09639 100644 --- a/UniApiGroup/Controller/PoBillNumcontroller.cs +++ b/UniApiGroup/Controller/PoBillNumcontroller.cs @@ -72,10 +72,10 @@ namespace CK.SCP.UniApi.Controller /// /// /// - public static DataTable GetGeneralMaterialOrder(int di_d, string site) + public static DataTable GetGeneralMaterialOrder() { string Sql = $"select * from PURStockBill"; - Sql += $" Where ((ordType='CY02'AND APPROVALSTATUS = '4') OR (ordType='CY04' AND APPROVALSTATUS = '4') OR (ordType='CY05' AND APPROVALSTATUS = '4') OR ( ordType='CY08'AND APPROVALSTATUS = '4' ) OR (ordType='CY09' AND APPROVALSTATUS = '4') ) and plant='W21' and di_batchNO>{di_d}"; + Sql += $" Where ((ordType='CY02'AND APPROVALSTATUS = '4') OR (ordType='CY04' AND APPROVALSTATUS = '4') OR (ordType='CY05' AND APPROVALSTATUS = '4') OR ( ordType='CY08'AND APPROVALSTATUS = '4' ) OR (ordType='CY09' AND APPROVALSTATUS = '4') ) and plant='W21' and docDate > add_months(trunc(SYSDATE), -12)"; var dt_Part = DBControllerByOracle.GetDataTable(Sql); return dt_Part; } @@ -83,7 +83,7 @@ namespace CK.SCP.UniApi.Controller public class GeneralMaterialOrder { public int PURSTOCKBILLID { get; set; } - public DateTime? CREATEDDATE { get; set; } + public DateTime CREATEDDATE { get; set; } public decimal? NETVALUE { get; set; } public string PURGRP { get; set; } public string ORDTYPE { get; set; }