public HttpResponseMessage ApplySupplierAdvancesDisbursementLine(Entities.TrnDisbursementLine objDisbursementLine, String CVId) { 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("DisbursementDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanAdd) { var disbursement = from d in db.TrnDisbursements where d.Id == Convert.ToInt32(CVId) select d; if (disbursement.Any()) { if (!disbursement.FirstOrDefault().IsLocked) { var journals = from d in db.TrnJournals where d.ArticleId == objDisbursementLine.ArticleId && d.AccountId == objDisbursementLine.AccountId && d.BranchId == currentBranchId group d by new { BranchId = d.BranchId, AccountId = d.AccountId, ArticleId = d.ArticleId, } into g select new { BranchId = g.Key.BranchId, AccountId = g.Key.AccountId, ArticleId = g.Key.ArticleId, DebitAmount = g.Sum(d => d.DebitAmount), CreditAmount = g.Sum(d => d.CreditAmount), BalanceAmount = g.Sum(d => d.DebitAmount) - g.Sum(d => d.CreditAmount) }; if (journals.Any()) { var advances = from d in journals.ToList() select new { BranchId = d.BranchId, AccountId = d.AccountId, ArticleId = d.ArticleId, DebitAmount = d.DebitAmount, CreditAmount = d.CreditAmount, BalanceAmount = d.BalanceAmount }; if (advances.Any()) { Data.TrnDisbursementLine newDisbursementLine = new Data.TrnDisbursementLine { CVId = Convert.ToInt32(CVId), BranchId = advances.FirstOrDefault().BranchId, AccountId = advances.FirstOrDefault().AccountId, ArticleId = advances.FirstOrDefault().ArticleId, RRId = null, Particulars = "Supplier Advances", Amount = advances.FirstOrDefault().BalanceAmount * -1, }; db.TrnDisbursementLines.InsertOnSubmit(newDisbursementLine); db.SubmitChanges(); Decimal disbursementItemTotalAmount = 0; if (disbursement.FirstOrDefault().TrnDisbursementLines.Any()) { disbursementItemTotalAmount = disbursement.FirstOrDefault().TrnDisbursementLines.Sum(d => d.Amount); } var updateDisbursement = disbursement.FirstOrDefault(); updateDisbursement.Amount = disbursementItemTotalAmount; db.SubmitChanges(); String newObject = at.GetObjectString(newDisbursementLine); at.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, "NA", newObject); return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "No advances found.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "No journal data found.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "You cannot add new disbursement line if the current disbursement detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "These current disbursement details are not found in the server. Please add new disbursement first before proceeding.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to add new disbursement line in this disbursement detail page.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access in this disbursement 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 UpdateDisbursementLine(Entities.TrnDisbursementLine objDisbursementLine, String id, String CVId) { 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("DisbursementDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanEdit) { var disbursement = from d in db.TrnDisbursements where d.Id == Convert.ToInt32(CVId) select d; if (disbursement.Any()) { if (!disbursement.FirstOrDefault().IsLocked) { var disbursementLine = from d in db.TrnDisbursementLines where d.Id == Convert.ToInt32(id) select d; if (disbursementLine.Any()) { String oldObject = at.GetObjectString(disbursementLine.FirstOrDefault()); var accounts = from d in db.MstAccounts.OrderBy(d => d.Account) where d.Id == objDisbursementLine.AccountId && d.IsLocked == true select d; if (accounts.Any()) { var articles = from d in db.MstArticles where d.Id == objDisbursementLine.ArticleId && d.IsLocked == true select d; if (articles.Any()) { var updateDisbursementLine = disbursementLine.FirstOrDefault(); updateDisbursementLine.CVId = Convert.ToInt32(CVId); updateDisbursementLine.BranchId = objDisbursementLine.BranchId; updateDisbursementLine.AccountId = objDisbursementLine.AccountId; updateDisbursementLine.ArticleId = objDisbursementLine.ArticleId; updateDisbursementLine.RRId = objDisbursementLine.RRId; updateDisbursementLine.Particulars = objDisbursementLine.Particulars; updateDisbursementLine.Amount = objDisbursementLine.Amount; db.SubmitChanges(); Decimal disbursementItemTotalAmount = 0; if (disbursement.FirstOrDefault().TrnDisbursementLines.Any()) { disbursementItemTotalAmount = disbursement.FirstOrDefault().TrnDisbursementLines.Sum(d => d.Amount); } var updateDisbursement = disbursement.FirstOrDefault(); updateDisbursement.Amount = disbursementItemTotalAmount; db.SubmitChanges(); String newObject = at.GetObjectString(disbursementLine.FirstOrDefault()); at.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, oldObject, 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.NotFound, "This disbursement line detail is no longer exist in the server.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "You cannot add new disbursement line if the current disbursement detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "These current disbursement details are not found in the server. Please add new disbursement first before proceeding.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to edit and update disbursement line in this disbursement detail page.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access in this disbursement 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 AddDisbursementLine(Entities.TrnDisbursementLine objDisbursementLine, String CVId) { 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("DisbursementDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanAdd) { var disbursement = from d in db.TrnDisbursements where d.Id == Convert.ToInt32(CVId) select d; if (disbursement.Any()) { if (!disbursement.FirstOrDefault().IsLocked) { var accounts = from d in db.MstAccounts.OrderBy(d => d.Account) where d.Id == objDisbursementLine.AccountId && d.IsLocked == true select d; if (accounts.Any()) { var articles = from d in db.MstArticles where d.Id == objDisbursementLine.ArticleId && d.IsLocked == true select d; if (articles.Any()) { Data.TrnDisbursementLine newDisbursementLine = new Data.TrnDisbursementLine { CVId = Convert.ToInt32(CVId), BranchId = objDisbursementLine.BranchId, AccountId = objDisbursementLine.AccountId, ArticleId = objDisbursementLine.ArticleId, RRId = objDisbursementLine.RRId, Particulars = objDisbursementLine.Particulars, Amount = objDisbursementLine.Amount, }; db.TrnDisbursementLines.InsertOnSubmit(newDisbursementLine); db.SubmitChanges(); Decimal disbursementItemTotalAmount = 0; if (disbursement.FirstOrDefault().TrnDisbursementLines.Any()) { disbursementItemTotalAmount = disbursement.FirstOrDefault().TrnDisbursementLines.Sum(d => d.Amount); } var updateDisbursement = disbursement.FirstOrDefault(); updateDisbursement.Amount = disbursementItemTotalAmount; db.SubmitChanges(); return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "No Article.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "No Account.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "You cannot add new disbursement line if the current disbursement detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "These current disbursement details are not found in the server. Please add new disbursement first before proceeding.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to add new disbursement line in this disbursement detail page.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access in this disbursement 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.")); } }