public async Task <ActionResult> SearchAsync(TransferSearch search) { var meta = await AppUsers.GetCurrentAsync().ConfigureAwait(true); try { var result = await InventoryTransfers.GetSearchViewAsync(this.Tenant, meta.OfficeId, search).ConfigureAwait(true); return(this.Ok(result)); } catch (Exception ex) { return(this.Failed(ex.Message, HttpStatusCode.InternalServerError)); } }
public async Task <ActionResult> PostAsync(InventoryTransfer model) { if (!this.ModelState.IsValid) { return(this.InvalidModelState(this.ModelState)); } var meta = await AppUsers.GetCurrentAsync().ConfigureAwait(true); model.OfficeId = meta.OfficeId; model.UserId = meta.UserId; model.LoginId = meta.LoginId; foreach (var item in model.Details) { if (item.TransferTypeEnum == TransferTypeEnum.Cr) { decimal existingQuantity = await Items.CountItemsByItemCodeAsync(this.Tenant, item.ItemCode, item.UnitName, item.StoreName).ConfigureAwait(true); if (existingQuantity < item.Quantity) { return(this.Failed($"We only have {existingQuantity} {item.UnitName} in inventory", HttpStatusCode.InternalServerError)); } } } try { long id = await InventoryTransfers.AddAsync(this.Tenant, model).ConfigureAwait(true); return(this.Ok(id)); } catch (Exception ex) { return(this.Failed(ex.Message, HttpStatusCode.InternalServerError)); } }