public ActionResult Cancelinvoice(int id)
        {
            int accId = User.GetAccountId();

            if (id == 0)
            {
                var reissueinvoiceModel = new CancelinvoiceModel()
                {
                    ListNo = ListNoCancel(accId)
                };
                return(View(reissueinvoiceModel));
            }
            else
            {
                var lri = _listReleaseInvoice.GetById(id);
                var reissueinvoiceModel = new CancelinvoiceModel()
                {
                    Id             = id,
                    ListNo         = ListNoCancel(accId),
                    Quantity       = lri.Quantity,
                    StartNumber    = lri.StartNumber,
                    EndNumber      = lri.EndNumber,
                    StartUsingDate = lri.StartUsingDate.ToString(),
                    TemplateId     = lri.TemplateCode,
                    SerialInvoice  = lri.SerialInvoice,
                    No             = lri.No
                };
                return(View(reissueinvoiceModel));
            }
        }
        public ActionResult Cancelinvoice(CancelinvoiceModel reiinv)
        {
            int accId = User.GetAccountId();
            var cancelinvoiceModel = new CancelinvoiceModel()
            {
                ListNo = ListNoCancel(accId)
            };

            DateTime dateTime = DateTime.Parse(reiinv.StartUsingDate.ToString(), System.Globalization.CultureInfo.
                                               GetCultureInfo("vi-VN").
                                               DateTimeFormat);

            //if (dateTime < DateTime.Now)
            //{
            //    ModelState.AddModelError(String.Empty, ReissueinvoiceResource.StartUsingDateEqua.ToString());
            //    return View(reissueinvoiceModel);
            //}
            if (ModelState.IsValid)
            {
                using (var scope = new TransactionScope())
                {
                    var listReleaseInvoice = new ListReleaseInvoice()
                    {
                        Quantity       = reiinv.Quantity,
                        StartNumber    = reiinv.StartNumber,
                        EndNumber      = reiinv.EndNumber,
                        StartUsingDate = dateTime,
                        AccountId      = accId,
                        TemplateCode   = reiinv.TemplateId,
                        Status         = 0,
                        SerialInvoice  = reiinv.SerialInvoice,
                        No             = reiinv.No
                    };
                    //_listReleaseInvoice.CreateListReleaseInvoices(listReleaseInvoice);
                    ListReleaseInvoice list = null;
                    try
                    {
                        list = _listReleaseInvoice.GetById(reiinv.Id);
                    }
                    catch (Exception ex)
                    {
                        ModelState.AddModelError("", "Không tìm thấy thông tin phát hành");
                        return(View(reiinv));
                    }

                    if (list == null)
                    {
                        ModelState.AddModelError("", "Không tìm thấy thông tin phát hành");
                        return(View(reiinv));
                    }

                    var inUse = _invoiceNumber.GetByReleaseIdAnduseStatus(list.Id, 0);
                    if (inUse == null || inUse.Count() < list.Quantity)
                    {
                        ModelState.AddModelError("", "Đã xuất hóa đơn trên phát hành này. Không thể xóa");
                        return(View(reiinv));
                    }

                    foreach (var invoiceNum in inUse)
                    {
                        _invoiceNumber.DeleteInvoiceNumbers(invoiceNum);
                    }

                    _listReleaseInvoice.CancelListReleaseInvoices(list);

                    scope.Complete();
                }
                return(RedirectToAction("Index", new { message = "Hủy phát hành hóa đơn thành công", messageType = "info" }));
            }
            else
            {
                return(View(cancelinvoiceModel));
            }
        }