コード例 #1
0
        protected void ddlCKWareHouseID_SelectedIndexChanged(object sender, EventArgs e)
        {
            IList <ICriterion> qryList = new List <ICriterion>();

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

            orderInfo.CKWareHouseID = Int32.Parse(ddlCKWareHouseID.SelectedValue);
            orderInfo.RKWareHouseID = Int32.Parse(ddlRKWareHouseID.SelectedValue);
            Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().Update(orderInfo);
        }
コード例 #2
0
        private void BindOrderInfo()
        {
            IList <ICriterion> qryList = new List <ICriterion>();

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

            //获取仓库信息
            WareHouse houseInfo = Core.Container.Instance.Resolve <IServiceWareHouse>().GetEntity(orderInfo.CKWareHouseID);

            lblTitle.Text = string.Format("[{1}]调拨单号:{0}", OrderNO, houseInfo != null ? houseInfo.WHName : "");
        }
コード例 #3
0
        private void GetOrderInfo()
        {
            tm_GoodsAllocationBill orderInfo = Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().GetEntity(OrderID);

            lblAmount.Text    = orderInfo.AllotAmount.ToString();
            lblCount.Text     = orderInfo.AllotCount.ToString();
            lblOrderNo.Text   = orderInfo.OrderNO;
            lblStartDate.Text = orderInfo.OrderDate.ToString();
            ddlRKWareHouseID.SelectedValue = orderInfo.RKWareHouseID.ToString();
            ddlCKWareHouseID.SelectedValue = orderInfo.CKWareHouseID.ToString();
            //绑定商品明细
            BindGrid(orderInfo.OrderNO);
        }
コード例 #4
0
        private void GetOrderInfo()
        {
            tm_GoodsAllocationBill order = Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().GetEntity(OrderID);

            OrderNO = order.OrderNO;

            //初始化页面数据
            dpStartDate.Text = order.OrderDate.ToString("yyyy-MM-dd HH:mm:ss");
            txtRemark.Text   = order.Remark;
            lblOrderNo.Text  = OrderNO;
            ddlCKWareHouseID.SelectedValue = order.CKWareHouseID.ToString();
            ddlRKWareHouseID.SelectedValue = order.RKWareHouseID.ToString();
        }
コード例 #5
0
        private bool SaveItem(int isTemp)
        {
            bool    IsStock    = bool.Parse(ConfigurationManager.AppSettings["IsStock"]);
            decimal costAmount = 0;
            //更新订单状态为正式订单
            IList <ICriterion> qryList = new List <ICriterion>();

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

            orderInfo.OrderDate     = DateTime.Parse(dpStartDate.Text);
            orderInfo.CKWareHouseID = Int32.Parse(ddlCKWareHouseID.SelectedValue);
            orderInfo.RKWareHouseID = Int32.Parse(ddlRKWareHouseID.SelectedValue);
            orderInfo.AllotCount    = decimal.Parse(lblCount.Text);
            orderInfo.AllotAmount   = 0;
            orderInfo.IsTemp        = isTemp;
            Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().Update(orderInfo);

            string WHOutBoundOrderNO = string.Format("CK{0}", DateTime.Parse(dpStartDate.Text).ToString("yyyyMMddHHmmss"));
            string WHStorageOrderNO  = string.Format("RK{0}", DateTime.Parse(dpStartDate.Text).ToString("yyyyMMddHHmmss"));

            if (IsStock)
            {
                //正式订单,更新出库信息及流水信息等
                if (isTemp == 0)
                {
                    //调拨出库处理
                    if (WHOutBound(WHOutBoundOrderNO, WHStorageOrderNO, orderInfo, out costAmount))
                    {
                        //调拨入库处理
                        if (WHStorage(WHOutBoundOrderNO, WHStorageOrderNO, orderInfo))
                        {
                            //更新调拨单成本金额
                            orderInfo.AllotAmount = costAmount;
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            //更新调拨单信息
            Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().Update(orderInfo);

            return(true);
        }
コード例 #6
0
        protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
        {
            int ID = GetSelectedDataKeyID(Grid1);
            //获取当前选中记录信息
            tm_GoodsAllocationBill orderInfo = Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().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 <tm_GoodsAllocationBillDetail> goodsList = Core.Container.Instance.Resolve <IServiceGoodsAllocationBillDetail>().GetAllByKeys(qryList);
                        foreach (tm_GoodsAllocationBillDetail goods in goodsList)
                        {
                            Core.Container.Instance.Resolve <IServiceGoodsAllocationBillDetail>().Delete(goods);
                        }
                        //删除临时订单信息
                        Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().Delete(orderInfo);
                        BindGrid();
                    }
                    else
                    {
                        Alert.Show("正式订单不能删除!");
                    }
                }
            }
            if (e.CommandName == "editField")
            {
                if (orderInfo != null)
                {
                    if (orderInfo.IsTemp == 1)
                    {
                        PageContext.Redirect(string.Format("~/Inventory/AllotEdit.aspx?id={0}", ID));
                    }
                    else
                    {
                        Alert.Show("正式订单不能修改!");
                    }
                }
            }
            if (e.CommandName == "viewField")
            {
                PageContext.Redirect(string.Format("~/Inventory/AllotView.aspx?id={0}", ID));
            }
        }
コード例 #7
0
        private void CreateOrderInfo()
        {
            tm_GoodsAllocationBill allot = new tm_GoodsAllocationBill();

            allot.OrderNO       = string.Format("DB{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
            allot.CKWareHouseID = 0;
            allot.RKWareHouseID = 0;
            allot.OrderDate     = DateTime.Now;
            allot.Operator      = User.Identity.Name;
            allot.AllotCount    = 0;
            allot.AllotAmount   = 0;
            allot.CKWareHouseID = int.Parse(ddlCKWareHouseID.SelectedValue);
            allot.RKWareHouseID = int.Parse(ddlRKWareHouseID.SelectedValue);
            allot.Remark        = "";
            allot.IsTemp        = 1;
            Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().Create(allot);

            OrderNO = allot.OrderNO;

            //初始化页面数据
            lblOrderNo.Text  = OrderNO;
            dpStartDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
        }
コード例 #8
0
        private void BindGrid()
        {
            //获取调拨仓库信息
            IList <ICriterion> qryListWH = new List <ICriterion>();

            qryListWH.Add(Expression.Eq("OrderNO", OrderNO));
            tm_GoodsAllocationBill orderInfo = Core.Container.Instance.Resolve <IServiceGoodsAllocationBill>().GetEntityByFields(qryListWH);

            if (orderInfo != null && orderInfo.CKWareHouseID > 0)
            {
                IList <ICriterion> qryList = new List <ICriterion>();
                string             qryName = ttbSearchMessage.Text.Trim();
                if (!string.IsNullOrEmpty(qryName))
                {
                    qryList.Add(Expression.Like("GoodsName", qryName, MatchMode.Anywhere) ||
                                Expression.Like("GoodsPY", qryName.ToUpper(), MatchMode.Anywhere));
                }
                if (ddlCostType.SelectedValue != "0")
                {
                    qryList.Add(Expression.Eq("GoodsTypeID", int.Parse(ddlCostType.SelectedValue)));
                }
                qryList.Add(Expression.Eq("WareHouseID", orderInfo.CKWareHouseID));
                Order[] orderList = new Order[1];
                Order   orderli   = new Order("ID", true);
                orderList[0] = orderli;
                int count = 0;
                IList <WHGoodsDetail> list = Core.Container.Instance.Resolve <IServiceWHGoodsDetail>().GetAllByKeys(qryList, orderList);
                //Grid1.RecordCount = count;
                Grid1.DataSource = list;
                Grid1.DataBind();
            }
            else
            {
                Alert.Show("调拨单调拨出库仓库没有指定!");
            }
        }
コード例 #9
0
        /// <summary>
        /// 调拨入库处理
        /// </summary>
        /// <param name="WHOutBoundOrderNO">出库单号</param>
        /// <param name="WHStorageOrderNO">入库单号</param>
        /// <param name="orderInfo">调拨单信息</param>
        /// <returns></returns>
        private bool WHStorage(string WHOutBoundOrderNO, string WHStorageOrderNO, tm_GoodsAllocationBill orderInfo)
        {
            //获取入库仓库信息
            WareHouse houseInfo = Core.Container.Instance.Resolve <IServiceWareHouse>().GetEntity(orderInfo.RKWareHouseID);

            //如果入库仓库存在
            if (houseInfo != null)
            {
                // 入库单信息
                WHStorageOrder storageOrder = new WHStorageOrder();
                storageOrder.BOrderNO    = OrderNO;
                storageOrder.Operator    = User.Identity.Name;
                storageOrder.OrderAmount = orderInfo.AllotAmount;
                storageOrder.OrderNumber = orderInfo.AllotCount;
                storageOrder.OrderDate   = orderInfo.OrderDate;
                storageOrder.OrderNO     = WHStorageOrderNO;
                storageOrder.OrderType   = 2; //2:调拨入库
                storageOrder.OutOrderNO  = WHOutBoundOrderNO;
                storageOrder.Remark      = "调拨入库";
                storageOrder.SuplierID   = 0;
                storageOrder.WareHouseID = orderInfo.RKWareHouseID;
                Core.Container.Instance.Resolve <IServiceWHStorageOrder>().Create(storageOrder);

                //根据出库单号获取出库单物品明细
                IList <ICriterion> qryList = new List <ICriterion>();
                qryList.Add(Expression.Eq("OrderNO", WHOutBoundOrderNO));
                IList <WHOrderGoodsDetail> WHOrderGoodsList = Core.Container.Instance.Resolve <IServiceWHOrderGoodsDetail>().GetAllByKeys(qryList);
                //写入入库商品明细
                foreach (WHOrderGoodsDetail detail in WHOrderGoodsList)
                {
                    #region 写入入库商品明细
                    WHOrderGoodsDetail orderDetail = new WHOrderGoodsDetail();
                    orderDetail.GoodsID         = detail.GoodsID;
                    orderDetail.ChangeNumber    = detail.ChangeNumber;
                    orderDetail.GoodsNumber     = detail.GoodsNumber;
                    orderDetail.GoodsUnit       = detail.GoodsUnit;
                    orderDetail.GoodsUnitPrice  = detail.GoodsUnitPrice;
                    orderDetail.GoodTotalPrice  = detail.GoodTotalPrice;
                    orderDetail.OrderDate       = storageOrder.OrderDate;
                    orderDetail.OrderNO         = storageOrder.OrderNO;
                    orderDetail.ChangeUnit      = detail.ChangeUnit;
                    orderDetail.TaxAmount       = detail.TaxAmount;
                    orderDetail.TaxPoint        = detail.TaxPoint;
                    orderDetail.TotalPriceNoTax = detail.TotalPriceNoTax;
                    orderDetail.UnitPriceNoTax  = detail.UnitPriceNoTax;
                    Core.Container.Instance.Resolve <IServiceWHOrderGoodsDetail>().Create(orderDetail);

                    #endregion  写入入库商品明细

                    #region 更新商品库存以及流水信息

                    //更新商品库存信息
                    new InventoryHelper().UpdateWareHouseStock(orderInfo.RKWareHouseID, detail.GoodsID, detail.GoodsNumber
                                                               , detail.GoodsUnitPrice, detail.GoodTotalPrice, 0);
                    //更新商品变动明细信息(入库)
                    new InventoryHelper().UpdateGoodsJournal(orderInfo.RKWareHouseID, detail.GoodsID, OrderNO, "DR", 1
                                                             , detail.GoodsNumber, detail.GoodsUnitPrice, detail.GoodTotalPrice
                                                             , "", storageOrder.OrderDate);
                    #endregion 更新商品库存以及流水信息
                }
            }
            else
            {
                return(false);
            }
            return(true);
        }
コード例 #10
0
        /// <summary>
        /// 调拨出库处理
        /// </summary>
        /// <param name="WHOutBoundOrderNO">出库单号</param>
        /// <param name="WHStorageOrderNO">入库单号</param>
        /// <param name="orderInfo">调拨单信息</param>
        /// <returns></returns>
        private bool WHOutBound(string WHOutBoundOrderNO, string WHStorageOrderNO, tm_GoodsAllocationBill orderInfo, out decimal costAmount)
        {
            costAmount = 0;
            //获取出库仓库信息
            WareHouse houseInfo = Core.Container.Instance.Resolve <IServiceWareHouse>().GetEntity(orderInfo.CKWareHouseID);

            //如果出库仓库存在
            if (houseInfo != null)
            {
                //出库单信息
                WHOutBoundOrder outBoundOrder = new WHOutBoundOrder();
                outBoundOrder.BOrderNO    = OrderNO;
                outBoundOrder.Operator    = User.Identity.Name;
                outBoundOrder.OrderAmount = 0;
                outBoundOrder.OrderNumber = orderInfo.AllotCount;
                outBoundOrder.OrderDate   = orderInfo.OrderDate;
                outBoundOrder.OrderNO     = WHOutBoundOrderNO;
                outBoundOrder.OrderType   = 2; //2:调拨出库
                outBoundOrder.OutOrderNO  = WHStorageOrderNO;
                outBoundOrder.Remark      = "调拨出库";
                outBoundOrder.SuplierID   = 0;
                outBoundOrder.WareHouseID = orderInfo.CKWareHouseID;
                Core.Container.Instance.Resolve <IServiceWHOutBoundOrder>().Create(outBoundOrder);

                //获取调拨商品明细,生成出库商品明细信息
                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 <tm_GoodsAllocationBillDetail> list = Core.Container.Instance.Resolve <IServiceGoodsAllocationBillDetail>().GetAllByKeys(qryListDetail, orderList);
                //写入出库商品明细
                foreach (tm_GoodsAllocationBillDetail detail in list)
                {
                    decimal amount      = detail.GoodsNumber;
                    decimal goodsAmount = 0;
                    //根据批次号获取出库商品信息
                    //List<tm_whgoodsorderbatch> batchList = new InventoryHelper().GetGoodsByBatchInfo(houseInfo.ID, detail.GoodsID);
                    ////按照批次依次出库
                    //foreach (tm_whgoodsorderbatch batchInfo in batchList)
                    //{
                    //    tm_WHOrderGoodsDetail orderDetail = new tm_WHOrderGoodsDetail();
                    //    orderDetail.GoodsID = detail.GoodsID;
                    //    orderDetail.OrderDate = outBoundOrder.OrderDate;
                    //    orderDetail.OrderNO = WHOutBoundOrderNO;
                    //    //获取商品信息
                    //    tm_Goods goosInfo = Core.Container.Instance.Resolve<IServiceGoods>().GetEntity(detail.GoodsID);
                    //    orderDetail.GoodsUnit = goosInfo.GoodsUnit;
                    //    orderDetail.ChangeUnit = goosInfo.PurchaseUnit;
                    //    orderDetail.ChangeNumber = goosInfo.PurchaseNum;
                    //    orderDetail.TaxAmount = 0;
                    //    orderDetail.TaxPoint = goosInfo.TaxPoint;
                    //    orderDetail.TotalPriceNoTax = 0;
                    //    orderDetail.UnitPriceNoTax = 0;
                    //    //如果当前批次剩余库存大于等于销售商品的销售数量
                    //    if (batchInfo.CurrentNumber >= amount)
                    //    {
                    //        orderDetail.GoodsNumber = amount;
                    //        amount = 0;
                    //    }
                    //    else
                    //    {
                    //        orderDetail.GoodsNumber = batchInfo.CurrentNumber;
                    //        amount -= batchInfo.CurrentNumber;
                    //    }
                    //    //获取出库单价和金额
                    //    orderDetail.GoodsUnitPrice = batchInfo.OrderUnitPrice;
                    //    orderDetail.GoodTotalPrice = Math.Round(orderDetail.GoodsNumber * orderDetail.GoodsUnitPrice, 2);
                    //    //保存出库明细信息
                    //    Core.Container.Instance.Resolve<IServiceWHOrderGoodsDetail>().Create(orderDetail);

                    //    //更新进货批次库存信息
                    //    new InventoryHelper().UpdateGoodsBatchInfo(houseInfo.ID, detail.GoodsID, batchInfo.BatchNO, orderDetail.GoodsNumber);
                    //    //更新商品变动明细信息(出库)
                    //    new InventoryHelper().UpdateGoodsJournal(houseInfo.ID, detail.GoodsID, OrderNO, "DC", 2
                    //                                             , -orderDetail.GoodsNumber, batchInfo.OrderUnitPrice
                    //                                             , -orderDetail.GoodTotalPrice, batchInfo.BatchNO
                    //                                             , outBoundOrder.OrderDate);

                    //    //累计计算订单成本金额
                    //    goodsAmount += orderDetail.GoodTotalPrice;
                    //    outBoundOrder.OrderAmount += orderDetail.GoodTotalPrice;
                    //    //判断该商品是否完成订单数量的出库
                    //    if (amount <= 0)
                    //    {
                    //        break;
                    //    }
                    //}
                    //更新商品库存信息
                    new InventoryHelper().UpdateWareHouseStock(houseInfo.ID, detail.GoodsID, -detail.GoodsNumber, 0, -goodsAmount, 0);
                    //更新调拨出库商品成本信息
                    detail.GoodsAmount = goodsAmount;
                    Core.Container.Instance.Resolve <IServiceGoodsAllocationBillDetail>().Update(detail);
                }
                //返回出库单成本金额
                costAmount = outBoundOrder.OrderAmount;
                //创建出库单信息
                Core.Container.Instance.Resolve <IServiceWHOutBoundOrder>().Create(outBoundOrder);
            }
            else
            {
                return(false);
            }
            return(true);
        }