public Int32 insertStockOutItem(Models.TrnStockOutItem stockOutItem) { try { Data.TrnStockOutItem newStockOutItems = new Data.TrnStockOutItem(); newStockOutItems.OTId = stockOutItem.OTId; newStockOutItems.ExpenseAccountId = stockOutItem.ExpenseAccountId; newStockOutItems.ItemId = stockOutItem.ItemId; newStockOutItems.ItemInventoryId = stockOutItem.ItemInventoryId; newStockOutItems.Particulars = stockOutItem.Particulars; newStockOutItems.UnitId = stockOutItem.UnitId; newStockOutItems.Quantity = stockOutItem.Quantity; newStockOutItems.Cost = stockOutItem.Cost; newStockOutItems.Amount = stockOutItem.Amount; var item = from d in db.MstArticles where d.Id == stockOutItem.ItemId select d; newStockOutItems.BaseUnitId = item.First().UnitId; var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == stockOutItem.ItemId && d.UnitId == stockOutItem.UnitId select d; if (conversionUnit.First().Multiplier > 0) { newStockOutItems.BaseQuantity = stockOutItem.Quantity * (1 / conversionUnit.First().Multiplier); } else { newStockOutItems.BaseQuantity = stockOutItem.Quantity * 1; } var baseQuantity = stockOutItem.Quantity * (1 / conversionUnit.First().Multiplier); if (baseQuantity > 0) { newStockOutItems.BaseCost = stockOutItem.Amount / baseQuantity; } else { newStockOutItems.BaseCost = stockOutItem.Amount; } db.TrnStockOutItems.InsertOnSubmit(newStockOutItems); db.SubmitChanges(); return newStockOutItems.Id; } catch { return 0; } }
public Int32 insertStockOutItem(Models.TrnStockOutItem stockOutItem) { try { Data.TrnStockOutItem newStockOutItems = new Data.TrnStockOutItem(); newStockOutItems.OTId = stockOutItem.OTId; newStockOutItems.ExpenseAccountId = stockOutItem.ExpenseAccountId; newStockOutItems.ItemId = stockOutItem.ItemId; newStockOutItems.ItemInventoryId = stockOutItem.ItemInventoryId; newStockOutItems.Particulars = stockOutItem.Particulars; newStockOutItems.UnitId = stockOutItem.UnitId; newStockOutItems.Quantity = stockOutItem.Quantity; newStockOutItems.Cost = stockOutItem.Cost; newStockOutItems.Amount = stockOutItem.Amount; var item = from d in db.MstArticles where d.Id == stockOutItem.ItemId select d; newStockOutItems.BaseUnitId = item.First().UnitId; var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == stockOutItem.ItemId && d.UnitId == stockOutItem.UnitId select d; if (conversionUnit.First().Multiplier > 0) { newStockOutItems.BaseQuantity = stockOutItem.Quantity * (1 / conversionUnit.First().Multiplier); } else { newStockOutItems.BaseQuantity = stockOutItem.Quantity * 1; } var baseQuantity = stockOutItem.Quantity * (1 / conversionUnit.First().Multiplier); if (baseQuantity > 0) { newStockOutItems.BaseCost = stockOutItem.Amount / baseQuantity; } else { newStockOutItems.BaseCost = stockOutItem.Amount; } db.TrnStockOutItems.InsertOnSubmit(newStockOutItems); db.SubmitChanges(); return(newStockOutItems.Id); } catch { return(0); } }
public HttpResponseMessage AddStockOutItem(Entities.TrnStockOutItem objStockOutItem, String OTId) { 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 currentBranchId = currentUser.FirstOrDefault().BranchId; var userForms = from d in db.MstUserForms where d.UserId == currentUserId && d.SysForm.FormName.Equals("StockOutDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanAdd) { var stockOut = from d in db.TrnStockOuts where d.Id == Convert.ToInt32(OTId) select d; if (stockOut.Any()) { if (!stockOut.FirstOrDefault().IsLocked) { var item = from d in db.MstArticles where d.Id == objStockOutItem.ItemId && d.IsInventory == true && d.Kitting != 2 && d.IsLocked == true select d; if (item.Any()) { var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == objStockOutItem.ItemId && d.UnitId == objStockOutItem.UnitId && d.MstArticle.IsLocked == true select d; if (conversionUnit.Any()) { var itemInventories = from d in db.MstArticleInventories where d.ArticleId == objStockOutItem.ItemId && d.BranchId == currentBranchId && d.Quantity > 0 && d.MstArticle.IsInventory == true && d.MstArticle.IsLocked == true select d; if (itemInventories.Any()) { var expenseAccounts = from d in db.MstAccounts where d.Id == objStockOutItem.ExpenseAccountId && d.IsLocked == true select d; if (expenseAccounts.Any()) { Decimal baseQuantity = objStockOutItem.Quantity * 1; if (conversionUnit.FirstOrDefault().Multiplier > 0) { baseQuantity = objStockOutItem.Quantity * (1 / conversionUnit.FirstOrDefault().Multiplier); } Decimal baseCost = objStockOutItem.Amount; if (baseQuantity > 0) { baseCost = objStockOutItem.Amount / baseQuantity; } Data.TrnStockOutItem newStockOutItem = new Data.TrnStockOutItem { OTId = Convert.ToInt32(OTId), ItemId = objStockOutItem.ItemId, ItemInventoryId = objStockOutItem.ItemInventoryId, Particulars = objStockOutItem.Particulars, UnitId = objStockOutItem.UnitId, Quantity = objStockOutItem.Quantity, Cost = objStockOutItem.Cost, Amount = objStockOutItem.Amount, BaseUnitId = item.FirstOrDefault().UnitId, BaseQuantity = baseQuantity, BaseCost = baseCost, ExpenseAccountId = objStockOutItem.ExpenseAccountId }; db.TrnStockOutItems.InsertOnSubmit(newStockOutItem); db.SubmitChanges(); return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "The selected item has no expense account.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "The selected item has no inventory code.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "The selected item has no unit conversion.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "The selected item was not found in the server.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "You cannot add new stock out item if the current stock out detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "These current stock out details are not found in the server. Please add new stock out first before proceeding.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to add new stock out item in this stock out detail page.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access in this stock out detail 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 AddFolderMonitoringStockOut(List <Entities.FolderMonitoringTrnStockOut> folderMonitoringTrnStockOutObjects) { try { if (folderMonitoringTrnStockOutObjects.Any()) { String returnMessage = ""; List <Entities.FolderMonitoringTrnStockOutHeader> newFolderMonitoringTrnStockOutHeaders = new List <Entities.FolderMonitoringTrnStockOutHeader>(); List <Entities.FolderMonitoringTrnStockOutItem> newFolderMonitoringTrnStockOutItems = new List <Entities.FolderMonitoringTrnStockOutItem>(); Boolean isDataValid = false; foreach (var folderMonitoringTrnStockOutObject in folderMonitoringTrnStockOutObjects) { Boolean isBranchExist = false, isAccountExist = false, isArticleExist = false, isUserExist = false, isItemExist = false, isUnitExist = false; var branch = from d in db.MstBranches where d.BranchCode.Equals(folderMonitoringTrnStockOutObject.BranchCode) select d; if (branch.Any()) { isBranchExist = true; } List <easyfis.Entities.MstArticle> listArticles = new List <easyfis.Entities.MstArticle>(); var account = from d in db.MstAccounts where d.AccountCode.Equals(folderMonitoringTrnStockOutObject.AccountCode) select d; if (account.Any()) { isAccountExist = true; var accountArticleTypes = from d in db.MstAccountArticleTypes where d.AccountId == Convert.ToInt32(account.FirstOrDefault().Id) group d by d.ArticleTypeId into g select g; if (accountArticleTypes.Any()) { foreach (var accountArticleType in accountArticleTypes) { var articles = from d in db.MstArticles where d.ArticleTypeId == accountArticleType.Key && d.IsLocked == true select d; if (articles.Any()) { foreach (var articleObject in articles) { listArticles.Add(new easyfis.Entities.MstArticle() { Id = articleObject.Id, ManualArticleCode = articleObject.ManualArticleCode, Article = articleObject.Article }); } } } } } var article = from d in listArticles where d.ManualArticleCode.Equals(folderMonitoringTrnStockOutObject.ArticleCode) select d; if (article.Any()) { isArticleExist = true; } var user = from d in db.MstUsers where d.UserName.Equals(folderMonitoringTrnStockOutObject.UserCode) select d; if (user.Any()) { isUserExist = true; } var item = from d in db.MstArticles where d.ArticleTypeId == 1 && d.ManualArticleCode.Equals(folderMonitoringTrnStockOutObject.ItemCode) && d.IsInventory == true && d.IsLocked == true select d; if (item.Any()) { isItemExist = true; } var unit = from d in db.MstUnits where d.Unit.Equals(folderMonitoringTrnStockOutObject.Unit) select d; if (unit.Any()) { isUnitExist = true; } if (!isBranchExist) { returnMessage = "Invalid Branch Code: " + folderMonitoringTrnStockOutObject.BranchCode; isDataValid = false; break; } else if (!isAccountExist) { returnMessage = "Invalid Account Code: " + folderMonitoringTrnStockOutObject.AccountCode; isDataValid = false; break; } else if (!isArticleExist) { returnMessage = "Invalid Article Code: " + folderMonitoringTrnStockOutObject.ArticleCode; isDataValid = false; break; } else if (!isUserExist) { returnMessage = "Invalid User Code: " + folderMonitoringTrnStockOutObject.UserCode; isDataValid = false; break; } else if (!isItemExist) { returnMessage = "Invalid Item Code: " + folderMonitoringTrnStockOutObject.ItemCode; isDataValid = false; break; } else if (!isUnitExist) { returnMessage = "Invalid Unit: " + folderMonitoringTrnStockOutObject.Unit; isDataValid = false; break; } else { var currentStockOut = from d in db.TrnStockOuts where d.BranchId == branch.FirstOrDefault().Id && d.ManualOTNumber.Equals(folderMonitoringTrnStockOutObject.ManualOTNumber) select d; if (currentStockOut.Any()) { returnMessage = "This Manual OT No. " + folderMonitoringTrnStockOutObject.ManualOTNumber + " is already exist!"; isDataValid = false; break; } else { var unitConversion = from d in item.FirstOrDefault().MstArticleUnits where d.UnitId == unit.FirstOrDefault().Id select d; if (unitConversion.Any()) { Decimal baseQuantity = folderMonitoringTrnStockOutObject.Quantity * 1; if (unitConversion.FirstOrDefault().Multiplier > 0) { baseQuantity = folderMonitoringTrnStockOutObject.Quantity * (1 / unitConversion.FirstOrDefault().Multiplier); } Decimal baseCost = folderMonitoringTrnStockOutObject.Amount; if (baseQuantity > 0) { baseCost = folderMonitoringTrnStockOutObject.Amount / baseQuantity; } Int32 itemInventoryId = 0; Boolean isValidInventoryItem = false; if (item.FirstOrDefault().IsInventory) { 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; isValidInventoryItem = true; } } else { isValidInventoryItem = true; } if (isValidInventoryItem) { var folderMonitoringTrnStockOutHeader = from d in newFolderMonitoringTrnStockOutHeaders where d.BranchId == branch.FirstOrDefault().Id && d.ManualOTNumber.Equals(folderMonitoringTrnStockOutObject.ManualOTNumber) select d; if (folderMonitoringTrnStockOutHeader.Any()) { var currentFolderMonitoringTrnStockOutHeader = folderMonitoringTrnStockOutHeader.FirstOrDefault(); currentFolderMonitoringTrnStockOutHeader.ListFolderMonitoringTrnStockOutItems.Add(new Entities.FolderMonitoringTrnStockOutItem() { ManualOTNumber = folderMonitoringTrnStockOutObject.ManualOTNumber, ExpenseAccountId = account.FirstOrDefault().Id, ItemId = item.FirstOrDefault().Id, ItemInventoryId = itemInventoryId, Particulars = folderMonitoringTrnStockOutObject.Particulars, UnitId = unit.FirstOrDefault().Id, Quantity = folderMonitoringTrnStockOutObject.Quantity, Cost = folderMonitoringTrnStockOutObject.Cost, Amount = folderMonitoringTrnStockOutObject.Amount, BaseUnitId = item.FirstOrDefault().UnitId, BaseQuantity = baseQuantity, BaseCost = baseCost }); } else { newFolderMonitoringTrnStockOutItems = new List <Entities.FolderMonitoringTrnStockOutItem> { new Entities.FolderMonitoringTrnStockOutItem() { ManualOTNumber = folderMonitoringTrnStockOutObject.ManualOTNumber, ExpenseAccountId = account.FirstOrDefault().Id, ItemId = item.FirstOrDefault().Id, ItemInventoryId = itemInventoryId, Particulars = folderMonitoringTrnStockOutObject.Particulars, UnitId = unit.FirstOrDefault().Id, Quantity = folderMonitoringTrnStockOutObject.Quantity, Cost = folderMonitoringTrnStockOutObject.Cost, Amount = folderMonitoringTrnStockOutObject.Amount, BaseUnitId = item.FirstOrDefault().UnitId, BaseQuantity = baseQuantity, BaseCost = baseCost } }; if (newFolderMonitoringTrnStockOutItems.Any()) { newFolderMonitoringTrnStockOutHeaders.Add(new Entities.FolderMonitoringTrnStockOutHeader() { BranchId = branch.FirstOrDefault().Id, OTNumber = "0000000000", OTDate = Convert.ToDateTime(folderMonitoringTrnStockOutObject.OTDate), AccountId = account.FirstOrDefault().Id, ArticleId = article.FirstOrDefault().Id, Particulars = folderMonitoringTrnStockOutObject.Remarks, ManualOTNumber = folderMonitoringTrnStockOutObject.ManualOTNumber, 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(folderMonitoringTrnStockOutObject.CreatedDateTime), UpdatedById = user.FirstOrDefault().Id, UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockOutObject.CreatedDateTime), ListFolderMonitoringTrnStockOutItems = newFolderMonitoringTrnStockOutItems }); } } isDataValid = true; } else { returnMessage = "This item code: " + folderMonitoringTrnStockOutObject.ItemCode + " has no Inventory"; isDataValid = false; break; } } else { returnMessage = "This item code: " + folderMonitoringTrnStockOutObject.ItemCode + " has invalid unit conversion. Unit: " + folderMonitoringTrnStockOutObject.Unit; isDataValid = false; break; } isDataValid = true; } } } if (isDataValid) { if (newFolderMonitoringTrnStockOutHeaders.Any()) { foreach (var newFolderMonitoringTrnStockOutHeader in newFolderMonitoringTrnStockOutHeaders) { Int32 OTId = 0; var defaultOTNumber = "0000000001"; var lastStockOut = from d in db.TrnStockOuts.OrderByDescending(d => d.Id) where d.BranchId == newFolderMonitoringTrnStockOutHeader.BranchId select d; if (lastStockOut.Any()) { var OTNumber = Convert.ToInt32(lastStockOut.FirstOrDefault().OTNumber) + 0000000001; defaultOTNumber = FillLeadingZeroes(OTNumber, 10); } Data.TrnStockOut newStockOut = new Data.TrnStockOut { BranchId = newFolderMonitoringTrnStockOutHeader.BranchId, OTNumber = defaultOTNumber, OTDate = newFolderMonitoringTrnStockOutHeader.OTDate, AccountId = newFolderMonitoringTrnStockOutHeader.AccountId, ArticleId = newFolderMonitoringTrnStockOutHeader.ArticleId, Particulars = newFolderMonitoringTrnStockOutHeader.Particulars, ManualOTNumber = newFolderMonitoringTrnStockOutHeader.ManualOTNumber, PreparedById = newFolderMonitoringTrnStockOutHeader.PreparedById, CheckedById = newFolderMonitoringTrnStockOutHeader.CheckedById, ApprovedById = newFolderMonitoringTrnStockOutHeader.ApprovedById, Status = newFolderMonitoringTrnStockOutHeader.Status, IsPrinted = newFolderMonitoringTrnStockOutHeader.IsPrinted, IsLocked = newFolderMonitoringTrnStockOutHeader.IsLocked, CreatedById = newFolderMonitoringTrnStockOutHeader.CreatedById, CreatedDateTime = newFolderMonitoringTrnStockOutHeader.CreatedDateTime, UpdatedById = newFolderMonitoringTrnStockOutHeader.UpdatedById, UpdatedDateTime = newFolderMonitoringTrnStockOutHeader.UpdatedDateTime, }; db.TrnStockOuts.InsertOnSubmit(newStockOut); db.SubmitChanges(); OTId = newStockOut.Id; if (newFolderMonitoringTrnStockOutHeader.ListFolderMonitoringTrnStockOutItems.Any()) { foreach (var listFolderMonitoringTrnStockOutItem in newFolderMonitoringTrnStockOutHeader.ListFolderMonitoringTrnStockOutItems) { Data.TrnStockOutItem newStockOutItem = new Data.TrnStockOutItem { OTId = OTId, ExpenseAccountId = listFolderMonitoringTrnStockOutItem.ExpenseAccountId, ItemId = listFolderMonitoringTrnStockOutItem.ItemId, ItemInventoryId = listFolderMonitoringTrnStockOutItem.ItemInventoryId, Particulars = listFolderMonitoringTrnStockOutItem.Particulars, UnitId = listFolderMonitoringTrnStockOutItem.UnitId, Quantity = listFolderMonitoringTrnStockOutItem.Quantity, Cost = listFolderMonitoringTrnStockOutItem.Cost, Amount = listFolderMonitoringTrnStockOutItem.Amount, BaseUnitId = listFolderMonitoringTrnStockOutItem.BaseUnitId, BaseQuantity = listFolderMonitoringTrnStockOutItem.BaseQuantity, BaseCost = listFolderMonitoringTrnStockOutItem.BaseCost }; } } var stockIn = from d in db.TrnStockOuts where d.Id == OTId select d; if (stockIn.Any()) { var lockStockOut = stockIn.FirstOrDefault(); lockStockOut.IsLocked = true; db.SubmitChanges(); journal.InsertStockOutJournal(OTId); inventory.InsertStockOutInventory(OTId); } } } } return(Request.CreateResponse(HttpStatusCode.OK, returnMessage)); } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "Data Source is Invalid or Empty.")); } } catch (Exception ex) { Debug.WriteLine(ex); return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Backend Error: " + ex.Message)); } }
public HttpResponseMessage AddFolderMonitoringStockOut(List <Entities.FolderMonitoringTrnStockOut> folderMonitoringTrnStockOutObjects) { try { if (folderMonitoringTrnStockOutObjects.Any()) { foreach (var folderMonitoringTrnStockOutObject in folderMonitoringTrnStockOutObjects) { Boolean isBranchExist = false, isAccountExist = false, isArticleExist = false, isUserExist = false, isItemExist = false; var branch = from d in db.MstBranches where d.BranchCode.Equals(folderMonitoringTrnStockOutObject.BranchCode) select d; if (branch.Any()) { isBranchExist = true; } List <easyfis.Entities.MstArticle> listArticles = new List <easyfis.Entities.MstArticle>(); var account = from d in db.MstAccounts where d.AccountCode.Equals(folderMonitoringTrnStockOutObject.AccountCode) select d; if (account.Any()) { isAccountExist = true; var accountArticleTypes = from d in db.MstAccountArticleTypes where d.AccountId == Convert.ToInt32(account.FirstOrDefault().Id) select d; if (accountArticleTypes.Any()) { foreach (var accountArticleType in accountArticleTypes) { var articles = from d in db.MstArticles where d.ArticleTypeId == accountArticleType.ArticleTypeId && d.IsLocked == true select d; if (articles.Any()) { foreach (var articleObject in articles) { listArticles.Add(new easyfis.Entities.MstArticle() { Id = articleObject.Id, ManualArticleCode = articleObject.ManualArticleCode, Article = articleObject.Article }); } } } } } var article = from d in listArticles where d.ManualArticleCode.Equals(folderMonitoringTrnStockOutObject.ArticleCode) select d; if (article.Any()) { isArticleExist = true; } var user = from d in db.MstUsers where d.UserName.Equals(folderMonitoringTrnStockOutObject.UserCode) select d; if (user.Any()) { isUserExist = true; } var item = from d in db.MstArticles where d.ArticleTypeId == 1 && d.ManualArticleCode.Equals(folderMonitoringTrnStockOutObject.ItemCode) && d.IsInventory == true && d.IsLocked == true select d; if (item.Any()) { isItemExist = true; } if (isBranchExist && isUserExist && isAccountExist && isArticleExist && isItemExist) { Int32 OTId = 0; var currentStockOut = from d in db.TrnStockOuts where d.BranchId == branch.FirstOrDefault().Id&& d.ManualOTNumber.Equals(folderMonitoringTrnStockOutObject.ManualOTNumber) && d.IsLocked == true select d; if (currentStockOut.Any()) { OTId = currentStockOut.FirstOrDefault().Id; var unlockStockOut = currentStockOut.FirstOrDefault(); unlockStockOut.IsLocked = false; unlockStockOut.UpdatedById = user.FirstOrDefault().Id; unlockStockOut.UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockOutObject.CreatedDateTime); db.SubmitChanges(); journal.DeleteStockOutJournal(OTId); inventory.DeleteStockOutInventory(OTId); } else { var defaultOTNumber = "0000000001"; var lastStockOut = from d in db.TrnStockOuts.OrderByDescending(d => d.Id) where d.BranchId == branch.FirstOrDefault().Id select d; if (lastStockOut.Any()) { var OTNumber = Convert.ToInt32(lastStockOut.FirstOrDefault().OTNumber) + 0000000001; defaultOTNumber = FillLeadingZeroes(OTNumber, 10); } Data.TrnStockOut newStockOut = new Data.TrnStockOut { BranchId = branch.FirstOrDefault().Id, OTNumber = defaultOTNumber, OTDate = Convert.ToDateTime(folderMonitoringTrnStockOutObject.OTDate), AccountId = account.FirstOrDefault().Id, ArticleId = article.FirstOrDefault().Id, Particulars = folderMonitoringTrnStockOutObject.Remarks, ManualOTNumber = folderMonitoringTrnStockOutObject.ManualOTNumber, 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(folderMonitoringTrnStockOutObject.CreatedDateTime), UpdatedById = user.FirstOrDefault().Id, UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockOutObject.CreatedDateTime) }; db.TrnStockOuts.InsertOnSubmit(newStockOut); db.SubmitChanges(); OTId = newStockOut.Id; } var unitConversion = from d in item.FirstOrDefault().MstArticleUnits where d.MstUnit.Unit.Equals(folderMonitoringTrnStockOutObject.Unit) select d; if (unitConversion.Any()) { Decimal baseQuantity = folderMonitoringTrnStockOutObject.Quantity * 1; if (unitConversion.FirstOrDefault().Multiplier > 0) { baseQuantity = folderMonitoringTrnStockOutObject.Quantity * (1 / unitConversion.FirstOrDefault().Multiplier); } Decimal baseCost = folderMonitoringTrnStockOutObject.Amount; if (baseQuantity > 0) { baseCost = folderMonitoringTrnStockOutObject.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.TrnStockOutItem newStockOutItem = new Data.TrnStockOutItem { OTId = OTId, ItemId = item.FirstOrDefault().Id, ItemInventoryId = itemInventoryId, Particulars = folderMonitoringTrnStockOutObject.Particulars, UnitId = unitConversion.FirstOrDefault().UnitId, Quantity = folderMonitoringTrnStockOutObject.Quantity, Cost = folderMonitoringTrnStockOutObject.Cost, Amount = folderMonitoringTrnStockOutObject.Amount, BaseUnitId = item.FirstOrDefault().UnitId, BaseQuantity = baseQuantity, BaseCost = baseCost, ExpenseAccountId = account.FirstOrDefault().Id }; db.TrnStockOutItems.InsertOnSubmit(newStockOutItem); db.SubmitChanges(); } var stockOut = from d in db.TrnStockOuts where d.Id == OTId && d.IsLocked == false select d; if (stockOut.Any()) { var lockStockOut = stockOut.FirstOrDefault(); lockStockOut.IsLocked = true; lockStockOut.UpdatedById = user.FirstOrDefault().Id; lockStockOut.UpdatedDateTime = Convert.ToDateTime(folderMonitoringTrnStockOutObject.CreatedDateTime); db.SubmitChanges(); journal.InsertStockOutJournal(OTId); inventory.InsertStockOutInventory(OTId); } } } } 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.")); } }
public HttpResponseMessage PostStockCount(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 currentBranchId = currentUser.FirstOrDefault().BranchId; var currentDefaultIncomeAccountId = currentUser.FirstOrDefault().IncomeAccountId; var userForms = from d in db.MstUserForms where d.UserId == currentUserId && d.SysForm.FormName.Equals("StockCountList") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanAdd) { var defaultOTNumber = "0000000001"; var lastStockOut = from d in db.TrnStockOuts.OrderByDescending(d => d.Id) where d.BranchId == currentBranchId select d; if (lastStockOut.Any()) { var OTNumber = Convert.ToInt32(lastStockOut.FirstOrDefault().OTNumber) + 0000000001; defaultOTNumber = FillLeadingZeroes(OTNumber, 10); } var stockCount = from d in db.TrnStockCounts where d.Id == Convert.ToInt32(id) select d; if (stockCount.Any()) { if (stockCount.FirstOrDefault().IsLocked) { List <Int32> listArticleIds = new List <Int32>(); var accountArticleTypes = from d in db.MstAccountArticleTypes where d.AccountId == currentDefaultIncomeAccountId && d.MstAccount.IsLocked == true select d; if (accountArticleTypes.Any()) { foreach (var accountArticleType in accountArticleTypes) { var articles = from d in db.MstArticles where d.ArticleTypeId == accountArticleType.ArticleTypeId && d.IsLocked == true select d; if (articles.Any()) { foreach (var article in articles) { listArticleIds.Add(article.Id); } } } } if (stockCount.FirstOrDefault().TrnStockCountItems.Any()) { Data.TrnStockOut newStockOut = new Data.TrnStockOut { BranchId = currentBranchId, OTNumber = defaultOTNumber, OTDate = DateTime.Today, AccountId = currentDefaultIncomeAccountId, ArticleId = listArticleIds.FirstOrDefault(), Particulars = stockCount.FirstOrDefault().Particulars, ManualOTNumber = "SC-" + stockCount.FirstOrDefault().SCNumber, PreparedById = currentUserId, CheckedById = currentUserId, ApprovedById = currentUserId, Status = stockCount.FirstOrDefault().Status, IsPrinted = false, IsLocked = false, CreatedById = currentUserId, CreatedDateTime = DateTime.Now, UpdatedById = currentUserId, UpdatedDateTime = DateTime.Now }; db.TrnStockOuts.InsertOnSubmit(newStockOut); db.SubmitChanges(); String newObject = at.GetObjectString(newStockOut); at.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, "NA", newObject); foreach (var stockCountItem in stockCount.FirstOrDefault().TrnStockCountItems) { var articleInventory = from d in db.MstArticleInventories where d.ArticleId == stockCountItem.ItemId && d.BranchId == currentBranchId select d; if (articleInventory.Any()) { Data.TrnStockOutItem newStockOutItems = new Data.TrnStockOutItem { OTId = newStockOut.Id, ExpenseAccountId = articleInventory.FirstOrDefault().MstArticle.ExpenseAccountId, ItemId = stockCountItem.ItemId, ItemInventoryId = articleInventory.FirstOrDefault().Id, Particulars = stockCountItem.Particulars, UnitId = articleInventory.FirstOrDefault().MstArticle.UnitId, Quantity = articleInventory.FirstOrDefault().Quantity - stockCountItem.Quantity, Cost = articleInventory.FirstOrDefault().Cost, Amount = (articleInventory.FirstOrDefault().Quantity - stockCountItem.Quantity) * articleInventory.FirstOrDefault().Cost, BaseUnitId = articleInventory.FirstOrDefault().MstArticle.UnitId, BaseQuantity = articleInventory.FirstOrDefault().Quantity - stockCountItem.Quantity, BaseCost = articleInventory.FirstOrDefault().Cost }; db.TrnStockOutItems.InsertOnSubmit(newStockOutItems); String newObject2 = at.GetObjectString(newStockOutItems); at.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, "NA", newObject2); } } db.SubmitChanges(); return(Request.CreateResponse(HttpStatusCode.OK, newStockOut.Id)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "stock count items empty.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Cannot post stock count if the current stock count is not locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. These stock count details are no longer exist in the server.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to add stock count.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access for this stock count 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.")); } }