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); }
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 : ""); }
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); }
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(); }
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); }
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)); } }
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"); }
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("调拨单调拨出库仓库没有指定!"); } }
/// <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); }
/// <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); }