public async Task <ActionResult> DeleteCopeReserve(long id)
        {
            CopsBooking cb = db.CopsBooking.Find(id);

            cb.StateDelete = 1;

            await db.SaveChangesAsync();

            RecordEntryCopsBooking recb = db.RecordEntryCopsBooking.Where(p => p.IdCopsBooking == id).FirstOrDefault();

            db.RecordEntryCopsBooking.Remove(recb);
            await db.SaveChangesAsync();

            return(Json("Ok", JsonRequestBehavior.AllowGet));
        }
        public async Task <ActionResult> RegisterCopeReserve(CopsBooking cb, string date, ItemPropSelect prop)
        {
            if (cb.Id == 0)
            {
                cb.StateDelete = 0;
                if (date != null && date != "")
                {
                    DateTime tempdate = clsPersianDate.ShamsiToMiladi(date).Value;

                    cb.DateExpired = tempdate;
                }

                cb.IdState = 1;

                db.CopsBooking.Add(cb);
                await db.SaveChangesAsync();

                List <RecordEntryCopsBooking> _listprops = new List <RecordEntryCopsBooking>();
                RecordEntryCopsBooking        _p         = null;

                foreach (var item in prop.ListProps)
                {
                    _p = new RecordEntryCopsBooking();
                    _p.IdCopsBooking = cb.Id;
                    _p.IdRecordEntry = item.Id;
                    _p.StateExit     = false;


                    if (_listprops.Where(p => p.IdRecordEntry == item.Id).Any())
                    {
                        continue;
                    }

                    _listprops.Add(_p);
                    Record_the_entry re = db.Record_the_entry.Find(item.Id);
                    re.StateCopReserve = true;
                    await db.SaveChangesAsync();
                }
                db.RecordEntryCopsBooking.AddRange(_listprops);
                await db.SaveChangesAsync();

                return(Json("Ok", JsonRequestBehavior.AllowGet));
            }
            else
            {
                var deleteprops = db.RecordEntryCopsBooking.Where(p => p.IdCopsBooking == cb.Id);
                db.RecordEntryCopsBooking.RemoveRange(deleteprops);
                await db.SaveChangesAsync();

                CopsBooking ecb = db.CopsBooking.Find(cb.Id);

                ecb.StateDelete = 0;
                if (date != null && date != "")
                {
                    DateTime tempdate = clsPersianDate.ShamsiToMiladi(date).Value;

                    ecb.DateExpired = tempdate;
                }
                ecb.IdState = 1;

                ecb.IdStore          = cb.IdStore;
                ecb.CustomerFullName = cb.CustomerFullName;

                await db.SaveChangesAsync();

                List <RecordEntryCopsBooking> _listprops = new List <RecordEntryCopsBooking>();
                RecordEntryCopsBooking        _p         = null;

                foreach (var item in prop.ListProps)
                {
                    Record_the_entry re = db.Record_the_entry.Find(item.Id);
                    re.StateCopReserve = true;
                    await db.SaveChangesAsync();

                    _p = new RecordEntryCopsBooking();
                    _p.IdCopsBooking = cb.Id;
                    _p.IdRecordEntry = item.Id;

                    _p.StateExit = false;

                    _listprops.Add(_p);
                }
                db.RecordEntryCopsBooking.AddRange(_listprops);
                await db.SaveChangesAsync();


                return(Json("Ok", JsonRequestBehavior.AllowGet));
            }
        }