public HttpResponseMessage updateStockTransfer(String id, Models.TrnStockTransfer stockTransfer) { try { var userId = (from d in db.MstUsers where d.UserId == User.Identity.GetUserId() select d.Id).SingleOrDefault(); var stockTransfers = from d in db.TrnStockTransfers where d.Id == Convert.ToInt32(id) select d; if (stockTransfers.Any()) { var updateStockTransfer = stockTransfers.FirstOrDefault(); updateStockTransfer.BranchId = stockTransfer.BranchId; updateStockTransfer.STNumber = stockTransfer.STNumber; updateStockTransfer.STDate = Convert.ToDateTime(stockTransfer.STDate); updateStockTransfer.ToBranchId = stockTransfer.ToBranchId; updateStockTransfer.Particulars = stockTransfer.Particulars; updateStockTransfer.ArticleId = stockTransfer.ArticleId; updateStockTransfer.ManualSTNumber = stockTransfer.ManualSTNumber; updateStockTransfer.PreparedById = stockTransfer.PreparedById; updateStockTransfer.CheckedById = stockTransfer.CheckedById; updateStockTransfer.ApprovedById = stockTransfer.ApprovedById; updateStockTransfer.IsLocked = true; updateStockTransfer.UpdatedById = userId; updateStockTransfer.UpdatedDateTime = DateTime.Now; db.SubmitChanges(); inventory.InsertStockTransferInventory(Convert.ToInt32(id)); journal.InsertStockTransferJournal(Convert.ToInt32(id)); // Check for negative inventory bool foundNegativeQuantity = false; if (updateStockTransfer.TrnStockTransferItems.Any()) { foreach (var stockTransferItem in updateStockTransfer.TrnStockTransferItems) { if (stockTransferItem.MstArticle.IsInventory) { var mstArticleInventory = from d in db.MstArticleInventories where d.TrnStockTransferItems.Contains(stockTransferItem) select d; if (mstArticleInventory.Any()) { if (stockTransferItem.MstArticleInventory.Quantity < 0) { foundNegativeQuantity = true; break; } } } } } if (!foundNegativeQuantity) { return(Request.CreateResponse(HttpStatusCode.OK)); } else { inventory.DeleteStockTransferInventory(Convert.ToInt32(id)); journal.DeleteStockTransferJournal(Convert.ToInt32(id)); updateStockTransfer.IsLocked = false; db.SubmitChanges(); return(Request.CreateResponse(HttpStatusCode.BadRequest, "Negative Inventory Found!")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound)); } } catch (Exception e) { Debug.WriteLine(e); return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
public HttpResponseMessage UnlockStockTransfer(String id) { try { var currentUser = from d in db.MstUsers where d.UserId == User.Identity.GetUserId() select d; if (currentUser.Any()) { var currentUserId = currentUser.FirstOrDefault().Id; var userForms = from d in db.MstUserForms where d.UserId == currentUserId && d.SysForm.FormName.Equals("StockTransferDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanUnlock) { var stockTransfer = from d in db.TrnStockTransfers where d.Id == Convert.ToInt32(id) select d; if (stockTransfer.Any()) { if (stockTransfer.FirstOrDefault().IsLocked) { String oldObject = at.GetObjectString(stockTransfer.FirstOrDefault()); var unlockStockTransfer = stockTransfer.FirstOrDefault(); unlockStockTransfer.IsLocked = false; unlockStockTransfer.UpdatedById = currentUserId; unlockStockTransfer.UpdatedDateTime = DateTime.Now; db.SubmitChanges(); // ===================== // Journal and Inventory // ===================== Business.Journal journal = new Business.Journal(); Business.Inventory inventory = new Business.Inventory(); if (!unlockStockTransfer.IsLocked) { journal.DeleteStockTransferJournal(Convert.ToInt32(id)); inventory.DeleteStockTransferInventory(Convert.ToInt32(id)); } String newObject = at.GetObjectString(stockTransfer.FirstOrDefault()); at.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, oldObject, newObject); return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Unlocking Error. These stock transfer details are already unlocked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "Data not found. These stock transfer details are not found in the server.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to unlock stock transfer.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access for this stock transfer page.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Theres no current user logged in.")); } } catch (Exception e) { Debug.WriteLine(e); return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Something's went wrong from the server.")); } }
public HttpResponseMessage AddFolderMonitoringStockTransfer(List <Entities.FolderMonitoringTrnStockTransfer> folderMonitoringTrnStockTransferObjects) { try { if (folderMonitoringTrnStockTransferObjects.Any()) { foreach (var folderMonitoringTrnStockTransferObject in folderMonitoringTrnStockTransferObjects) { Boolean isBranchExist = false, isToBranchExist = false, isArticleExist = false, isUserExist = false, isItemExist = false; var branch = from d in db.MstBranches where d.BranchCode.Equals(folderMonitoringTrnStockTransferObject.BranchCode) select d; if (branch.Any()) { isBranchExist = true; } var toBranch = from d in db.MstBranches where d.BranchCode.Equals(folderMonitoringTrnStockTransferObject.ToBranchCode) select d; if (toBranch.Any()) { isToBranchExist = true; } var article = from d in db.MstArticles where d.ArticleTypeId == 6 && d.ManualArticleCode.Equals(folderMonitoringTrnStockTransferObject.ArticleCode) select d; if (article.Any()) { isArticleExist = true; } var user = from d in db.MstUsers where d.UserName.Equals(folderMonitoringTrnStockTransferObject.UserCode) select d; if (user.Any()) { isUserExist = true; } var item = from d in db.MstArticles where d.ArticleTypeId == 1 && d.ManualArticleCode.Equals(folderMonitoringTrnStockTransferObject.ItemCode) && d.IsInventory == true && d.IsLocked == true select d; if (item.Any()) { isItemExist = true; } if (isBranchExist && isToBranchExist && isUserExist && isArticleExist && isItemExist) { Int32 STId = 0; var currentStockTransfer = from d in db.TrnStockTransfers where d.BranchId == branch.FirstOrDefault().Id&& d.ManualSTNumber.Equals(folderMonitoringTrnStockTransferObject.ManualSTNumber) && d.IsLocked == true select d; if (currentStockTransfer.Any()) { STId = currentStockTransfer.FirstOrDefault().Id; var unlockStockTransfer = currentStockTransfer.FirstOrDefault(); unlockStockTransfer.IsLocked = false; unlockStockTransfer.UpdatedById = user.FirstOrDefault().Id; unlockStockTransfer.UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockTransferObject.CreatedDateTime); db.SubmitChanges(); journal.DeleteStockTransferJournal(STId); inventory.DeleteStockTransferInventory(STId); } else { var defaultSTNumber = "0000000001"; var lastStockTransfer = from d in db.TrnStockTransfers.OrderByDescending(d => d.Id) where d.BranchId == branch.FirstOrDefault().Id select d; if (lastStockTransfer.Any()) { var STNumber = Convert.ToInt32(lastStockTransfer.FirstOrDefault().STNumber) + 0000000001; defaultSTNumber = FillLeadingZeroes(STNumber, 10); } Data.TrnStockTransfer newStockTransfer = new Data.TrnStockTransfer { BranchId = branch.FirstOrDefault().Id, STNumber = defaultSTNumber, STDate = Convert.ToDateTime(folderMonitoringTrnStockTransferObject.STDate), ToBranchId = toBranch.FirstOrDefault().Id, ArticleId = article.FirstOrDefault().Id, Particulars = folderMonitoringTrnStockTransferObject.Remarks, ManualSTNumber = folderMonitoringTrnStockTransferObject.ManualSTNumber, PreparedById = user.FirstOrDefault().Id, CheckedById = user.FirstOrDefault().Id, ApprovedById = user.FirstOrDefault().Id, Status = null, IsPrinted = false, IsLocked = false, CreatedById = user.FirstOrDefault().Id, CreatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockTransferObject.CreatedDateTime), UpdatedById = user.FirstOrDefault().Id, UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockTransferObject.CreatedDateTime) }; db.TrnStockTransfers.InsertOnSubmit(newStockTransfer); db.SubmitChanges(); STId = newStockTransfer.Id; } var unitConversion = from d in item.FirstOrDefault().MstArticleUnits where d.MstUnit.Unit.Equals(folderMonitoringTrnStockTransferObject.Unit) select d; if (unitConversion.Any()) { Decimal baseQuantity = folderMonitoringTrnStockTransferObject.Quantity * 1; if (unitConversion.FirstOrDefault().Multiplier > 0) { baseQuantity = folderMonitoringTrnStockTransferObject.Quantity * (1 / unitConversion.FirstOrDefault().Multiplier); } Decimal baseCost = folderMonitoringTrnStockTransferObject.Amount; if (baseQuantity > 0) { baseCost = folderMonitoringTrnStockTransferObject.Amount / baseQuantity; } Int32 itemInventoryId = 0; var itemInventory = from d in db.MstArticleInventories where d.BranchId == branch.FirstOrDefault().Id&& d.ArticleId == item.FirstOrDefault().Id select d; if (itemInventory.Any()) { itemInventoryId = itemInventory.FirstOrDefault().Id; } if (itemInventoryId > 0) { Data.TrnStockTransferItem newStockTransferItem = new Data.TrnStockTransferItem { STId = STId, ItemId = item.FirstOrDefault().Id, ItemInventoryId = itemInventoryId, Particulars = folderMonitoringTrnStockTransferObject.Particulars, UnitId = unitConversion.FirstOrDefault().UnitId, Quantity = folderMonitoringTrnStockTransferObject.Quantity, Cost = folderMonitoringTrnStockTransferObject.Cost, Amount = folderMonitoringTrnStockTransferObject.Amount, BaseUnitId = item.FirstOrDefault().UnitId, BaseQuantity = baseQuantity, BaseCost = baseCost }; db.TrnStockTransferItems.InsertOnSubmit(newStockTransferItem); db.SubmitChanges(); } var stockTransfer = from d in db.TrnStockTransfers where d.Id == STId && d.IsLocked == false select d; if (stockTransfer.Any()) { var lockStockTransfer = stockTransfer.FirstOrDefault(); lockStockTransfer.IsLocked = true; lockStockTransfer.UpdatedById = user.FirstOrDefault().Id; lockStockTransfer.UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockTransferObject.CreatedDateTime); db.SubmitChanges(); journal.InsertStockTransferJournal(STId); inventory.InsertStockTransferInventory(STId); } } } } return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "No data found.")); } } catch (Exception ex) { Debug.WriteLine(ex); return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Something's went wrong from the server.")); } }