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