Пример #1
0
        public IHttpActionResult Putmcustomer(string id, mcustomer mcustomer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != mcustomer.CusID)
            {
                return(BadRequest());
            }

            db.Entry(mcustomer).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (Exception)
            {
                if (mcustomerExists(mcustomer.CusID))
                {
                    return(new PageResult("Conflict", Request));
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #2
0
        public IHttpActionResult Puttsaleorderdtl(string id, tsaleorderdtl tsaleorderdtl)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != tsaleorderdtl.SaleOrderNO)
            {
                return(BadRequest());
            }

            db.Entry(tsaleorderdtl).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!tsaleorderdtlExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #3
0
        public IHttpActionResult Putmwarehouse(string id, mwarehouse mwarehouse)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != mwarehouse.WHID)
            {
                return(BadRequest());
            }

            db.Entry(mwarehouse).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (Exception)
            {
                if (!mwarehouseExists(id))
                {
                    return(new PageResult("Conflict", Request));
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #4
0
        public BaseDataPackage <string> DelSupplierProdPrice(List <DelThreePrimarykeys> data)
        {
            var          result = new BaseDataPackage <string>();
            erpsEntities db     = new erpsEntities();

            for (int i = 0; i < data.Count; i++)
            {
                var PdtID = data[i].Primary1.ToString();
                var SupID = data[i].Primary2.ToString();
                var Model = data[i].Primary3.ToString();
                var list  = db.msupplierprodprice.Where(c => c.PdtID == PdtID && c.SupID == SupID && c.Model == Model).FirstOrDefault();
                db.msupplierprodprice.Remove(list);
            }

            try
            {
                db.SaveChanges();
                result.Status  = ApiStatusCode.OK;
                result.Message = "删除成功";
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = "发生异常=>" + ex.Message;
                result.Status  = ApiStatusCode.EXCEPTION;
                return(result);
            }
        }
Пример #5
0
        public int ImportList(List <msupplier> lstpdt, out int addNum, out int updNum, out int cfNum)
        {
            int ret = 0;

            using (var tran = erpsEntities.Database.BeginTransaction())
            {
                try
                {
                    addNum = 0;
                    updNum = 0;
                    cfNum  = 0;
                    cfNum  = lstpdt.GroupBy(x => x.SupID).Where(x => x.Count() > 1).Count();

                    //去除重复的ID数据
                    lstpdt = lstpdt.Where((x, i) => lstpdt.FindIndex(n => n.SupID == x.SupID) == i).ToList();

                    var all   = erpsEntities.msupplier.AsNoTracking().ToList();
                    var allID = all.Select(s => s.SupID).ToList();
                    //新增
                    var addlist = lstpdt.Where(w => !allID.Contains(w.SupID)).ToList();
                    erpsEntities.msupplier.AddRange(addlist);

                    //修改
                    var updlist = lstpdt.Where(w => allID.Contains(w.SupID)).ToList();
                    for (int i = 0; i < updlist.Count; i++)
                    {
                        msupplier msupplier = new msupplier();
                        msupplier = updlist[i];
                        erpsEntities.msupplier.Attach(msupplier);

                        erpsEntities.Entry(msupplier).State = EntityState.Unchanged;
                        erpsEntities.Entry(msupplier).Property(x => x.SupID).IsModified      = true;
                        erpsEntities.Entry(msupplier).Property(x => x.SupName).IsModified    = true;
                        erpsEntities.Entry(msupplier).Property(x => x.Contact).IsModified    = true;
                        erpsEntities.Entry(msupplier).Property(x => x.Phone).IsModified      = true;
                        erpsEntities.Entry(msupplier).Property(x => x.Address).IsModified    = true;
                        erpsEntities.Entry(msupplier).Property(x => x.UpdateID).IsModified   = true;
                        erpsEntities.Entry(msupplier).Property(x => x.UpdateDate).IsModified = true;
                    }
                    ret = erpsEntities.SaveChanges();
                    tran.Commit();
                    addNum = addlist.Count;
                    updNum = updlist.Count;
                    if (ret > 0)
                    {
                        ret = 1;
                    }
                    return(ret);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    ret = -1;
                    throw ex;
                }
            }
        }
Пример #6
0
        public int ImportMProductList(List <mproduct> lstpdt, out int addNum, out int updNum, out int cfNum)
        {
            int ret = 0;

            using (var tran = erpsEntities.Database.BeginTransaction())
            {
                try
                {
                    addNum = 0;
                    updNum = 0;
                    cfNum  = 0;
                    cfNum  = lstpdt.GroupBy(x => x.PdtID).Where(x => x.Count() > 1).Count();

                    //去除重复的ID数据
                    lstpdt = lstpdt.Where((x, i) => lstpdt.FindIndex(n => n.PdtID == x.PdtID) == i).ToList();

                    var all   = erpsEntities.mproduct.AsNoTracking().ToList();
                    var allID = all.Select(s => s.PdtID).ToList();
                    //新增
                    var addlist = lstpdt.Where(w => !allID.Contains(w.PdtID)).ToList();
                    erpsEntities.mproduct.AddRange(addlist);

                    //修改
                    var updlist = lstpdt.Where(w => allID.Contains(w.PdtID)).ToList();
                    for (int i = 0; i < updlist.Count; i++)
                    {
                        mproduct mproduct = new mproduct();
                        mproduct = updlist[i];
                        //var curState = erpsEntities.Entry<mproduct>(mproduct).State;
                        erpsEntities.mproduct.Attach(mproduct);

                        erpsEntities.Entry(mproduct).State = EntityState.Modified;
                        erpsEntities.Entry(mproduct).Property(x => x.SalPrice).IsModified   = false;
                        erpsEntities.Entry(mproduct).Property(x => x.MgrInfo).IsModified    = false;
                        erpsEntities.Entry(mproduct).Property(x => x.Remark).IsModified     = false;
                        erpsEntities.Entry(mproduct).Property(x => x.CreateID).IsModified   = false;
                        erpsEntities.Entry(mproduct).Property(x => x.CreateDate).IsModified = false;
                    }
                    ret = erpsEntities.SaveChanges();
                    tran.Commit();
                    addNum = addlist.Count;
                    updNum = updlist.Count;
                    if (ret > 0)
                    {
                        ret = 1;
                    }
                    return(ret);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    ret = -1;
                    throw ex;
                }
            }
        }
Пример #7
0
        public IHttpActionResult Putsuser(int id, suser suser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != suser.UserId)
            {
                return(BadRequest());
            }
            suser.UpdateDate = DateTime.Now;

            db.Entry(suser).State = EntityState.Modified;

            if (suser.Pass == null || suser.Pass.Trim() == "")
            {
                db.Entry(suser).Property("Pass").IsModified = false;
            }
            else
            {
                suser.Pass = ValidCodeUtils.EncryptPassword(suser.Pass);
            }

            try
            {
                db.SaveChanges();
            }
            catch (Exception)
            {
                if (suserExists(suser.UID))
                {
                    return(new PageResult("Conflict", Request));
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #8
0
        /// <summary>
        /// 采购订单-新增
        /// </summary>
        /// <param name="tpurorder"></param>
        /// <param name="tpurorderdtl"></param>
        /// <param name="tpurorderatt"></param>
        /// <returns></returns>
        public int AddPurOrderDtl(tpurorder tpurodr, List <tpurorderdtl> tpurodrdtl, List <tpurorderatt> tpurodratt)
        {
            int ret = 0;

            using (var tran = erpsEntities.Database.BeginTransaction())
            {
                try
                {
                    erpsEntities.tpurorder.Add(tpurodr);
                    erpsEntities.tpurorderdtl.AddRange(tpurodrdtl);
                    erpsEntities.tpurorderatt.AddRange(tpurodratt);

                    ret = erpsEntities.SaveChanges();
                    tran.Commit();
                    if (ret > 0)
                    {
                        ret = 1;
                    }
                    return(ret);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    ret = -1;
                    throw ex;
                }
            }
        }
Пример #9
0
        public BaseDataPackage <string> WholePurOrderWriteOff(string PurOrderNO)
        {
            var result = new BaseDataPackage <string>();

            try
            {
                erpsEntities db  = new erpsEntities();
                int          ret = 0;

                var purorder = db.tpurorder.Where(w => w.PurOrderNO == PurOrderNO).FirstOrDefault <tpurorder>();
                purorder.State = "F";

                var entitys = db.tpurorderdtl.Where(w => w.PurOrderNO == PurOrderNO);
                entitys.ToList().ForEach(item =>
                {
                    item.LftNum          = 0;
                    item.State           = "F";
                    db.Entry(item).State = System.Data.Entity.EntityState.Modified;
                });
                ret = db.SaveChanges();

                if (ret > 0)
                {
                    result.Status  = ApiStatusCode.OK;
                    result.Message = "冲销成功";
                    return(result);
                }
                else
                {
                    result.DataList = null;
                    result.Status   = ApiStatusCode.FAIL;
                    result.Message  = "冲销失败";
                    return(result);
                }
            }
            catch (Exception ex)
            {
                result.Status  = ApiStatusCode.EXCEPTION;
                result.Message = "发生异常=>" + ex.Message;
                return(result);
            }
        }
Пример #10
0
        public BaseDataPackage <string> EditSupplierProdPrice(string id, msupplierprodprice msupplier)
        {
            var          result = new BaseDataPackage <string>();
            erpsEntities db     = new erpsEntities();

            msupplier.UpdateDate      = DateTime.Now;
            db.Entry(msupplier).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
                result.Status  = ApiStatusCode.OK;
                result.Message = "修改成功";
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = "发生异常=>" + ex.Message;
                result.Status  = ApiStatusCode.EXCEPTION;
                return(result);
            }
        }
Пример #11
0
        public BaseDataPackage <string> AddSupplierProdPrice(msupplierprodprice msupplier)
        {
            var          result = new BaseDataPackage <string>();
            erpsEntities db     = new erpsEntities();

            if (!ModelState.IsValid)
            {
                result.Status  = ApiStatusCode.FAIL;
                result.Message = "无效数据";
                return(result);
            }

            msupplier.CreateDate = DateTime.Now;
            db.msupplierprodprice.Add(msupplier);

            try
            {
                db.SaveChanges();
                result.Status  = ApiStatusCode.OK;
                result.Message = "提交成功";
                return(result);
            }
            catch (Exception ex)
            {
                if (db.msupplierprodprice.Count(e => e.SupID == msupplier.SupID && e.PdtID == msupplier.PdtID && e.Model == msupplier.Model) > 0)
                {
                    result.Message = "发生异常=>" + "已存在该供应商编号+产品编号+车型组合";
                }
                else
                {
                    result.Message = "发生异常=>" + ex.Message;
                }
                result.Status = ApiStatusCode.EXCEPTION;
                return(result);
            }
        }
Пример #12
0
        public IHttpActionResult PostInWar()
        {
            HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];
            HttpRequestBase request = context.Request;

            JavaScriptSerializer js          = new JavaScriptSerializer();
            string purOrderNO                = request.Params["purOrderNO"];
            string warId                     = request.Params["warId"];
            string purchaseDate              = request.Params["purchaseDate"];
            List <Stockrecords>     listStoc = js.Deserialize <List <Stockrecords> >(request.Params["purorderdtl"]);
            List <WarehouseReceipt> listWr   = js.Deserialize <List <WarehouseReceipt> >(request.Params["purorderdtl"]);
            List <twhstockrecords>  listTwh  = new List <twhstockrecords>();
            string no = "";

            using (var tran = db.Database.BeginTransaction())
            {
                try
                {
                    int fNum = 0;
                    no = purOrderNO + DateTime.Now.ToString("HHmmss");
                    for (int i = 0; i < listStoc.Count; i++)
                    {
                        int    seqNo  = listStoc[i].seqNo;
                        string pdtId  = listStoc[i].pdtID;
                        float  lftNum = listStoc[i].lftNum;
                        string remark = listStoc[i].remark;

                        twhstockrecords t = new twhstockrecords();
                        t.WHID       = warId;
                        t.AreaID     = i.ToString();
                        t.PosiID     = i.ToString();
                        t.PdtID      = pdtId;
                        t.Num        = lftNum;
                        t.RefWHID    = i.ToString();
                        t.RefAreaID  = i.ToString();
                        t.RefPosiID  = i.ToString();
                        t.OpeType    = "I";
                        t.PurOrderNO = purOrderNO;
                        t.RefSeqNo   = seqNo;
                        t.No         = no;
                        var dateNow = DateTime.Now;
                        t.CreateDate = dateNow;
                        t.UpdateDate = dateNow;
                        if (!string.IsNullOrEmpty(purchaseDate))
                        {
                            DateTime date = Convert.ToDateTime(purchaseDate);
                            var      tmp0 = date.ToString("yyyy-MM-dd");
                            var      tmp1 = dateNow.ToLongTimeString().ToString();
                            purchaseDate = tmp0 + " " + tmp1;
                            date         = Convert.ToDateTime(purchaseDate);
                            t.UpdateDate = date;
                        }
                        t.Remark = remark;
                        listTwh.Add(t);

                        var purorderdtl = db.tpurorderdtl
                                          .Where(p => p.PurOrderNO == purOrderNO && p.PdtID == pdtId && p.SeqNo == seqNo).FirstOrDefault();

                        if (purorderdtl.LftNum > 0)
                        {
                            float num    = (float)purorderdtl.LftNum - lftNum;
                            float delNum = (float)purorderdtl.OrderNum - num;
                            db.tpurorderdtl.Where(p => p.PurOrderNO == purOrderNO && p.PdtID == pdtId && p.SeqNo == seqNo)
                            .Update(p => new tpurorderdtl {
                                LftNum = num, DelNum = delNum, UpdateDate = DateTime.Now
                            });

                            if (num == 0)
                            {
                                purorderdtl.State = "F";
                            }
                            else
                            {
                                fNum++;
                            }
                        }
                    }

                    var repeat = listStoc.GroupBy(s => s.pdtID).Select(s => new
                    {
                        pdtID  = s.Key,
                        lftNum = s.Sum(a => a.lftNum)
                    });

                    foreach (var r in repeat)
                    {
                        if (twhinventoryExists(warId, r.pdtID))
                        {
                            //var repeatUpdate = listStoc.GroupBy(s => s.pdtID).Select(s => new
                            //{
                            //    pdtID = s.Key,
                            //    lftNum = s.Sum(a => a.lftNum)
                            //}).Where(s => s.pdtID == r.pdtID).FirstOrDefault();

                            //float lftNum = repeatUpdate.lftNum;

                            var   inventory = db.twhinventory.Where(inv => inv.WHID == warId && inv.PdtID == r.pdtID).FirstOrDefault();
                            float total     = (float)inventory.InvNum + r.lftNum;
                            db.twhinventory.Where(inv => inv.WHID == warId && inv.PdtID == r.pdtID)
                            .Update(inv => new twhinventory()
                            {
                                InvNum = total, UpdateDate = DateTime.Now
                            });
                        }
                        else
                        {
                            //var query = listStoc.GroupBy(x => x.pdtID).Where(g => g.Count() > 1 && g.Key == pdtId).Select(y => y.Key).ToList();

                            //if (query.Count > 0) lftNum = 0;

                            //var repeatAdd = listStoc.GroupBy(s => s.pdtID).Select(s => new
                            //{
                            //    pdtID = s.Key,
                            //    lftNum = s.Sum(a => a.lftNum)
                            //}).Where(s => s.pdtID == r.pdtID).FirstOrDefault();

                            //float lftNum = repeatAdd.lftNum;

                            twhinventory inv = new twhinventory();
                            inv.WHID       = warId;
                            inv.AreaID     = "0";
                            inv.PosiID     = "0";
                            inv.PdtID      = r.pdtID;
                            inv.InvNum     = r.lftNum;
                            inv.UpdateDate = DateTime.Now;
                            db.twhinventory.Add(inv);
                        }
                    }

                    //部分入库时fNum也会是0,这种情况下用fNum判断会有问题
                    //if (fNum == 0)
                    //{
                    //    db.tpurorder.Where(p => p.PurOrderNO == purOrderNO)
                    //        .Update(p => new tpurorder() { State = "F", UpdateDate = DateTime.Now });
                    //}

                    //全部入库完成后才修改单头状态为F
                    db.SaveChanges();
                    var isNotFinish = db.tpurorderdtl.AsNoTracking().Any(w => w.PurOrderNO == purOrderNO && (w.State == "N" || w.State == null));
                    if (!isNotFinish)
                    {
                        db.tpurorder.Where(s => s.PurOrderNO == purOrderNO)
                        .Update(p => new tpurorder()
                        {
                            State = "F", UpdateDate = DateTime.Now
                        });
                    }

                    db.twhstockrecords.AddRange(listTwh);


                    db.SaveChanges();
                    tran.Commit();

                    excelHelper.SaveInWarInfo(purOrderNO, warId, purchaseDate, listWr, no);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    return(new PageResult(ex.ToString(), Request));
                }
            }
            return(Content <string>(HttpStatusCode.OK, "OK"));
        }
Пример #13
0
        public IHttpActionResult Posttwhcheckrecords()
        {
            HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];
            HttpRequestBase request = context.Request;

            JavaScriptSerializer js = new JavaScriptSerializer();

            string chkNO    = request.Params["chkNO"];
            string warId    = request.Params["warId"];
            string chkDate  = request.Params["chkDate"];
            string remark   = request.Params["remark"];
            string updateId = request.Params["updateId"];
            List <twhcheckrecorddtl> listTwhDtl = js.Deserialize <List <twhcheckrecorddtl> >(request.Params["listTwhDtl"]);
            List <twhstockrecords>   listStock  = new List <twhstockrecords>();

            using (var tran = db.Database.BeginTransaction())
            {
                try
                {
                    if (twhcheckrecordsExists(chkNO))
                    {
                        db.twhcheckrecords.Where(c => c.ChkNO == chkNO)
                        .Update(c => new twhcheckrecords
                        {
                            ChkStatus  = "F",
                            UpdateID   = updateId,
                            Remark     = remark,
                            UpdateDate = DateTime.Now
                        });
                    }
                    else
                    {
                        twhcheckrecords t = new twhcheckrecords();
                        t.ChkNO      = chkNO;
                        t.WHID       = warId;
                        t.ChkDate    = DateTime.Parse(chkDate);
                        t.Remark     = remark;
                        t.ChkStatus  = "F";
                        t.AreaID     = "1";
                        t.PosiID     = "1";
                        t.UpdateID   = updateId;
                        t.UpdateDate = DateTime.Parse(chkDate);
                        db.twhcheckrecords.Add(t);
                    }

                    for (int i = 0; i < listTwhDtl.Count; i++)
                    {
                        string ChkNO   = listTwhDtl[i].ChkNO = chkNO;
                        string PdtID   = listTwhDtl[i].PdtID;
                        float  InvNum  = listTwhDtl[i].InvNum;
                        float  RealNum = listTwhDtl[i].RealNum;
                        float  DifNum  = listTwhDtl[i].DifNum;

                        twhstockrecords stockrecords = new twhstockrecords();
                        stockrecords.WHID      = warId;
                        stockrecords.AreaID    = "1";
                        stockrecords.PosiID    = "1";
                        stockrecords.PdtID     = listTwhDtl[i].PdtID;
                        stockrecords.RefWHID   = warId;
                        stockrecords.RefAreaID = "1";
                        stockrecords.RefPosiID = "1";
                        stockrecords.UpdateID  = updateId;
                        var date = DateTime.Now;
                        stockrecords.UpdateDate = date;
                        stockrecords.CreateDate = date;

                        //调整库存前先锁住行
                        //string sqlQuery = "select * from twhinventory where whid ='" + warId + "' and pdtid='" + PdtID + "' for update";
                        //var inventory = db.twhinventory.SqlQuery(sqlQuery).FirstOrDefault();
                        var   inventory = db.twhinventory.Where(inv => inv.WHID == warId && inv.PdtID == PdtID).FirstOrDefault();
                        float invNum    = (float)inventory.InvNum;

                        if (listTwhDtl[i].DifNum == 0)
                        {
                            break;
                        }
                        if (listTwhDtl[i].DifNum > 0)
                        {
                            stockrecords.Num     = listTwhDtl[i].DifNum;
                            stockrecords.OpeType = "Y";
                            db.twhinventory.Where(inv => inv.WHID == warId && inv.PdtID == PdtID)
                            .Update(inv => new twhinventory {
                                InvNum = RealNum
                            });
                        }
                        else
                        {
                            stockrecords.Num     = Math.Abs(listTwhDtl[i].DifNum);
                            stockrecords.OpeType = "K";
                            db.twhinventory.Where(inv => inv.WHID == warId && inv.PdtID == PdtID)
                            .Update(inv => new twhinventory {
                                InvNum = RealNum
                            });
                        }

                        if (twhcheckrecorddtlExists(ChkNO, PdtID))
                        {
                            db.twhcheckrecorddtl.Where(c => c.ChkNO == ChkNO && c.PdtID == PdtID)
                            .Update(c => new twhcheckrecorddtl
                            {
                                InvNum     = InvNum,
                                RealNum    = RealNum,
                                DifNum     = DifNum,
                                UpdateID   = updateId,
                                UpdateDate = DateTime.Now,
                                AdjStatus  = "F"
                            });
                        }
                        else
                        {
                            twhcheckrecorddtl tw = new twhcheckrecorddtl();
                            listTwhDtl[i].ChkNO     = chkNO;
                            listTwhDtl[i].AdjStatus = "F";
                            listTwhDtl[i].UpdateID  = updateId;
                            tw = listTwhDtl[i];
                            db.twhcheckrecorddtl.Add(tw);
                        }
                        listStock.Add(stockrecords);
                    }
                    db.twhstockrecords.AddRange(listStock);

                    db.SaveChanges();
                    tran.Commit();
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    return(new PageResult("error", Request));
                }
            }
            return(Content <string>(HttpStatusCode.OK, "OK"));
        }
Пример #14
0
        public BaseDataPackage <string> SelPurOrderDtlWriteOff()
        {
            var result = new BaseDataPackage <string>();

            try
            {
                HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"]; //获取传统context
                HttpRequestBase request = context.Request;                                       //定义传统request对象

                JavaScriptSerializer    js   = new JavaScriptSerializer();
                List <SterilizationSel> list = js.Deserialize <List <SterilizationSel> >(request.Params["List"]);

                erpsEntities db = new erpsEntities();
                db.Database.Log = (log) => { System.Diagnostics.Debug.WriteLine(log); };
                int ret = 0;

                //for (int i = 0; i < list.Count; i++)
                //{
                //    string PurOrderNO = list[i].saleFocaNO;
                //    int SeqNo = list[i].seqNo;
                //    float LftNum = list[i].lftNum;
                //    var entitys = db.tpurorderdtl.Where(w => w.PurOrderNO == PurOrderNO && w.SeqNo == SeqNo);
                //    entitys.ToList().ForEach(item =>
                //    {
                //        item.LftNum = LftNum;
                //        item.State = "F";
                //        db.Entry(item).State = System.Data.Entity.EntityState.Modified;
                //    });
                //}

                string PurOrderNO2 = list.Count > 0? list[0].saleFocaNO:"";
                //var unFunishOrderDtls = db.tpurorderdtl.Where(w => w.PurOrderNO == PurOrderNO2 && (!w.State.Equals("F") || w.State == null)).ToList<tpurorderdtl>();
                int fNum = 0; //所有已经冲销的明细数量
                var unFunishOrderDtls = db.tpurorderdtl.Where(w => w.PurOrderNO == PurOrderNO2).ToList <tpurorderdtl>();
                for (int i = 0; i < unFunishOrderDtls.Count; i++)
                {
                    if (unFunishOrderDtls[i].State == "F")
                    {
                        fNum++;
                    }
                    else
                    {
                        for (int j = 0; j < list.Count; j++)
                        {
                            if (unFunishOrderDtls[i].PurOrderNO == list[j].saleFocaNO && unFunishOrderDtls[i].SeqNo == list[j].seqNo)
                            {
                                unFunishOrderDtls[i].LftNum = list[j].lftNum;
                                unFunishOrderDtls[i].State  = "F";
                                fNum++;
                            }
                        }
                    }
                }
                //如果所有明细的状态都是"F"完成,把整体订单的状态都改成完成
                if (fNum == unFunishOrderDtls.Count)
                {
                    var purOrder = db.tpurorder.Where(w => w.PurOrderNO == PurOrderNO2).FirstOrDefault <tpurorder>();
                    purOrder.State = "F";
                }

                ret = db.SaveChanges();

                if (ret > 0)
                {
                    result.Status  = ApiStatusCode.OK;
                    result.Message = "冲销成功";
                    return(result);
                }
                else
                {
                    result.DataList = null;
                    result.Status   = ApiStatusCode.FAIL;
                    result.Message  = "冲销失败";
                    return(result);
                }
            }
            catch (Exception ex)
            {
                result.Status  = ApiStatusCode.EXCEPTION;
                result.Message = "发生异常=>" + ex.Message;
                return(result);
            }
        }
Пример #15
0
        /// <summary>
        /// 销售预测-新增
        /// </summary>
        /// <param name="tsaleforcast"></param>
        /// <param name="tsaleforcastdtls"></param>
        /// <param name="tsaleforcastatts"></param>
        /// <returns></returns>
        public int AddSaleForcastDtl(tsaleforcast tsaleforcast, List <tsaleforcastdtl> tsaleforcastdtls, List <tsaleforcastatt> tsaleforcastatts)
        {
            int ret = 0;

            using (var tran = erpsEntities.Database.BeginTransaction())
            {
                try
                {
                    erpsEntities.tsaleforcast.Add(tsaleforcast);
                    erpsEntities.tsaleforcastdtl.AddRange(tsaleforcastdtls);
                    erpsEntities.tsaleforcastatt.AddRange(tsaleforcastatts);

                    ret = erpsEntities.SaveChanges();
                    tran.Commit();
                    if (ret > 0)
                    {
                        ret = 1;
                    }
                    return(ret);
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    ret = -1;
                    throw ex;
                }
            }
        }
Пример #16
0
        public void SaveInWarInfo(string purOrderNO, string warId, string purchaseDate, List <WarehouseReceipt> listWr, string no)
        {
            List <inwarrecord>    inwarrecords    = new List <inwarrecord>();
            List <inwarrecorddtl> inwarrecorddtls = new List <inwarrecorddtl>();

            using (var tran = db.Database.BeginTransaction())
            {
                try
                {
                    #region 获取详细信息
                    var list = from c in db.twhstockrecords
                               join p in db.mproduct on c.PdtID equals p.PdtID into pp
                               from p in pp.DefaultIfEmpty()
                               join o in db.tpurorderdtl on new { c.PurOrderNO, c.PdtID } equals new { o.PurOrderNO, o.PdtID } into oo
                    from o in oo.DefaultIfEmpty()
                    join s in db.msupplier on o.SupID equals s.SupID into ss
                    from s in ss.DefaultIfEmpty()
                    join w in db.mwarehouse on c.WHID equals w.WHID into ww
                    from w in ww.DefaultIfEmpty()
                    let p1 = new
                    {
                        supID      = s.SupID,
                        supName    = s.SupName,
                        phone      = s.Phone,
                        contact    = s.Contact,
                        whName     = w.WHName,
                        purPrice   = p.PurPrice,
                        total      = c.Num * p.PurPrice,
                        updateID   = c.UpdateID,
                        updateDate = c.UpdateDate
                    }
                    where c.OpeType == "I" && c.PurOrderNO == purOrderNO && c.WHID == warId
                    select p1;
                    var stockrecord = list.OrderByDescending(u => u.updateDate).FirstOrDefault();
                    #endregion

                    int i = 1;

                    inwarrecord record = new inwarrecord();
                    record.InWarNo    = no;
                    record.PurOrderNO = purOrderNO;
                    record.SupID      = stockrecord.supID == null ? "" : stockrecord.supID;
                    record.SupName    = stockrecord.supName == null ? "" : stockrecord.supName;
                    record.InWarDate  = stockrecord.updateDate;
                    record.Contact    = stockrecord.contact == null ? "" : stockrecord.contact;
                    record.Phone      = stockrecord.phone == null ? "" : stockrecord.phone;
                    record.UpdateName = stockrecord.updateID == null ? "" : stockrecord.updateID;
                    record.WHName     = stockrecord.whName == null ? "" : stockrecord.whName;

                    inwarrecords.Add(record);

                    foreach (var entity in listWr)
                    {
                        inwarrecorddtl inwarrecorddtl = new inwarrecorddtl();
                        inwarrecorddtl.InWarNo  = no;
                        inwarrecorddtl.PdtType  = entity.pdtType;
                        inwarrecorddtl.PdtID    = entity.pdtID;
                        inwarrecorddtl.SeqNo    = i;
                        inwarrecorddtl.Spec     = entity.spec;
                        inwarrecorddtl.MakeIn   = entity.makeIn;
                        inwarrecorddtl.Unit     = entity.unit;
                        inwarrecorddtl.PurPrice = entity.purPrice;
                        inwarrecorddtl.Num      = entity.num;

                        inwarrecorddtls.Add(inwarrecorddtl);

                        i++;
                    }

                    db.inwarrecord.AddRange(inwarrecords);
                    db.inwarrecorddtl.AddRange(inwarrecorddtls);

                    db.SaveChanges();
                    tran.Commit();
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
            }
        }