public int Insert(SOIncomeInfo oParam) { string sql = @"INSERT INTO Finance_SOIncome ( OrderType, OrderSysNo, OrderAmt, IncomeStyle, IncomeAmt, IncomeTime, IncomeUserSysNo, ConfirmTime, ConfirmUserSysNo, Note, Status ) VALUES ( @OrderType, @OrderSysNo, @OrderAmt, @IncomeStyle, @IncomeAmt, @IncomeTime, @IncomeUserSysNo, @ConfirmTime, @ConfirmUserSysNo, @Note, @Status );set @SysNo = SCOPE_IDENTITY();"; SqlCommand cmd = new SqlCommand(sql); SqlParameter paramSysNo = new SqlParameter("@SysNo", SqlDbType.Int,4); SqlParameter paramOrderType = new SqlParameter("@OrderType", SqlDbType.Int,4); SqlParameter paramOrderSysNo = new SqlParameter("@OrderSysNo", SqlDbType.Int,4); SqlParameter paramOrderAmt = new SqlParameter("@OrderAmt", SqlDbType.Decimal,9); SqlParameter paramIncomeStyle = new SqlParameter("@IncomeStyle", SqlDbType.Int,4); SqlParameter paramIncomeAmt = new SqlParameter("@IncomeAmt", SqlDbType.Decimal,9); SqlParameter paramIncomeTime = new SqlParameter("@IncomeTime", SqlDbType.DateTime); SqlParameter paramIncomeUserSysNo = new SqlParameter("@IncomeUserSysNo", SqlDbType.Int,4); SqlParameter paramConfirmTime = new SqlParameter("@ConfirmTime", SqlDbType.DateTime); SqlParameter paramConfirmUserSysNo = new SqlParameter("@ConfirmUserSysNo", SqlDbType.Int,4); SqlParameter paramNote = new SqlParameter("@Note", SqlDbType.NVarChar,200); SqlParameter paramStatus = new SqlParameter("@Status", SqlDbType.Int,4); paramSysNo.Direction = ParameterDirection.Output; if ( oParam.OrderType != AppConst.IntNull) paramOrderType.Value = oParam.OrderType; else paramOrderType.Value = System.DBNull.Value; if ( oParam.OrderSysNo != AppConst.IntNull) paramOrderSysNo.Value = oParam.OrderSysNo; else paramOrderSysNo.Value = System.DBNull.Value; if ( oParam.OrderAmt != AppConst.DecimalNull) paramOrderAmt.Value = oParam.OrderAmt; else paramOrderAmt.Value = System.DBNull.Value; if ( oParam.IncomeStyle != AppConst.IntNull) paramIncomeStyle.Value = oParam.IncomeStyle; else paramIncomeStyle.Value = System.DBNull.Value; if ( oParam.IncomeAmt != AppConst.DecimalNull) paramIncomeAmt.Value = oParam.IncomeAmt; else paramIncomeAmt.Value = System.DBNull.Value; if ( oParam.IncomeTime != AppConst.DateTimeNull) paramIncomeTime.Value = oParam.IncomeTime; else paramIncomeTime.Value = System.DBNull.Value; if ( oParam.IncomeUserSysNo != AppConst.IntNull) paramIncomeUserSysNo.Value = oParam.IncomeUserSysNo; else paramIncomeUserSysNo.Value = System.DBNull.Value; if ( oParam.ConfirmTime != AppConst.DateTimeNull) paramConfirmTime.Value = oParam.ConfirmTime; else paramConfirmTime.Value = System.DBNull.Value; if ( oParam.ConfirmUserSysNo != AppConst.IntNull) paramConfirmUserSysNo.Value = oParam.ConfirmUserSysNo; else paramConfirmUserSysNo.Value = System.DBNull.Value; if ( oParam.Note != AppConst.StringNull) paramNote.Value = oParam.Note; else paramNote.Value = System.DBNull.Value; if ( oParam.Status != AppConst.IntNull) paramStatus.Value = oParam.Status; else paramStatus.Value = System.DBNull.Value; cmd.Parameters.Add(paramSysNo); cmd.Parameters.Add(paramOrderType); cmd.Parameters.Add(paramOrderSysNo); cmd.Parameters.Add(paramOrderAmt); cmd.Parameters.Add(paramIncomeStyle); cmd.Parameters.Add(paramIncomeAmt); cmd.Parameters.Add(paramIncomeTime); cmd.Parameters.Add(paramIncomeUserSysNo); cmd.Parameters.Add(paramConfirmTime); cmd.Parameters.Add(paramConfirmUserSysNo); cmd.Parameters.Add(paramNote); cmd.Parameters.Add(paramStatus); return SqlHelper.ExecuteNonQuery(cmd, out oParam.SysNo); }
public void Refund(int masterSysNo, int userSysNo) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { //�����dz�ʼ״̬ RMARefundInfo oInfo = Load(masterSysNo); if (oInfo.Status != (int)AppEnum.RMARefundStatus.Audited) throw new BizException("status is not audit now, refund failed"); //�����û����� int affectedPoint = 0; affectedPoint = -1 * oInfo.DeductPointFromAccount + oInfo.PointAmt; if (oInfo.RefundPayType == (int)AppEnum.RMARefundPayType.TransferPointRefund) { affectedPoint += Convert.ToInt32(Decimal.Round(oInfo.CashAmt * AppConst.ExchangeRate, 0)); } if (affectedPoint != 0) { //д������־ //CustomerManager.GetInstance().SetCustomerPoint(oInfo.CustomerSysNo, affectedPoint, PointLogType.ReturnProduct, oInfo.SysNo.ToString(), ""); PointManager.GetInstance().SetScore(oInfo.CustomerSysNo, affectedPoint, (int)AppEnum.PointLogType.ReturnProduct , oInfo.SysNo.ToString()); } Hashtable ht = new Hashtable(5); ht.Add("SysNo", masterSysNo); ht.Add("RefundUserSysNo", userSysNo); ht.Add("RefundTime", DateTime.Now); ht.Add("Status", (int)AppEnum.RMARefundStatus.Refunded); if (1 != new RMARefundDac().UpdateMaster(ht)) throw new BizException("expected one-row update failed, update failed "); string sql = @"select rma_refund_item.sysno ,registersysno ,revertstatus from rma_refund_item (NOLOCK) inner join rma_register (NOLOCK) on rma_refund_item.registersysno = rma_register.sysno where rma_refund_item.refundsysno =" + masterSysNo; DataSet ds = SqlHelper.ExecuteDataSet(sql); if (Util.HasMoreRow(ds)) { //����Register�ĸ��� foreach (DataRow dr in ds.Tables[0].Rows) { if (Util.TrimIntNull(dr["revertstatus"]) == (int)AppEnum.RMARevertStatus.Reverted) throw new BizException("�Ѿ�����������ͻ����˿�ʧ�ܣ�����ϵͳ����Ա��ϵ��"); Hashtable htRegister = new Hashtable(2); htRegister.Add("SysNo", Util.TrimIntNull(dr["registersysno"])); htRegister.Add("RefundStatus", (int)AppEnum.RMARefundStatus.Refunded); htRegister.Add("OwnBy", (int)AppEnum.RMAOwnBy.Icson); RMARegisterManager.GetInstance().UpdateRegister(htRegister); } } //�������Ч���տ-->����soincome(ro, origin) SOIncomeInfo soIncome = SOIncomeManager.GetInstance().LoadValid((int)AppEnum.SOIncomeOrderType.RO, oInfo.SysNo); if (soIncome == null)//����Ч�տ�������տ { soIncome = new SOIncomeInfo(); soIncome.OrderType = (int)AppEnum.SOIncomeOrderType.RO; soIncome.OrderSysNo = oInfo.SysNo; decimal affectedCash = 0m; if (oInfo.RefundPayType != (int)AppEnum.RMARefundPayType.TransferPointRefund) affectedCash = -1 * oInfo.CashAmt; soIncome.OrderAmt = soIncome.IncomeAmt = affectedCash; soIncome.IncomeStyle = (int)AppEnum.SOIncomeStyle.RO; soIncome.IncomeUserSysNo = userSysNo; soIncome.IncomeTime = DateTime.Now; soIncome.Status = (int)AppEnum.SOIncomeStatus.Origin; SOIncomeManager.GetInstance().Insert(soIncome); LogInfo log = new LogInfo(); log.OptIP = AppConst.SysIP; log.OptUserSysNo = AppConst.SysUser; log.OptTime = DateTime.Now; log.TicketType = (int)AppEnum.LogType.Finance_SOIncome_Add; log.TicketSysNo = soIncome.SysNo; LogManager.GetInstance().Write(log); } scope.Complete(); } }
public void OutStock(SOInfo soInfo) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { ////���¶���״̬ //1 �鿴������ǰ״̬ //2 ���ø���ֵ������status int currentStatus = this.getCurrentSOStatus(soInfo.SysNo); if (currentStatus != (int)AppEnum.SOStatus.WaitingOutStock) throw new BizException("outstock so: the current status is not WaitingOutStock, operation of OutStock SO failed"); //this.UpdateSO(soInfo); soInfo.Status = (int)AppEnum.SOStatus.OutStock; //���¶���״̬ UpdateSOStatus(soInfo.SysNo, soInfo.Status, soInfo.OutUserSysNo); //������Ʒ��� foreach(SOItemInfo item in soInfo.ItemHash.Values) { InventoryManager.GetInstance().SetSOOutStockQty(soInfo.StockSysNo,item.ProductSysNo,item.Quantity); } //���¶���������ϸ�ɱ� this.SetSOItemCost(soInfo.SysNo); //�������Ч���տ-->����soincome(normal, origin) SOIncomeInfo soIncome = SOIncomeManager.GetInstance().LoadValid((int)AppEnum.SOIncomeOrderType.SO,soInfo.SysNo); if(soIncome==null)//����Ч�տ�������տ { soIncome = new SOIncomeInfo(); soIncome.OrderType = (int)AppEnum.SOIncomeOrderType.SO; soIncome.OrderSysNo = soInfo.SysNo; soIncome.OrderAmt = soIncome.IncomeAmt = Util.TruncMoney(soInfo.GetTotalAmt()); soIncome.IncomeStyle = (int)AppEnum.SOIncomeStyle.Normal; soIncome.IncomeUserSysNo = soInfo.OutUserSysNo; soIncome.IncomeTime = DateTime.Now; soIncome.Status = (int)AppEnum.SOIncomeStatus.Origin; SOIncomeManager.GetInstance().Insert(soIncome); LogInfo log = new LogInfo(); log.OptIP = AppConst.SysIP; log.OptUserSysNo = AppConst.SysUser; log.OptTime = DateTime.Now; log.TicketType = (int)AppEnum.LogType.Finance_SOIncome_Add; log.TicketSysNo = soIncome.SysNo; LogManager.GetInstance().Write(log); } //����л������������pointDelay if(soInfo.PointAmt>0) { SalePointDelayInfo spInfo = new SalePointDelayInfo(); spInfo.SOSysNo = soInfo.SysNo; spInfo.CreateTime = DateTime.Now; spInfo.Status = (int)AppEnum.TriStatus.Origin; PointManager.GetInstance().InsertPointDelay(spInfo); } //��ⶩ�����Ա������м�¼����£�û������� WhProductShelvingInspectionInfo oWhpsi = new WhProductShelvingInspectionInfo(); Hashtable ht = new Hashtable(); ht.Add("BillSysNo", soInfo.SysNo); ht.Add("WorkType", (int)AppEnum.WhWorkType.ProductInspection); ht.Add("BillType", (int)AppEnum.WhWorkBillType.SO); ht.Add("top", "select top 1 "); int whpsiSysNo = WhProductShelvingInspectionManager.GetInstance().GetSysNo(ht); if (whpsiSysNo == 0) { oWhpsi.BillSysNo = soInfo.SysNo; oWhpsi.WorkType = (int)AppEnum.WhWorkType.ProductInspection; oWhpsi.BillType = (int)AppEnum.WhWorkBillType.SO; oWhpsi.AllocatedUserSysNo = UserRatioManager.GetInstance().GetSOInspectionAllocatedMan(soInfo.SysNo); oWhpsi.RealUserSysNo = oWhpsi.AllocatedUserSysNo; oWhpsi.UpdateUserSysNo = 33;//IASϵͳ oWhpsi.UpdateTime = DateTime.Now; WhProductShelvingInspectionManager.GetInstance().Insert(oWhpsi); } else { oWhpsi.SysNo = whpsiSysNo; oWhpsi.BillSysNo = soInfo.SysNo; oWhpsi.WorkType = (int)AppEnum.WhWorkType.ProductInspection; oWhpsi.BillType = (int)AppEnum.WhWorkBillType.SO; oWhpsi.AllocatedUserSysNo = UserRatioManager.GetInstance().GetSOInspectionAllocatedMan(soInfo.SysNo); oWhpsi.RealUserSysNo = oWhpsi.AllocatedUserSysNo; oWhpsi.UpdateUserSysNo = 33;//IASϵͳ oWhpsi.UpdateTime = DateTime.Now; WhProductShelvingInspectionManager.GetInstance().Update(oWhpsi); } scope.Complete(); } }
private void map(SOIncomeInfo oParam, DataRow tempdr) { oParam.SysNo = Util.TrimIntNull(tempdr["SysNo"]); oParam.OrderType = Util.TrimIntNull(tempdr["OrderType"]); oParam.OrderSysNo = Util.TrimIntNull(tempdr["OrderSysNo"]); oParam.OrderAmt = Util.TrimDecimalNull(tempdr["OrderAmt"]); oParam.IncomeStyle = Util.TrimIntNull(tempdr["IncomeStyle"]); oParam.IncomeAmt = Util.TrimDecimalNull(tempdr["IncomeAmt"]); oParam.IncomeTime = Util.TrimDateNull(tempdr["IncomeTime"]); oParam.IncomeUserSysNo = Util.TrimIntNull(tempdr["IncomeUserSysNo"]); oParam.ConfirmTime = Util.TrimDateNull(tempdr["ConfirmTime"]); oParam.ConfirmUserSysNo = Util.TrimIntNull(tempdr["ConfirmUserSysNo"]); oParam.Note = Util.TrimNull(tempdr["Note"]); oParam.Status = Util.TrimIntNull(tempdr["Status"]); }
public void Verify(int netpaySysNo, int userSysNo) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { NetPayInfo dbInfo = Load(netpaySysNo); if ( dbInfo.Status != (int)AppEnum.NetPayStatus.Origin) throw new BizException("netpay: not origin, can't verify"); dbInfo.Status = (int)AppEnum.NetPayStatus.Verified; Hashtable ht = new Hashtable(5); ht.Add("SysNo", dbInfo.SysNo); ht.Add("ApproveUserSysNo", userSysNo); ht.Add("ApproveTime", DateTime.Now); ht.Add("Status", dbInfo.Status); new NetPayDac().Update(ht); //so income ��Ψһ���DZ��жϵ� SOIncomeInfo oIncome = new SOIncomeInfo(); oIncome.OrderType = (int)AppEnum.SOIncomeOrderType.SO; oIncome.OrderSysNo = dbInfo.SOSysNo; oIncome.OrderAmt = dbInfo.PayAmount; oIncome.IncomeStyle = (int)AppEnum.SOIncomeStyle.Advanced; oIncome.IncomeAmt = dbInfo.PayAmount; oIncome.IncomeUserSysNo = userSysNo; oIncome.IncomeTime = DateTime.Now; oIncome.Status = (int)AppEnum.SOIncomeStatus.Origin; SOIncomeManager.GetInstance().Insert(oIncome); scope.Complete(); } }
public void Update(SOIncomeInfo oParam) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { SOIncomeInfo dbInfo = Load(oParam.SysNo); if (dbInfo.Status != (int)AppEnum.SOIncomeStatus.Origin) throw new BizException("soincome: only origin status can update"); Hashtable ht = new Hashtable(2); ht.Add("SysNo", oParam.SysNo); ht.Add("Note", oParam.Note); new SOIncomeDac().Update(ht); scope.Complete(); } }
public SOIncomeInfo load(string sql) { SOIncomeInfo oInfo = null; TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { DataSet ds = SqlHelper.ExecuteDataSet(sql); if (Util.HasMoreRow(ds)) { oInfo = new SOIncomeInfo(); map(oInfo, ds.Tables[0].Rows[0]); } scope.Complete(); } return oInfo; }
public void Insert(SOIncomeInfo oParam) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { SOIncomeInfo dbInfo = LoadValid(oParam.OrderType, oParam.OrderSysNo); if (dbInfo != null) throw new BizException("soincome: record exist already, insert failed"); new SOIncomeDac().Insert(oParam); if (oParam.OrderType == (int)AppEnum.SOIncomeOrderType.SO) SaleManager.GetInstance().PaySO(oParam.OrderSysNo); scope.Complete(); } }
public void Import() { if (!AppConfig.IsImportable) throw new BizException("Is Importable is false"); string sql = " select top 1 sysno from finance_soincome"; DataSet ds = SqlHelper.ExecuteDataSet(sql); if (Util.HasMoreRow(ds)) throw new BizException("the table finance_soincome is not empty"); TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { //1 ��ԭ�����տ���룬 //2 ������Ӧ�ն�û���տ�ģ���Ϊԭ������һ���Ӧ�ռ�¼��ȷ�ģ� // �����ⲿ�ֵ���Դ�� so�Ѿ������û���տ�ģ������տ // ??? UserInfo oUser = SysManager.GetInstance().LoadUser("0061"); string sql2 = @"select 0 as sysno, ordertype, SOorUTSysNo as ordersysno, incomeamt as orderamt, incomeamt_local as incomeamt, incometype as incomestyle, createtime as incometime, con_user1.newsysno as incomeUserSysNo, con_user2.newsysno as confirmUserSysNo, null as confirmTime, note, status from ipp2003..so_income as so_income, ippConvert..sys_user as con_user1, ippConvert..sys_user as con_user2 where so_income.createusersysno *= con_user1.oldsysno and so_income.accountsysno *= con_user2.oldsysno order by so_income.ordersysno asc, so_income.status desc"; DataSet ds2 = SqlHelper.ExecuteDataSet(sql2); int lastsosysno = AppConst.IntNull; bool gotvalid = false; //����ж���valid��orign �� confirm��ֻ�ܵ���һ�� foreach (DataRow dr in ds2.Tables[0].Rows) { SOIncomeInfo item = new SOIncomeInfo(); map(item, dr); //��ǰ����һ���µ�sosysno if (lastsosysno != item.OrderSysNo) { lastsosysno = item.OrderSysNo; gotvalid = false; } /*old * IncomeType 0:���� 1:Ԥ�� 2:�˿� * ordertype 0: so, 1: ro * status 0: ��ȷ�� -1:���� -2:δȷ�� */ if (item.OrderType == 0) item.OrderType = (int)AppEnum.SOIncomeOrderType.SO; else if (item.OrderType == 1) item.OrderType = (int)AppEnum.SOIncomeOrderType.RO; else throw new BizException("no such order type"); if (item.IncomeStyle == 0) item.IncomeStyle = (int)AppEnum.SOIncomeStyle.Normal; else if (item.IncomeStyle == 1) item.IncomeStyle = (int)AppEnum.SOIncomeStyle.Advanced; else if (item.IncomeStyle == 2) item.IncomeStyle = (int)AppEnum.SOIncomeStyle.RO; else throw new BizException("no such imcometype"); if (item.Status == -1) item.Status = (int)AppEnum.SOIncomeStatus.Abandon; else if (item.Status == -2) { item.Status = (int)AppEnum.SOIncomeStatus.Origin; } else if (item.Status == 0) { item.Status = (int)AppEnum.SOIncomeStatus.Confirmed; } else throw new BizException("no such status"); if (item.IncomeUserSysNo == AppConst.IntNull) item.IncomeUserSysNo = oUser.SysNo; if (item.ConfirmUserSysNo != AppConst.IntNull) item.ConfirmTime = DateTime.Now; if (item.Status == (int)AppEnum.SOIncomeStatus.Abandon || !gotvalid) { new SOIncomeDac().Insert(item); if (item.Status == (int)AppEnum.SOIncomeStatus.Origin || item.Status == (int)AppEnum.SOIncomeStatus.Confirmed) gotvalid = true; } } /* * ��������µ�������������⣬sql1�����õ���cashamt, ���������so�Ļ����ֽ�֧�����֡� * ����������������� 2005.05.18 18:42 by marco * update finance_soincome set orderamt = round(cashamt+shipprice+premiumamt+payprice,2), incomeamt = round(cashamt+shipprice+premiumamt+payprice,2) from ipp2003..so_master so, ippConvert..sys_user as con_user where so.warehouseUserSysNo =con_user.oldsysno and so.status = 4 and so.soid not in ( select soOrUtid from ipp2003..so_income where ordertype = 0) and outtime >= '2003-08-07' and so.sysno = ordersysno and ordertype = 1 */ string sql1 = @"select 0 as sysno, 0 as orderType, so.sysno as orderSysNo, cashamt as orderamt, 0 as incomestyle, cashamt as incomeamt, outtime as incometime, con_user.newsysno as incomeusersysno, null as confirmtime, null as confirmusersysno, 'ipp3����' as note, 0 as status from ipp2003..so_master so, ippConvert..sys_user as con_user where so.warehouseUserSysNo =con_user.oldsysno and so.status = 4 and so.soid not in ( select soOrUtid from ipp2003..so_income where ordertype = 0) and outtime >= '2003-08-07'"; DataSet ds1 = SqlHelper.ExecuteDataSet(sql1); if (!Util.HasMoreRow(ds1)) return; foreach (DataRow dr in ds1.Tables[0].Rows) { SOIncomeInfo item = new SOIncomeInfo(); map(item, dr); item.OrderType = (int)AppEnum.SOIncomeOrderType.SO; item.IncomeStyle = (int)AppEnum.SOIncomeStyle.Normal; item.Status = (int)AppEnum.SOIncomeStatus.Origin; new SOIncomeDac().Insert(item); } scope.Complete(); } }
public void ReturnRO(ROInfo roInfo) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { if (this.GetROCurrentStatus(roInfo.SysNo) != (int)AppEnum.ROStatus.Audited) throw new BizException("This RO is not Audited now ,can't be returned"); roInfo.Status = (int)AppEnum.ROStatus.Returned; //update ro status Hashtable paramHash = new Hashtable(4); paramHash.Add("Status", roInfo.Status); paramHash.Add("ReturnTime", roInfo.ReturnTime); paramHash.Add("ReturnUserSysNo", roInfo.ReturnUserSysNo); paramHash.Add("SysNo", roInfo.SysNo); this.UpdateROMaster(paramHash); //update inventory foreach (ROItemInfo roItem in roInfo.ItemHash.Values) { //UnitCostManager.GetInstance().SetCost(roItem.ProductSysNo, roItem.Quantity, roItem.Cost); //Serious bug 2007-07-21 //�˻�ʱ��Ӱ��һ����Ʒ�ijɱ���ֻ��Ҫ�Ķ�����Ʒ�ijɱ� UnitCostManager.GetInstance().SetCost(roItem.ReturnSysNo, roItem.Quantity, roItem.Cost); InventoryManager.GetInstance().SetInStockQty(roInfo.StockSysNo, roItem.ReturnSysNo, roItem.Quantity); } //update customer score RMAInfo oRMA = RMAManager.GetInstance().LoadMaster(roInfo.RMASysNo); //�Ƚ����۵����û��ּ��� PointManager.GetInstance().DoDelayPointSingle(oRMA.SOSysNo); //Ȼ���ȥ�˻���Ӧ���� if (roInfo.PointAmt != 0) { PointManager.GetInstance().SetScore(oRMA.CustomerSysNo, roInfo.PointAmt * (-1), (int)AppEnum.PointLogType.ReturnProduct, roInfo.SysNo.ToString()); } //�����տ //�������Ч���տ-->����soincome(normal, origin) SOIncomeInfo soIncome = SOIncomeManager.GetInstance().LoadValid((int)AppEnum.SOIncomeOrderType.RO, roInfo.SysNo); if (soIncome == null)//����Ч�տ�������տ { soIncome = new SOIncomeInfo(); soIncome.OrderType = (int)AppEnum.SOIncomeOrderType.RO; soIncome.OrderSysNo = roInfo.SysNo; soIncome.OrderAmt = soIncome.IncomeAmt = Util.TruncMoney(roInfo.CashAmt + roInfo.RedeemAmt); soIncome.IncomeStyle = (int)AppEnum.SOIncomeStyle.Normal; soIncome.IncomeUserSysNo = roInfo.ReturnUserSysNo; soIncome.IncomeTime = DateTime.Now; soIncome.Status = (int)AppEnum.SOIncomeStatus.Origin; SOIncomeManager.GetInstance().Insert(soIncome); } scope.Complete(); } }