Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        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;

            }
        }
Ejemplo n.º 5
0
 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"]);
 }