public int InsertItem(RMARefundItemInfo oParam) { string sql = @"INSERT INTO rma_refund_item ( RefundSysNo, RegisterSysNo, OrgPrice, UnitDiscount, ProductValue, OrgPoint, RefundPrice, PointType, RefundCash, RefundPoint , RefundPriceType , RefundCost , RefundCostPoint ) VALUES ( @RefundSysNo, @RegisterSysNo, @OrgPrice, @UnitDiscount, @ProductValue, @OrgPoint, @RefundPrice, @PointType, @RefundCash, @RefundPoint , @RefundPriceType , @RefundCost , @RefundCostPoint );set @SysNo = SCOPE_IDENTITY();"; SqlCommand cmd = new SqlCommand(sql); SqlParameter paramSysNo = new SqlParameter("@SysNo", SqlDbType.Int,4); SqlParameter paramRefundSysNo = new SqlParameter("@RefundSysNo", SqlDbType.Int,4); SqlParameter paramRegisterSysNo = new SqlParameter("@RegisterSysNo", SqlDbType.Int,4); SqlParameter paramOrgPrice = new SqlParameter("@OrgPrice", SqlDbType.Decimal,9); SqlParameter paramUnitDiscount = new SqlParameter("@UnitDiscount", SqlDbType.Decimal,9); SqlParameter paramProductValue = new SqlParameter("@ProductValue", SqlDbType.Decimal,9); SqlParameter paramOrgPoint = new SqlParameter("@OrgPoint", SqlDbType.Int,4); SqlParameter paramRefundPrice = new SqlParameter("@RefundPrice", SqlDbType.Decimal,9); SqlParameter paramPointType = new SqlParameter("@PointType", SqlDbType.Int,4); SqlParameter paramRefundCash = new SqlParameter("@RefundCash", SqlDbType.Decimal,9); SqlParameter paramRefundPoint = new SqlParameter("@RefundPoint", SqlDbType.Int,4); SqlParameter paramRefundPriceType = new SqlParameter("@RefundPriceType", SqlDbType.Int,4); SqlParameter paramRefundCost = new SqlParameter("@RefundCost", SqlDbType.Decimal,9); SqlParameter paramRefundCostPoint = new SqlParameter("@RefundCostPoint", SqlDbType.Int,4); paramSysNo.Direction = ParameterDirection.Output; if ( oParam.RefundSysNo != AppConst.IntNull) paramRefundSysNo.Value = oParam.RefundSysNo; else paramRefundSysNo.Value = System.DBNull.Value; if ( oParam.RegisterSysNo != AppConst.IntNull) paramRegisterSysNo.Value = oParam.RegisterSysNo; else paramRegisterSysNo.Value = System.DBNull.Value; if ( oParam.OrgPrice != AppConst.DecimalNull) paramOrgPrice.Value = oParam.OrgPrice; else paramOrgPrice.Value = System.DBNull.Value; if ( oParam.UnitDiscount != AppConst.DecimalNull) paramUnitDiscount.Value = oParam.UnitDiscount; else paramUnitDiscount.Value = System.DBNull.Value; if ( oParam.ProductValue != AppConst.DecimalNull) paramProductValue.Value = oParam.ProductValue; else paramProductValue.Value = System.DBNull.Value; if ( oParam.OrgPoint != AppConst.IntNull) paramOrgPoint.Value = oParam.OrgPoint; else paramOrgPoint.Value = System.DBNull.Value; if ( oParam.RefundPrice != AppConst.DecimalNull) paramRefundPrice.Value = oParam.RefundPrice; else paramRefundPrice.Value = System.DBNull.Value; if ( oParam.PointType != AppConst.IntNull) paramPointType.Value = oParam.PointType; else paramPointType.Value = System.DBNull.Value; if ( oParam.RefundCash != AppConst.DecimalNull) paramRefundCash.Value = oParam.RefundCash; else paramRefundCash.Value = System.DBNull.Value; if ( oParam.RefundPoint != AppConst.IntNull) paramRefundPoint.Value = oParam.RefundPoint; else paramRefundPoint.Value = System.DBNull.Value; if ( oParam.RefundPriceType != AppConst.IntNull) paramRefundPriceType.Value = oParam.RefundPriceType; else paramRefundPriceType.Value = System.DBNull.Value; if ( oParam.RefundCost != AppConst.DecimalNull) paramRefundCost.Value = oParam.RefundCost; else paramRefundCost.Value = System.DBNull.Value; if ( oParam.RefundCostPoint != AppConst.IntNull) paramRefundCostPoint.Value = oParam.RefundCostPoint; else paramRefundCostPoint.Value = System.DBNull.Value; cmd.Parameters.Add(paramSysNo); cmd.Parameters.Add(paramRefundSysNo); cmd.Parameters.Add(paramRegisterSysNo); cmd.Parameters.Add(paramOrgPrice); cmd.Parameters.Add(paramUnitDiscount); cmd.Parameters.Add(paramProductValue); cmd.Parameters.Add(paramOrgPoint); cmd.Parameters.Add(paramRefundPrice); cmd.Parameters.Add(paramPointType); cmd.Parameters.Add(paramRefundCash); cmd.Parameters.Add(paramRefundPoint); cmd.Parameters.Add(paramRefundPriceType); cmd.Parameters.Add(paramRefundCost); cmd.Parameters.Add(paramRefundCostPoint); return SqlHelper.ExecuteNonQuery(cmd); }
/// <summary> /// SoIncomeʹ��,�ɰ��ͻ������ÿͻ���ȫ��RO�� /// </summary> /// <param name="sysno"></param> /// <returns></returns> public RMARefundInfo LoadRMARefund(int sysno) { string sql = "select * from rma_refund (nolock) where sysno = " + sysno; DataSet ds = SqlHelper.ExecuteDataSet(sql); RMARefundInfo oMaster = new RMARefundInfo(); if (Util.HasMoreRow(ds)) { map(oMaster, ds.Tables[0].Rows[0]); string sql_item = "select * from rma_refund_item (nolock) where refundsysno =" + oMaster.SysNo; DataSet ds_item = SqlHelper.ExecuteDataSet(sql_item); if (Util.HasMoreRow(ds_item)) { foreach (DataRow dr in ds_item.Tables[0].Rows) { RMARefundItemInfo oItem = new RMARefundItemInfo(); map(oItem, dr); oMaster.ItemHash.Add(oItem.RegisterSysNo, oItem); } } } else { oMaster = null; } return oMaster; }
public void Create(RMARefundInfo oParam) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { //1 get register item with the same so sysno //2 load sosysno, //3 foreach registersysno calc so, set some default value //4 calc master string sql_register = @"select rma_register.sysno, productsysno from rma_request (NOLOCK), rma_request_item (NOLOCK), rma_register (NOLOCK) where rma_request.sysno = rma_request_item.requestsysno and rma_request.sosysno = @sosysno and rma_register.refundstatus = @0 and rma_register.sysno = rma_request_item.registersysno and rma_register.sysno not in ( select rma_refund_item.registersysno from rma_refund (NOLOCK), rma_refund_item (NOLOCK) where rma_refund.sysno = rma_refund_item.refundsysno and rma_refund.status <> @1 )"; sql_register = sql_register.Replace("@sosysno", oParam.SOSysNo.ToString()); sql_register = sql_register.Replace("@0", ((int)AppEnum.RMARefundStatus.WaitingRefund).ToString()); sql_register = sql_register.Replace("@1", ((int)AppEnum.RMARefundStatus.Abandon).ToString()); DataSet ds_register = SqlHelper.ExecuteDataSet(sql_register); if (!Util.HasMoreRow(ds_register)) throw new BizException("no valid register item can be inserted into refund sheet"); SOInfo oSO = SaleManager.GetInstance().LoadSO(oParam.SOSysNo); //get something from so oParam.CustomerSysNo = oSO.CustomerSysNo; //set ship price default ����ȱʡ �⳥�˷� oParam.CompensateShipPrice = 0; foreach (DataRow dr in ds_register.Tables[0].Rows) { RMARefundItemInfo refundItem = new RMARefundItemInfo(); //refundItem.RefundSysNo �Ȳ����ʱ��ֵ refundItem.RegisterSysNo = Util.TrimIntNull(dr["sysno"]); int productSysNo = Util.TrimIntNull(dr["productSysNo"]); SOItemInfo soItem = oSO.ItemHash[productSysNo] as SOItemInfo; refundItem.OrgPrice = soItem.Price; refundItem.UnitDiscount = Decimal.Round(soItem.DiscountAmt / soItem.Quantity, 2); refundItem.ProductValue = refundItem.OrgPrice + refundItem.UnitDiscount; refundItem.OrgPoint = soItem.Point; refundItem.RefundPrice = refundItem.ProductValue; //ȱʡ����Ϊȫ�� refundItem.PointType = soItem.PointType; refundItem.RefundPriceType = (int)AppEnum.ReturnPriceType.TenPercentsOff; //ȱʡ����Ϊ10%�ۼ��˿� //refundItem.RefundCash = 0; //refundItem.RefundPoint = 0; oParam.ItemHash.Add(refundItem.RegisterSysNo, refundItem); } Calc(oParam); //inster master oParam.SysNo = SequenceDac.GetInstance().Create("RMA_Refund_Sequence"); oParam.RefundID = getRefundID(oParam.SysNo); oParam.RefundPayType = (int)AppEnum.RMARefundPayType.CashRefund; //Ĭ��Ϊ�ֽ��˿� new RMARefundDac().InsertMaster(oParam); //insert item; foreach (RMARefundItemInfo oItem in oParam.ItemHash.Values) { oItem.RefundSysNo = oParam.SysNo; new RMARefundDac().InsertItem(oItem); } scope.Complete(); } }
public RMARefundInfo Load(int sysno) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { string sql = "select * from rma_refund (NOLOCK) where sysno = " + sysno; DataSet ds = SqlHelper.ExecuteDataSet(sql); if (!Util.HasMoreRow(ds)) throw new BizException("does not exist such sysno"); RMARefundInfo oMaster = new RMARefundInfo(); map(oMaster, ds.Tables[0].Rows[0]); string sql_item = "select * from rma_refund_item (NOLOCK) where refundsysno =" + oMaster.SysNo; DataSet ds_item = SqlHelper.ExecuteDataSet(sql_item); if (Util.HasMoreRow(ds_item)) { foreach (DataRow dr in ds_item.Tables[0].Rows) { RMARefundItemInfo oItem = new RMARefundItemInfo(); map(oItem, dr); oMaster.ItemHash.Add(oItem.RegisterSysNo, oItem); } } scope.Complete(); return oMaster; } }
private void map(RMARefundItemInfo oParam, DataRow tempdr) { oParam.SysNo = Util.TrimIntNull(tempdr["SysNo"]); oParam.RefundSysNo = Util.TrimIntNull(tempdr["RefundSysNo"]); oParam.RegisterSysNo = Util.TrimIntNull(tempdr["RegisterSysNo"]); oParam.OrgPrice = Util.TrimDecimalNull(tempdr["OrgPrice"]); oParam.UnitDiscount = Util.TrimDecimalNull(tempdr["UnitDiscount"]); oParam.ProductValue = Util.TrimDecimalNull(tempdr["ProductValue"]); oParam.OrgPoint = Util.TrimIntNull(tempdr["OrgPoint"]); oParam.RefundPrice = Util.TrimDecimalNull(tempdr["RefundPrice"]); oParam.PointType = Util.TrimIntNull(tempdr["PointType"]); oParam.RefundCash = Util.TrimDecimalNull(tempdr["RefundCash"]); oParam.RefundPoint = Util.TrimIntNull(tempdr["RefundPoint"]); oParam.RefundCost = Util.TrimDecimalNull(tempdr["RefundCost"]); }