/// <summary> /// 获取订单 /// </summary> /// <param name="search">发票设置必传参数,AppIds,UserId</param> /// <returns></returns> public ResultDTO <InvoiceSettingDTO> GetInvoiceSettingExt(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { if (search == null || search.AppIds == null || !search.AppIds.Any() || search.UserId == Guid.Empty) { return new ResultDTO <InvoiceSettingDTO>() { ResultCode = 1, Message = "参数为空" } } ; InvoiceSettingDTO resultDto = new InvoiceSettingDTO() { }; var apps = AppExtension.ObjectSet() .Where(c => search.AppIds.Contains(c.Id)).ToList(); //.Select(a => new AppExtension // { // Id = a.Id, // InvoiceValues = a.InvoiceValues, // InvoiceDefault = a.InvoiceDefault // }).ToList(); AppExtension tempApp = new AppExtension() { InvoiceValues = 7, InvoiceDefault = 7 }; foreach (var appId in search.AppIds) { int appInvoiceValues = 1; int appInvoiceDefault = 1; var app = apps.FirstOrDefault(c => c.Id == appId); if (app != null) { appInvoiceValues = app.InvoiceValues; appInvoiceDefault = app.InvoiceDefault; } tempApp.InvoiceValues = tempApp.InvoiceValues & appInvoiceValues; tempApp.InvoiceDefault = tempApp.InvoiceDefault & appInvoiceDefault; } resultDto.InvoiceDefault = (InvoiceCategoryEnum)tempApp.InvoiceDefault; resultDto.IsOrdinaryInvoice = tempApp.IsOrdinaryInvoice(); resultDto.IsElectronicInvoice = tempApp.IsElectronicInvoice(); resultDto.IsVATInvoice = tempApp.IsVATInvoice(); resultDto.IsVatInvoiceProof = VatInvoiceProof.ObjectSet().Count(c => c.Id == search.UserId) > 0; return(new ResultDTO <InvoiceSettingDTO> { Data = resultDto }); }
/// <summary> /// 获取导出的电子发票的详细数据 /// </summary> public List <ElectronicInvoiceDTO> GetInvoiceExportDetail(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { //定义返回值 List <ElectronicInvoiceDTO> result; try { //调用代理方法 result = base.Channel.GetInvoiceExportDetail(search); } catch { //抛异常 throw; } finally { //关链接 ChannelClose(); } //返回结果 return(result); }
/// <summary> /// 查询发票信息 /// </summary> /// <param name="search">查询类</param> /// <returns>结果</returns> public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceResultDTO> GetInvoiceInfoList(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { base.Do(); return(this.Command.GetInvoiceInfoList(search)); }
/// <summary> /// 获取导出的电子发票的详细数据 /// </summary> public List <ElectronicInvoiceDTO> GetInvoiceExportDetail(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { base.Do(); return(this.Command.GetInvoiceExportDetail(search)); }
/// <summary> /// 获取订单 /// </summary> /// <param name="search">发票设置必传参数,AppIds,UserId</param> /// <returns></returns> public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSettingDTO> GetInvoiceSetting(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { base.Do(); return(this.GetInvoiceSettingExt(search)); }
public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSettingDTO> GetInvoiceSetting(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { //定义返回值 Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSettingDTO> result; int xx = 0; xx++; try { //调用代理方法 result = base.Channel.GetInvoiceSetting(search); } catch { //抛异常 throw; } finally { //关链接 ChannelClose(); } //返回结果 return(result); }
/// <summary> /// 获取导出的电子发票的详细数据 /// </summary> public List <ElectronicInvoiceDTO> GetInvoiceExportDetailExt(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { var query = from t1 in Invoice.ObjectSet() join t2 in CommodityOrder.ObjectSet() on t1.CommodityOrderId equals t2.Id join dataS in CommodityOrderService.ObjectSet() on t1.CommodityOrderId equals dataS.Id into tempS from tbS in tempS.DefaultIfEmpty() where t2.AppId == search.AppId && t2.State > 0 && t1.State > 0 && t2.State != 16 && t2.State != 17 && t2.IsDel != 2 && t2.IsDel != 3 select new { t1, t2.Id, CommodityOrder = new InvoiceCommodityOrderInfo() { State = t2.State, Code = t2.Code, PaymentTime = t2.PaymentTime.Value, ReceiptUserName = t2.ReceiptUserName, ReceiptPhone = t2.ReceiptPhone, ReceiptAddress = t2.ReceiptAddress, RealPrice = t2.RealPrice.Value, Payment = t2.Payment, GoldPrice = t2.GoldPrice, GoldCoupon = t2.GoldCoupon, Province = t2.Province, City = t2.City, District = t2.District, StateAfterSales = tbS.State == null ? -1 : tbS.State, SelfTakeFlag = t2.SelfTakeFlag }, model = new ElectronicInvoiceDTO() { AppId = t2.AppId, Code = t2.Code, ReceiptEmail = t1.ReceiptEmail, ReceiptPhone = t1.ReceiptPhone, InvoiceTitle = t1.InvoiceTitle, BuyerCode = t1.Code, ReceiptAddress = (t2.Province + t2.City + t2.District + t2.ReceiptAddress), RealPrice = t2.RealPrice, Freight = t2.Freight } }; if (search.Category > -1) { query = query.Where(p => p.t1.Category == search.Category); } if (search.State > -1) { query = query.Where(p => p.t1.State == search.State); } if (!string.IsNullOrWhiteSpace(search.CommodityOrderState) && search.CommodityOrderState != "null" && search.CommodityOrderState != "-1") { if (search.CommodityOrderState.Contains(",")) { if (search.CommodityOrderState == "8,9,10,12,14") //退款中 { List <int> beforeState = new List <int>() { 8, 9, 10, 12, 14 }; List <int> afterState = new List <int>() { 5, 10, 12 }; query = query.Where(p => beforeState.Contains(p.CommodityOrder.State) || afterState.Contains(p.CommodityOrder.StateAfterSales)); } else { int[] arrystate = Array.ConvertAll <string, int>(search.CommodityOrderState.Split(','), s => int.Parse(s)); //等发货且自提 if (arrystate.Contains(1) && arrystate.Contains(99)) { int[] exceptTmp = new int[] { 99 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State)); } else if (arrystate.Contains(1)) { if (arrystate.Contains(11)) { int[] exceptTmp = new int[] { 1, 11 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 0)); } else { int[] exceptTmp = new int[] { 1 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || (a.CommodityOrder.State == 1 && a.CommodityOrder.SelfTakeFlag == 0)); } } else if (arrystate.Contains(99)) { int[] exceptTmp = new int[] { 99 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 1)); } else { query = query.Where(a => arrystate.Contains(a.CommodityOrder.State)); } } } else { if (search.CommodityOrderState != "-1" && search.CommodityOrderState != null && search.CommodityOrderState != "") { int _state = int.Parse(search.CommodityOrderState); //待发货的 if (_state == 1) { query = query.Where(n => n.CommodityOrder.State == _state && n.CommodityOrder.SelfTakeFlag == 0); } //待自提的 else if (_state == 99) { query = query.Where(n => (n.CommodityOrder.State == 1 || n.CommodityOrder.State == 11) && n.CommodityOrder.SelfTakeFlag == 1); } else if (search.CommodityOrderState == "3") //交易成功 { query = query.Where(n => n.CommodityOrder.State == 3 && (n.CommodityOrder.StateAfterSales == 3 || n.CommodityOrder.StateAfterSales == 15 || n.CommodityOrder.StateAfterSales == -1)); } else if (search.CommodityOrderState == "7") { query = query.Where(n => n.CommodityOrder.State == 7 || n.CommodityOrder.StateAfterSales == 7); } else { query = query.Where(n => n.CommodityOrder.State == _state); } } } } if (!string.IsNullOrWhiteSpace(search.SeacrhContent)) { query = query.Where(p => (p.CommodityOrder.Code.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptPhone.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptUserName.Contains(search.SeacrhContent) || p.t1.InvoiceTitle.Contains(search.SeacrhContent))); } List <ElectronicInvoiceDTO> objlist = new List <ElectronicInvoiceDTO>(); foreach (var item in query) { var serarch = from t1 in OrderItem.ObjectSet() join t2 in Commodity.ObjectSet() on t1.CommodityId equals t2.Id where (t1.CommodityOrderId == item.Id) select new { t1.RealPrice, t1.Name, t1.Number, t2.TaxClassCode, t2.No_Code, t2.CostPrice, t2.TaxRate, t2.InputRax }; ElectronicInvoiceDTO model = new ElectronicInvoiceDTO(); if (!string.IsNullOrEmpty(item.model.Code)) { model.Code = "jh" + item.model.Code; } else { model.Code = null; } model.AppId = item.model.AppId; model.ReceiptEmail = item.model.ReceiptEmail; model.ReceiptPhone = item.model.ReceiptPhone; model.InvoiceTitle = item.model.InvoiceTitle; model.BuyerCode = item.model.BuyerCode; model.ReceiptAddress = item.model.ReceiptAddress; model.BuyerPhone = item.model.BuyerPhone; model.BuyerBankNumber = item.model.BuyerBankNumber; model.Specifications = item.model.Specifications; model.ProjectUnit = item.model.ProjectUnit; model.TallageMark = 1; //含税标志固定为1 model.RealPrice = item.model.RealPrice; model.TaxRate = 0.16; //税率固定为0.17 model.Remark = item.model.Remark; model.InvoicelineProperty = 0; //发票行性质国定为0 model.PolicyMark = 0; //优惠政策国定为0 model.ZeroTaxRateMark = item.model.ZeroTaxRateMark; model.SpecialParticular = item.model.SpecialParticular; model.Freight = item.model.Freight; if (serarch.Count() > 0) { List <SmallInvoiceDTO> objInvoice = new List <SmallInvoiceDTO>(); foreach (var _item in serarch.ToList()) { SmallInvoiceDTO entity = new SmallInvoiceDTO(); entity.Price = _item.RealPrice; entity.Name = _item.Name; entity.Number = _item.Number; entity.TaxClassCode = _item.TaxClassCode; //如果商品编号不为空截取0前面的数据 if (!string.IsNullOrWhiteSpace(_item.TaxClassCode)) { entity.No_Code = _item.TaxClassCode.TrimEnd(new char[] { '0' }); } if (string.IsNullOrWhiteSpace(_item.CostPrice.ToString())) { entity.CostPrice = 0; entity.TaxRate = _item.TaxRate; } else { entity.CostPrice = _item.CostPrice; } objInvoice.Add(entity); } model.SmallInvoice = objInvoice; } objlist.Add(model); } return(objlist); }
/// <summary> /// 查询发票信息 /// </summary> /// <param name="search">查询类</param> /// <returns>结果</returns> public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceResultDTO> GetInvoiceInfoListExt(Jinher.AMP.BTP.Deploy.CustomDTO.InvoiceSearchDTO search) { if (search == null || search.AppId == Guid.Empty || search.PageIndex < 0 || search.PageSize < 0) { return(new ResultDTO <InvoiceResultDTO>() { ResultCode = 1, Message = "参数不能为空" }); } var result = new ResultDTO <InvoiceResultDTO>(); result.Data = new InvoiceResultDTO(); var query = from invoice in Invoice.ObjectSet() join commodityOrder in CommodityOrder.ObjectSet() on invoice.CommodityOrderId equals commodityOrder.Id join dataS in CommodityOrderService.ObjectSet() on invoice.CommodityOrderId equals dataS.Id into tempS from tbS in tempS.DefaultIfEmpty() where commodityOrder.AppId == search.AppId && commodityOrder.State > 0 && invoice.State > 0 && commodityOrder.State != 16 && commodityOrder.State != 17 && commodityOrder.IsDel != 2 && commodityOrder.IsDel != 3 select new { Invoice = invoice, CommodityOrder = new InvoiceCommodityOrderInfo() { State = commodityOrder.State, Code = commodityOrder.Code, PaymentTime = commodityOrder.PaymentTime.Value, ReceiptUserName = commodityOrder.ReceiptUserName, ReceiptPhone = commodityOrder.ReceiptPhone, ReceiptAddress = commodityOrder.ReceiptAddress, RealPrice = commodityOrder.RealPrice.Value, Payment = commodityOrder.Payment, GoldPrice = commodityOrder.GoldPrice, GoldCoupon = commodityOrder.GoldCoupon, Province = commodityOrder.Province, City = commodityOrder.City, District = commodityOrder.District, StateAfterSales = tbS.State == null ? -1 : tbS.State, SelfTakeFlag = commodityOrder.SelfTakeFlag } }; if (search.Category > -1) { query = query.Where(t => t.Invoice.Category == search.Category); } if (search.State > -1) { query = query.Where(t => t.Invoice.State == search.State); } if (!string.IsNullOrWhiteSpace(search.CommodityOrderState) && search.CommodityOrderState != "null" && search.CommodityOrderState != "-1") { if (search.CommodityOrderState.Contains(",")) { if (search.CommodityOrderState == "8,9,10,12,14") //退款中 { List <int> beforeState = new List <int>() { 8, 9, 10, 12, 14 }; List <int> afterState = new List <int>() { 5, 10, 12 }; query = query.Where(n => beforeState.Contains(n.CommodityOrder.State) || afterState.Contains(n.CommodityOrder.StateAfterSales)); } else { int[] arrystate = Array.ConvertAll <string, int>(search.CommodityOrderState.Split(','), s => int.Parse(s)); //等发货且自提 if (arrystate.Contains(1) && arrystate.Contains(99)) { int[] exceptTmp = new int[] { 99 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State)); } else if (arrystate.Contains(1)) { if (arrystate.Contains(11)) { int[] exceptTmp = new int[] { 1, 11 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 0)); } else { int[] exceptTmp = new int[] { 1 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || (a.CommodityOrder.State == 1 && a.CommodityOrder.SelfTakeFlag == 0)); } } else if (arrystate.Contains(99)) { int[] exceptTmp = new int[] { 99 }; int[] arrystateTmp = arrystate.Except(exceptTmp).ToArray(); query = query.Where(a => arrystateTmp.Contains(a.CommodityOrder.State) || ((a.CommodityOrder.State == 1 || a.CommodityOrder.State == 11) && a.CommodityOrder.SelfTakeFlag == 1)); } else { query = query.Where(a => arrystate.Contains(a.CommodityOrder.State)); } } } else { if (search.CommodityOrderState != "-1" && search.CommodityOrderState != null && search.CommodityOrderState != "") { int _state = int.Parse(search.CommodityOrderState); //待发货的 if (_state == 1) { query = query.Where(n => n.CommodityOrder.State == _state && n.CommodityOrder.SelfTakeFlag == 0); } //待自提的 else if (_state == 99) { query = query.Where(n => (n.CommodityOrder.State == 1 || n.CommodityOrder.State == 11) && n.CommodityOrder.SelfTakeFlag == 1); } else if (search.CommodityOrderState == "3") //交易成功 { query = query.Where(n => n.CommodityOrder.State == 3 && (n.CommodityOrder.StateAfterSales == 3 || n.CommodityOrder.StateAfterSales == 15 || n.CommodityOrder.StateAfterSales == -1)); } else if (search.CommodityOrderState == "7") { query = query.Where(n => n.CommodityOrder.State == 7 || n.CommodityOrder.StateAfterSales == 7); } else { query = query.Where(n => n.CommodityOrder.State == _state); } //countquery = countquery.Where(n => n.State == _state); } } } if (!string.IsNullOrWhiteSpace(search.SeacrhContent)) { //if (System.Text.RegularExpressions.Regex.IsMatch(search.SeacrhContent, "^[0-9]+$")) //{ // if (search.SeacrhContent.Length>11) // { // query = query.Where(p => p.CommodityOrder.Code.Contains(search.SeacrhContent)); // } // else // { // query = query.Where(p => p.CommodityOrder.ReceiptPhone.Contains(search.SeacrhContent)); // } //} //else //{ // query = query.Where(p => p.CommodityOrder.ReceiptUserName.Contains(search.SeacrhContent)); //} query = query.Where(p => (p.CommodityOrder.Code.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptPhone.Contains(search.SeacrhContent) || p.CommodityOrder.ReceiptUserName.Contains(search.SeacrhContent) || p.Invoice.InvoiceTitle.Contains(search.SeacrhContent))); } result.Data.Count = query.Count(); var searchResult = query.OrderByDescending(n => n.CommodityOrder.PaymentTime).Skip((search.PageIndex - 1) * search.PageSize).Take(search.PageSize).ToList(); //地址附值 if (searchResult.Any()) { foreach (var item in searchResult) { item.CommodityOrder.Address = string.Format("{0}{1}{2}{3}", item.CommodityOrder.Province, item.CommodityOrder.City, item.CommodityOrder.District, item.CommodityOrder.ReceiptAddress); } } //由于优惠券与积分存在另一表,所以单独取 if (searchResult.Any()) { var orderIds = searchResult.Select(t => t.Invoice.CommodityOrderId).ToList(); //优惠券与花费积分抵现金额 CouponValue SpendScoreCost var orderPayDetail = OrderPayDetail.ObjectSet().Where(t => orderIds.Contains(t.OrderId)).ToList(); if (orderPayDetail.Count > 0) { foreach (var item in searchResult) { var couponValue = orderPayDetail.Where(t => t.OrderId == item.Invoice.CommodityOrderId && t.ObjectType == 1).Select(t => t.Amount).FirstOrDefault(); item.CommodityOrder.CouponValue = couponValue; var spendScoreMoney = orderPayDetail.Where(t => t.OrderId == item.Invoice.CommodityOrderId && t.ObjectType == 2).Select(t => t.Amount).FirstOrDefault(); item.CommodityOrder.SpendScoreMoney = spendScoreMoney; } } } result.Data.InvoiceInfoList = new List <InvoiceInfoDTO>(); foreach (var item in searchResult) { InvoiceInfoDTO model = new InvoiceInfoDTO(); model.Id = item.Invoice.Id; model.CommodityOrderId = item.Invoice.CommodityOrderId; model.InvoiceTitle = item.Invoice.InvoiceTitle; model.InvoiceContent = item.Invoice.InvoiceContent; model.InvoiceType = item.Invoice.InvoiceType; model.SubTime = item.Invoice.SubTime; model.ModifiedOn = item.Invoice.ModifiedOn; model.ReceiptPhone = item.Invoice.ReceiptPhone; model.ReceiptEmail = item.Invoice.ReceiptEmail; model.State = item.Invoice.State; model.Remark = item.Invoice.Remark; model.Category = item.Invoice.Category; model.SubId = item.Invoice.SubId; model.Code = item.Invoice.Code; InvoiceCommodityOrderInfo orderInfo = new InvoiceCommodityOrderInfo(); orderInfo.Code = item.CommodityOrder.Code; orderInfo.Payment = item.CommodityOrder.Payment; orderInfo.CouponValue = item.CommodityOrder.CouponValue; orderInfo.GoldPrice = item.CommodityOrder.GoldPrice; orderInfo.GoldCoupon = item.CommodityOrder.GoldCoupon; orderInfo.PaymentTime = item.CommodityOrder.PaymentTime; orderInfo.RealPrice = item.CommodityOrder.RealPrice; orderInfo.ReceiptAddress = item.CommodityOrder.ReceiptAddress; orderInfo.ReceiptPhone = item.CommodityOrder.ReceiptPhone; orderInfo.ReceiptUserName = item.CommodityOrder.ReceiptUserName; orderInfo.Province = item.CommodityOrder.Province; orderInfo.City = item.CommodityOrder.City; orderInfo.District = item.CommodityOrder.District; orderInfo.Address = item.CommodityOrder.Address; orderInfo.State = item.CommodityOrder.State; orderInfo.StateAfterSales = item.CommodityOrder.StateAfterSales; orderInfo.SelfTakeFlag = item.CommodityOrder.SelfTakeFlag; model.commodityOrderInfo = orderInfo; result.Data.InvoiceInfoList.Add(model); } result.ResultCode = 0; result.Message = "Success"; return(result); }