/// <summary> /// 更新数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns></returns> /// <remarks>2013-09-10 朱成果 创建</remarks> public override void Update(DsPrePaymentItem entity) { Context.Update("DsPrePaymentItem", entity) .AutoMap(o => o.SysNo) .Where("SysNo", entity.SysNo) .Execute(); }
/// <summary> /// 分页查询分销商预存款往来账明细 /// </summary> /// <param name="param">查询参数</param> /// <returns>分页</returns> /// <remarks>2013-9-6 黄志勇 创建</remarks> public Result <PagedList <DsPrePaymentItem> > GetDsPrePaymentItemList(MallAccountParameters param) { var filter = new ParaDsPrePaymentItemFilter() { PageIndex = param.PageIndex <= 0 ? 1 : param.PageIndex, PageSize = param.PageSize, DealerSysNo = param.HytDealerSysNo, BeginDate = param.BeginDate, EndDate = param.EndDate }; var dsItems = DsOrderBo.Instance.QueryPrePaymentItem(filter); var list = new List <DsPrePaymentItem>(); foreach (var order in dsItems.Rows) { var mallOrderInfo = new DsPrePaymentItem(); Hyt.Util.Reflection.ReflectionUtils.Transform(order, mallOrderInfo); list.Add(mallOrderInfo); } var result = new Result <PagedList <DsPrePaymentItem> > { Data = new PagedList <DsPrePaymentItem> { TotalItemCount = dsItems.TotalRows, CurrentPageIndex = dsItems.CurrentPage, TData = list }, Status = true }; return(result); }
/// <summary> /// 退预存款 /// </summary> /// <param name="hytorderid">商城订单编号</param> /// <param name="rmaid">退换货编号</param> /// <param name="refundamount">金额</param> /// <param name="operateSysno">操作人员编号</param> /// <remarks>2013-09-27 朱成果 创建</remarks> public void RmaRefund(int hytorderid, int rmaid, decimal refundamount, int operateSysno) { if (refundamount > 0) { int dealerSysNo = Hyt.DataAccess.MallSeller.IDsOrderDao.Instance.GetHytOrderDealerSysno(hytorderid);//获取商城订单对应的分销商编号 if (dealerSysNo <= 0) { return; } var model = Hyt.DataAccess.Distribution.IDsPrePaymentDao.Instance.GetEntityByDealerSysNo(dealerSysNo); if (model == null) { throw new ArgumentException("分销商预存款数据不存在:分销商编号:" + dealerSysNo); } else { model.AvailableAmount += refundamount; model.LastUpdateDate = DateTime.Now; //Hyt.DataAccess.Distribution.IDsPrePaymentDao.Instance.Update(model); Hyt.DataAccess.Distribution.IDsPrePaymentDao.Instance.AddAvailableAmount(dealerSysNo, refundamount, operateSysno); } var insertItem = new DsPrePaymentItem() { CreatedDate = DateTime.Now, LastUpdateDate = DateTime.Now, Source = (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细来源.退款, SourceSysNo = rmaid, Increased = refundamount, PrePaymentSysNo = model.SysNo, Status = (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细状态.完结, Surplus = model.AvailableAmount }; Hyt.DataAccess.Distribution.IDsPrePaymentItemDao.Instance.Insert(insertItem); } }
/// <summary> /// 插入数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>新增记录编号</returns> /// <remarks>2013-09-10 朱成果 创建</remarks> public override int Insert(DsPrePaymentItem entity) { entity.SysNo = Context.Insert("DsPrePaymentItem", entity) .AutoMap(o => o.SysNo) .ExecuteReturnLastId <int>("SysNo"); return(entity.SysNo); }
/// <summary> /// 订单作废,增加预存款可用余额 /// </summary> /// <param name="hytorderid">商城订单编号</param> /// <param name="isPrePayment">是否使用预付款支付</param> /// <param name="operateSysno">操作者编号</param> /// <returns></returns> /// <remarks>2013-09-11 朱成果 创建 /// /// </remarks> public void CancelOrder(int hytorderid, int operateSysno, bool isPrePayment = true, int dealerSysNo = 0) { var orderlist = Hyt.DataAccess.MallSeller.IDsOrderDao.Instance.GetEntityByHytOrderID(hytorderid);//更新分销商订单状态 if (orderlist != null) { foreach (DsOrder p in orderlist) { p.Status = (int)Hyt.Model.WorkflowStatus.DistributionStatus.升舱订单状态.失败; Hyt.DataAccess.MallSeller.IDsOrderDao.Instance.UpdateOrder(p);//更新分销商订单状态 } } //不使用预付款支付 if (!isPrePayment) { return; } int _dealerSysNo = Hyt.DataAccess.MallSeller.IDsOrderDao.Instance.GetHytOrderDealerSysno(hytorderid);//获取商城订单对应的分销商编号 if (_dealerSysNo > 0) { dealerSysNo = _dealerSysNo; } var lst = Hyt.DataAccess.Distribution.IDsPrePaymentItemDao.Instance.GetListBySource(dealerSysNo, (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细来源.订单消费, hytorderid); var item = lst.FirstOrDefault(m => m.Status == (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细状态.完结 && m.Decreased > 0); if (item == null) { //没有预存款不执行 return; } //lock (obj) //{ var moneyData = Hyt.DataAccess.Distribution.IDsPrePaymentDao.Instance.GetEntity(item.PrePaymentSysNo); moneyData.AvailableAmount += item.Decreased; Hyt.DataAccess.Distribution.IDsPrePaymentDao.Instance.AddAvailableAmount(dealerSysNo, item.Decreased, operateSysno); var insertItem = new DsPrePaymentItem() { CreatedDate = DateTime.Now, Source = (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细来源.订单作废, SourceSysNo = hytorderid, Increased = item.Decreased, PrePaymentSysNo = item.PrePaymentSysNo, Status = (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细状态.完结, Surplus = moneyData.AvailableAmount, LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue }; Hyt.DataAccess.Distribution.IDsPrePaymentItemDao.Instance.Insert(insertItem); //} }
/// <summary> /// 分销商充值 /// </summary> /// <param name="sysNo">分销商系统编号</param> /// <param name="amount">金额</param> /// <param name="syUser">操作者</param> /// <param name="remarks">备注</param> /// <returns>系统编号</returns> /// <remarks>2013-09-10 周唐炬 创建</remarks> public void Prepaid(int sysNo, decimal amount, SyUser syUser, string remarks) { if (!CheckDealerStatus(sysNo)) { throw new HytException("非法操作,经销禁用时不能充值!"); } var model = DsPrePaymentBo.Instance.GetDsPrePayment(sysNo); var prePaymentSysNo = 0; if (model != null) { //model.TotalPrestoreAmount += amount; //model.LastUpdateBy = syUser.SysNo; //model.LastUpdateDate = DateTime.Now; //IDsPrePaymentDao.Instance.Update(model); model.AvailableAmount += amount; IDsPrePaymentDao.Instance.AddTotalPrestoreAmount(sysNo, amount, syUser.SysNo); IDsPrePaymentDao.Instance.AddAvailableAmount(sysNo, amount, syUser.SysNo); prePaymentSysNo = model.SysNo; } else { model = new DsPrePayment() { DealerSysNo = sysNo, TotalPrestoreAmount = amount, AvailableAmount = amount }; model.CreatedBy = model.LastUpdateBy = syUser.SysNo; model.CreatedDate = model.LastUpdateDate = DateTime.Now; prePaymentSysNo = IDsPrePaymentDao.Instance.Insert(model); } var itemModel = new DsPrePaymentItem() { PrePaymentSysNo = prePaymentSysNo, Source = (int)DistributionStatus.预存款明细来源.预存款, SourceSysNo = model.SysNo, Increased = amount, Decreased = decimal.Zero, Surplus = model.AvailableAmount, Status = (int)DistributionStatus.预存款明细状态.完结, Remarks = remarks }; itemModel.CreatedBy = itemModel.LastUpdateBy = syUser.SysNo; itemModel.CreatedDate = itemModel.LastUpdateDate = DateTime.Now; IDsPrePaymentItemDao.Instance.Insert(itemModel); }
/// <summary> /// 分销商提现 /// </summary> /// <param name="sysNo">分销商系统编号</param> /// <param name="amount">金额</param> /// <param name="syUser">操作者</param> /// <param name="remarks">备注</param> /// <returns>系统编号</returns> /// <remarks>2013-09-10 周唐炬 创建</remarks> public int Withdraw(int sysNo, decimal amount, SyUser syUser, string remarks) { int ItemSysNo = 0; if (!CheckDealerStatus(sysNo)) { throw new HytException("非法操作,经销禁用时不能提现!"); } var model = DsPrePaymentBo.Instance.GetDsPrePayment(sysNo); if (model == null) { throw new HytException("未找到分销商充值记录!"); } else { if (model.AvailableAmount >= amount) { //model.LastUpdateBy = syUser.SysNo; //model.LastUpdateDate = DateTime.Now; //DsPrePaymentBo.Instance.Update(model); IDsPrePaymentDao.Instance.SubtractAvailableAmount(sysNo, amount, syUser.SysNo); model.AvailableAmount -= amount; var itemModel = new DsPrePaymentItem() { PrePaymentSysNo = model.SysNo, Source = (int)DistributionStatus.预存款明细来源.提现, SourceSysNo = model.SysNo, Increased = decimal.Zero, Decreased = amount, Surplus = model.AvailableAmount, Status = (int)DistributionStatus.预存款明细状态.冻结, Remarks = "分销返利", }; itemModel.CreatedBy = itemModel.LastUpdateBy = syUser.SysNo; itemModel.CreatedDate = itemModel.LastUpdateDate = DateTime.Now; ItemSysNo = IDsPrePaymentItemDao.Instance.Insert(itemModel); } else { throw new HytException("提取金额超过预存款可用余额!"); } } return(ItemSysNo); }
///// <summary> ///// 获取指定账户最后登录时间 ///// </summary> ///// <param name="shopAccount">账户</param> ///// <param name="mallTypeSysNo">类型</param> ///// <returns></returns> ///// <remarks>2013-09-10 黄志勇 创建</remarks> //public DateTime? GetLastLoginDate(string shopAccount, int mallTypeSysNo) //{ // return IDsOrderDao.Instance.GetLastLoginDate(shopAccount, mallTypeSysNo); //} #endregion #region 订单升舱冻结预存款 /// <summary> /// 订单升舱冻结预存款 /// </summary> /// <param name="hytorderid">商城订单编号</param> /// <param name="dealerSysNo">分销商编号</param> /// <param name="money">冻结金额</param> /// <param name="userSysno">操作人员编号</param> /// <remarks>2013-09-10 朱成果 创建 /// 2014-4-30 杨文兵 取消冻结金额的更新 /// </remarks> public bool FreezeDsPrePayment(int hytorderid, int dealerSysNo, decimal money, int userSysno, DateTime?payDate = null) { if (money <= 0) { return(true); } bool flg = false; //lock (obj) //{ var prePayment = Hyt.DataAccess.Distribution.IDsPrePaymentDao.Instance.GetEntityByDealerSysNo(dealerSysNo); if (prePayment != null && prePayment.AvailableAmount >= money) { prePayment.AvailableAmount -= money; var item = new DsPrePaymentItem() { CreatedDate = payDate != null?(DateTime)payDate:DateTime.Now, Decreased = money, Surplus = prePayment.AvailableAmount, Source = (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细来源.订单消费, SourceSysNo = hytorderid, Status = (int)Hyt.Model.WorkflowStatus.DistributionStatus.预存款明细状态.完结, PrePaymentSysNo = prePayment.SysNo, LastUpdateDate = DateTime.Now }; Hyt.DataAccess.Distribution.IDsPrePaymentItemDao.Instance.Insert(item); //Hyt.DataAccess.Distribution.IDsPrePaymentDao.Instance.Update(prePayment); IDsPrePaymentDao.Instance.SubtractAvailableAmount(dealerSysNo, money, userSysno); flg = true; } //} if (!flg) { throw new Exception("分销商【" + dealerSysNo + "】预付款金额不足"); //Hyt.DataAccess.Order.ISoOrderDao.Instance.UpdateOrderStatus(hytorderid, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单支付状态.未支付); } return(flg); }
/// <summary> /// 创建分销商预存款往来账明细 /// </summary> /// <param name="model">分销商预存款往来账明细实体</param> /// <returns>返回系统编号</returns> /// <remarks>2013-09-11 周唐炬 创建</remarks> public int Create(DsPrePaymentItem model) { return(IDsPrePaymentItemDao.Instance.Insert(model)); }
/// <summary> /// 更新数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns></returns> /// <remarks>2013-09-10 朱成果 创建</remarks> public abstract void Update(DsPrePaymentItem entity);
/// <summary> /// 插入数据 /// </summary> /// <param name="entity">数据实体</param> /// <returns>新增记录编号</returns> /// <remarks>2013-09-10 朱成果 创建</remarks> public abstract int Insert(DsPrePaymentItem entity);