ids)
{
var batchErrorHeader = $"{_localizer["Common_BatchDelete_Failed"].Value}
";
var batchResult = new BatchResponseVm(batchErrorHeader) { Success = true };
foreach (var id in ids)
{
var item = await _taxRateService.GetAsync(id);
if (item != null)
{
//await _customerService.ResetTypeAsync(item.Id); //Spezial zurücksetzen wenn nötig
var usedCount = 0;
var productCount = await _productService.CountByTaxRateAsync(item.Id);
usedCount += productCount;
if (usedCount == 0)
{
batchResult.BatchResponseList.Add(new BatchResponseItemVm() { Id = item.Id.ToString(), Name = item.Title, Success = true, NotFound = false, ErrorMessage = "" });
_taxRateService.Remove(item);
}
else
{
if (usedCount != 0)
{
batchResult.Success = false;
batchResult.BatchResponseList.Add(new BatchResponseItemVm() { Id = id.ToString(), Name = item.Title, Success = false, NotFound = false, ErrorMessage = string.Format(_localizer["Common_BatchDelete_InUse"], $"{item.Title}", $"{usedCount}") + "
" });
}
}
}
else
{
batchResult.Success = false;
batchResult.BatchResponseList.Add(new BatchResponseItemVm() { Id = id.ToString(), Name = "", Success = false, NotFound = true, ErrorMessage = string.Format(_localizer["Common_BatchDelete_NotFound"], $"{id}") + "
" });
}
}
if (batchResult.BatchResponseList.Any(c => c.Success))
await _taxRateService.CommitAsync(User.Identity.Name);
return Json(batchResult);
}
#region Lookup
///
/// Gibt eine Liste von Steuerstufen für LookUp zurück
///
/// DataManager
/// Soll "Keine(r)" integriert werden
/// Liste
[Authorize(Policy = Policies.PowerUserOnly)]
public async Task Lookup([FromBody] DataManager dm, bool includeNone = false)
{
var filter = string.Empty;
if (dm.Where?.FirstOrDefault() != null)
{
filter = dm.Where.First().value.ToString();
if (filter.IndexOf('(') > 0)
{
filter = filter.Substring(0, (filter.IndexOf('(') - 1));
filter = filter.TrimEnd();
}
}
var items = await _taxRateService.FilterWithNames(filter, SelectedLanguage, FallbackLanguage).ToListAsync();
var result = items.Select(item => new LookupItemVm() { Id = item.Id.ToString(), Name = $"{item.Name} ({item.Value:n2}%)" }).OrderBy(c => c.Name).ToList();
if (includeNone)
result.Insert(0, new LookupItemVm() { Id = "-1", Name = _localizer["Common_None"].ToString() });
return Json(result);
}
#endregion
}
}