예제 #1
0
 public ReturnValue SaveSupplier(int id, int type, string name, string person, string phone, string address, bool valid, string remark)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model   = c.Suppliers.FirstOrDefault(p => p.supplierId == id);
             var hadname = c.Suppliers.FirstOrDefault(p => p.type == type && p.supplierName == name);
             if (model == null)
             {
                 #region 添加
                 if (hadname != null)
                 {
                     return new ReturnValue {
                                status = false, message = "名称已存在,不能重复添加"
                     }
                 }
                 ;
                 model              = new Supplier();
                 model.address      = address;
                 model.phone        = phone;
                 model.remark       = remark;
                 model.supplierName = name;
                 model.type         = type;
                 model.person       = person;
                 model.valid        = valid;
                 c.Suppliers.Add(model);
                 #endregion
             }
             else
             {
                 #region 修改
                 if (hadname != null && hadname.supplierId != id)
                 {
                     return new ReturnValue {
                                status = false, message = "同种物料已存在,不能重复添加"
                     }
                 }
                 ;
                 model.address        = address;
                 model.phone          = phone;
                 model.remark         = remark;
                 model.supplierName   = name;
                 model.person         = person;
                 model.valid          = valid;
                 c.Entry(model).State = EntityState.Modified;
                 #endregion
             }
             c.SaveChanges(); return(new ReturnValue {
                 status = true
             });
         }
         catch (Exception ex)
         {
             return(new ReturnValue {
                 status = false, message = "操作失败:" + ex.Message
             });
         }
     }
 }
예제 #2
0
 public ReturnValue SaveDictionary(string type, string key, string value, string lable, string remark)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var m = c.Dictionaries.FirstOrDefault(p => p.dictionaryKey == key);
             if (type == "add")
             {
                 #region 添加
                 if (m != null)
                 {
                     return new ReturnValue {
                                status = false, message = "字典已存在,不能重复添加"
                     }
                 }
                 ;
                 m = new Dictionary();
                 m.dictionaryKey   = key;
                 m.dictionaryLable = lable;
                 m.dictionaryValue = value;
                 m.remark          = remark;
                 c.Dictionaries.Add(m);
                 #endregion
             }
             else if (type == "edit")
             {
                 #region 修改
                 if (m == null)
                 {
                     return new ReturnValue {
                                status = false, message = "字典不存在"
                     }
                 }
                 ;
                 m.dictionaryLable = lable;
                 m.dictionaryValue = value;
                 m.remark          = remark;
                 c.Entry(m).State  = EntityState.Modified;
                 #endregion
             }
             else
             {
                 return new ReturnValue {
                            status = false, message = "操作类别错误"
                 }
             };
             c.SaveChanges(); return(new ReturnValue {
                 status = true
             });
         }
         catch (Exception ex)
         {
             return(new ReturnValue {
                 status = false, message = "操作失败:" + ex.Message
             });
         }
     }
 }
예제 #3
0
 public ReturnValue SaveDepartment(int id, bool valid, string depName, string phone, string leader, string remark)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model   = c.Departments.FirstOrDefault(p => p.depId == id);
             var hadname = c.Departments.FirstOrDefault(p => p.depName == depName);
             if (model == null)
             {
                 #region 添加
                 if (hadname != null)
                 {
                     return new ReturnValue {
                                status = false, message = "名称已存在,不能重复添加"
                     }
                 }
                 ;
                 model         = new Department();
                 model.depName = depName;
                 model.leader  = leader;
                 model.phone   = phone;
                 model.remark  = remark;
                 model.valid   = valid;
                 c.Departments.Add(model);
                 #endregion
             }
             else
             {
                 #region 修改
                 if (hadname != null && hadname.depId != id)
                 {
                     return new ReturnValue {
                                status = false, message = "名称已存在,不能重复添加"
                     }
                 }
                 ;
                 model.depName        = depName;
                 model.leader         = leader;
                 model.phone          = phone;
                 model.valid          = valid;
                 model.remark         = remark;
                 c.Entry(model).State = EntityState.Modified;
                 #endregion
             }
             c.SaveChanges(); return(new ReturnValue {
                 status = true
             });
         }
         catch (Exception ex)
         {
             return(new ReturnValue {
                 status = false, message = "操作失败:" + ex.Message
             });
         }
     }
 }
예제 #4
0
        public CustomerTest()
        {
            var builder = new DbContextOptionsBuilder <InvoicingContext>();

            builder.UseInMemoryDatabase($"database{Guid.NewGuid()}");
            _invoicingContext = new InvoicingContext(builder.Options);
            _customerService  = new CustomerService(_invoicingContext);
            _parkingService   = new ParkingService(_invoicingContext);
            _parkedService    = new ParkedService(_invoicingContext);
        }
        public static InvoicingContext CreateSqliteContext(string databaseName)
        {
            var options = new DbContextOptionsBuilder <InvoicingContext>()
                          .UseSqlite(GetSqliteConnection(databaseName))
                          .Options;
            var context = new InvoicingContext(options);

            context.Database.EnsureCreated(); // this will also call HasData
            return(context);
        }
예제 #6
0
        private static InvoicingContext CreateContextForSqlServer(string databaseName)
        {
            //On a CI machine this should come from some configuration value and the db needs to be accessible
            var options = new DbContextOptionsBuilder <InvoicingContext>()
                          .UseSqlServer($@"Server=.;Database={databaseName};Trusted_Connection=True;")
                          .Options;
            var context = new InvoicingContext(options);

            return(context);
        }
예제 #7
0
 public List <Function> GetFunctionByRole(int rolesn)
 {
     using (var c = new InvoicingContext())
     {
         var list = from f in c.Functions
                    join r in c.FunctionRights on f.functionNo equals r.functionNo
                    where r.roleSn == rolesn
                    orderby r.rightSn ascending
                    select f;
         return(list.ToList());
     }
 }
예제 #8
0
 public List <Enterprise.Invoicing.Entities.Models.Menu> GetMenuByRole(int rolesn)
 {
     using (var c = new InvoicingContext())
     {
         var list = from m in c.Menus
                    join r in c.MenuRights on m.menuNo equals r.menuNo
                    where r.roleSn == rolesn
                    orderby m.menuNo ascending
                    select m;
         return(list.ToList());
     }
 }
예제 #9
0
        public ParkingService(InvoicingContext context)
        {
            _context = context;

            if (_context.Parkings.Count() == 0)
            {
                _context.Parkings.Add(new Parking {
                    Name = "Parking one"
                });
                _context.SaveChanges();
            }
        }
예제 #10
0
        public ReturnValue SaveRole(int id, string name, string remark, bool price)
        {
            using (var c = new InvoicingContext())
            {
                try
                {
                    var model   = c.Roles.FirstOrDefault(p => p.roleSn == id);
                    var hadname = c.Roles.FirstOrDefault(p => p.roleName == name);
                    if (model == null)
                    {
                        #region 添加
                        if (hadname != null)
                        {
                            return new ReturnValue {
                                       status = false, message = "角色已存在,不能重复添加"
                            }
                        }
                        ;

                        model          = new Role();
                        model.remark   = remark;
                        model.roleName = name; model.showPrice = price;
                        c.Roles.Add(model);
                        #endregion
                    }
                    else
                    {
                        #region 修改
                        if (hadname != null && hadname.roleSn != id)
                        {
                            return new ReturnValue {
                                       status = false, message = "角色已存在,不能重复添加"
                            }
                        }
                        ;
                        model.remark         = remark;
                        model.roleName       = name; model.showPrice = price;
                        c.Entry(model).State = EntityState.Modified;
                        #endregion
                    }
                    c.SaveChanges(); return(new ReturnValue {
                        status = true
                    });
                }
                catch (Exception ex)
                {
                    return(new ReturnValue {
                        status = false, message = "操作失败:" + ex.Message
                    });
                }
            }
        }
예제 #11
0
 public CustomerService(InvoicingContext context)
 {
     _context = context;
     if (_context.Customers.Count() == 0)
     {
         _context.Customers.Add(new Customer {
             Name = "Regular Customer", Type = CustomerType.regular
         });
         _context.Customers.Add(new Customer {
             Name = "Premium Customer", Type = CustomerType.premium
         });
         _context.SaveChanges();
     }
 }
예제 #12
0
 public bool SaveSendMessage(MsgSend send)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             c.MsgSends.Add(send);
             c.SaveChanges(); return(true);
         }
         catch (Exception ex)
         {
             return(false);
         }
     }
 }
예제 #13
0
 public bool ChangeEmployeeStatus(int id, bool status)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model = c.Employees.FirstOrDefault(p => p.staffId == id);
             model.status = status;
             c.SaveChanges(); return(true);
         }
         catch
         {
             return(false);
         }
     }
 }
예제 #14
0
 public bool DeleteRequire(string no)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var r = c.PurchaseRequires.FirstOrDefault(p => p.requireNo == no);
             if (r != null)
             {
                 var list = c.PurchaseRequireDetails.Where(p => p.requireNo == no);
                 if (list != null)
                 {
                     foreach (var item in list)
                     {
                         c.PurchaseRequireDetails.Remove(item);
                     }
                 }
                 #region 如果是自动生成,则原订单可再次申请
                 var order = c.BomOrders.FirstOrDefault(p => p.bomOrderNo == r.bomOrderNo);
                 if (order != null)
                 {
                     var orderdetail = c.BomOrderDetails.Where(p => p.bomOrderNo == order.bomOrderNo).ToList();
                     if (orderdetail != null)
                     {
                         foreach (var item in orderdetail)
                         {
                             item.hadRequire     = false;
                             c.Entry(item).State = EntityState.Modified;
                         }
                     }
                 }
                 #endregion
                 c.PurchaseRequires.Remove(r);
                 c.SaveChanges();
                 return(true);
             }
             return(false);
         }
         catch
         {
             return(false);
         }
     }
 }
예제 #15
0
 public bool DeleteReturn(string no)
 {
     using (var c = new InvoicingContext())
     {
         var model = c.PurchaseReturns.FirstOrDefault(p => p.returnNo == no);
         if (model != null)
         {
             var details = c.PurchaseReturnDetails.Where(p => p.returnNo == no);
             foreach (var item in details)
             {
                 c.PurchaseReturnDetails.Remove(item);
             }
             c.PurchaseReturns.Remove(model);
             c.SaveChanges();
             return(true);
         }
         return(false);
     }
 }
예제 #16
0
        public bool ChangeBillStatus(string no, int status, int staff)
        {
            using (var c = new InvoicingContext())
            {
                try
                {
                    var model = c.BillCosts.FirstOrDefault(p => p.billNo == no);
                    if (status == -1)
                    {
                        model.status   = 4;
                        model.checkRes = false;
                    }
                    else
                    {
                        if (model.status == 0)
                        {
                            model.status = 1;

                            model.checkRes = true;
                        }
                        else if (model.status == 1)
                        {
                            model.status   = 0;
                            model.checkRes = false;
                        }
                        else if (model.status == 4)
                        {
                            model.status = 0;

                            model.checkRes = false;
                        }
                    }
                    model.staffCheck     = staff;
                    c.Entry(model).State = EntityState.Modified;
                    c.SaveChanges();
                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
        protected AbstractBaseApiTest()
        {
            var optionBuilder = CreateDbOptionsBuilder();

            SetupContext = new InvoicingContext(optionBuilder.Options);
            SetupContext.Database.EnsureDeleted();
            SetupContext.Database.EnsureCreated();
            AssertContext = new InvoicingContext(optionBuilder.Options);

            _server = new TestServer(new WebHostBuilder()
                                     .ConfigureAppConfiguration((hostincontext, config) =>
            {
                config.AddInMemoryCollection();
            })
                                     .UseEnvironment("Test")
                                     .UseStartup <Startup>());

            Client = _server.CreateClient();
        }
예제 #18
0
 public ReturnValue DeleteRole(int id)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model = c.Roles.FirstOrDefault(p => p.roleSn == id);
             c.Roles.Remove(model);
             c.SaveChanges(); return(new ReturnValue {
                 status = true
             });
         }
         catch (Exception ex)
         {
             return(new ReturnValue {
                 status = false, message = "操作失败:" + ex.Message
             });
         }
     }
 }
예제 #19
0
 public ReturnValue DeleteDictionary(string key)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model = c.Dictionaries.FirstOrDefault(p => p.dictionaryKey == key);
             c.Dictionaries.Remove(model);
             c.SaveChanges(); return(new ReturnValue {
                 status = true
             });
         }
         catch (Exception ex)
         {
             return(new ReturnValue {
                 status = false, message = "操作失败:" + ex.Message
             });
         }
     }
 }
예제 #20
0
 public ReturnValue DeleteMaterial(string no)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model = c.Materials.FirstOrDefault(p => p.materialNo == no);
             c.Materials.Remove(model);
             c.SaveChanges(); return(new ReturnValue {
                 status = true
             });
         }
         catch (Exception ex)
         {
             return(new ReturnValue {
                 status = false, message = "操作失败:" + ex.Message
             });
         }
     }
 }
예제 #21
0
 public ReturnValue UpdatePwd(int staff, string oldpwd, string newpwd)
 {
     using (var c = new InvoicingContext())
     {
         var model = c.Employees.FirstOrDefault(p => p.staffId == staff);
         if (model == null)
         {
             return new ReturnValue {
                        status = false, message = "用户不存在"
             }
         }
         ;
         if (model.isUser == false)
         {
             return new ReturnValue {
                        status = false, message = "该员工为非系统用户"
             }
         }
         ;
         if (!model.status)
         {
             return new ReturnValue {
                        status = false, message = "该用户已被锁定"
             }
         }
         ;
         if (model.userPwd.ToLower() != oldpwd.ToLower())
         {
             return new ReturnValue {
                        status = false, message = "旧密码输入错误"
             }
         }
         ;
         model.userPwd        = newpwd;
         c.Entry(model).State = EntityState.Modified;
         c.SaveChanges();
         return(new ReturnValue {
             status = true, message = ""
         });
     }
 }
예제 #22
0
 public bool SaveRoleFunction(int role, string[] add, string[] delete)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             #region 添加
             foreach (var item in add)
             {
                 if (item == "")
                 {
                     continue;
                 }
                 var ha = c.FunctionRights.FirstOrDefault(p => p.roleSn == role && p.functionNo == item);
                 if (ha == null)
                 {
                     FunctionRight r = new FunctionRight();
                     r.functionNo = item;
                     r.roleSn     = role;
                     c.FunctionRights.Add(r);
                 }
             }
             c.SaveChanges();
             #endregion
             #region  除
             foreach (var item in delete)
             {
                 var ha = c.FunctionRights.FirstOrDefault(p => p.roleSn == role && p.functionNo == item);
                 if (ha != null)
                 {
                     c.FunctionRights.Remove(ha);
                 }
             }
             c.SaveChanges();
             #endregion
             return(true);
         }
         catch
         { return(false); }
     }
 }
예제 #23
0
 public ReturnValue SetUser(int id, bool isuer, string userid, string pwd, int role, bool valid, string remark, int utype)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model = c.Employees.FirstOrDefault(p => p.staffId == id);
             if (model == null)
             {
                 return new ReturnValue {
                            status = false, message = "员工不存在"
                 }
             }
             ;
             model.isUser = isuer;
             model.userId = userid;
             model.status = valid;
             model.remark = remark; model.rigthType = utype;
             if (pwd != "")
             {
                 model.userPwd = pwd;
             }
             if (role != 0)
             {
                 model.roleSn = role;
             }
             c.Entry(model).State = EntityState.Modified;
             c.SaveChanges();
             return(new ReturnValue {
                 status = true
             });
         }
         catch (Exception ex)
         {
             return(new ReturnValue {
                 status = false, message = "操作失败:" + ex.Message
             });
         }
     }
 }
예제 #24
0
        public bool ChangeRequireStatus(string no, int status, string checkstaff)
        {
            using (var c = new InvoicingContext())
            {
                try
                {
                    var model = c.PurchaseRequires.FirstOrDefault(p => p.requireNo == no);
                    if (status == -1)
                    {
                        model.status     = 4;
                        model.checkStaff = checkstaff;
                    }
                    else
                    {
                        if (model.status == 0)
                        {
                            model.status = 1;
                        }
                        else if (model.status == 1)
                        {
                            model.status = 0;
                        }
                        else if (model.status == 4)
                        {
                            model.status = 0;
                        }

                        model.checkStaff = checkstaff;
                    }
                    c.Entry(model).State = EntityState.Modified;
                    c.SaveChanges();
                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
예제 #25
0
 public bool ChangeSettleStatus(string no, int status, int staff)
 {
     using (var c = new InvoicingContext())
     {
         try
         {
             var model  = c.Settlements.FirstOrDefault(p => p.settleNo == no);
             var person = c.Employees.FirstOrDefault(p => p.staffId == staff);
             if (status == -1)
             {
                 model.status = 4;
             }
             else
             {
                 if (model.status == 0)
                 {
                     model.status = 1;
                 }
                 else if (model.status == 1)
                 {
                     model.status = 0;
                 }
                 else if (model.status == 4)
                 {
                     model.status = 0;
                 }
             }
             model.checkStaff     = person != null ? person.staffName : "";
             model.checkDate      = DateTime.Now;
             c.Entry(model).State = EntityState.Modified;
             c.SaveChanges();
             return(true);
         }
         catch
         {
             return(false);
         }
     }
 }
예제 #26
0
        public bool DeletePurchase(string no)
        {
            using (var c = new InvoicingContext())
            {
                try
                {
                    var r = c.Purchases.FirstOrDefault(p => p.purchaseNo == no);
                    if (r != null)
                    {
                        var list = c.PurchaseDetails.Where(p => p.purchaseNo == no);

                        if (list != null)
                        {
                            foreach (var item in list)
                            {
                                //var require = c.PurchaseRequireDetails.FirstOrDefault(p => p.detailSn == item.requireDetailSn);
                                //if (require!=null)
                                //{
                                //    require.buyAmount -= item.poAmount;
                                //    c.Entry(require).State = EntityState.Modified;
                                //}
                                c.PurchaseDetails.Remove(item);
                            }
                        }
                        c.Purchases.Remove(r);
                        c.SaveChanges();
                        return(true);
                    }
                    return(false);
                }
                catch
                {
                    return(false);
                }
            }
        }
예제 #27
0
 public EmployeeService(InvoicingContext invoicingContext) : base(invoicingContext)
 {
 }
예제 #28
0
 public InvoicesRepository(InvoicingContext context) => _context = context;
예제 #29
0
        public ReturnValue ChangeReturnStatus(string no, int status, string checkstaff)
        {
            using (var c = new InvoicingContext())
            {
                try
                {
                    var model  = c.PurchaseReturns.FirstOrDefault(p => p.returnNo == no);
                    var detail = c.PurchaseReturnDetails.Where(p => p.returnNo == no);
                    if (status == -1)
                    {
                        if (model.status == 1)
                        {
                            foreach (var item in detail)
                            {
                                #region 从审核通过到作废,采购明细数量回去,入库明细数量回去,库存回去
                                var depot = c.DepotDetails.FirstOrDefault(p => p.depotId == item.depotId && p.materialNo == item.materialNo);
                                if (depot != null)
                                {
                                    depot.depotAmount   += item.returnAmount;
                                    c.Entry(depot).State = EntityState.Modified;
                                }
                                var stock = c.StockInDetails.FirstOrDefault(p => p.detailSn == item.stockinDetailSn);
                                if (stock != null)
                                {
                                    stock.returnAmount  -= item.returnAmount;
                                    c.Entry(stock).State = EntityState.Modified;
                                }
                                var orderdetail = c.PurchaseDetails.FirstOrDefault(p => p.detailSn == item.purchaseDetailSn);
                                if (orderdetail != null)
                                {
                                    orderdetail.poRemain     -= item.returnAmount;
                                    orderdetail.returnAmount -= item.returnAmount;
                                }
                                #endregion
                            }
                        }
                        model.status     = 4;
                        model.checkStaff = checkstaff;
                    }
                    else
                    {
                        if (model.status == 0)
                        {
                            model.status     = 1;
                            model.checkStaff = checkstaff;
                            foreach (var item in detail)
                            {
                                #region 审核通过
                                var depot = c.DepotDetails.FirstOrDefault(p => p.depotId == item.depotId && p.materialNo == item.materialNo);
                                if (depot != null)
                                {
                                    depot.depotAmount   -= item.returnAmount;
                                    c.Entry(depot).State = EntityState.Modified;
                                }
                                var stock = c.StockInDetails.FirstOrDefault(p => p.detailSn == item.stockinDetailSn);
                                if (stock != null)
                                {
                                    stock.returnAmount  += item.returnAmount;
                                    c.Entry(stock).State = EntityState.Modified;
                                }
                                var orderdetail = c.PurchaseDetails.FirstOrDefault(p => p.detailSn == item.purchaseDetailSn);
                                if (orderdetail != null)
                                {
                                    orderdetail.poRemain     += item.returnAmount;
                                    orderdetail.returnAmount += item.returnAmount;
                                }
                                #endregion
                            }
                        }
                        else if (model.status == 1)
                        {
                            model.status     = 0;
                            model.checkStaff = checkstaff;
                            foreach (var item in detail)
                            {
                                #region 从审核通过到返审,采购明细数量回去,入库明细数量回去,库存回去
                                var depot = c.DepotDetails.FirstOrDefault(p => p.depotId == item.depotId && p.materialNo == item.materialNo);
                                if (depot != null)
                                {
                                    depot.depotAmount   += item.returnAmount;
                                    c.Entry(depot).State = EntityState.Modified;
                                }
                                var stock = c.StockInDetails.FirstOrDefault(p => p.detailSn == item.stockinDetailSn);
                                if (stock != null)
                                {
                                    stock.returnAmount  -= item.returnAmount;
                                    c.Entry(stock).State = EntityState.Modified;
                                }
                                var orderdetail = c.PurchaseDetails.FirstOrDefault(p => p.detailSn == item.purchaseDetailSn);
                                if (orderdetail != null)
                                {
                                    orderdetail.poRemain     -= item.returnAmount;
                                    orderdetail.returnAmount -= item.returnAmount;
                                }
                                #endregion
                            }
                        }
                        else if (model.status == 4)
                        {
                            model.status     = 0;
                            model.checkStaff = checkstaff;
                        }
                    }
                    c.Entry(model).State = EntityState.Modified;
                    c.SaveChanges();

                    #region 更新采购单是否完工
                    List <string> hadno = new List <string>();
                    foreach (var item in detail)
                    {
                        if (hadno.Contains(item.stockinNo))
                        {
                            continue;
                        }
                        hadno.Add(item.stockinNo);
                        SqlParameter[] sqlparams = new SqlParameter[1];
                        sqlparams[0] = new SqlParameter("@stockinno", item.stockinNo);
                        var result = (from p in c.Purchases.SqlQuery(" exec usp_over_purchase @stockinno", sqlparams) select p).ToList();
                        c.SaveChanges();
                    }
                    #endregion

                    return(new ReturnValue {
                        status = true
                    });
                }
                catch (Exception ex)
                {
                    return(new ReturnValue {
                        message = "操作失败:" + ex.Message, status = false
                    });
                }
            }
        }
예제 #30
0
        public ReturnValue SaveReturnDetail(string no, List <ReturnDetailModel> list, int supplier, string remark, string deport)
        {
            using (var c = new InvoicingContext())
            {
                try
                {
                    var model = c.PurchaseReturns.FirstOrDefault(p => p.returnNo == no && p.status == 0);
                    if (model == null)
                    {
                        return new ReturnValue {
                                   status = false, message = "不存在采购退单"
                        }
                    }
                    ;
                    if (list == null || list.Count < 1)
                    {
                        return new ReturnValue {
                                   status = false, message = "不存在采购退单"
                        }
                    }
                    ;
                    foreach (var item in list)
                    {
                        if (item.type == "")
                        {
                            continue;
                        }

                        if (item.type == "delete")
                        {
                            var d = c.PurchaseReturnDetails.FirstOrDefault(p => p.detailSn == item.returnSn);
                            if (d != null)
                            {
                                c.PurchaseReturnDetails.Remove(d);
                            }
                        }
                        else if (item.type == "edit")
                        {
                            var d = c.PurchaseReturnDetails.FirstOrDefault(p => p.detailSn == item.returnSn);
                            if (d != null)
                            {
                                d.materialNo     = item.materialNo;
                                d.returnAmount   = item.returnAmount;
                                d.remark         = item.remark;
                                d.depotId        = item.depotId;
                                c.Entry(d).State = EntityState.Modified;
                            }
                        }
                        else if (item.type == "add")
                        {
                            PurchaseReturnDetail d = new PurchaseReturnDetail();
                            var order = c.PurchaseDetails.FirstOrDefault(p => p.detailSn == item.purchaseDetailSn);
                            //var stockin = c.StockInDetails.FirstOrDefault(p => p.detailSn == item.stockinDetailSn);
                            //stockin.returnAmount += item.returnAmount;
                            d.materialNo       = item.materialNo;
                            d.returnAmount     = item.returnAmount;
                            d.returnNo         = no;
                            d.depotId          = item.depotId;
                            d.remark           = item.remark;
                            d.buyPrice         = order.poPrice;
                            d.purchaseDetailSn = item.purchaseDetailSn;
                            d.purchaseNo       = item.purchaseNo;
                            d.stockinDetailSn  = item.stockinDetailSn;
                            d.stockinNo        = item.stockinNo;
                            c.PurchaseReturnDetails.Add(d);
                        }
                    }
                    #region 申请单
                    if (model.remark != remark || model.deportStaff != deport)
                    {
                        model.remark = remark;

                        model.deportStaff    = deport;
                        c.Entry(model).State = EntityState.Modified;
                    }
                    #endregion
                    c.SaveChanges(); return(new ReturnValue {
                        status = true, message = ""
                    });
                }
                catch (Exception ex)
                {
                    return(new ReturnValue {
                        status = false, message = "保存失败:" + ex.Message
                    });
                }
            }
        }