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); }
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(); } }
public int Write(LogInfo oParam) { LogDac o = new LogDac(); return o.Insert(oParam); }
public DataSet Search(LogInfo oParam) { return null; }
/// <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 "); } }
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 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(); } }