/// <summary>
        /// 新增入库产品保存
        /// </summary>
        public void SaveWareHouseIn()
        {
            try
            {
                using (ProxyBE p = new ProxyBE())
                {
                    WarehouseInMain ware = new WarehouseInMain();

                    ware.InID        = Parm.InID;
                    ware.BillNo      = Parm.BillNo;
                    ware.BattchNo    = Parm.BattchNo;
                    ware.CheckInDate = Parm.CheckInDate;
                    ware.HandlerMan  = Parm.HandlerMan;
                    ware.SupplierID  = Parm.SupplierID;
                    ware.Remark      = Parm.Remark;
                    SaveWarehouseInMainArgs args = new SaveWarehouseInMainArgs();
                    args.WarehouseInMain = ware;

                    //遍历详细页
                    List <WarehouseInDetail> listdetails = new List <WarehouseInDetail>();
                    string WarehouseInDetail             = Request["WarehouseInDetail"];


                    JsonData sj = JsonMapper.ToObject(WarehouseInDetail);
                    if (sj.Count > 0)
                    {
                        //遍历对象元素,保存
                        foreach (JsonData item in sj)
                        {
                            WarehouseInDetail detail = new WarehouseInDetail();
                            detail.InID       = ware.InID;
                            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());
                            detail.Price      = Decimal.Parse(item["Price"].ToString());
                            listdetails.Add(detail);
                        }
                    }
                    args.WarehouseInDetails = listdetails;
                    p.Client.SaveWarehouseInMain(SenderUser, args);
                }
                WriteSuccess();
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }
Example #2
0
 public WarehouseInMain GetWarehouseInMain(Sender sender, Guid InID)
 {
     try
     {
         using (ObjectProxy op = new ObjectProxy())
         {
             WarehouseInMain obj = new WarehouseInMain();
             obj.InID = InID;
             if (op.LoadWarehouseInMainByInID(obj) == 0)
             {
                 return(null);
             }
             return(obj);
         }
     }
     catch (Exception ex)
     {
         PLogger.LogError(ex);
         throw ex;
     }
 }
Example #3
0
        public void SaveWarehouseInMain(Sender sender, SaveWarehouseInMainArgs args)
        {
            try
            {
                using (ObjectProxy op = new ObjectProxy(true))
                {
                    WarehouseInMain obj = new WarehouseInMain();
                    obj.InID = args.WarehouseInMain.InID;
                    if (op.LoadWarehouseInMainByInID(obj) == 0)
                    {
                        args.WarehouseInMain.Created    = DateTime.Now;
                        args.WarehouseInMain.CreatedBy  = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                        args.WarehouseInMain.Modified   = DateTime.Now;
                        args.WarehouseInMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                        op.InsertWarehouseInMain(args.WarehouseInMain);
                    }
                    else
                    {
                        args.WarehouseInMain.Modified   = DateTime.Now;
                        args.WarehouseInMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                        op.UpdateWarehouseInMainByInID(args.WarehouseInMain);
                    }
                    if (args.WarehouseInDetails != null)
                    {
                        //入库数量
                        foreach (WarehouseInDetail item in args.WarehouseInDetails)
                        {
                            WarehouseInDetail subObj = new WarehouseInDetail();
                            subObj.DetailID = item.DetailID;
                            if (op.LoadWarehouseInDetailByDetailID(subObj) == 0)
                            {
                                op.InsertWarehouseInDetail(item);
                            }
                            else
                            {
                                op.UpdateWarehouseInDetailByDetailID(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      = item.Price;
                                op.InsertWarehouse(wh);
                            }
                            else
                            {
                                wh.Price = (wh.Qty * wh.Price + item.Qty * item.Price) / (wh.Qty + item.Qty); //求平均值
                                wh.Qty  += item.Qty;
                                op.UpdateWarehouseByMaterialID_LocationID(wh);
                            }
                        }
                    }
                    op.CommitTransaction();
                }
            }
            catch (Exception ex)
            {
                PLogger.LogError(ex);
                throw ex;
            }
        }