Ejemplo n.º 1
0
        /// <summary>
        /// 购买获取报表的实体
        /// </summary>
        /// <param name="userCode"></param>
        /// <param name="order"></param>
        /// <param name="payType"></param>
        /// <returns></returns>
        public financialStatements getData(string userCode, Order order, string payType)
        {
            ICouponService      _couponService      = new CouponService();
            IProductInfoService _productInfoService = new ProductInfoService();
            ICouponTypeService  _couponTypeService  = new CouponTypeService();
            IUseWalletService   _useWalletService   = new UseWalletService();
            IStoreService       _storeService       = new StoreService();
            IUserInfo           _userService        = new UserInfo();
            var uw = _useWalletService.GetUseWalletCountMoney(userCode);
            var s  = _storeService.GetStore(order.StoreCode);
            var p  = _productInfoService.GetProductInfo(order.ProductCode);
            var u  = _userService.GetUserByCode(userCode);
            financialStatements fs = new financialStatements();

            fs.Code           = Guid.NewGuid().ToString();
            fs.CreateTime     = order.CreateTime;
            fs.UserPhone      = u?.Phone;
            fs.UserCreateTime = u?.CreateTime;
            fs.StoreName      = s?.StoreName;
            fs.OrderNo        = order.OrderNO;
            switch (p.Type)
            {
            case "1":
                fs.ProductionType = "体验服务"; break;

            case "2":
                fs.ProductionType = "硬件产品"; break;

            case "3":
                fs.ProductionType = "水吧服务"; break;

            case "4":
                fs.ProductionType = "衍生品"; break;

            case "5":
                fs.ProductionType = "配件"; break;
            }
            fs.Cstname        = "普通销售";
            fs.ProductionCode = p.ProductCode;
            fs.ProductionName = p.ProductName;
            fs.Iquantity      = order.Number;
            fs.Itaxunitprice  = p.ExperiencePrice;
            if (payType.Equals("微信"))
            {
                fs.Isum = order.Money;
            }
            else
            {
                fs.Isum = p.ExperiencePrice * order.Number;
            }
            fs.CpersonName    = p.CreatorName;
            fs.PayType        = payType;
            fs.AmountOfIncome = order.Money;
            fs.DonationAmount = 0;
            fs.CouponUseCode  = order.ExperienceVoucherCode;
            if (!string.IsNullOrEmpty(order.ExperienceVoucherCode))
            {
                var coupon      = _couponService.GetCouponByCode(order.ExperienceVoucherCode);
                var couponMoney = _couponTypeService.GetCouponTypeByCode(coupon?.CouponTypeCode);
                if (couponMoney != null)
                {
                    fs.CouponUseMoney = couponMoney.Money;
                }
            }
            fs.GetCouponTime = order.CreateTime;
            if (payType.Equals("微信"))
            {
                fs.UseWalletMoney = order.Money;
                fs.Ratio          = "100%";
            }
            else
            {
                fs.UseWalletMoney            = uw.TotalAmount;
                fs.UseWalletMoney1           = fs.UseWalletMoney;
                fs.UseWalletAccountPrincipal = uw.AccountPrincipal;
                if (!string.IsNullOrEmpty(uw.Ratio))
                {
                    fs.Ratio = Math.Round(100 - Convert.ToDouble(uw.Ratio) * 100, 2).ToString() + '%';
                }
                fs.UseWalletMoney            = uw.TotalAmount - order.Money;
                fs.UseWalletAccountPrincipal = uw.AccountPrincipal - order.Money * (1 - Convert.ToDecimal(uw.Ratio));
                if (fs.UseWalletMoney != 0)
                {
                    if (!string.IsNullOrEmpty(uw.Ratio))
                    {
                        fs.Ratio = Math.Round(100 - Convert.ToDouble(uw.Ratio) * 100, 2).ToString() + '%';
                    }
                    else
                    {
                        fs.Ratio = "100%";
                    }
                }
                else
                {
                    fs.Ratio = "100%";
                }
                fs.UseWalletMoney1 = fs.UseWalletMoney;
            }

            fs.ProductInfoRate = p.Rate + "%";
            return(fs);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 核销
        /// </summary>
        /// <param name="userCode"></param>
        /// <param name="order"></param>
        /// <param name="payType"></param>
        /// <returns></returns>
        public financialStatements getWriteOff(string wfuserName, string userCode, string orderCode, string payType, decimal?RecordsAccountPrincipalMoney)
        {
            var                 dateTime            = DateTime.Now;
            ICouponService      _couponService      = new CouponService();
            IProductInfoService _productInfoService = new ProductInfoService();
            ICouponTypeService  _couponTypeService  = new CouponTypeService();
            IUseWalletService   _useWalletService   = new UseWalletService();
            IOrderService       _orderService       = new OrderService();
            IStoreService       _storeService       = new StoreService();
            IUserInfo           _userService        = new UserInfo();
            var                 order = _orderService.GetOrderByCode(orderCode);
            var                 uw    = _useWalletService.GetUseWalletCountMoneyWf(userCode);
            var                 s     = _storeService.GetStore(order.StoreCode);
            var                 p     = _productInfoService.GetProductInfo(order.ProductCode);
            var                 u     = _userService.GetUserByCode(userCode);
            financialStatements fs    = new financialStatements();

            fs.OrderNo        = order?.OrderNO;
            fs.Code           = Guid.NewGuid().ToString();
            fs.CreateTime     = dateTime;
            fs.UserPhone      = u?.Phone;
            fs.UserCreateTime = u?.CreateTime;
            fs.StoreName      = s?.StoreName;
            switch (p.Type)
            {
            case "1":
                fs.ProductionType = "体验服务"; break;

            case "2":
                fs.ProductionType = "硬件产品"; break;

            case "3":
                fs.ProductionType = "水吧服务"; break;

            case "4":
                fs.ProductionType = "衍生品"; break;

            case "5":
                fs.ProductionType = "配件"; break;
            }
            fs.Cstname        = "普通销售";
            fs.ProductionCode = "";
            fs.ProductionName = "";
            fs.Iquantity      = 0;
            fs.Itaxunitprice  = 0;
            fs.Isum           = 0;
            fs.CpersonName    = p.CreatorName;
            fs.PayType        = payType;
            fs.AmountOfIncome = 0;
            fs.DonationAmount = 0;
            fs.CouponUseCode  = "";
            fs.CouponUseMoney = 0;
            fs.GetCouponTime  = null;
            if (payType.Equals("微信"))
            {
                fs.UseWalletMoney = order.Money;
                fs.Ratio          = "100%";
            }
            else
            {
                fs.UseWalletMoney            = uw.TotalAmount;
                fs.UseWalletMoney1           = fs.UseWalletMoney;
                fs.UseWalletAccountPrincipal = uw.AccountPrincipal;
                if (!string.IsNullOrEmpty(uw.Ratio))
                {
                    fs.Ratio = Math.Round(100 - Convert.ToDouble(uw.Ratio) * 100, 2).ToString() + '%';
                }
            }
            fs.RecordsOfConsumptionCreateTime = dateTime;
            fs.WriteOffUser    = wfuserName;
            fs.ProductionCode1 = p.ProductCode;
            fs.ProductionName1 = p.ProductName;
            fs.ExperiencePrice = p.ExperiencePrice;
            fs.Iquantity1      = order.Number;
            fs.RecordsMoney    = p.ExperiencePrice * order.Number;
            if (!string.IsNullOrEmpty(order.ExperienceVoucherCode))
            {
                var coupon      = _couponService.GetCouponByCode(order.ExperienceVoucherCode);
                var couponMoney = _couponTypeService.GetCouponTypeByCode(coupon?.CouponTypeCode);
                if (couponMoney != null)
                {
                    fs.CouponUseMoney1   = couponMoney.Money;
                    fs.ActualConsumption = fs.RecordsMoney - fs.CouponUseMoney1;
                    if (fs.ActualConsumption < 0m)
                    {
                        fs.ActualConsumption = 0m;
                    }
                }
            }
            else
            {
                fs.ActualConsumption = fs.RecordsMoney;
            }

            if (payType.Equals("微信"))
            {
                fs.FinancialRevenueAccounting = fs.ActualConsumption;
            }
            else
            {
                fs.FinancialRevenueAccounting = RecordsAccountPrincipalMoney;
            }
            fs.Imoney          = fs.FinancialRevenueAccounting / (Convert.ToDecimal((Convert.ToDouble(p.Rate)) * 0.01) + 1);
            fs.ProductInfoRate = p.Rate + "%";
            fs.Itax            = fs.Imoney * Convert.ToDecimal((Convert.ToDouble(p.Rate)) * 0.01);
            fs.GrossProfit     = fs.Imoney;
            return(fs);
        }