public bool Insert(financialStatements model) { DynamicParameters paras = new DynamicParameters(); paras.Add("@Code", model.Code, System.Data.DbType.String); paras.Add("@CreateTime", model.CreateTime, System.Data.DbType.String); paras.Add("@UserPhone", model.UserPhone, System.Data.DbType.String); paras.Add("@UserCreateTime", model.UserCreateTime, System.Data.DbType.String); paras.Add("@StoreName", model.StoreName, System.Data.DbType.String); paras.Add("@ProductionType", model.ProductionType, System.Data.DbType.String); paras.Add("@Cstname", model.Cstname, System.Data.DbType.String); paras.Add("@ProductionCode", model.ProductionCode, System.Data.DbType.String); paras.Add("@ProductionName", model.ProductionName, System.Data.DbType.String); paras.Add("@Iquantity", model.Iquantity, System.Data.DbType.String); paras.Add("@Itaxunitprice", model.Itaxunitprice, System.Data.DbType.String); paras.Add("@Isum", model.Isum, System.Data.DbType.String); paras.Add("@CpersonName", model.CpersonName, System.Data.DbType.String); paras.Add("@PayType", model.PayType, System.Data.DbType.String); paras.Add("@AmountOfIncome", model.AmountOfIncome, System.Data.DbType.String); paras.Add("@DonationAmount", model.DonationAmount, System.Data.DbType.String); paras.Add("@CouponUseCode", model.CouponUseCode, System.Data.DbType.String); paras.Add("@CouponUseMoney", model.CouponUseMoney, System.Data.DbType.String); paras.Add("@GetCouponTime", model.GetCouponTime, System.Data.DbType.String); paras.Add("@UseWalletMoney", model.UseWalletMoney, System.Data.DbType.String); paras.Add("@Ratio", model.Ratio, System.Data.DbType.String); paras.Add("@RecordsOfConsumptionCreateTime", model.RecordsOfConsumptionCreateTime, System.Data.DbType.String); paras.Add("@WriteOffUser", model.WriteOffUser, System.Data.DbType.String); paras.Add("@ProductionCode1", model.ProductionCode1, System.Data.DbType.String); paras.Add("@ProductionName1", model.ProductionName1, System.Data.DbType.String); paras.Add("@ExperiencePrice", model.ExperiencePrice, System.Data.DbType.String); paras.Add("@Iquantity1", model.Iquantity1, System.Data.DbType.String); paras.Add("@RecordsMoney", model.RecordsMoney, System.Data.DbType.String); paras.Add("@CouponUseMoney1", model.CouponUseMoney1, System.Data.DbType.String); paras.Add("@ActualConsumption", model.ActualConsumption, System.Data.DbType.String); paras.Add("@UseWalletMoney1", model.UseWalletMoney1, System.Data.DbType.String); paras.Add("@UseWalletAccountPrincipal", model.UseWalletAccountPrincipal, System.Data.DbType.String); paras.Add("@FinancialRevenueAccounting", model.FinancialRevenueAccounting, System.Data.DbType.String); paras.Add("@Imoney", model.Imoney, System.Data.DbType.String); paras.Add("@ProductInfoRate", model.ProductInfoRate, System.Data.DbType.String); paras.Add("@Itax", model.Itax, System.Data.DbType.String); paras.Add("@GrossProfit", model.GrossProfit, System.Data.DbType.String); paras.Add("@OrderNo", model.OrderNo, System.Data.DbType.String); string sql = (@"INSERT INTO dbo.financialStatements (Code,CreateTime ,UserPhone,UserCreateTime,StoreName ,ProductionType,Cstname ,ProductionCode,ProductionName ,Iquantity,Itaxunitprice,Isum,CpersonName,PayType,AmountOfIncome ,DonationAmount ,CouponUseCode,CouponUseMoney,GetCouponTime,UseWalletMoney,Ratio,RecordsOfConsumptionCreateTime ,WriteOffUser,ProductionCode1,ProductionName1,ExperiencePrice,Iquantity1 ,RecordsMoney ,CouponUseMoney1 ,ActualConsumption ,UseWalletMoney1,UseWalletAccountPrincipal ,FinancialRevenueAccounting,Imoney ,ProductInfoRate ,Itax ,GrossProfit,OrderNo) values(@Code,@CreateTime ,@UserPhone,@UserCreateTime,@StoreName ,@ProductionType,@Cstname ,@ProductionCode,@ProductionName ,@Iquantity,@Itaxunitprice,@Isum,@CpersonName,@PayType,@AmountOfIncome ,@DonationAmount ,@CouponUseCode,@CouponUseMoney,@GetCouponTime,@UseWalletMoney,@Ratio,@RecordsOfConsumptionCreateTime ,@WriteOffUser,@ProductionCode1,@ProductionName1,@ExperiencePrice,@Iquantity1 ,@RecordsMoney ,@CouponUseMoney1 ,@ActualConsumption ,@UseWalletMoney1,@UseWalletAccountPrincipal ,@FinancialRevenueAccounting,@Imoney ,@ProductInfoRate ,@Itax ,@GrossProfit,@OrderNo)"); DapperSqlHelper.ExcuteNonQuery <Coupon>(sql, paras, false); return(true); }
/// <summary> /// 充值 /// </summary> /// <param name="userCode"></param> /// <param name="order"></param> /// <param name="payType"></param> /// <returns></returns> public financialStatements getDataRechargeRecord(string userCode, string typeCode, UseWallet useWallet, string storeCode, decimal?ratio, string payType) { ICouponService _couponService = new CouponService(); IRechargeTypeService rt = new RechargeTypeService(); IProductInfoService _productInfoService = new ProductInfoService(); ICouponTypeService _couponTypeService = new CouponTypeService(); IUseWalletService _useWalletService = new UseWalletService(); IUserStoreService _userStoreService = new UserStoreService(); IStoreService _storeService = new StoreService(); IUserInfo _userService = new UserInfo(); var rechargetype = rt.GetRechargeTypeByCode(typeCode); var uw = _useWalletService.GetUseWalletCountMoney(userCode); if (string.IsNullOrEmpty(storeCode)) { var us = _userStoreService.GetUserStorebyUserCode(userCode); storeCode = us.MembershipCardStore; } var s = _storeService.GetStore(storeCode); var u = _userService.GetUserByCode(userCode); financialStatements fs = new financialStatements(); fs.Code = Guid.NewGuid().ToString(); fs.CreateTime = DateTime.Now; fs.UserPhone = u?.Phone; fs.UserCreateTime = u?.CreateTime; fs.StoreName = s?.StoreName; fs.ProductionType = "体验服务"; fs.Cstname = "普通销售"; fs.ProductionCode = rechargetype?.RechargeTypeCode; fs.ProductionName = rechargetype?.RechargeTypeName; fs.Iquantity = 1; fs.Itaxunitprice = useWallet?.AccountPrincipal; fs.Isum = useWallet?.AccountPrincipal; fs.CpersonName = "业务员"; fs.PayType = payType; fs.AmountOfIncome = useWallet?.AccountPrincipal; fs.DonationAmount = useWallet?.DonationAmount; fs.CouponUseCode = ""; fs.CouponUseMoney = 0; fs.UseWalletMoney = uw?.TotalAmount + useWallet?.AccountPrincipal + useWallet?.DonationAmount; if (ratio != null) { fs.Ratio = Math.Round(100 - Convert.ToDouble(ratio) * 100, 2).ToString() + '%'; } fs.UseWalletMoney1 = fs?.UseWalletMoney; fs.UseWalletAccountPrincipal = uw?.AccountPrincipal + useWallet?.AccountPrincipal; fs.ProductInfoRate = "0"; return(fs); }
public IHttpActionResult WriteOff(string userCode, string orderCode) { LogHelper.WriteLog("WriteOff userCode" + userCode); LogHelper.WriteLog("WriteOff orderCode" + orderCode); SimpleResult result = new SimpleResult(); IRecordsOfConsumptionService _service = new RecordsOfConsumptionService(); IWriteOffService _writeOffServicee = new WriteOffService(); IOrderService _orderservice = new OrderService(); try { if (UserAuthorization) { var use = userInfo.GetUserByCode(userCode); if (use != null) { if (_service.IsWriteOffUser(use.Phone)) { var order = _orderservice.GetOrderByCode(orderCode); if (order != null && !order.IsWriteOff) { order.IsWriteOff = true; if (_orderservice.UpdateOrder(order) > 0) { result.Status = Result.SUCCEED; IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); //写入核销数据到报表中 financialStatements fs = null; if (string.IsNullOrEmpty(order.WxPrepayId)) { var recordsOfConsumption = _service.GetRecordsOfConsumptionByOrderCode(orderCode); fs = _financialStatementsService.getWriteOff(use.UserName, order.UserCode, orderCode, "会员卡", recordsOfConsumption?.RecordsAccountPrincipalMoney); } else { fs = _financialStatementsService.getWriteOff(use.UserName, order.UserCode, orderCode, "微信", null); } LogHelper.WriteLog("financialStatements " + fs.Code); if (fs != null) { _financialStatementsService.Insert(fs); } } else { result.Msg = "订单已经被核销"; result.Status = Result.SYSTEM_ERROR; } } else { result.Msg = "订单已经被核销"; result.Status = Result.SYSTEM_ERROR; } } else { result.Msg = "您不是核销人员。"; result.Status = Result.SYSTEM_ERROR; } } else { result.Msg = "没有当前用户"; result.Status = Result.SYSTEM_ERROR; } } else { result.Status = Result.FAILURE; result.Resource = ReAccessToken; result.Msg = TokenMessage; } } catch (Exception ex) { LogHelper.WriteLog("WriteOff userCode" + userCode + " orderCode" + orderCode, ex); result.Status = Result.FAILURE; result.Msg = ex.Message; } LogHelper.WriteLog("WriteOff result" + Json(result)); return(Json(result)); }
public IHttpActionResult WxPayOrder(string userCode, string orderCode, string prepayid) { LogHelper.WriteLog("WxPayOrder接口"); LogHelper.WriteLog("userCode " + userCode); LogHelper.WriteLog("orderCode " + orderCode); LogHelper.WriteLog("prepayid " + prepayid); SimpleResult result = new SimpleResult(); IRecordsOfConsumptionService _service = new RecordsOfConsumptionService(); IStoreService _storeService = new StoreService(); ICouponService _couponservice = new CouponService(); try { if (UserAuthorization) { using (var scope = new TransactionScope())//创建事务 { if (!string.IsNullOrEmpty(prepayid)) { IOrderService _orderService = new OrderService(); ICouponService _couponService = new CouponService(); IUserInfo _userService = new UserInfo(); IStoreService _Storeservice = new StoreService(); var now = DateTime.Now; var order = _orderService.GetOrderByCode(orderCode); if (order != null) { var store = _Storeservice.GetStore(order.StoreCode); if (store != null) { var PayTime = Common.wxPayOrderQuery(prepayid, store.appid.Trim(), store.mchid); LogHelper.WriteLog("微信支付时间: " + PayTime); if (ConfigurationManager.AppSettings["isWxpay"] != null && ConfigurationManager.AppSettings["isWxpay"].ToString() == "true") { if (!string.IsNullOrEmpty(PayTime)) { DateTime dt = DateTime.ParseExact(PayTime, "yyyyMMddHHmmss", null); LogHelper.WriteLog("更新的订单: " + orderCode); order.PayTime = dt; _orderService.UpdateOrder(order); var ss = _couponService.GetCouponByOrderCode(orderCode); if (ss != null) { _couponService.UsedUpdate(ss.CouponUseCode, userCode, orderCode); LogHelper.WriteLog("更新的钱包和优惠券couponCode: " + ss.CouponUseCode); } LogHelper.WriteLog("报表写入数据开始"); IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); LogHelper.WriteLog("报表表数据更新"); financialStatements fs = _financialStatementsService.getData(userCode, order, "微信"); LogHelper.WriteLog("报表表数据更新完成"); _financialStatementsService.Insert(fs); LogHelper.WriteLog("报表写入数据结束" + fs.Code); result.Status = Result.SUCCEED; } else { result.Status = Result.SYSTEM_ERROR; result.Msg = "微信支付没有成功"; } } else { order.PayTime = DateTime.Now; _orderService.UpdateOrder(order); var ss = _couponService.GetCouponByOrderCode(orderCode); if (ss != null) { _couponService.UsedUpdate(ss.CouponUseCode, userCode, orderCode); LogHelper.WriteLog("更新的钱包和优惠券couponCode: " + ss.CouponUseCode); } LogHelper.WriteLog("报表写入数据开始"); IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); LogHelper.WriteLog("报表表数据更新"); financialStatements fs = _financialStatementsService.getData(userCode, order, "微信"); LogHelper.WriteLog("报表表数据更新完成"); _financialStatementsService.Insert(fs); LogHelper.WriteLog("报表写入数据结束" + fs.Code); result.Status = Result.SUCCEED; } } else { result.Status = Result.SYSTEM_ERROR; result.Msg = "订单对应的店铺不对"; } } else { result.Status = Result.SYSTEM_ERROR; result.Msg = "订单编码不对"; } } scope.Complete();//这是最后提交事务 } } else { result.Status = ResultType; result.Resource = ReAccessToken; result.Msg = TokenMessage; } } catch (Exception ex) { LogHelper.WriteLog("WxPayOrder userCode" + userCode + " orderCode" + orderCode + " prepayid " + prepayid, ex); result.Status = Result.FAILURE; result.Msg = ex.Message; LogHelper.WriteLog("微信支付回掉 " + ex.Message); LogHelper.WriteLog("微信支付回掉 " + ex.StackTrace); } LogHelper.WriteLog("WxPayOrder result" + Json(result)); return(Json(result)); }
public IHttpActionResult PayOrder([FromBody] PayOrderParam param) { SimpleResult result = new SimpleResult(); IRecordsOfConsumptionService _service = new RecordsOfConsumptionService(); ICouponService _couponService = new CouponService(); IUseWalletService _useWalletService = new UseWalletService(); IStoreService _stoeservice = new StoreService(); IProductInfoService _productInfoService = new ProductInfoService(); try { if (UserAuthorization) { LogHelper.WriteLog("PayOrder接口"); LogHelper.WriteLog("productCode param.userCode" + param.paytype); LogHelper.WriteLog("productCode param.money " + param.money); LogHelper.WriteLog("productCode param.orderCode" + param.orderCode); LogHelper.WriteLog("productCode param.peopleCount" + param.peopleCount); LogHelper.WriteLog("productCode param.productCode" + param.productCode); LogHelper.WriteLog("productCode param.storeId" + param.storeId); LogHelper.WriteLog("productCode param.userCode " + param.userCode); LogHelper.WriteLog("productCode param.couponCode " + param.couponCode); var isExistProduct = _productInfoService.IsExistProduct(param.productCode); if (!isExistProduct) { result.Status = Result.SYSTEM_ERROR; result.Msg = "商品已失效或不存在"; result.Resource = null; } if (param.paytype == 0) { LogHelper.WriteLog("会员支付 " + param.paytype); var isPay = true; if (!string.IsNullOrEmpty(param.couponCode)) { var n = _couponService.Exist(param.couponCode); if (n == 1) { result.Status = Result.SYSTEM_ERROR; result.Msg = "优惠卷不存在"; result.Resource = null; isPay = false; } else if (n == 2) { result.Status = Result.SYSTEM_ERROR; result.Msg = "优惠卷已经被使用"; result.Resource = null; isPay = false; } } if (isPay) { if (_useWalletService.ExistMoney(param.userCode, param.money)) { var re = _service.PayOrder(param.productCode, param.userCode, param.peopleCount, param.dateTime, param.money, param.storeId, param.orderCode, param.couponCode); result.Resource = "SUCCEED"; result.Status = Result.SUCCEED; LogHelper.WriteLog("result.Status " + Result.SUCCEED); } else { result.Status = Result.SYSTEM_ERROR; result.Msg = "账号余额不足"; result.Resource = null; LogHelper.WriteLog("result.Status " + Result.SYSTEM_ERROR); } } } else { var isPay = true; if (!string.IsNullOrEmpty(param.couponCode)) { var n = _couponService.Exist(param.couponCode); if (n == 1) { result.Status = Result.SYSTEM_ERROR; result.Msg = "优惠卷不存在"; result.Resource = null; isPay = false; } else if (n == 2) { result.Status = Result.SYSTEM_ERROR; result.Msg = "优惠卷已经被使用"; result.Resource = null; isPay = false; } } if (isPay) { using (var scope = new TransactionScope())//创建事务 { LogHelper.WriteLog("微信支付 " + param.userCode); IUserStoreService _userStoreservice = new UserStoreService(); var store = _stoeservice.GetStore(param.storeId); var couponser = _couponService.GetCouponByCode(param.couponCode); var userStoreser = _userStoreservice.GetUserStorebyUserCodestoreCode(param.userCode, param.storeId); if (userStoreser != null) { if (param.money != 0) { //生成微信预支付订单 var wxprepay = Common.wxPayOrderSomething(userStoreser.OpenID, param.money.ToString(), couponser?.CouponTypeName, store); if (wxprepay != null) { var order = _service.WxPayOrder(param.productCode, param.userCode, param.peopleCount, param.dateTime, param.money, wxprepay.prepayid, param.storeId, param.orderCode, param.couponCode); if (!string.IsNullOrEmpty(param.couponCode)) { _couponService.UsedUpdate(param.couponCode, param.userCode, order.OrderCode); } WxOrder wxorder = new WxOrder(); wxorder.orderCode = order.OrderCode; wxorder.wxJsApiParam = wxprepay.wxJsApiParam; wxorder.prepayid = wxprepay.prepayid; wxorder.IsWxPay = true; result.Resource = wxorder; result.Status = Result.SUCCEED; } else { result.Msg = "微信下单失败,重新提交订单"; result.Status = Result.SYSTEM_ERROR; } } else { var order = _service.WxPayNoMoneyOrder(param.productCode, param.userCode, param.peopleCount, param.dateTime, param.money, null, param.couponCode); _couponService.UsedUpdate(param.couponCode, param.userCode, order.OrderCode); LogHelper.WriteLog("更新的钱包和优惠券couponCode: " + param.couponCode); LogHelper.WriteLog("报表写入数据开始"); IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); LogHelper.WriteLog("报表表数据更新"); financialStatements fs = _financialStatementsService.getData(param.userCode, order, "微信"); LogHelper.WriteLog("报表表数据更新完成"); _financialStatementsService.Insert(fs); LogHelper.WriteLog("报表写入数据结束" + fs.Code); WxOrder wxorder = new WxOrder(); wxorder.orderCode = order.OrderCode; result.Resource = "SUCCEED"; result.Status = Result.SUCCEED; } } else { result.Resource = ""; result.Status = Result.SYSTEM_ERROR; } scope.Complete();//这是最后提交事务 } } } } else { result.Status = ResultType; result.Resource = ReAccessToken; result.Msg = TokenMessage; } } catch (Exception ex) { LogHelper.WriteLog("WxPayOrder PayOrder ", ex); result.Status = Result.FAILURE; result.Msg = ex.Message; LogHelper.WriteLog("微信支付", ex); } LogHelper.WriteLog("PayOrder result" + Json(result)); return(Json(result)); }
public IHttpActionResult GetOrderList(string userCode) { LogHelper.WriteLog("GetOrderList userCode" + userCode); SimpleResult result = new SimpleResult(); IOrderService _service = new OrderService(); IUserStoreService _userStoreService = new UserStoreService(); IStoreService _Storeservice = new StoreService(); try { if (UserAuthorization) { var list = _service.GetOrderList(userCode); var userSotre = _userStoreService.GetUserStorebyUserCode(userCode); var store = _Storeservice.GetStore(userSotre.MembershipCardStore); if (store != null) { using (var scope = new TransactionScope())//创建事务 { foreach (var item in list) { if (!string.IsNullOrEmpty(item.WxPrepayId) && item.PayTime == null) { var PayTime = Common.wxPayOrderQuery(item.WxPrepayId, store.appid.Trim(), store.mchid); if (!string.IsNullOrEmpty(PayTime)) { LogHelper.WriteLog("GetOrderList PayTime" + PayTime); DateTime dt = DateTime.ParseExact(PayTime, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); item.PayTime = dt; _service.UpdateOrder(item); LogHelper.WriteLog("报表写入数据开始"); IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); LogHelper.WriteLog("报表表数据更新"); financialStatements fs = _financialStatementsService.getData(userCode, item, "微信"); LogHelper.WriteLog("报表表数据更新完成"); _financialStatementsService.Insert(fs); LogHelper.WriteLog("报表写入数据结束" + fs.Code); } } } scope.Complete();//这是最后提交事务 } } list = list.OrderByDescending(t => t.CreateTime)?.ToList(); result.Resource = list; result.Status = Result.SUCCEED; } else { result.Status = ResultType; result.Resource = ReAccessToken; result.Msg = TokenMessage; } } catch (Exception ex) { LogHelper.WriteLog("GetOrderList userCode" + userCode, ex); result.Status = Result.FAILURE; result.Msg = ex.Message; } LogHelper.WriteLog("GetOrderList result" + Json(result)); return(Json(result)); }
public string PayOrder(string productCode, string userCode, string peopleCount, DateTime dateTime, decimal money, string storeId, string orderCode = "", string couponCode = "") { string msg = "SUCCEED"; IProductInfoService _productInfoService = new ProductInfoService(); DateTime now = DateTime.Now; ICouponService _couponService = new CouponService(); IOrderService _orderService = new OrderService(); IUserInfo _userService = new UserInfo(); IStoreService _storeService = new StoreService(); IUserStoreService _userStoreService = new UserStoreService(); IRecordsOfConsumptionService _recordsOfConsumption = new RecordsOfConsumptionService(); IUseWalletService _useWalletService = new UseWalletService(); IFinancialStatementsService _financialStatementsService = new FinancialStatementService(); ICouponTypeService _couponTypeService = new CouponTypeService(); var u = _userService.GetUserByCode(userCode); var p = _productInfoService.GetProductInfo(productCode); var s = _storeService.GetStore(storeId); var uw = _useWalletService.GetUseWalletCountMoney(userCode); var accountPrincipal = _useWalletService.GetUseAccountPrincipalByUserCode(userCode); Order order = new Order(); order.Money = money; int ss = 0; if (int.TryParse(peopleCount, out ss)) { order.Number = ss; } order.PayTime = now; order.StoreCode = storeId; order.UserCode = userCode; order.ProductCode = productCode; order.CreateTime = now; order.ExperienceVoucherCode = couponCode; order.AppointmentTime = dateTime; order.WxPrepayId = string.Empty; financialStatements fs = _financialStatementsService.getData(userCode, order, "会员卡"); using (var scope = new TransactionScope())//创建事务 { if (!string.IsNullOrEmpty(orderCode)) { var temporder = _orderService.GetOrderByCode(orderCode); if (temporder != null && temporder.UserCode == userCode) { order.OrderCode = temporder.OrderCode; order.CreateTime = temporder.CreateTime; order.OrderNO = temporder.OrderNO; _orderService.UpdateOrder(order); msg = temporder.OrderCode; } else { if (string.IsNullOrEmpty(order.OrderCode)) { order.OrderCode = Guid.NewGuid().ToString(); order.OrderNO = WxPayApi.GenerateOutTradeNo().ToString(); orderCode = order.OrderCode; } msg = _orderService.InsertOrder(order); } } else { if (string.IsNullOrEmpty(order.OrderCode)) { order.OrderCode = Guid.NewGuid().ToString(); order.OrderNO = WxPayApi.GenerateOutTradeNo().ToString(); orderCode = order.OrderCode; } msg = _orderService.InsertOrder(order); } fs.OrderNo = order?.OrderNO; if (money == 0) { LogHelper.WriteLog("会员支付0元 " + money); LogHelper.WriteLog("couponCode " + couponCode); _couponService.UsedUpdate(couponCode, userCode, orderCode); LogHelper.WriteLog("financialStatements " + fs.Code); _financialStatementsService.Insert(fs); } else { LogHelper.WriteLog("couponCode " + couponCode); _couponService.UsedUpdate(couponCode, userCode, orderCode); LogHelper.WriteLog("会员支付金额 " + money); decimal?recordsaccountPrincipalTemp = 0m; _useWalletService.UpdateData(userCode, money, orderCode, out recordsaccountPrincipalTemp); LogHelper.WriteLog("会员支付金额 accountPrincipal " + accountPrincipal); LogHelper.WriteLog("会员支付金额 aecordsdonationAmountTemp " + recordsaccountPrincipalTemp); fs.UseWalletAccountPrincipal = accountPrincipal - recordsaccountPrincipalTemp; LogHelper.WriteLog("financialStatements " + fs.Code); _financialStatementsService.Insert(fs); } scope.Complete();//这是最后提交事务 } return(msg); }
/// <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); }
/// <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); }