public HttpResponseMessage UpdateReceivingReceiptItem(Entities.TrnReceivingReceiptItem objReceivingReceiptItem, String id, String RRId) { 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("ReceivingReceiptDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanEdit) { var receivingReceipt = from d in db.TrnReceivingReceipts where d.Id == Convert.ToInt32(RRId) select d; if (receivingReceipt.Any()) { if (!receivingReceipt.FirstOrDefault().IsLocked) { var receivingReceiptItem = from d in db.TrnReceivingReceiptItems where d.Id == Convert.ToInt32(id) select d; if (receivingReceiptItem.Any()) { var purchaseOrders = from d in db.TrnPurchaseOrders where d.Id == Convert.ToInt32(objReceivingReceiptItem.POId) && d.BranchId == currentBranchId && d.IsLocked == true select d; if (purchaseOrders.Any()) { var item = from d in db.MstArticles where d.Id == objReceivingReceiptItem.ItemId && d.ArticleTypeId == 1 && d.IsLocked == true select d; if (item.Any()) { var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == objReceivingReceiptItem.ItemId && d.UnitId == objReceivingReceiptItem.UnitId && d.MstArticle.IsLocked == true select d; if (conversionUnit.Any()) { Decimal baseQuantity = objReceivingReceiptItem.Quantity * 1; if (conversionUnit.FirstOrDefault().Multiplier > 0) { baseQuantity = objReceivingReceiptItem.Quantity * (1 / conversionUnit.FirstOrDefault().Multiplier); } Decimal amount = objReceivingReceiptItem.Quantity * objReceivingReceiptItem.Cost; Decimal baseCost = amount - objReceivingReceiptItem.VATAmount; if (baseQuantity > 0) { baseCost = (amount - objReceivingReceiptItem.VATAmount) / baseQuantity; } var updateReceivingReceiptItem = receivingReceiptItem.FirstOrDefault(); updateReceivingReceiptItem.RRId = Convert.ToInt32(RRId); updateReceivingReceiptItem.POId = objReceivingReceiptItem.POId; updateReceivingReceiptItem.ItemId = objReceivingReceiptItem.ItemId; updateReceivingReceiptItem.Particulars = objReceivingReceiptItem.Particulars; updateReceivingReceiptItem.UnitId = objReceivingReceiptItem.UnitId; updateReceivingReceiptItem.Quantity = objReceivingReceiptItem.Quantity; updateReceivingReceiptItem.Cost = objReceivingReceiptItem.Cost; updateReceivingReceiptItem.Amount = amount; updateReceivingReceiptItem.VATId = objReceivingReceiptItem.VATId; updateReceivingReceiptItem.VATPercentage = objReceivingReceiptItem.VATPercentage; updateReceivingReceiptItem.VATAmount = ComputeVATAmount(objReceivingReceiptItem.Quantity * objReceivingReceiptItem.Cost, objReceivingReceiptItem.VATPercentage, objReceivingReceiptItem.VATId); updateReceivingReceiptItem.WTAXId = objReceivingReceiptItem.WTAXId; updateReceivingReceiptItem.WTAXPercentage = objReceivingReceiptItem.WTAXPercentage; updateReceivingReceiptItem.WTAXAmount = ComputeWTAXAmount(objReceivingReceiptItem.Quantity * objReceivingReceiptItem.Cost, objReceivingReceiptItem.VATPercentage, objReceivingReceiptItem.WTAXPercentage, objReceivingReceiptItem.WTAXId); updateReceivingReceiptItem.BranchId = objReceivingReceiptItem.BranchId; updateReceivingReceiptItem.BaseUnitId = item.FirstOrDefault().UnitId; updateReceivingReceiptItem.BaseQuantity = baseQuantity; updateReceivingReceiptItem.BaseCost = baseCost; db.SubmitChanges(); Decimal receivingReceiptItemTotalAmount = 0; if (receivingReceipt.FirstOrDefault().TrnReceivingReceiptItems.Any()) { receivingReceiptItemTotalAmount = receivingReceipt.FirstOrDefault().TrnReceivingReceiptItems.Sum(d => d.Amount); } var updateReceivingReceiptAmount = receivingReceipt.FirstOrDefault(); updateReceivingReceiptAmount.Amount = receivingReceiptItemTotalAmount; db.SubmitChanges(); return(Request.CreateResponse(HttpStatusCode.OK)); } 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, "There are no purchase order transactions in the current branch.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "This receiving receipt item detail is no longer exist in the server.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "You cannot edit and update receiving receipt item if the current receiving receipt detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "These current receiving receipt details are not found in the server. Please add new receiving receipt first before proceeding.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to edit and update receiving receipt item in this receiving receipt detail page.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access in this receiving receipt 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 AddReceivingReceiptItem(Entities.TrnReceivingReceiptItem objReceivingReceiptItem, String RRId) { 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("ReceivingReceiptDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanAdd) { var receivingReceipt = from d in db.TrnReceivingReceipts where d.Id == Convert.ToInt32(RRId) select d; if (receivingReceipt.Any()) { if (!receivingReceipt.FirstOrDefault().IsLocked) { var purchaseOrders = from d in db.TrnPurchaseOrders where d.Id == Convert.ToInt32(objReceivingReceiptItem.POId) && d.BranchId == currentBranchId && d.IsLocked == true select d; if (purchaseOrders.Any()) { var item = from d in db.MstArticles where d.Id == objReceivingReceiptItem.ItemId && d.ArticleTypeId == 1 && d.IsLocked == true select d; if (item.Any()) { var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == objReceivingReceiptItem.ItemId && d.UnitId == objReceivingReceiptItem.UnitId && d.MstArticle.IsLocked == true select d; if (conversionUnit.Any()) { Decimal baseQuantity = objReceivingReceiptItem.Quantity * 1; if (conversionUnit.FirstOrDefault().Multiplier > 0) { baseQuantity = objReceivingReceiptItem.Quantity * (1 / conversionUnit.FirstOrDefault().Multiplier); } Decimal amount = objReceivingReceiptItem.Amount; Decimal VATAmount = objReceivingReceiptItem.VATAmount; Decimal WTAXAmount = objReceivingReceiptItem.WTAXAmount; Decimal baseCost = 0; if (baseQuantity > 0) { baseCost = (amount - VATAmount + WTAXAmount) / baseQuantity; } Data.TrnReceivingReceiptItem newReceivingReceiptItem = new Data.TrnReceivingReceiptItem { RRId = Convert.ToInt32(RRId), POId = objReceivingReceiptItem.POId, ItemId = objReceivingReceiptItem.ItemId, Particulars = objReceivingReceiptItem.Particulars, UnitId = objReceivingReceiptItem.UnitId, Quantity = objReceivingReceiptItem.Quantity, Cost = objReceivingReceiptItem.Cost, Amount = objReceivingReceiptItem.Amount, VATId = objReceivingReceiptItem.VATId, VATPercentage = objReceivingReceiptItem.VATPercentage, VATAmount = objReceivingReceiptItem.VATAmount, WTAXId = objReceivingReceiptItem.WTAXId, WTAXPercentage = objReceivingReceiptItem.WTAXPercentage, WTAXAmount = objReceivingReceiptItem.WTAXAmount, BranchId = objReceivingReceiptItem.BranchId, BaseUnitId = item.FirstOrDefault().UnitId, BaseQuantity = baseQuantity, BaseCost = baseCost }; db.TrnReceivingReceiptItems.InsertOnSubmit(newReceivingReceiptItem); db.SubmitChanges(); Decimal receivingReceiptItemTotalAmount = 0; if (receivingReceipt.FirstOrDefault().TrnReceivingReceiptItems.Any()) { receivingReceiptItemTotalAmount = receivingReceipt.FirstOrDefault().TrnReceivingReceiptItems.Sum(d => d.Amount); } var updateReceivingReceiptAmount = receivingReceipt.FirstOrDefault(); updateReceivingReceiptAmount.Amount = receivingReceiptItemTotalAmount; db.SubmitChanges(); String newObject = auditTrail.GetObjectString(newReceivingReceiptItem); auditTrail.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, "NA", newObject); return(Request.CreateResponse(HttpStatusCode.OK)); } 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, "There are no purchase order transactions in the current branch.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "You cannot add new receiving receipt item if the current receiving receipt detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "These current receiving receipt details are not found in the server. Please add new receiving receipt first before proceeding.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to add new receiving receipt item in this receiving receipt detail page.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access in this receiving receipt 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.")); } }