Beispiel #1
0
        /// <summary>
        /// 新增出库产品保存
        /// </summary>
        public void SaveWareHouseOut()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    WarehouseOutMain ware = new WarehouseOutMain();
                    ware.OutID        = Parm.OutID;
                    ware.BillNo       = Parm.BillNo;
                    ware.CheckOutDate = Parm.CheckOutDate;
                    ware.HandlerMan   = Parm.HandlerMan;
                    ware.WorkShopID   = Parm.WorkShopID;
                    ware.Remark       = Parm.Remark;
                    SaveWarehouseOutMainArgs args = new SaveWarehouseOutMainArgs();
                    args.WarehouseOutMain = ware;


                    //遍历详细页
                    List <WarehouseOutDetail> listdetails = new List <WarehouseOutDetail>();
                    string   WarehouseOutDetail           = Request["WarehouseOutDetail"];
                    JsonData sj = JsonMapper.ToObject(WarehouseOutDetail);
                    if (sj.Count > 0)
                    {
                        //遍历对象元素,保存
                        foreach (JsonData item in sj)
                        {
                            WarehouseOutDetail detail = new WarehouseOutDetail();
                            detail.OutID      = ware.OutID;
                            detail.DetailID   = Guid.NewGuid();
                            detail.MaterialID = Guid.Parse(item["MaterialID"].ToString());
                            detail.LocationID = Guid.Parse(item["LocationID"].ToString());
                            detail.Qty        = int.Parse(item["Qty"].ToString());
                            listdetails.Add(detail);
                        }
                    }
                    args.WarehouseOutDetails = listdetails;
                    p.Client.SaveWarehouseOutMain(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Beispiel #2
0
        public void SaveWarehouseOutMain(Sender sender, SaveWarehouseOutMainArgs args)
        {
            try
            {
                using (ObjectProxy op = new ObjectProxy(true))
                {
                    WarehouseOutMain obj = new WarehouseOutMain();
                    obj.OutID = args.WarehouseOutMain.OutID;
                    if (op.LoadWarehouseOutMainByOutID(obj) == 0)
                    {
                        args.WarehouseOutMain.Created    = DateTime.Now;
                        args.WarehouseOutMain.CreatedBy  = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                        args.WarehouseOutMain.Modified   = DateTime.Now;
                        args.WarehouseOutMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                        op.InsertWarehouseOutMain(args.WarehouseOutMain);
                    }
                    else
                    {
                        args.WarehouseOutMain.Modified   = DateTime.Now;
                        args.WarehouseOutMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                        op.UpdateWarehouseOutMainByOutID(args.WarehouseOutMain);
                    }
                    if (args.WarehouseOutDetails != null)
                    {
                        //出库数量
                        foreach (WarehouseOutDetail item in args.WarehouseOutDetails)
                        {
                            WarehouseOutDetail subObj = new WarehouseOutDetail();
                            subObj.DetailID = item.DetailID;
                            if (op.LoadWarehouseOutDetailByDetailID(subObj) == 0)
                            {
                                op.InsertWarehouseOutDetail(item);
                            }
                            else
                            {
                                op.UpdateWarehouseOutDetailByDetailID(item);
                            }

                            //出库
                            Warehouse wh = new Warehouse();
                            wh.MaterialID = item.MaterialID;
                            wh.LocationID = item.LocationID;
                            if (op.LoadWarehouseByMaterialID_LocationID(wh) == 0)
                            {
                                wh            = new Warehouse();
                                wh.MaterialID = item.MaterialID;
                                wh.LocationID = item.LocationID;
                                wh.Qty        = -item.Qty;
                                wh.Price      = 0;
                                op.InsertWarehouse(wh);
                            }
                            else
                            {
                                wh.Qty -= item.Qty;
                                //如果为0,则删除
                                if (wh.Qty == 0)
                                {
                                    op.DeleteWarehouseByMaterialID_LocationID(item.MaterialID, item.LocationID);
                                }
                                else
                                {
                                    op.UpdateWarehouseByMaterialID_LocationID(wh);
                                }
                            }
                        }
                    }
                    op.CommitTransaction();
                }
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }