Esempio n. 1
0
File: LogDac.cs Progetto: ue96/ue96
        public int Insert(LogInfo oParam)
        {
            string sql = @"INSERT INTO Sys_Log
                        (
                        OptTime,OptUserSysNo,OptIP,
                        TicketType,TicketSysno,Note
                        )
                        VALUES (
                        GetDate(),@OptUserSysNo,@OptIP,
                        @TicketType,@TicketSysno,@Note
                        )";
            SqlCommand cmd = new SqlCommand(sql);

            SqlParameter paramOptUserSysNo = new SqlParameter("@OptUserSysNo", SqlDbType.Int,4);
            SqlParameter paramOptIP = new SqlParameter("@OptIP", SqlDbType.NVarChar,20);
            SqlParameter paramTicketType = new SqlParameter("@TicketType", SqlDbType.Int,4);
            SqlParameter paramTicketSysno = new SqlParameter("@TicketSysno", SqlDbType.Int,4);
            SqlParameter paramNote = new SqlParameter("@Note", SqlDbType.NVarChar,500);

            paramOptUserSysNo.Value = oParam.OptUserSysNo;
            paramOptIP.Value = oParam.OptIP;
            paramTicketType.Value = oParam.TicketType;
            paramTicketSysno.Value = oParam.TicketSysNo;
            if ( oParam.Note != AppConst.StringNull )
                paramNote.Value = oParam.Note;
            else
                paramNote.Value = System.DBNull.Value;

            cmd.Parameters.Add(paramOptUserSysNo);
            cmd.Parameters.Add(paramOptIP);
            cmd.Parameters.Add(paramTicketType);
            cmd.Parameters.Add(paramTicketSysno);
            cmd.Parameters.Add(paramNote);

            return SqlHelper.ExecuteNonQuery(cmd);
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
 public int Write(LogInfo oParam)
 {
     LogDac o = new LogDac();
     return o.Insert(oParam);
 }
Esempio n. 4
0
 public DataSet Search(LogInfo oParam)
 {
     return null;
 }
Esempio n. 5
0
        /// <summary>
        /// 确认无误提交订单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (!CheckLimitedQtyProduct())
                    return;
                bool saveSOInfo = this.SaveSO();
                if (saveSOInfo == false)
                    return;
                soInfo.SalesManSysNo = AppConst.IcsonSalesMan;
                ////记录浩方订单
                //if (Session["LinkSource"] != null && Session["LinkSource"] as string == AppConfig.PartnerLinkSource)
                //{
                //    soInfo.SalesManSysNo = int.Parse(AppConfig.PartnerSysNo);
                //}
                //检验客户一分钟内是否有订单生成,防止重复下订单
                if (!SaleManager.GetInstance().SOCreatePreCheck(soInfo.CustomerSysNo))
                {
                    this.ShowMsg("请不要在1分钟之内重复下单。请到帐户中心查看您的订单");
                    return;
                }

                if (chkInvoice.Checked == true)
                {
                    if (chkInvoice.Checked == true)
                        vatInfo.Style.Add("display", "block");
                    else
                        vatInfo.Style.Add("display", "none");
                    if (txtCompanyName.Text.Trim() == AppConst.StringNull)
                    {
                        this.ShowMsg("开票公司名称不能为空!");
                        return;
                    }
                    if (txtCompanyAddr.Text.Trim() == AppConst.StringNull)
                    {
                        this.ShowMsg("开票公司地址不能为空!");
                        return;
                    }
                    if (txtCompanyPhone.Text.Trim() == AppConst.StringNull)
                    {
                        this.ShowMsg("开票公司电话不能为空!");
                        return;
                    }
                    if (txtBankAndAccount.Text.Trim() == AppConst.StringNull)
                    {
                        this.ShowMsg("开票开户银行及帐号不能为空!");
                        return;
                    }
                    if (txtTaxNum.Text.Trim() == AppConst.StringNull)
                    {
                        this.ShowMsg("开票公司税务登记号不能为空!");
                        return;
                    }

                    soInfo.IsVAT = (int)AppEnum.YNStatus.Yes;
                    soInfo.RequestInvoiceTime = DateTime.Now;
                    soInfo.RequestInvoiceType = (int)AppEnum.InvoiceType.SpecialVATInvoice;
                    soInfo.InvoiceStatus = (int)AppEnum.SOInvoiceStatus.InvoiceAbsent;
                }

                #region
                bool payTapyCheck = false;
                bool shipTypeCheck = false;

                foreach (DataGridItem dgItem in this.dgShipType.Items)
                {
                    RadioButton rdo = dgItem.FindControl("rdoSelectShipType") as RadioButton;
                    if (rdo.Checked)
                    {
                        soInfo.ShipTypeSysNo = Int32.Parse(dgShipType.DataKeys[dgItem.ItemIndex].ToString());
                        shipTypeCheck = true;
                        break;
                    }
                }
                if (chkIsPremium.Checked)
                {
                    soInfo.IsPremium = (int)AppEnum.YNStatus.Yes;
                }
                else
                    soInfo.IsPremium = (int)AppEnum.YNStatus.No;

                if (!shipTypeCheck)
                {
                    ShowMsg("您还没有选择配送方式");
                    return;
                }

                foreach (DataGridItem dgItem in this.dgPayType.Items)
                {
                    RadioButton rdo = dgItem.FindControl("rdoSelectPayType") as RadioButton;
                    if (rdo.Checked)
                    {
                        soInfo.PayTypeSysNo = Int32.Parse(dgPayType.DataKeys[dgItem.ItemIndex].ToString());
                        payTapyCheck = true;
                        break;
                    }
                }
                if (!payTapyCheck)
                {
                    this.ShowMsg("您还没有选择支付方式");
                    return;
                }

                soInfo.IsPremium = (int)AppEnum.YNStatus.No;
                soInfo.IsVAT = (int)AppEnum.YNStatus.No;
                soInfo.IsWholeSale = (int)AppEnum.YNStatus.No;
                soInfo.VATEMSFee = 0;
                soInfo.VatInfo.VATEMSFee = 0;
                soInfo.FreeShipFeePay = 0;

                #endregion

                soInfo.DeliveryDate = DateTime.Today;
                oSession.sSO = soInfo;
                SaleManager.GetInstance().CreateSO(soInfo);

                //if (soInfo.CouponCode.Length > 0 && soInfo.CouponAmt > 0 && soInfo.CouponType == 1) //宽带山
                //{
                //    try
                //    {
                //        string url = "http://club.pchome.net/union/icson/checkHashCode.php?action=1&code=" + soInfo.CouponCode;
                //        System.Net.WebClient wc = new System.Net.WebClient();
                //        System.IO.Stream stream = wc.OpenRead(url);
                //        wc.Dispose();
                //        stream.Close();
                //    }
                //    catch { }
                //}

                oSession.sCustomer = CustomerManager.GetInstance().Load(oSession.sCustomer.SysNo);
                try
                {
                    LogInfo log = new LogInfo();
                    log.OptIP = Request.UserHostAddress;
                    log.OptTime = DateTime.Now;
                    log.TicketSysNo = soInfo.SysNo;
                    log.TicketType = (int)AppEnum.LogType.Sale_SO_Create;
                    log.OptUserSysNo = soInfo.SalesManSysNo;
                    LogManager.GetInstance().Write(log);
                    SaleManager.GetInstance().SendEmail(soInfo, (int)AppEnum.SOEmailType.CreateSO);
                }
                catch (Exception ex)
                {
                    ErrorLog.GetInstance().Write(ex.Message);
                }
                //更新增票信息
                if (chkInvoice.Checked == true)
                {
                    try
                    {
                        SOVATInfo vat = new SOVATInfo();
                        vat.SOSysNo = soInfo.SysNo;
                        vat.BankAccount = txtBankAndAccount.Text.Trim();
                        vat.TaxNum = txtTaxNum.Text.Trim();
                        vat.CompanyAddress = txtCompanyAddr.Text.Trim();
                        vat.CompanyName = txtCompanyName.Text.Trim();
                        vat.CompanyPhone = txtCompanyPhone.Text.Trim();
                        vat.CustomerSysNo = oSession.sCustomer.SysNo;
                        vat.CreateTime = DateTime.Now;
                        vat.Memo = txtOthers.Text.Trim();
                        SaleManager.GetInstance().InsertSOVAT(vat);
                    }
                    catch
                    {
                        this.ShowMsg("增票信息更新失败,请联系MMMbuy.cn ");
                    }
                }

                //订单生成成功,清除购物车以及赠品信息
                CartManager.GetInstance().ClearCart();
                oSession.GiftHash.Clear();
                //转到支付页面
                PayTypeInfo ptInfo = ASPManager.GetInstance().LoadPayType(soInfo.PayTypeSysNo);
                if (ptInfo.PaymentPage != string.Empty)
                {
                    //Response.Redirect(ptInfo.PaymentPage + "?id=" + soInfo.SysNo.ToString() + "&sono=" + soInfo.SOID + "&soamt=" + SaleManager.GetInstance().GetEndMoney(soInfo).ToString(AppConst.DecimalFormat) + "&sodate=" + soInfo.OrderDate.ToString("yyyy-MM-dd HH:mm:ss"));
                    try
                    {
                        //if (Request.Cookies["EqifaInfo"] != null && Request.Cookies["EqifaInfo"].Value != null && Request.Cookies["EqifaInfo"].Value.Length > 0)
                        //{
                        //    string merchant_id = "icson"; //广告主在EQIFA的帐号名
                        //    string eqifa_user_id = oSession.sCustomer.CustomerID; //会员帐号名称
                        //    string eqifa_user_name = oSession.sCustomer.CustomerName; //会员真实姓名
                        //    string eqifa_o_cd = soInfo.SysNo.ToString(); //用户订单号

                        //    string eqifa_p_cd = "";                        //一种商品编号
                        //    string eqifa_p_cnt = "1";			           //一种商品数量
                        //    string eqifa_p_price = soInfo.SOAmt.ToString();//一种商品价格
                        //    string eqifa_p_ccd = "";	                   //一种商品分类编号

                        //    string eqifa_info = Request.Cookies["EqifaInfo"].Value;
                        //    eqifa_info = Server.UrlDecode(eqifa_info);

                        //    if (eqifa_info.Replace("'", "''").Length != 0)
                        //    {
                        //        string eqifa_log = "http://service.eqifa.com/purchase_cps.aspx?a_id=" + eqifa_info;
                        //        eqifa_log += "&m_id=" + merchant_id + "&mbr_id=" + eqifa_user_id + "(" + eqifa_user_name + ")";
                        //        eqifa_log += "&o_cd=" + eqifa_o_cd + "&p_cd=" + eqifa_p_cd;
                        //        eqifa_log += "&p_cnt=" + eqifa_p_cnt + "&p_price=" + eqifa_p_price + "&p_ccd=" + eqifa_p_ccd;
                        //        eqifa_log = "<script src='" + eqifa_log + "'></script>";

                        //        //Response.Write(eqifa_log);
                        //        //Response.Write("<script src='http://icson-mis.3322.org/Temp.aspx?id=" + soInfo.SOID + "'></script>");

                        //        EqifaLogInfo eInfo = new EqifaLogInfo();
                        //        eInfo.SOSysNo = soInfo.SysNo;
                        //        eInfo.ProductSysNo = 1;
                        //        eInfo.Quantity = 1;
                        //        eInfo.Price = soInfo.SOAmt;
                        //        eInfo.EqifaLog = eqifa_log;

                        //        EqifaLogManager.GetInstance().Insert(eInfo);
                        //    }
                        //}
                        if (Request.Cookies["LSInfo"] != null && Request.Cookies["LSInfo"].Value != null && Request.Cookies["LSInfo"].Value.Length > 0)
                        {
                            EqifaLogInfo eInfo = new EqifaLogInfo();
                            eInfo.SOSysNo = soInfo.SysNo;
                            eInfo.ProductSysNo = 1;
                            eInfo.Quantity = 1;
                            eInfo.Price = soInfo.SOAmt;
                            eInfo.EqifaLog = Request.Cookies["LSInfo"].Value;

                            EqifaLogManager.GetInstance().Insert(eInfo);
                        }
                        else if (Session["LinkSource"] != null && Session["LinkSource"].ToString().Length > 0 && Session["LinkSource"].ToString().Trim().IndexOf("www.ICSON.com") == -1)
                        {
                            EqifaLogInfo eInfo = new EqifaLogInfo();
                            eInfo.SOSysNo = soInfo.SysNo;
                            eInfo.ProductSysNo = 1;
                            eInfo.Quantity = 1;
                            eInfo.Price = soInfo.SOAmt;
                            eInfo.EqifaLog = Session["LinkSource"].ToString().Trim();

                            EqifaLogManager.GetInstance().Insert(eInfo);
                        }
                    }
                    finally
                    {
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", "<script>location.href='" + ptInfo.PaymentPage + "?id=" + soInfo.SysNo.ToString() + "&sono=" + soInfo.SOID + "&soamt=" + SaleManager.GetInstance().GetEndMoney(soInfo).ToString(AppConst.DecimalFormat) + "&sodate=" + soInfo.OrderDate.ToString("yyyy-MM-dd HH:mm:ss") + "'</script>");
                    }
                }
                else
                {
                    Response.Redirect("../CustomError.aspx?msg=页面转向时发生错误!但是订单已经成功生成,订单号是:" + soInfo.SOID + "!");
                }
            }
            catch (BizException be)
            {
                if (be.Message.IndexOf("inventory: qty is not enough") != -1)
                {
                    this.ShowMsg("库存不足,请返回购物车重试");
                }
                else if (be.Message.IndexOf("inventory_stock: qty is not enough") != -1)
                {
                    this.ShowMsg("库存不足,请返回购物车重试");
                }
                else if (be.Message.IndexOf("客户积分更新失败") != -1)
                {
                    this.ShowMsg("您的积分不足,不能支付");
                }
                else
                {
                    this.ShowMsg(be.Message);
                }
            }
            catch (Exception ex)
            {
                ErrorLog.GetInstance().Write("订单生成失败:" + ex.Message);
                this.ShowMsg("订单生成失败,请重试或者电话联系MMMbuy.cn ");
            }
        }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
        public void SOCancelOutStock(int soSysNo)
        {
            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((int)AppEnum.SOIncomeOrderType.SO, soSysNo);

                if (dbInfo.IncomeStyle == (int)AppEnum.SOIncomeStyle.Normal)
                {
                    if (dbInfo.Status == (int)AppEnum.SOIncomeStatus.Confirmed)
                        throw new BizException("�տ�����Ѿ�ȷ�ϣ���֪ͨ����ȡ��ȷ��");

                    Hashtable ht = new Hashtable(5);
                    ht.Add("SysNo", dbInfo.SysNo);
                    ht.Add("Status", (int)AppEnum.SOIncomeStatus.Abandon);

                    new SOIncomeDac().Update(ht);

                    LogInfo log = new LogInfo();
                    log.OptIP = AppConst.SysIP;
                    log.OptUserSysNo = AppConst.SysUser;
                    log.OptTime = DateTime.Now;
                    log.TicketType = (int)AppEnum.LogType.Finance_SOIncome_Abandon;
                    log.TicketSysNo = dbInfo.SysNo;
                    LogManager.GetInstance().Write(log);
                }

                scope.Complete();
            }
        }