Beispiel #1
0
 private void map(RMAItemInfo oParam, DataRow tempdr)
 {
     oParam.SysNo        = Util.TrimIntNull(tempdr["SysNo"]);
     oParam.RMASysNo     = Util.TrimIntNull(tempdr["RMASysNo"]);
     oParam.ProductSysNo = Util.TrimIntNull(tempdr["ProductSysNo"]);
     oParam.RMAType      = Util.TrimIntNull(tempdr["RMAType"]);
     oParam.RMAQty       = Util.TrimIntNull(tempdr["RMAQty"]);
     oParam.RMADesc      = Util.TrimNull(tempdr["RMADesc"]);
 }
Beispiel #2
0
        public RMAInfo BuildRMAfromSO(int soSysNo)
        {
            if (!this.IfExistOpenedRMA(soSysNo))
            {
                RMAInfo rmaInfo = new RMAInfo();
                SOInfo  soInfo  = SaleManager.GetInstance().LoadSO(soSysNo);
                if (soInfo != null && soInfo.Status == (int)AppEnum.SOStatus.OutStock)
                {
                    rmaInfo.SOSysNo       = soInfo.SysNo;
                    rmaInfo.CustomerSysNo = soInfo.CustomerSysNo;
                    if (soInfo.ItemHash.Count > 0)
                    {
                        foreach (SOItemInfo soItem in soInfo.ItemHash.Values)
                        {
                            RMAItemInfo rmaItem = new RMAItemInfo();
                            rmaItem.ProductSysNo = soItem.ProductSysNo;
                            rmaItem.RMAType      = (int)AppEnum.RMAType.Unsure;
                            rmaItem.RMAQty       = soItem.Quantity;
                            rmaInfo.ItemHash.Add(rmaItem.ProductSysNo, rmaItem);

                            string    SOItemPODesc = "";
                            Hashtable ht           = SaleManager.GetInstance().LoadSOItemPOList(soItem.SysNo);
                            if (ht != null)
                            {
                                foreach (SOItemPOInfo soItemPO in ht.Keys)
                                {
                                    if (soItemPO.POSysNo > 0)
                                    {
                                        POInfo poInfo      = PurchaseManager.GetInstance().LoadPO(soItemPO.POSysNo);
                                        int    VendorSysNo = poInfo.VendorSysNo;
                                        SOItemPODesc += "采购单号:<a href=\"javascript:openWindowS2('../Purchase/POSheet.aspx?sysno=" + soItemPO.POSysNo + "&opt=view')" + "\" >" + soItemPO.POSysNo + "</a>, " + "供应商编号:<a href=\"javascript:openWindowS2('../Basic/VendorOpt.aspx?sysno=" + VendorSysNo + "&opt=update')" + "\">" + VendorSysNo + "</a><br>";
                                    }
                                    else if (soItemPO.ProductIDSysNo > 0)
                                    {
                                        SOItemPODesc += "商品序列号:<a href=\"javascript:openWindowS2('../Basic/ProductID.aspx?sysno=" + soItemPO.ProductIDSysNo + "')" + "\" >" + soItemPO.ProductIDSysNo + "</a><br>";
                                    }
                                }
                            }
                            rmaItem.SOItemPODesc = SOItemPODesc;
                        }
                    }
                }
                else
                {
                    rmaInfo = null;
                }
                return(rmaInfo);
            }
            else
            {
                throw new BizException("本销售单已经存在一张保修单在处理中,其间您不能再提交新的保修申请,请联系ORS商城客服");
            }
        }
Beispiel #3
0
        private void UpdateRMAItem(RMAItemInfo item)
        {
            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout        = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                new RMADac().UpdateItem(item);
                scope.Complete();
            }
        }
Beispiel #4
0
        public RMAItemInfo LoadSingleItem(int rmaItemSysNo)
        {
            string  sql = "select * from RMA_Item where sysno =" + rmaItemSysNo;
            DataSet ds  = SqlHelper.ExecuteDataSet(sql);

            if (!Util.HasMoreRow(ds))
            {
                throw new BizException("This RMA Item doesn't exist");
            }
            RMAItemInfo oRMAItem = new RMAItemInfo();

            this.map(oRMAItem, ds.Tables[0].Rows[0]);
            return(oRMAItem);
        }
Beispiel #5
0
        public void Import()
        {
            string  sql = @"select top 1 * from rma_master;
						   select top 1 * from rma_item;"                        ;
            DataSet ds  = SqlHelper.ExecuteDataSet(sql);

            foreach (DataTable dt in ds.Tables)
            {
                if (Util.HasMoreRow(dt))
                {
                    throw new BizException("The target 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))
            {
                //Insert RMA_Master
                string  sqlMaster = @"select rm.sysno, rmaid, sosysno, customsysno as customersysno, approvetime as audittime, suau.newsysno as auditusersysno, status, rmatime as createtime,
									 note as rmanote,note as ccnote
									 from ipp2003..rma_master rm
									 left join ippconvert..sys_user suau on suau.oldsysno = rm.approversysno"                                    ;
                DataSet dsMaster  = SqlHelper.ExecuteDataSet(sqlMaster);
                if (Util.HasMoreRow(dsMaster))
                {
                    foreach (DataRow dr in dsMaster.Tables[0].Rows)
                    {
                        RMAInfo oRMA = new RMAInfo();
                        oRMA.SysNo          = Util.TrimIntNull(dr["SysNo"]);
                        oRMA.RMAID          = Util.TrimNull(dr["RMAID"]);
                        oRMA.SOSysNo        = Util.TrimIntNull(dr["SOSysNo"]);
                        oRMA.CustomerSysNo  = Util.TrimIntNull(dr["CustomerSysNo"]);
                        oRMA.AuditTime      = Util.TrimDateNull(dr["AuditTime"]);
                        oRMA.AuditUserSysNo = Util.TrimIntNull(dr["AuditUserSysNo"]);
                        switch ((int)dr["Status"])
                        {
                        case -1:
                            oRMA.Status = (int)AppEnum.RMAStatus.Abandon;
                            break;

                        case 0:
                            oRMA.Status = (int)AppEnum.RMAStatus.Origin;
                            break;

                        case 1:
                            oRMA.Status = (int)AppEnum.RMAStatus.Closed;
                            break;
                        }
                        oRMA.CreateTime = Util.TrimDateNull(dr["CreateTime"]);
                        oRMA.RMANote    = Util.TrimNull(dr["RMANote"]);
                        oRMA.CCNote     = Util.TrimNull(dr["CCNote"]);
                        oRMA.UserStatus = 1;
                        new RMADac().InsertMaster(oRMA);
                    }
                }
                //Insert RMA_Item
                string sqlItem = @"select 1 as sysno,rmasysno,case realrmatype when 3 then " + (int)AppEnum.RMAType.Overrule + @" when 1 then " + (int)AppEnum.RMAType.Return
                                 + @" when 2 then " + (int)AppEnum.RMAType.Maintain + @" end as rmatype, realrmaquantity as rmaqty,
								   realrmareason as rmadesc,pb.newsysno as productsysno 
								   from ipp2003..rma_item ri
								   inner join ippconvert..productbasic pb on pb.oldsysno = ri.productsysno"                                ;
                DataSet dsItem = SqlHelper.ExecuteDataSet(sqlItem);
                if (Util.HasMoreRow(dsItem))
                {
                    foreach (DataRow dr in dsItem.Tables[0].Rows)
                    {
                        RMAItemInfo oRMAItem = new RMAItemInfo();
                        this.map(oRMAItem, dr);
                        new RMADac().InsertItem(oRMAItem);
                    }
                }
                //Insert SnapShot
                string sqlSnapShot = @"select rmasysno,rmaid,case rmatype when 0 then " + (int)AppEnum.RMAType.Unsure + @" when 1 then " + (int)AppEnum.RMAType.Return
                                     + @" when 2 then " + (int)AppEnum.RMAType.Maintain + @" end as rmatype, rmaquantity as rmaqty,
									   rmareason as rmadesc,pb.newsysno as productsysno,pl.productname,p.productid
									   from ipp2003..rma_item ri
									   inner join ippconvert..productbasic pb on pb.oldsysno = ri.productsysno
									   inner join ipp2003..product_language pl on pl.productsysno = ri.productsysno and pl.languageid = 'cn'
									   inner join ipp2003..product p on p.sysno = ri.productsysno
									   inner join ipp2003..rma_master rm on rm.sysno = ri.rmasysno
									   order by rmasysno"                                    ;
                DataSet dsSnapShot = SqlHelper.ExecuteDataSet(sqlSnapShot);
                if (Util.HasMoreRow(dsSnapShot))
                {
                    StringBuilder sb        = new StringBuilder();
                    int           tempSysNo = 0;
                    foreach (DataRow dr in dsSnapShot.Tables[0].Rows)
                    {
                        if (tempSysNo != (int)dr["RMASysNo"])
                        {
                            if (tempSysNo != 0)
                            {
                                sb.Append("</table>");
                                Hashtable updateht = new Hashtable();
                                updateht.Add("SysNo", tempSysNo);
                                updateht.Add("SubmitInfo", sb.ToString());
                                updateht.Add("ReceiveInfo", sb.ToString());
                                new RMADac().UpdateMaster(updateht);
                                sb.Remove(0, sb.Length);
                            }
                            sb.Append("<table width='100%' border='1' cellpadding='0' cellspacing='0'>");
                            sb.Append("	<tr>");
                            sb.Append("	 <td>" + dr["RMAID"].ToString() + "</td>");
                            sb.Append("	 <td>商品名称</td>");
                            sb.Append("  <td>返修数量</td>");
                            sb.Append("	 <td>返修类型</td>");
                            sb.Append("  <td>返修原因</td>");
                            sb.Append(" </tr>");
                        }
                        sb.Append("<tr>");
                        sb.Append(" <td>" + dr["ProductID"].ToString() + "</td>");
                        sb.Append(" <td>" + dr["ProductName"].ToString() + "</td>");
                        sb.Append(" <td>" + dr["RMAQty"].ToString() + "</td>");
                        sb.Append(" <td>" + AppEnum.GetRMAType(Util.TrimIntNull(dr["RMAType"])) + "</td>");
                        sb.Append(" <td>" + dr["RMADesc"].ToString() + "</td>");
                        sb.Append("</tr>");
                        tempSysNo = (int)dr["RMASysNo"];
                    }
                }
                //Insert Sequence
                string  sqlMaxSysNo = @"select max(sysno) as sysno from rma_master";
                DataSet dsMaxSysNo  = SqlHelper.ExecuteDataSet(sqlMaxSysNo);
                int     n           = 0;
                while (n < Util.TrimIntNull(dsMaxSysNo.Tables[0].Rows[0][0]))
                {
                    n = SequenceDac.GetInstance().Create("RMA_Sequence");
                }
                scope.Complete();
            }
        }
Beispiel #6
0
        public RMAInfo Load(int rmaSysNo)
        {
//            TransactionOptions options = new TransactionOptions();
//            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
//            options.Timeout = TransactionManager.DefaultTimeout;

//            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
//            {
//                RMAInfo oRMA = this.LoadMaster(rmaSysNo);
//                if (oRMA != null)
//                {
//                    string sql = "select * from RMA_Item where rmasysno =" + rmaSysNo;
//                    DataSet ds = SqlHelper.ExecuteDataSet(sql);
//                    if (Util.HasMoreRow(ds))
//                    {
//                        foreach (DataRow dr in ds.Tables[0].Rows)
//                        {
//                            RMAItemInfo oRMAItem = new RMAItemInfo();
//                            this.map(oRMAItem, dr);

//                            string SOItemPODesc = "";
//                            sql = @"select pm.sysno as posysno,pm.vendorsysno from RMA_Item ri
//                                    inner join RMA_Master rm on ri.RMASysNo=rm.sysno
//                                    inner join so_master sm on rm.sosysno=sm.sysno
//                                    inner join so_item si on sm.sysno=si.sosysno and si.productsysno=ri.productsysno
//                                    inner join so_item_po sip on si.sysno=sip.soitemsysno
//                                    inner join po_master pm on sip.posysno=pm.sysno
//                                     where rm.sysno=" + rmaSysNo + " and ri.productsysno=" + Util.TrimIntNull(dr["ProductSysNo"]);
//                            DataSet dsSOItemPO = SqlHelper.ExecuteDataSet(sql);
//                            foreach (DataRow drSOItemPO in dsSOItemPO.Tables[0].Rows)
//                            {
//                                int POSysNo = Util.TrimIntNull(drSOItemPO["posysno"].ToString());
//                                int VendorSysNo = Util.TrimIntNull(drSOItemPO["vendorsysno"].ToString());
//                                SOItemPODesc += "采购单号:<a href=\"javascript:openWindowS2('../Purchase/POSheet.aspx?sysno=" + POSysNo + "&opt=view')" + "\" >" + POSysNo + "</a>, " + "供应商编号:<a href=\"javascript:openWindowS2('../Basic/VendorOpt.aspx?sysno=" + VendorSysNo + "&opt=update')" + "\">" + VendorSysNo + "</a><br>";
//                            }
//                            oRMAItem.SOItemPODesc = SOItemPODesc;

//                            oRMA.ItemHash.Add(oRMAItem.ProductSysNo, oRMAItem);
//                        }
//                    }
//                }
//                scope.Complete();
//                return oRMA;
//            }

            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout        = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                RMAInfo oRMA = this.LoadMaster(rmaSysNo);
                if (oRMA != null)
                {
                    string  sql = "select * from RMA_Item where rmasysno =" + rmaSysNo;
                    DataSet ds  = SqlHelper.ExecuteDataSet(sql);
                    if (Util.HasMoreRow(ds))
                    {
                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            RMAItemInfo oRMAItem = new RMAItemInfo();
                            this.map(oRMAItem, dr);

                            string SOItemPODesc = "";
                            sql = @"select isnull(pm.sysno,0) as posysno,isnull(pm.vendorsysno,0) as vendorsysno,isnull(pid.sysno,0) as productidsysno from RMA_Item ri 
                                    inner join RMA_Master rm on ri.RMASysNo=rm.sysno 
                                    inner join so_master sm on rm.sosysno=sm.sysno 
                                    inner join so_item si on sm.sysno=si.sosysno and si.productsysno=ri.productsysno 
                                    inner join so_item_po sip on si.sysno=sip.soitemsysno 
                                    left join po_master pm on sip.posysno=pm.sysno 
                                    left join product_id pid on sip.productidsysno=pid.sysno 
                                    where rm.sysno=" + rmaSysNo + " and ri.productsysno=" + Util.TrimIntNull(dr["ProductSysNo"]);
                            DataSet dsSOItemPO = SqlHelper.ExecuteDataSet(sql);
                            foreach (DataRow drSOItemPO in dsSOItemPO.Tables[0].Rows)
                            {
                                int POSysNo        = Util.TrimIntNull(drSOItemPO["posysno"].ToString());
                                int VendorSysNo    = Util.TrimIntNull(drSOItemPO["vendorsysno"].ToString());
                                int ProductIDSysNo = Util.TrimIntNull(drSOItemPO["productidsysno"].ToString());
                                if (POSysNo > 0)
                                {
                                    SOItemPODesc += "采购单号:<a href=\"javascript:openWindowS2('../Purchase/POSheet.aspx?sysno=" + POSysNo + "&opt=view')" + "\" >" + POSysNo + "</a>, " + "供应商编号:<a href=\"javascript:openWindowS2('../Basic/VendorOpt.aspx?sysno=" + VendorSysNo + "&opt=update')" + "\">" + VendorSysNo + "</a><br>";
                                }
                                else if (ProductIDSysNo > 0)
                                {
                                    SOItemPODesc += "商品序列号:<a href=\"javascript:openWindowS2('../Basic/ProductID.aspx?sysno=" + ProductIDSysNo + "')" + "\" >" + ProductIDSysNo + "</a><br>";
                                }
                            }
                            oRMAItem.SOItemPODesc = SOItemPODesc;
                            oRMA.ItemHash.Add(oRMAItem.ProductSysNo, oRMAItem);
                        }
                    }
                }
                scope.Complete();
                return(oRMA);
            }
        }
Beispiel #7
0
        public int UpdateItem(RMAItemInfo oParam)
        {
            string sql = @"UPDATE RMA_Item SET 
                           RMASysNo=@RMASysNo, 
                           ProductSysNo=@ProductSysNo, RMAType=@RMAType, 
                           RMAQty=@RMAQty, RMADesc=@RMADesc
                           WHERE SysNo=@SysNo";

            SqlCommand cmd = new SqlCommand(sql);

            SqlParameter paramSysNo        = new SqlParameter("@SysNo", SqlDbType.Int, 4);
            SqlParameter paramRMASysNo     = new SqlParameter("@RMASysNo", SqlDbType.Int, 4);
            SqlParameter paramProductSysNo = new SqlParameter("@ProductSysNo", SqlDbType.Int, 4);
            SqlParameter paramRMAType      = new SqlParameter("@RMAType", SqlDbType.Int, 4);
            SqlParameter paramRMAQty       = new SqlParameter("@RMAQty", SqlDbType.Int, 4);
            SqlParameter paramRMADesc      = new SqlParameter("@RMADesc", SqlDbType.NVarChar, 500);

            if (oParam.SysNo != AppConst.IntNull)
            {
                paramSysNo.Value = oParam.SysNo;
            }
            else
            {
                paramSysNo.Value = System.DBNull.Value;
            }
            if (oParam.RMASysNo != AppConst.IntNull)
            {
                paramRMASysNo.Value = oParam.RMASysNo;
            }
            else
            {
                paramRMASysNo.Value = System.DBNull.Value;
            }
            if (oParam.ProductSysNo != AppConst.IntNull)
            {
                paramProductSysNo.Value = oParam.ProductSysNo;
            }
            else
            {
                paramProductSysNo.Value = System.DBNull.Value;
            }
            if (oParam.RMAType != AppConst.IntNull)
            {
                paramRMAType.Value = oParam.RMAType;
            }
            else
            {
                paramRMAType.Value = System.DBNull.Value;
            }
            if (oParam.RMAQty != AppConst.IntNull)
            {
                paramRMAQty.Value = oParam.RMAQty;
            }
            else
            {
                paramRMAQty.Value = System.DBNull.Value;
            }
            if (oParam.RMADesc != AppConst.StringNull)
            {
                paramRMADesc.Value = oParam.RMADesc;
            }
            else
            {
                paramRMADesc.Value = System.DBNull.Value;
            }

            cmd.Parameters.Add(paramSysNo);
            cmd.Parameters.Add(paramRMASysNo);
            cmd.Parameters.Add(paramProductSysNo);
            cmd.Parameters.Add(paramRMAType);
            cmd.Parameters.Add(paramRMAQty);
            cmd.Parameters.Add(paramRMADesc);

            return(SqlHelper.ExecuteNonQuery(cmd));
        }