コード例 #1
0
        /// <summary>
        /// 订单入库保存
        /// </summary>
        public void OrderCheckIn()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    ProductWarehouseMain pw = new ProductWarehouseMain();
                    pw.InID    = Guid.NewGuid();
                    pw.BillNo  = Parm.BillNo;
                    pw.OrderID = Parm.OrderID;
                    SaveProductWarehouseArgs args = new SaveProductWarehouseArgs();
                    args.ProductWarehouseMain = pw;

                    SaveLocationArgs largs = new SaveLocationArgs();
                    //遍历详细页
                    List <ProductWarehouseDetail> listdetails = new List <ProductWarehouseDetail>();
                    string   InDetail = Request["InDetail"];
                    JsonData sj       = JsonMapper.ToObject(InDetail);
                    if (sj.Count > 0)
                    {
                        //遍历对象元素,保存
                        foreach (JsonData item in sj)
                        {
                            ProductWarehouseDetail detail = new ProductWarehouseDetail();
                            detail.InID       = pw.InID;
                            detail.DetailID   = Guid.NewGuid();
                            detail.PackageID  = Guid.Parse(item["PackageID"].ToString());
                            detail.LocationID = Guid.Parse(item["LocationID"].ToString());
                            listdetails.Add(detail);
                            args.ProductWarehouseDetails = listdetails;

                            //2.把该仓位占用、仓位放的包数、重量累计
                            Location location = p.Client.GetLocation(SenderUser, detail.LocationID);
                            location.PackageQty += 1;
                            location.Weight     += Convert.ToDecimal(item["Weight"].ToString());
                            location.Flag        = true;
                            largs.Location       = location;
                            p.Client.SaveLocation(SenderUser, largs);
                        }
                    }

                    //1.把订单状态改为待备货 O
                    Order order = p.Client.GetOrder(SenderUser, Parm.OrderID);
                    order.Status = "O";
                    SaveOrderArgs oargs = new SaveOrderArgs();
                    oargs.Order = order;
                    p.Client.SaveOrder(SenderUser, oargs);
                    p.Client.SaveProductWarehouse(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
コード例 #2
0
        public void SaveProductWarehouse(Sender sender, SaveProductWarehouseArgs args)
        {
            try
            {
                using (ObjectProxy op = new ObjectProxy(true))
                {
                    ProductWarehouseMain obj = new ProductWarehouseMain();
                    obj.InID = args.ProductWarehouseMain.InID;
                    if (op.LoadProductWarehouseMainByInID(obj) == 0)
                    {
                        args.ProductWarehouseMain.Created    = DateTime.Now;
                        args.ProductWarehouseMain.CreatedBy  = sender.UserCode + "." + sender.UserName;
                        args.ProductWarehouseMain.Modified   = DateTime.Now;
                        args.ProductWarehouseMain.ModifiedBy = sender.UserCode + "." + sender.UserName;
                        op.InsertProductWarehouseMain(args.ProductWarehouseMain);
                    }
                    else
                    {
                        op.UpdateProductWarehouseMainByInID(args.ProductWarehouseMain);
                    }

                    if (args.ProductWarehouseDetails != null)
                    {
                        op.DeleteProductWarehouseDetailsByInID(args.ProductWarehouseMain.InID);
                        foreach (ProductWarehouseDetail item in args.ProductWarehouseDetails)
                        {
                            item.Created   = DateTime.Now;
                            item.CreatedBy = sender.UserCode + "." + sender.UserName;
                            op.InsertProductWarehouseDetail(item);
                        }
                    }
                    op.CommitTransaction();
                }
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }