/// <summary> /// 作废订单收款单(已付款的生成退款信息) /// </summary> /// <param name="order">订单</param> /// <param name="user">操作用户</param> /// <param name="autoPay">自动付款</param> /// <returns></returns> ///<remarks>2013-07-17 朱成果 创建</remarks> public void CancelOrderReceipt(SoOrder order, SyUser user, bool autoPay = false) { if (order != null) { var entity = Hyt.DataAccess.Finance.IFnReceiptVoucherDao.Instance.GetEntity(sourceFromOrder, order.SysNo); if (entity != null && entity.Status != (int)FinanceStatus.收款单状态.作废) { //已收款,生成新的付款单,否则作废收款单 if (entity.ReceivedAmount > 0) { FnPaymentVoucher pv = new FnPaymentVoucher() { PayableAmount = entity.ReceivedAmount, CreatedBy = user == null ? 0 : user.SysNo, CreatedDate = DateTime.Now, CustomerSysNo = order.CustomerSysNo, Source = (int)FinanceStatus.付款来源类型.销售单, TransactionSysNo = entity.TransactionSysNo, SourceSysNo = order.SysNo, Status = autoPay?(int)FinanceStatus.付款单状态.已付款:(int)FinanceStatus.付款单状态.待付款, Remarks = "订单作废", PayDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue, LastUpdateDate = DateTime.Now }; pv.SysNo = Hyt.DataAccess.Finance.IFnPaymentVoucherDao.Instance.Insert(pv); var list = Hyt.DataAccess.Finance.IFnReceiptVoucherItemDao.Instance.GetListByReceiptNo(entity.SysNo); if (list != null) { foreach (FnReceiptVoucherItem m in list) { FnPaymentVoucherItem p = new FnPaymentVoucherItem() { Amount = m.Amount, CreatedBy = user == null ? 0 : user.SysNo, CreatedDate = DateTime.Now, OriginalVoucherNo = m.VoucherNo, OriginalPaymentTypeSysNo = m.PaymentTypeSysNo, PaymentType = GetPaymentType(m.PaymentTypeSysNo),//支付方式对应付款方式 PaymentVoucherSysNo = pv.SysNo, RefundAccount = m.CreditCardNumber, TransactionSysNo = entity.TransactionSysNo, Status = autoPay? (int)FinanceStatus.付款单明细状态.已付款 : (int)FinanceStatus.付款单明细状态.待付款, PayDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue, LastUpdateDate = DateTime.Now }; Hyt.DataAccess.Finance.IFnPaymentVoucherDao.Instance.InsertItem(p); } } } else { entity.Remark = "订单作废"; entity.Status = (int)FinanceStatus.收款单状态.作废; entity.LastUpdateDate = DateTime.Now; entity.LastUpdateBy = user == null ? 0 : user.SysNo; Hyt.DataAccess.Finance.IFnReceiptVoucherDao.Instance.Update(entity); } } } }
/// <summary> /// 更新付款单明细 /// </summary> /// <param name="entity">付款单明细</param> /// <returns></returns> /// <remarks>2013-07-22 朱成果 创建</remarks> public override void UpdateVoucherItem(FnPaymentVoucherItem entity) { Context.Update("FnPaymentVoucherItem", entity) .AutoMap(o => o.SysNo) .Where("SysNo", entity.SysNo) .Execute(); }
/// <summary> /// 创建付款单明细 /// </summary> /// <param name="model">付款单明细</param> /// <returns>付款单明细系统编号</returns> /// <remarks> /// 2013-7-12 何方 创建 /// 2013-07-19 朱成果 修改 /// </remarks> public override int InsertItem(FnPaymentVoucherItem model) { var sysNo = Context.Insert("FnPaymentVoucherItem", model) .AutoMap(o => o.SysNo) .ExecuteReturnLastId <int>("SysNo"); return(sysNo); }
/// <summary> /// 二期业务数据1段 财务 /// </summary> /// <param name="listObject"></param> private void AddBaseTaskObject2ToList2(List <BaseTask> listObject) { BaseTask fninvoice = new FnInvoice(); BaseTask fnpv = new FnReceiptVoucher(); BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem(); BaseTask fnop = new FnOnlinePayment(); BaseTask fnPaymentVoucher = new FnPaymentVoucher(); BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem(); listObject.Add(fninvoice); listObject.Add(fnpv); listObject.Add(fnReceiptVoucherItem); listObject.Add(fnop); listObject.Add(fnPaymentVoucher); listObject.Add(fnPaymentVoucherItem); }
private void AddBaseTaskObjectToList(List <BaseTask> listObject) { BaseTask bsAT = new BsArea(); BaseTask bsDP = new BsDeliveryPayment(); BaseTask bsPT = new BsPaymentType(); BaseTask bsCode = new BsCode(); BaseTask bsOrganization = new BsOrganization(); BaseTask bsOrganizationWarehouse = new BsOrganizationWarehouse(); BaseTask crCustomer = new CrCustomer(); BaseTask crCL = new CrCustomerLevel(); BaseTask crCQ = new CrCustomerQuestion(); BaseTask crRA = new CrReceiveAddress(); BaseTask dsMallType = new DsMallType(); BaseTask dsDealerLevel = new DsDealerLevel(); BaseTask feArticle = new FeArticle(); BaseTask feAC = new FeArticleCategory(); BaseTask feCS = new FeCommentSupport(); BaseTask fepc = new FeProductComment(); BaseTask fePCI = new FeProductCommentImage(); BaseTask fePCR = new FeProductCommentReply(); BaseTask feSearchKeyword = new FeSearchKeyword(); BaseTask feadvertgroup = new FeAdvertGroup(); BaseTask feadvertitem = new FeAdvertItem(); BaseTask feproductgroup = new FeProductGroup(); BaseTask feproductitem = new FeProductItem(); BaseTask fnIT = new FnInvoiceType(); BaseTask fninvoice = new FnInvoice(); BaseTask fnpv = new FnReceiptVoucher(); BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem(); BaseTask fnop = new FnOnlinePayment(); BaseTask fnPaymentVoucher = new FnPaymentVoucher(); BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem(); BaseTask lgDelivery = new LgDelivery(); BaseTask lgDI = new LgDeliveryItem(); BaseTask lgDS = new LgDeliveryScope(); BaseTask lgDT = new LgDeliveryType(); BaseTask lgDUC = new LgDeliveryUserCredit(); BaseTask lgPT = new LgPickupType(); BaseTask lgsettlement = new LgSettlement(); BaseTask lgSI = new LgSettlementItem(); BaseTask lgDeliveryPrintTemplate = new LgDeliveryPrintTemplate(); BaseTask pdAttribute = new PdAttribute(); BaseTask pdAG = new PdAttributeGroup(); BaseTask pdAGA = new PdAttributeGroupAssociation(); BaseTask pdAO = new PdAttributeOption(); BaseTask pdBrand = new PdBrand(); BaseTask pdCGA = new PdCatAttributeGroupAso(); BaseTask pdCategory = new PdCategory(); BaseTask pdCA = new PdCategoryAssociation(); BaseTask pdPrice = new PdPrice(); BaseTask pdProduct = new PdProduct(); BaseTask pdPA = new PdProductAssociation(); BaseTask pdProductAttribute = new PdProductAttribute(); BaseTask pdPI = new PdProductImage(); BaseTask pdTemplate = new PdTemplate(); BaseTask pdProductStatistics = new PdProductStatistics(); BaseTask soOrder = new SoOrder(); BaseTask soOrderItem = new SoOrderItem(); BaseTask soRA = new SoReceiveAddress(); BaseTask SyUG = new SyUserGroup(); BaseTask syGU = new SyGroupUser(); BaseTask syMenu = new SyMenu(); BaseTask syMenuPrivilege = new SyMenuPrivilege(); BaseTask syPrivilege = new SyPrivilege(); BaseTask syRole = new SyRole(); BaseTask syRoleMenu = new SyRoleMenu(); BaseTask syRolePrivilege = new SyRolePrivilege(); BaseTask syPermission = new SyPermission(); BaseTask syUser = new SyUser(); BaseTask syUW = new SyUserWarehouse(); BaseTask syMyMenu = new SyMyMenu(); BaseTask spcombo = new SpCombo(); BaseTask spComboItem = new SpComboItem(); BaseTask spcopon = new spcoupon(); BaseTask sqpromotion = new SPpromotion(); BaseTask spromotiongift = new SPpromotiongift(); BaseTask sppromotionoverlay = new SPpromotionoverlay(); BaseTask sppromotionrule = new SPpromotionrule(); BaseTask sppromotionrulecondition = new SPpromotionrulecondition(); BaseTask sppromotionrulekeyvalue = new SPpromotionrulekeyvalue(); BaseTask syTaskConfig = new SyTaskConfig(); BaseTask whStockOut = new WhStockOut(); BaseTask whStockOutItem = new WhstockOutItem(); BaseTask whwarehouse = new WhWarehouse(); BaseTask whwa = new WHwarehousearea(); BaseTask whwdy = new WHwarehouseDeliveryType(); BaseTask whWPT = new WhWarehousePickupType(); BaseTask whstockin = new WhStockIn(); BaseTask whstockinItem = new WHStockinItem(); BaseTask rcReturn = new RCReturn(); BaseTask rcReturnItem = new RcReturnItem(); listObject.Add(bsAT); listObject.Add(bsDP); listObject.Add(bsPT); listObject.Add(bsCode); listObject.Add(bsOrganization); listObject.Add(bsOrganizationWarehouse); listObject.Add(crCustomer); listObject.Add(crCL); listObject.Add(crCQ); listObject.Add(crRA); listObject.Add(dsMallType); listObject.Add(dsDealerLevel); listObject.Add(feArticle); listObject.Add(feAC); listObject.Add(feCS); listObject.Add(fePCI); listObject.Add(fePCR); listObject.Add(fepc); listObject.Add(feSearchKeyword); listObject.Add(feadvertgroup); listObject.Add(feadvertitem); listObject.Add(feproductgroup); listObject.Add(feproductitem); listObject.Add(fnIT); listObject.Add(fnpv); listObject.Add(fnReceiptVoucherItem); listObject.Add(fnop); listObject.Add(fninvoice); listObject.Add(fnPaymentVoucher); listObject.Add(fnPaymentVoucherItem); listObject.Add(lgDelivery); listObject.Add(lgDI); listObject.Add(lgDS); listObject.Add(lgDT); listObject.Add(lgPT); listObject.Add(lgsettlement); listObject.Add(lgSI); listObject.Add(lgDeliveryPrintTemplate); listObject.Add(pdAttribute); listObject.Add(pdAG); listObject.Add(pdAGA); listObject.Add(pdAO); listObject.Add(pdBrand); listObject.Add(pdCGA); listObject.Add(pdCategory); listObject.Add(pdCA); listObject.Add(pdPrice); listObject.Add(pdProduct); listObject.Add(pdPA); listObject.Add(pdProductAttribute); listObject.Add(pdTemplate); listObject.Add(pdProductStatistics); listObject.Add(soOrder); listObject.Add(soOrderItem); listObject.Add(spcombo); listObject.Add(spComboItem); listObject.Add(spcopon); listObject.Add(sqpromotion); listObject.Add(spromotiongift); //listObject.Add(sppromotionoverlay); listObject.Add(sppromotionrule); listObject.Add(sppromotionrulecondition); listObject.Add(sppromotionrulekeyvalue); listObject.Add(syGU); listObject.Add(syUW); listObject.Add(SyUG); listObject.Add(syMenu); listObject.Add(syUser); listObject.Add(syPermission); listObject.Add(syMenuPrivilege); listObject.Add(syPrivilege); listObject.Add(syRole); listObject.Add(syRoleMenu); listObject.Add(syRolePrivilege); listObject.Add(syMyMenu); listObject.Add(syTaskConfig); listObject.Add(whStockOut); listObject.Add(whStockOutItem); listObject.Add(whwarehouse); listObject.Add(whwa); listObject.Add(whwdy); listObject.Add(whWPT); listObject.Add(whstockin); listObject.Add(whstockinItem); listObject.Add(rcReturn); listObject.Add(rcReturnItem); listObject.Add(lgDUC); listObject.Add(pdPI); listObject.Add(soRA); }
/// <summary> /// 创建付款单 /// </summary> /// <param name="paymentVoucher">府库单主表.</param> /// <param name="item">付款单明细.</param> /// <returns>付款单号</returns> /// <remarks> /// 2013-07-12 何方 创建 /// </remarks> public int CreatePaymentVoucher(FnPaymentVoucher paymentVoucher, FnPaymentVoucherItem item) { return(CreatePaymentVoucher(paymentVoucher, new List <FnPaymentVoucherItem> { item })); }
/// <summary> /// 添加付款单明细 /// </summary> /// <param name="item">明细实体</param> /// <returns></returns> /// <remarks>2013-07-19 朱成果 创建</remarks> public int InsertPaymentVoucherItem(FnPaymentVoucherItem item) { return(Hyt.DataAccess.Finance.IFnPaymentVoucherDao.Instance.InsertItem(item)); }
/// <summary> /// 审核提现订单 /// </summary> /// <param name="sysNo">提现订单系统编号</param> /// <returns></returns> /// <remarks>2016-1-10 杨浩 创建</remarks> public bool AduitPredepositCash(int sysNo) { using (var tran = new TransactionScope()) { ICrPredepositCashDao.Instance.UpdateStatus(sysNo, 1); #region 付款单 var predepositCashInfo = GetModel(sysNo); var pvEntity = new FnPaymentVoucher(); pvEntity.Source = (int)FinanceStatus.付款来源类型.会员提现单; pvEntity.SourceSysNo = sysNo; pvEntity.PayableAmount = predepositCashInfo.PdcAmount; pvEntity.PaidAmount = 0; pvEntity.CustomerSysNo = predepositCashInfo.PdcUserId; pvEntity.RefundBank = predepositCashInfo.PdcToBank; pvEntity.RefundAccountName = predepositCashInfo.PdcToName; pvEntity.RefundAccount = predepositCashInfo.PdcCashAccount; pvEntity.Status = (int)FinanceStatus.付款单状态.待付款; pvEntity.CreatedDate = DateTime.Now; pvEntity.PayDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; pvEntity.LastUpdateDate = DateTime.Now; pvEntity.PaymentType = predepositCashInfo.PdcPaymentId; var paymentVoucherItem = new List <FnPaymentVoucherItem>(); #region 提现到余额 if (predepositCashInfo.PdcPaymentId == (int)FinanceStatus.付款单付款方式.余额) { var customerInfo = BLL.CRM.CrCustomerBo.Instance.GetModel(pvEntity.CustomerSysNo); pvEntity.Status = (int)FinanceStatus.付款单状态.已付款; pvEntity.PayDate = DateTime.Now; pvEntity.PayableAmount = 0; pvEntity.PaidAmount = predepositCashInfo.PdcAmount; var item = new FnPaymentVoucherItem(); item.PaymentType = pvEntity.PaymentType; item.Amount = pvEntity.PayableAmount; item.VoucherNo = Guid.NewGuid().ToString("N"); item.Status = (int)FinanceStatus.付款单状态.已付款; item.RefundBank = "转为商城余额"; item.RefundAccountName = customerInfo.NickName; item.RefundAccount = customerInfo.Account; item.CreatedDate = DateTime.Now; item.PayDate = DateTime.Now; item.LastUpdateDate = DateTime.Now; paymentVoucherItem.Add(item); //充值记录 var model = new CrRecharge(); model.TradeNo = Guid.NewGuid().ToString("N"); //"RechargeWX_" + dtNow.ToString("yyMMddHHmmssfff"); model.OutTradeNo = predepositCashInfo.PdcOutTradeNo; model.CustomerSysNo = customerInfo.SysNo; model.ReAmount = predepositCashInfo.PdcAmount; model.RePaymentName = "佣金转余额"; model.RePaymentId = Hyt.Model.SystemPredefined.PaymentType.转账; model.ReAddTime = DateTime.Now; model.State = 1; model.ReMark = "佣金:" + predepositCashInfo.PdcAmount + "元,转为余额"; int res = Hyt.BLL.Balance.CrRechargeBo.Instance.CreateCrRecharge(model); //更新余额 int isb = Hyt.BLL.Balance.CrRechargeBo.Instance.IsExistenceABalance(customerInfo.SysNo); if (isb == 0) { var balance = new CrAccountBalance(); balance.CustomerSysNo = customerInfo.SysNo; balance.AvailableBalance = predepositCashInfo.PdcAmount; balance.FrozenBalance = 0M; balance.TolBlance = predepositCashInfo.PdcAmount; balance.Remark = ""; balance.State = 0; balance.AddTime = DateTime.Now; int ba = Hyt.BLL.Balance.CrRechargeBo.Instance.CreateCrAccountBalance(balance); } else { //更新会员余额 Hyt.BLL.Balance.CrRechargeBo.Instance.UpdateAccountBalance(predepositCashInfo.PdcAmount, customerInfo.SysNo); } BLL.CRM.CrCustomerBo.Instance.UpdateCustomerBrokerageFreeze(customerInfo.SysNo, predepositCashInfo.PdcAmount); } #endregion int voucher = Hyt.BLL.Finance.FinanceBo.Instance.CreatePaymentVoucher(pvEntity, paymentVoucherItem); tran.Complete(); #endregion return(true); } }
/// <summary> /// 作废收款单 /// </summary> /// <param name="sysNo">收款单编号</param> /// <param name="syUser">操作用户</param> /// <returns></returns> ///<remarks>2013-07-08 朱成果 创建</remarks> public void CancelReceiptVoucher(int sysNo, SyUser user) { var entity = Hyt.DataAccess.Finance.IFnReceiptVoucherDao.Instance.GetEntity(sysNo); if (entity == null) { throw new Exception("该收款单不存在"); } if (entity.Status != (int)FinanceStatus.收款单状态.作废 && entity.ReceivedAmount > 0) { SoOrder order = SoOrderBo.Instance.GetEntity(entity.SourceSysNo); if (order != null) { var orderItems = Hyt.DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo).ToList(); if (orderItems.Exists(o => o.RealStockOutQuantity > 0)) { throw new Exception("该订单存在已经出库的商品不能作废"); } FnPaymentVoucher pv = new FnPaymentVoucher() { PayableAmount = entity.ReceivedAmount, CreatedBy = user == null ? 0 : user.SysNo, CreatedDate = DateTime.Now, CustomerSysNo = order.CustomerSysNo, Source = (int)FinanceStatus.付款来源类型.销售单, TransactionSysNo = entity.TransactionSysNo, SourceSysNo = order.SysNo, Status = (int)FinanceStatus.付款单状态.待付款, Remarks = "订单作废" }; //保存付款单 pv.SysNo = Hyt.DataAccess.Finance.IFnPaymentVoucherDao.Instance.Insert(pv); var list = Hyt.DataAccess.Finance.IFnReceiptVoucherItemDao.Instance.GetListByReceiptNo(entity.SysNo); if (list != null) { foreach (FnReceiptVoucherItem m in list) { FnPaymentVoucherItem p = new FnPaymentVoucherItem() { Amount = m.Amount, CreatedBy = user == null ? 0 : user.SysNo, CreatedDate = DateTime.Now, OriginalVoucherNo = m.VoucherNo, OriginalPaymentTypeSysNo = m.PaymentTypeSysNo, PaymentType = GetPaymentType(m.PaymentTypeSysNo),//支付方式对应付款方式 PaymentVoucherSysNo = pv.SysNo, RefundAccount = m.CreditCardNumber, TransactionSysNo = entity.TransactionSysNo, Status = (int)FinanceStatus.付款单明细状态.待付款 }; //保存付款单明细 Hyt.DataAccess.Finance.IFnPaymentVoucherDao.Instance.InsertItem(p); } } var payType = PaymentTypeBo.Instance.GetPaymentTypeFromMemory(order.PayTypeSysNo).PaymentType; //修改订单状态为待支付 if (payType == (int)BasicStatus.支付方式类型.预付) { order.PayStatus = (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单支付状态.未支付; order.Status = (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单状态.待支付; order.OnlineStatus = Constant.OlineStatusType.待支付; SoOrderBo.Instance.UpdateOrder(order); //更新订单 余勇修改为调用业务层方法 //Hyt.DataAccess.Order.ISoOrderDao.Instance.Update(order); } } } entity.Status = (int)FinanceStatus.收款单状态.作废; entity.LastUpdateDate = DateTime.Now; entity.LastUpdateBy = user.SysNo; Hyt.DataAccess.Finance.IFnReceiptVoucherDao.Instance.Update(entity); }
/// <summary> /// 更新付款单明细 /// </summary> /// <param name="entity">付款单明细</param> /// <returns></returns> /// <remarks>2013-07-22 朱成果 创建</remarks> public abstract void UpdateVoucherItem(FnPaymentVoucherItem entity);
/// <summary> /// 添加付款单明细 /// </summary> /// <param name="model">付款单明细</param> /// <returns></returns> /// <remarks> /// 2013-7-12 何方 创建 /// 2013-07-19 朱成果 修改 /// </remarks> public abstract int InsertItem(FnPaymentVoucherItem model);