From 0b2fdfb438ba2aaf6d72eb9fb65f855ec666b539 Mon Sep 17 00:00:00 2001 From: qian Date: Tue, 8 Oct 2024 13:54:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=97=E6=B1=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/SCP_INVOICE_CONTROLLER.cs | 210 ++++++++++++++++++ 北京北汽/Models/ScpEntity/V_TB_ASK.cs | 1 + .../Views/SupplierData/SCP_INVOICE.aspx.cs | 6 +- 3 files changed, 214 insertions(+), 3 deletions(-) diff --git a/北京北汽/Controller/SCP_INVOICE_CONTROLLER.cs b/北京北汽/Controller/SCP_INVOICE_CONTROLLER.cs index 98f5b27..cba7ac0 100644 --- a/北京北汽/Controller/SCP_INVOICE_CONTROLLER.cs +++ b/北京北汽/Controller/SCP_INVOICE_CONTROLLER.cs @@ -161,6 +161,57 @@ namespace CK.SCP.Controller } + /// + /// 发票管理按供应商id 地点域查单号 + /// + /// + /// + /// + /// + /// + /// + public static List Get_V_TB_INVOICE_BY_TIME_ANDENTITY(string p_begin, string p_end, string p_po, string p_asn, V_TB_INVOICE p_entity) + { + List _list = new List(); + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + + StringBuilder _builder = new StringBuilder(); + _builder.Append("SELECT DISTINCT InvcBillNum FROM TB_INVOICE_DETAIL a Inner join TB_RECEIVE B on A.RecvBillNum = B.RecvBillNum\r\n"); + _builder.AppendFormat(" WHERE 1=1 \r\n"); + if (!string.IsNullOrEmpty(p_begin)) + { + _builder.AppendFormat(" and B.ShipTime >= cast('{0}' as datetime) \r\n", p_begin); + } + if (!string.IsNullOrEmpty(p_end)) + { + _builder.AppendFormat(" and B.ShipTime <= cast('{0}' as datetime) \r\n", p_end); + } + if (!string.IsNullOrEmpty(p_po)) + { + _builder.AppendFormat(" AND A.PoBillNum='{0}' \r\n", p_po); + } + if (!string.IsNullOrEmpty(p_asn)) + { + _builder.AppendFormat(" and A.AsnBillNum='{0}' \r\n", p_asn); + } + if (!string.IsNullOrEmpty(p_entity.VendId)) + { + _builder.AppendFormat(" and B.VendId = '{0}' \r\n ",p_entity.VendId); + } + if (!string.IsNullOrEmpty(p_entity.SubSite)) + { + _builder.AppendFormat(" and B.SubSite = '{0}' \r\n ", p_entity.SubSite); + } + if (!string.IsNullOrEmpty(p_entity.Site)) + { + _builder.AppendFormat(" and B.Site = '{0}' \r\n ", p_entity.Site); + } + _list = db.Database.SqlQuery(_builder.ToString()).ToList(); + + } + return _list; + } @@ -190,12 +241,171 @@ namespace CK.SCP.Controller { _builder.AppendFormat(" and A.AsnBillNum='{0}' \r\n",p_asn); } + _list =db.Database.SqlQuery(_builder.ToString()).ToList(); } return _list; } + /// + /// 查询等于供应商的发票 + /// + /// + /// + public static void Get_V_TB_INVOICE_List_ByVendID(V_TB_INVOICE p_entity, Action>> p_action) + { + ResultObject> _ret = new ResultObject>(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + IQueryable q = db.V_TB_INVOICE; + if (p_entity.UID != 0) + { + q = q.Where(p => p.UID == p_entity.UID); + } + if (!string.IsNullOrEmpty(p_entity.InvcBillNum)) + { + q = q.Where(p => p.InvcBillNum.Contains(p_entity.InvcBillNum)); + } + if (!string.IsNullOrEmpty(p_entity.VendId)) + { + q = q.Where(p => p.VendId == p_entity.VendId); + } + if (!string.IsNullOrEmpty(p_entity.VendName)) + { + q = q.Where(p => p.VendName.Contains(p_entity.VendName)); + } + + if (!string.IsNullOrEmpty(p_entity.InvoiceNum)) + { + q = q.Where(p => p.InvoiceNum.Contains(p_entity.InvoiceNum)); + } + if (p_entity.BillStateList != null && p_entity.BillStateList.Count > 0) + { + q = q.Where(p => p_entity.BillStateList.Contains(p.State)); + } + if (!string.IsNullOrEmpty(p_entity.Site)) + { + q = q.Where(p => p.Site == p_entity.Site); + } + else if (p_entity.State != 0) + { + q = q.Where(p => p.State == p_entity.State); + } + if (!string.IsNullOrEmpty(p_entity.Remark)) + { + q = q.Where(p => p.Remark.Contains(p_entity.Remark)); + } + if (p_entity.Tax != null) + { + q = q.Where(p => p.Tax == p_entity.Tax); + } + if (p_entity.TaxAmount != null) + { + q = q.Where(p => p.TaxAmount == p_entity.TaxAmount); + } + if (p_entity.Amount != null) + { + q = q.Where(p => p.Amount == p_entity.Amount); + } + if (p_entity.Total != null) + { + q = q.Where(p => p.Total == p_entity.Total); + } + if (!string.IsNullOrEmpty(p_entity.ExpressNum)) + { + q = q.Where(p => p.ExpressNum.Contains(p_entity.ExpressNum)); + } + if (p_entity.UserInAddress != null && p_entity.UserInAddress.Count > 0) + { + q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); + } + + if (!string.IsNullOrEmpty(p_entity.CreateUser)) + { + q = q.Where(p => p.CreateUser.Contains(p_entity.CreateUser)); + } + if (p_entity.InvoiceList != null && p_entity.InvoiceList.Count > 0) + { + q = q.Where(p => p_entity.InvoiceList.Contains(p.InvcBillNum)); + } + if (p_entity.EndTimeb != null) + { + q = q.Where(p => p.EndTimeb == p_entity.EndTimeb); + } + if (p_entity.StartTime != null) + { + q = q.Where(p => p.StartTime == p_entity.StartTime); + } + if (!string.IsNullOrEmpty(p_entity.SubSite)) + { + q = q.Where(p => p.SubSite == p_entity.SubSite); + } + // q = q.Where(p => p_entity.IsRed == p.IsRed); + + _ret.State = ReturnStatus.Succeed; + _ret.Result = q; + p_action(_ret); + } + } + catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 + { + var sb = new StringBuilder(); + + foreach (var error in dbEx.EntityValidationErrors.ToList()) + { + + error.ValidationErrors.ToList().ForEach(i => + { + sb.AppendFormat("表:{0},字段:{1},信息:{2}\r\n", error.Entry.Entity.GetType().Name, i.PropertyName, i.ErrorMessage); + }); + } + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(dbEx); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List_ByVendID", sb.ToString()); + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); + } + catch (OptimisticConcurrencyException ex)//并发冲突异常 + { + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List_ByVendID", ex.ToString()); + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); + } + catch (ScpException ex) + { + + + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(ex); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List_ByVendID", ex.ToString()); + + if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) + { + var inner = (UpdateException)ex.InnerException; + + + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); + } + else + { + if (ex.InnerException != null) throw ex.InnerException; + } + } + catch (Exception e) + { + _ret.State = ReturnStatus.Failed; + _ret.ErrorList.Add(e); + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_INVOICE_CONTROLLER), "Get_V_TB_INVOICE_List_ByVendID", e.Message); + throw e; + } + + } + + public static void Get_V_TB_INVOICE_List(V_TB_INVOICE p_entity, Action>> p_action) { diff --git a/北京北汽/Models/ScpEntity/V_TB_ASK.cs b/北京北汽/Models/ScpEntity/V_TB_ASK.cs index 15ffd0a..844d802 100644 --- a/北京北汽/Models/ScpEntity/V_TB_ASK.cs +++ b/北京北汽/Models/ScpEntity/V_TB_ASK.cs @@ -82,6 +82,7 @@ namespace CK.SCP.Models.ScpEntity public string PartCode { get; set; } [NotMapped] public string PartCodeDesc { get; set; } + public string Extend1 { get; set; } #endregion } } diff --git a/北京北汽/SCP/Views/SupplierData/SCP_INVOICE.aspx.cs b/北京北汽/SCP/Views/SupplierData/SCP_INVOICE.aspx.cs index c817559..e3d72f5 100644 --- a/北京北汽/SCP/Views/SupplierData/SCP_INVOICE.aspx.cs +++ b/北京北汽/SCP/Views/SupplierData/SCP_INVOICE.aspx.cs @@ -42,7 +42,7 @@ namespace SCP.Views.SupplierData public void BindInvoice() { SearchInvoice(ret => - { + { Grid_V_TB_INVOICE.RecordCount = ret.Count(); ret = SortAndPage(ret, Grid_V_TB_INVOICE); //ret.ToList().ForEach(itm => @@ -85,12 +85,12 @@ namespace SCP.Views.SupplierData { _entity.SubSite = CurrentUser.UserdSite; } - _entity.InvoiceList = SCP_INVOICE_CONTROLLER.Get_V_TB_INVOICE_BY_TIME(DP_CreateTime1.Text, DP_CreateTime2.Text,TXT_PO.Text,TXT_ASN.Text); + _entity.InvoiceList = SCP_INVOICE_CONTROLLER.Get_V_TB_INVOICE_BY_TIME_ANDENTITY(DP_CreateTime1.Text, DP_CreateTime2.Text,TXT_PO.Text,TXT_ASN.Text, _entity); if (string.IsNullOrEmpty(_entity.VendId)) { return; } - SCP_INVOICE_CONTROLLER.Get_V_TB_INVOICE_List(_entity, (ret) => + SCP_INVOICE_CONTROLLER.Get_V_TB_INVOICE_List_ByVendID(_entity, (ret) => { if (ret.State == ReturnStatus.Succeed) {