Example #1
0
 /// <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();
 }
Example #2
0
        /// <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);
        }
Example #3
0
 /// <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);
     }
 }
Example #4
0
 /// <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);
 }
Example #5
0
        /// <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);
            //}
        }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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);
        }
Example #8
0
        ///// <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);
        }
Example #9
0
 /// <summary>
 /// 创建分销商预存款往来账明细
 /// </summary>
 /// <param name="model">分销商预存款往来账明细实体</param>
 /// <returns>返回系统编号</returns>
 /// <remarks>2013-09-11 周唐炬 创建</remarks>
 public int Create(DsPrePaymentItem model)
 {
     return(IDsPrePaymentItemDao.Instance.Insert(model));
 }
Example #10
0
 /// <summary>
 /// 更新数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns></returns>
 /// <remarks>2013-09-10  朱成果 创建</remarks>
 public abstract void Update(DsPrePaymentItem entity);
Example #11
0
 /// <summary>
 /// 插入数据
 /// </summary>
 /// <param name="entity">数据实体</param>
 /// <returns>新增记录编号</returns>
 /// <remarks>2013-09-10  朱成果 创建</remarks>
 public abstract int Insert(DsPrePaymentItem entity);