private void InitPageList(SOInfo soInfo,SOInvoiceInfo invoice) { invoice.HasServiceProduct = false; int index = 0; SOInvoicePageInfo page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); if(soInfo.ItemHash.Count>0) { Hashtable sysNoHash = new Hashtable(); foreach(SOItemInfo item in soInfo.ItemHash.Values) { sysNoHash.Add(item.ProductSysNo,item.ProductSysNo); } Hashtable idHash = ProductManager.GetInstance().GetProductBoundle(sysNoHash); Hashtable posHash = InventoryManager.GetInstance().GetInventoryStockBoundle(sysNoHash,soInfo.StockSysNo); foreach(SOItemInfo item in soInfo.ItemHash.Values) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); foreach(ProductBasicInfo pbInfo in idHash.Values) { if(pbInfo.SysNo == item.ProductSysNo) { printItem.ProductSysNo = pbInfo.SysNo; printItem.ProductID = pbInfo.ProductID; printItem.ProductName = pbInfo.ProductName; if (item.BaseProductType == (int)AppEnum.ProductType.Service) invoice.HasServiceProduct = true; break; } } foreach(InventoryStockInfo isInfo in posHash.Values) { if(isInfo.ProductSysNo == item.ProductSysNo) { if ( isInfo.Position1 != "00-000-000" ) { //printItem.ProductName += "(��:" + isInfo.Position1 + ")"; printItem.ProductName += "(��:<font size=4>" + isInfo.Position1 + "</font>)"; } else if ( isInfo.Position2 != "00-000-000" ) { //printItem.ProductName += "(��:" + isInfo.Position2 + ")"; printItem.ProductName += "(��:<font size=4>" + isInfo.Position2 + "</font>)"; } break; } } printItem.Quantity = item.Quantity; printItem.Weight = item.Weight; printItem.Price = item.Price; printItem.SubTotal = item.Quantity*item.Price; printItem.IsPoint = false; printItem.IsSOItem = true; printItem.Warranty = item.Warranty; if(page.AddItem(printItem) == true) { continue; } else { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } } if(soInfo.ShipPrice != 0) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); printItem.ProductID = "�˷�"; printItem.SubTotal = soInfo.ShipPrice; printItem.IsSOItem = false; if(page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } if (soInfo.FreeShipFeePay != 0) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); printItem.ProductID = "���˷ѽ��"; printItem.SubTotal = -soInfo.FreeShipFeePay; printItem.IsSOItem = false; if (page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++, page); page.AddItem(printItem); } } if(soInfo.DiscountAmt!=0) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); printItem.ProductID = "�����Ż�"; printItem.SubTotal = -soInfo.DiscountAmt; printItem.IsSOItem = false; if(page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } if(soInfo.PremiumAmt != 0) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); printItem.ProductID = "���۷�"; printItem.SubTotal = soInfo.PremiumAmt; printItem.IsSOItem = false; if(page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } if(soInfo.PayPrice != 0) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); printItem.ProductID = "����������"; printItem.SubTotal = soInfo.PayPrice; printItem.IsSOItem = false; if(page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } if(soInfo.GetTotalAmt() != this.GetEndMoney(soInfo)) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); printItem.ProductID = "ȥ��ͷ"; printItem.SubTotal = soInfo.GetTotalAmt()-this.GetEndMoney(soInfo); printItem.IsSOItem = false; if(page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } if(soInfo.PointPay != 0) { SOInvoicePageItemInfo printItem= new SOInvoicePageItemInfo(); printItem.ProductID="�������ֵֿ�"; printItem.SubTotal=Convert.ToDecimal(soInfo.PointPay)/AppConst.ExchangeRate*(-1); printItem.IsSOItem = false; if(page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } if(soInfo.PointAmt != 0) { SOInvoicePageItemInfo printItem = new SOInvoicePageItemInfo(); printItem.ProductID = "�����ɵû���"; printItem.SubTotal = Convert.ToDecimal(soInfo.PointAmt); printItem.IsSOItem= false; printItem.IsPoint = true; if(page.AddItem(printItem) == false) { page = new SOInvoicePageInfo(); invoice.ItemPageHash.Add(index++,page); page.AddItem(printItem); } } }
/// <summary> /// ���ݶ�����֧����ʽ�����ڵ�֧��������� ������״̬ /// ����ǻ���������߿�������ҿ����壬����Ϊ"������" /// ������Ϊ"��֧��" /// </summary> /// <param name="soInfo"></param> /// <param name="isForce"></param> private void calcWaitingStatus(SOInfo soInfo,bool isForce) { TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted; options.Timeout = TransactionManager.DefaultTimeout; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) { //����֧����ʽ PayTypeInfo ptInfo = ASPManager.GetInstance().LoadPayType(soInfo.PayTypeSysNo); if(ptInfo.IsPayWhenRecv==(int)AppEnum.YNStatus.Yes)//�����������ֱ�ӳ��� soInfo.Status = (int)AppEnum.SOStatus.WaitingOutStock; else { //����֧����Ϣ SOIncomeInfo soIncome = SOIncomeManager.GetInstance().LoadValid((int)AppEnum.SOIncomeOrderType.SO, soInfo.SysNo); if (soIncome == null)//û����Ч֧����¼ soInfo.Status = (int)AppEnum.SOStatus.WaitingPay; //else if( soIncome.IncomeAmt<soInfo.GetTotalAmt() && !isForce )//֧������ // throw new BizException("calcWaitingStatus: soincome is less than so total amt, please check or do force audit"); else if (soIncome.IncomeAmt != soInfo.GetTotalAmt() && !isForce)//֧������ throw new BizException("calcWaitingStatus: soincome is not equal so total amt, please link AC or do force audit"); else soInfo.Status = (int)AppEnum.SOStatus.WaitingOutStock; } scope.Complete(); } }
public decimal GetEndMoney(SOInfo soInfo) { PayTypeInfo ptInfo = ASPManager.GetInstance().LoadPayType(soInfo.PayTypeSysNo); decimal amt = soInfo.GetTotalAmt(); if(ptInfo!=null&&ptInfo.IsPayWhenRecv==(int)AppEnum.YNStatus.Yes) { amt = Util.TruncMoney(amt); } return amt; }
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(); } }
protected void Page_Load(object sender, EventArgs e) { // 在此处放置用户代码以初始化页面 //首先判断是否需要重新登陆 //直接调用基类中的函数进行判断 //Login(Request.Url.ToString()); base.CheckProfile(Context); this.Master.Page.Title = "支付宝支付"; if (!IsPostBack) { int sosysno = -1; try { sosysno = Convert.ToInt32(Request.QueryString["ID"].ToString()); lblSOSysNo.Text = sosysno.ToString(); } catch { //ShowError("获取so#出错"); } // 在此处放置用户代码以初始化页面 string soid = Request.QueryString["sono"]; if (soid != null) { lblSOID.Text = soid; lblView.Text = "<a href='OrderDetail.aspx?ID=" + sosysno.ToString() + "'>查看订单</a>"; lblSOID_1.Text = soid; //lblSOAmt.Text = Request.QueryString["soamt"]; soInfo = SaleManager.GetInstance().LoadSO(sosysno); lblShipType.Text = GetShipType(); lblPayType.Text = GetPayType(); //this.CashPay+this.PayPrice+this.ShipPrice+this.PremiumAmt-this.DiscountAmt //lblSOAmt.Text = Convert.ToDecimal(soInfo.CashPay + soInfo.ShipPrice + soInfo.PremiumAmt - soInfo.DiscountAmt).ToString("f2"); lblSOAmt.Text = Convert.ToDecimal(soInfo.GetTotalAmt()).ToString("f2"); lblSODate.Text = soInfo.OrderDate.ToString(Icson.Utils.AppConst.DateFormatLong); } } }