Exemple #1
0
        private void GetOrderInfo()
        {
            LossOrder orderInfo = Core.Container.Instance.Resolve <IServiceLossOrder>().GetEntity(OrderID);

            lblAmount.Text      = orderInfo.OrderAmount.ToString();
            lblCount.Text       = orderInfo.OrderNumber.ToString();
            lblOrderNo.Text     = orderInfo.OrderNO;
            lblOrderDate.Text   = orderInfo.OrderDate.ToString();
            lblUser.Text        = orderInfo.UserName;
            ddlWH.SelectedValue = orderInfo.WareHouseID.ToString();
            //绑定商品明细
            BindGrid(orderInfo.OrderNO);
        }
        private void GetOrderInfo()
        {
            LossOrder order = Core.Container.Instance.Resolve <IServiceLossOrder>().GetEntity(OrderID);

            OrderNO = order.OrderNO;

            //初始化页面数据
            dpStartDate.Text         = order.OrderDate.ToString("yyyy-MM-dd HH:mm:ss");
            txtRemark.Text           = order.Remark;
            lblOrderNo.Text          = OrderNO;
            ddlSuplier.SelectedValue = order.UserID.ToString();
            ddlWH.SelectedValue      = order.WareHouseID.ToString();
        }
        protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
        {
            int ID = GetSelectedDataKeyID(Grid1);
            //获取当前选中记录信息
            LossOrder orderInfo = Core.Container.Instance.Resolve <IServiceLossOrder>().GetEntity(ID);

            if (e.CommandName == "Delete")
            {
                if (orderInfo != null)
                {
                    if (orderInfo.IsTemp == 1)
                    {
                        //删除临时订单商品信息
                        IList <ICriterion> qryList = new List <ICriterion>();
                        qryList.Add(Expression.Eq("OrderNO", orderInfo.OrderNO));
                        IList <LossOrderDetail> goodsList = Core.Container.Instance.Resolve <IServiceLossOrderDetail>().GetAllByKeys(qryList);
                        foreach (LossOrderDetail goods in goodsList)
                        {
                            Core.Container.Instance.Resolve <IServiceLossOrderDetail>().Delete(goods);
                        }
                        //删除临时订单信息
                        Core.Container.Instance.Resolve <IServiceLossOrder>().Delete(orderInfo);
                        BindGrid();
                    }
                    else
                    {
                        Alert.Show("正式订单不能删除!");
                    }
                }
            }
            if (e.CommandName == "editField")
            {
                if (orderInfo != null)
                {
                    if (orderInfo.IsTemp == 1)
                    {
                        PageContext.Redirect(string.Format("~/Inventory/LossOrderEdit.aspx?id={0}", ID));
                    }
                    else
                    {
                        Alert.Show("正式订单不能修改!");
                    }
                }
            }
            if (e.CommandName == "viewField")
            {
                PageContext.Redirect(string.Format("~/Inventory/LossOrderView.aspx?id={0}", ID));
            }
        }
        private void BindOrderInfo()
        {
            IList <ICriterion> qryList = new List <ICriterion>();

            qryList.Add(Expression.Eq("OrderNO", OrderNO));

            LossOrder orderInfo = Core.Container.Instance.Resolve <IServiceLossOrder>().GetEntityByFields(qryList);

            OrderID       = orderInfo != null ? orderInfo.ID : 0;
            WHID          = orderInfo != null ? orderInfo.WareHouseID : 0;
            lblTitle.Text = string.Format("领用单号:{0}", OrderNO);

            //获取出库库房信息
            WareHouse houseInfo = Core.Container.Instance.Resolve <IServiceWareHouse>().GetEntity(WHID);

            lblWHInfo.Text = string.Format("出库库房:{0}", houseInfo != null ? houseInfo.WHName : "");
        }
        private void CreateOrderInfo()
        {
            LossOrder order = new LossOrder();

            order.OrderAmount = 0;
            order.OrderDate   = DateTime.Now;
            order.OrderNO     = string.Format("BS{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
            order.OrderNumber = 0;
            order.Remark      = "";
            order.UserID      = 0;
            order.WareHouseID = int.Parse(ddlWH.SelectedValue);
            order.Operator    = User.Identity.Name;
            Core.Container.Instance.Resolve <IServiceLossOrder>().Create(order);

            OrderNO = order.OrderNO;

            //初始化页面数据
            lblOrderNo.Text  = OrderNO;
            dpStartDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
        }
        public void btnReturn_Click(object sender, EventArgs e)
        {
            IList <ICriterion> qryList = new List <ICriterion>();

            qryList.Add(Expression.Eq("OrderNO", OrderNO));
            //获取当前订单信息
            LossOrder orderInfo = Core.Container.Instance.Resolve <IServiceLossOrder>().GetEntityByFields(qryList);

            //删除临时订单商品信息
            if (orderInfo != null && orderInfo.IsTemp == 1)
            {
                IList <LossOrderDetail> goodsList = Core.Container.Instance.Resolve <IServiceLossOrderDetail>().GetAllByKeys(qryList);
                foreach (LossOrderDetail goods in goodsList)
                {
                    Core.Container.Instance.Resolve <IServiceLossOrderDetail>().Delete(goods);
                }
                //删除临时订单信息
                Core.Container.Instance.Resolve <IServiceLossOrder>().Delete(orderInfo);
            }
            //返回订单管理页面
            PageContext.Redirect("~/Inventory/LossOrderManager.aspx");
        }
        private void SaveItem(int isTemp)
        {
            bool IsStock = bool.Parse(ConfigurationManager.AppSettings["IsStock"]);
            //更新订单状态为正式订单
            IList <ICriterion> qryList = new List <ICriterion>();

            qryList.Add(Expression.Eq("OrderNO", OrderNO));
            LossOrder orderInfo = Core.Container.Instance.Resolve <IServiceLossOrder>().GetEntityByFields(qryList);

            orderInfo.OrderDate   = DateTime.Parse(dpStartDate.Text);
            orderInfo.OrderAmount = decimal.Parse(lblAmount.Text);
            orderInfo.IsTemp      = isTemp;
            orderInfo.OrderNumber = decimal.Parse(lblCount.Text);
            orderInfo.UserID      = int.Parse(ddlSuplier.SelectedValue);
            orderInfo.UserName    = ddlSuplier.SelectedText;
            orderInfo.WareHouseID = int.Parse(ddlWH.SelectedValue);
            orderInfo.Operator    = User.Identity.Name;
            Core.Container.Instance.Resolve <IServiceLossOrder>().Update(orderInfo);

            //正式订单,更新入库信息及流水信息等
            if (isTemp == 0)
            {
                #region  出库单信息
                if (IsStock)
                {
                    // 出库单信息
                    WHOutBoundOrder storageOrder = new WHOutBoundOrder();
                    storageOrder.BOrderNO    = OrderNO;
                    storageOrder.Operator    = User.Identity.Name;
                    storageOrder.OrderAmount = orderInfo.OrderAmount;
                    storageOrder.OrderNumber = orderInfo.OrderNumber;
                    storageOrder.OrderDate   = orderInfo.OrderDate;
                    storageOrder.OrderNO     = string.Format("CK{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
                    storageOrder.OrderType   = 4;
                    storageOrder.OutOrderNO  = "";
                    storageOrder.Remark      = "报损出库";
                    storageOrder.SuplierID   = orderInfo.UserID;
                    storageOrder.WareHouseID = orderInfo.WareHouseID;

                    // 出库商品明细信息
                    IList <ICriterion> qryListDetail = new List <ICriterion>();
                    qryListDetail.Add(Expression.Eq("OrderNO", OrderNO));
                    Order[] orderList = new Order[1];
                    Order   orderli   = new Order("ID", true);
                    orderList[0] = orderli;
                    IList <LossOrderDetail> list = Core.Container.Instance.Resolve <IServiceLossOrderDetail>().GetAllByKeys(qryList, orderList);
                    //写入出库商品明细
                    foreach (LossOrderDetail detail in list)
                    {
                        decimal amount      = detail.GoodsNumber;
                        decimal goodsAmount = 0;

                        IList <ICriterion> qryWHList = new List <ICriterion>();
                        qryWHList.Add(Expression.Eq("GoodsID", detail.GoodsID));
                        qryWHList.Add(Expression.Eq("WareHouseID", storageOrder.WareHouseID));
                        WHGoodsDetail whGoodsDetail = Core.Container.Instance.Resolve <IServiceWHGoodsDetail>().GetEntityByFields(qryWHList);

                        WHOrderGoodsDetail orderDetail = new WHOrderGoodsDetail();
                        orderDetail.GoodsID     = detail.GoodsID;
                        orderDetail.GoodsUnit   = detail.GoodsUnit;
                        orderDetail.OrderDate   = storageOrder.OrderDate;
                        orderDetail.OrderNO     = storageOrder.OrderNO;
                        orderDetail.GoodsNumber = amount;
                        //获取出库单价和金额
                        orderDetail.GoodsUnitPrice = whGoodsDetail.InventoryUnitPrice;
                        orderDetail.GoodTotalPrice = Math.Round(orderDetail.GoodsNumber * orderDetail.GoodsUnitPrice, 2);

                        orderDetail.TaxAmount       = 0;
                        orderDetail.TaxPoint        = 0;
                        orderDetail.TotalPriceNoTax = 0;
                        orderDetail.UnitPriceNoTax  = 0;

                        //保存出库明细信息
                        Core.Container.Instance.Resolve <IServiceWHOrderGoodsDetail>().Create(orderDetail);
                        //更新商品变动明细信息(出库)
                        new InventoryHelper().UpdateGoodsJournal(storageOrder.WareHouseID, detail.GoodsID, OrderNO, "LY", 2
                                                                 , -orderDetail.GoodsNumber, orderDetail.GoodsUnitPrice
                                                                 , -orderDetail.GoodTotalPrice, ""
                                                                 , orderInfo.OrderDate);

                        //累计计算订单成本金额
                        goodsAmount += orderDetail.GoodTotalPrice;

                        //更新商品库存信息
                        new InventoryHelper().UpdateWareHouseStock(storageOrder.WareHouseID, detail.GoodsID, -detail.GoodsNumber, 0, -goodsAmount, 0);
                    }
                    //创建出库单信息
                    Core.Container.Instance.Resolve <IServiceWHOutBoundOrder>().Create(storageOrder);
                }

                #endregion  入库单信息
            }
        }