Пример #1
0
        /// <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
            });
        }