public SysModalGlobal.CResutlWebMethod DeleteData(string str)
        {
            PTTGSP_DWSContext db = new PTTGSP_DWSContext();

            SysModalGlobal.CResutlWebMethod result = new SysModalGlobal.CResutlWebMethod();

            try
            {
                if (!String.IsNullOrEmpty(str))
                {
                    var data        = str.Split(',').Select(Int32.Parse).ToList();
                    var lstWorkMate = db.TB_Work_Material.Where(w => data.Contains(w.nWorkID)).ToList();

                    foreach (var item in lstWorkMate)
                    {
                        db.TB_Work_Material.Remove(item);
                    }
                    db.SaveChanges();

                    var lstnID  = db.TB_Work.Where(w => !w.IsDel).ToList();
                    var lstData = lstnID.Where(w => data.Contains(w.nWorkID)).ToList();
                    lstData.ForEach(f => f.IsDel = true);

                    db.SaveChanges();
                    result.sStatus = SysFunc.process_Success;
                }
            }
            catch (Exception e)
            {
                result.sStatus = SysFunc.process_Error;
                result.sMsg    = e.Message;
            }
            return(result);
        }
        public SysModalGlobal.CResutlWebMethod DeleteData(string str)
        {
            PTTGSP_DWSContext db = new PTTGSP_DWSContext();

            SysModalGlobal.CResutlWebMethod result = new SysModalGlobal.CResutlWebMethod();

            try
            {
                if (!String.IsNullOrEmpty(str))
                {
                    var data   = str.Split(',').Select(Int32.Parse).ToList();
                    var lstnID = db.TB_Material_Location.Where(w => !w.IsDel).ToList();

                    var lstMaterial = db.TB_Materials.Where(w => !w.IsDel).ToList();


                    var lstData = lstnID.Where(w => data.Contains(w.nLocationID)).ToList();
                    lstData.ForEach(f =>
                    {
                        var IsUse = lstMaterial.Where(w => w.nLocationID == f.nLocationID).ToList();
                        if (IsUse.Count() == 0)
                        {
                            f.IsDel = true;
                        }
                    });

                    db.SaveChanges();
                    result.sStatus = SysFunc.process_Success;
                }
            }
            catch (Exception e)
            {
                result.sStatus = SysFunc.process_Error;
                result.sMsg    = e.Message;
            }
            return(result);
        }
        public SysModalGlobal.CResutlWebMethod SavetoDB([FromBody] TB_Material_Location data)
        {
            PTTGSP_DWSContext db = new PTTGSP_DWSContext();
            var result           = new SysModalGlobal.CResutlWebMethod();

            try
            {
                var MaterialLocation = db.TB_Material_Location.ToList();

                var duplicate = (from a in db.TB_Material_Location
                                 where !a.IsDel && a.sName.Trim().ToLower() == data.sName.Trim().ToLower() && a.nLocationID != data.nLocationID
                                 select a).FirstOrDefault();
                if (duplicate != null)
                {
                    // result.sStatus = SysGlobal.SysFunc.process_Duplicate;
                    result.sStatus = STFunction.process_Warning();
                    result.sMsg    = "สถานที่เก็บวัสดุนี้มีในระบบอยู่แล้ว";
                    return(result);
                }
                var nLocationID = (MaterialLocation.Any() ? MaterialLocation.Max(m => m.nLocationID) : 0) + 1;
                if (data.nLocationID == 0)
                {
                    db.TB_Material_Location.Add(new TB_Material_Location
                    {
                        sName     = data.sName,
                        sDetail   = data.sDetail,
                        IsActive  = data.IsActive,
                        IsDel     = false,
                        dCreate   = DateTime.Now,
                        sCreateBy = data.sCreateBy,
                        dUpdate   = DateTime.Now,
                        sUpdateBy = data.sUpdateBy,
                    });
                    db.SaveChanges();
                }
                else
                {
                    var oldnID = (from a in db.TB_Material_Location
                                  where a.nLocationID == data.nLocationID
                                  select a).FirstOrDefault();

                    if (oldnID != null)
                    {
                        oldnID.sName     = data.sName;
                        oldnID.sDetail   = data.sDetail;
                        oldnID.IsActive  = data.IsActive;
                        oldnID.IsDel     = false;
                        oldnID.dUpdate   = DateTime.Now;
                        oldnID.sUpdateBy = data.sUpdateBy;

                        db.SaveChanges();
                    }
                }
                result.sStatus = SysFunc.process_Success;
            }
            catch (Exception e)
            {
                result.sStatus = SysFunc.process_Error;
                result.sMsg    = e.Message;
            }
            return(result);
        }
        public SysModalGlobal.CResutlWebMethod SavetoDB([FromBody] lstSavedata data)
        {
            PTTGSP_DWSContext db = new PTTGSP_DWSContext();
            var result           = new SysModalGlobal.CResutlWebMethod();

            try
            {
                var Work          = db.TB_Work.ToList();
                var WorkMaterials = db.TB_Work_Material.ToList();

                var duplicate = (from a in db.TB_Work
                                 where !a.IsDel && a.sName.Trim().ToLower() == data.sName.Trim().ToLower() && a.nWorkID != data.nWorkID
                                 select a).FirstOrDefault();
                if (duplicate != null)
                {
                    // result.sStatus = SysGlobal.SysFunc.process_Duplicate;
                    result.sStatus = STFunction.process_Warning();
                    result.sMsg    = "ลักษณะงานนี้มีในระบบอยู่แล้ว";
                    return(result);
                }
                var nWorkID = (Work.Any() ? Work.Max(m => m.nWorkID) : 0) + 1;
                if (data.nWorkID == 0)
                {
                    TB_Work a = new TB_Work()
                    {
                        sName     = data.sName,
                        nReasonID = data.nReasonID,
                        sDetail   = data.sDetail,
                        IsActive  = data.IsActive,
                        IsDel     = false,
                        dCreate   = DateTime.Now,
                        sCreateBy = data.sCreateBy,
                        dUpdate   = DateTime.Now,
                        sUpdateBy = data.sUpdateBy,
                    };

                    db.TB_Work.Add(a);
                    db.SaveChanges();

                    db = new PTTGSP_DWSContext();
                    foreach (var per in data.lstWorkMaterial)
                    {
                        //data.lstWorkMaterial.Remove(per);

                        if (per.nWorkID == 0)
                        {
                            TB_Work_Material s = new TB_Work_Material();
                            s.nWorkID     = nWorkID;
                            s.nMaterialID = per.nMaterialID;
                            s.nAmount     = per.nAmount;
                            s.IsActive    = per.IsActive;
                            db.TB_Work_Material.Add(s);
                        }
                        else
                        {
                            var edit = db.TB_Work_Material.FirstOrDefault(w => w.nWorkID == per.nWorkID);
                            if (edit != null)
                            {
                                edit.nMaterialID = per.nMaterialID;
                                edit.nAmount     = per.nAmount;
                                edit.IsActive    = per.IsActive;
                            }
                        }
                    }
                    db.SaveChanges();
                }
                else
                {
                    var oldnID = (from a in db.TB_Work
                                  where a.nWorkID == data.nWorkID
                                  select a).FirstOrDefault();

                    if (oldnID != null)
                    {
                        oldnID.sName     = data.sName;
                        oldnID.nReasonID = data.nReasonID;
                        oldnID.sDetail   = data.sDetail;
                        oldnID.IsActive  = data.IsActive;
                        oldnID.IsDel     = false;
                        oldnID.dUpdate   = DateTime.Now;
                        oldnID.sUpdateBy = data.sUpdateBy;

                        db.SaveChanges();
                    }
                    foreach (var per in data.lstWorkMaterial)
                    {
                        if (nWorkID != 0)
                        {
                            var editdata = db.TB_Work_Material.FirstOrDefault(w => w.nWorkID == per.nWorkID);
                            if (editdata != null)
                            {
                                db.TB_Work_Material.Remove(editdata);

                                editdata.nAmount  = per.nAmount;
                                editdata.IsActive = per.IsActive;
                            }
                        }
                    }
                    db.SaveChanges();

                    foreach (var per in data.lstWorkMaterial)
                    {
                        TB_Work_Material s = new TB_Work_Material();
                        s.nMaterialID = per.nMaterialID;
                        s.nAmount     = per.nAmount;
                        s.IsActive    = per.IsActive;
                        db.TB_Work_Material.Add(s);
                    }
                    db.SaveChanges();
                }
                result.sStatus = SysFunc.process_Success;
            }
            catch (Exception e)
            {
                result.sStatus = SysFunc.process_Error;
                result.sMsg    = e.Message;
            }
            return(result);
        }