public IHttpActionResult PutKHO_GIU_HANG(string id, KHO_GIU_HANG kHO_GIU_HANG)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != kHO_GIU_HANG.MA_GIU_KHO)
            {
                return(BadRequest());
            }

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

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetKHO_GIU_HANG(string id)
        {
            KHO_GIU_HANG kHO_GIU_HANG = db.KHO_GIU_HANG.Find(id);

            if (kHO_GIU_HANG == null)
            {
                return(NotFound());
            }

            return(Ok(kHO_GIU_HANG));
        }
        public IHttpActionResult DeleteKHO_GIU_HANG(string id)
        {
            KHO_GIU_HANG kHO_GIU_HANG = db.KHO_GIU_HANG.Find(id);

            if (kHO_GIU_HANG == null)
            {
                return(NotFound());
            }

            db.KHO_GIU_HANG.Remove(kHO_GIU_HANG);
            db.SaveChanges();

            return(Ok(kHO_GIU_HANG));
        }
        public IHttpActionResult PostKHO_GIU_HANG(Khogiuhang kHO_GIU_HANG)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            String nam    = DateTime.Today.Year.ToString();
            String nam2so = nam.Substring(2);
            var    query  = db.Database.SqlQuery <string>("XL_LayMaGiuHangMoiNhat");


            if (query.Count() > 0)
            {
                string prefixID = "GH" + nam2so;
                var    data     = query.FirstOrDefault();
                string LastID   = data;

                int    nextID        = int.Parse(LastID.Remove(0, prefixID.Length)) + 1;
                int    lengthNumerID = LastID.Length - prefixID.Length;
                string zeroNumber    = "";
                for (int i = 1; i <= lengthNumerID; i++)
                {
                    if (nextID < Math.Pow(10, i))
                    {
                        for (int j = 1; j <= lengthNumerID - i; i++)
                        {
                            zeroNumber += "0";
                        }
                    }
                }
                // int ma = Convert.ToInt32(makhach.Substring(4));
                magiuhang = prefixID + zeroNumber + nextID.ToString();
            }
            else
            {
                magiuhang = "GH" + nam2so + "000001";
            }

            KHO_GIU_HANG nv = new KHO_GIU_HANG();

            nv.MA_GIU_KHO = magiuhang;
            nv.SALES_GIU  = kHO_GIU_HANG.SALES_GIU;
            if (kHO_GIU_HANG.NGAY_GIU != null)
            {
                nv.NGAY_GIU = xlnt.Xulydatetime(kHO_GIU_HANG.NGAY_GIU);
            }
            nv.MA_KHACH_HANG     = kHO_GIU_HANG.MA_KHACH_HANG;
            nv.HUY_DON_GIU       = kHO_GIU_HANG.HUY_DON_GIU;
            nv.DON_DANG_XUAT     = kHO_GIU_HANG.DON_DANG_XUAT;
            nv.DON_DA_HOAN_THANH = kHO_GIU_HANG.DON_DA_HOAN_THANH;
            nv.GIU_PO            = kHO_GIU_HANG.GIU_PO;
            nv.TRUC_THUOC        = kHO_GIU_HANG.TRUC_THUOC;
            db.KHO_GIU_HANG.Add(nv);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (KHO_GIU_HANGExists(kHO_GIU_HANG.MA_GIU_KHO))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(Ok(nv));
        }
        public IHttpActionResult PostKHO_GIU_HANG1(KhoGiu khogiuhang)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            KHO_GIU_HANG kg = new KHO_GIU_HANG();

            kg.SALES_GIU     = khogiuhang.SALES_GIU;
            kg.MA_KHACH_HANG = khogiuhang.MA_KHACH_HANG;
            kg.NGAY_GIU      = DateTime.Today.Date;
            kg.MA_HANG       = khogiuhang.MA_HANG;
            kg.SL_GIU        = khogiuhang.SL_GIU;
            kg.GIU_PO        = Convert.ToBoolean(khogiuhang.GIU_PO);
            kg.TRUC_THUOC    = khogiuhang.TRUC_THUOC;
            kg.ID_CT_PO      = khogiuhang.ID_CT_PO;
            db.KHO_GIU_HANG.Add(kg);


            TONKHO_HOPLONG newhanggiu = db.TONKHO_HOPLONG.Where(x => x.MA_HANG == khogiuhang.MA_HANG && x.MA_KHO_CON == "IVHOPLONG05").FirstOrDefault();

            if (newhanggiu == null)
            {
                TONKHO_HOPLONG soluonggiumoi = new TONKHO_HOPLONG();
                soluonggiumoi.MA_HANG    = khogiuhang.MA_HANG;
                soluonggiumoi.MA_KHO_CON = "IVHOPLONG05";
                soluonggiumoi.SL_HOPLONG = Convert.ToInt32(khogiuhang.SL_GIU);
                db.TONKHO_HOPLONG.Add(soluonggiumoi);
                db.SaveChanges();
            }
            else
            {
                newhanggiu.SL_HOPLONG += Convert.ToInt32(khogiuhang.SL_GIU);
            }

            foreach (TonKho item in khogiuhang.TonKho)
            {
                //Cập nhật hàng tồn
                TONKHO_HOPLONG newHangTon = db.TONKHO_HOPLONG.Where(x => x.MA_HANG == khogiuhang.MA_HANG && x.MA_KHO_CON == item.MA_KHO).FirstOrDefault();

                if (newHangTon != null)
                {
                    newHangTon.SL_HOPLONG = newHangTon.SL_HOPLONG - Convert.ToInt32(item.TON_TANG_2) - Convert.ToInt32(item.TON_TANG_3) - Convert.ToInt32(item.TON_TANG_4);
                }
                //if (newHangTon == null || newHangTon.SL_HOPLONG < khogiuhang.SL_GIU)
                //{
                //    return Ok("Hàng không có trong kho hoặc SL tồn không đủ");
                //}

                BH_CT_DON_HANG_PO trangthai = db.BH_CT_DON_HANG_PO.Where(x => x.ID == khogiuhang.ID_CT_PO).FirstOrDefault();
                if (trangthai != null)
                {
                    trangthai.CAN_GIU_HANG = true;
                }
                db.SaveChanges();
                var dagiu = db.BH_CT_DON_HANG_PO.Where(x => x.MA_SO_PO == khogiuhang.MA_SO_PO && x.CAN_GIU_HANG == false).ToList().Count();
                if (dagiu == 0)
                {
                    var dagiuhang = db.BH_DON_HANG_PO.Where(x => x.MA_SO_PO == khogiuhang.MA_SO_PO).FirstOrDefault();
                    if (dagiuhang != null)
                    {
                        dagiuhang.DA_GIU = true;
                    }
                }
            }
            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                throw;
            }

            return(Ok());
        }