public HttpResponseMessage CancelJournalVoucher(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("JournalVoucherDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanCancel) { var journalVoucher = from d in db.TrnJournalVouchers where d.Id == Convert.ToInt32(id) select d; if (journalVoucher.Any()) { if (journalVoucher.FirstOrDefault().IsLocked) { String oldObject = auditTrail.GetObjectString(journalVoucher.FirstOrDefault()); var cancelJournalVoucher = journalVoucher.FirstOrDefault(); cancelJournalVoucher.IsCancelled = true; cancelJournalVoucher.UpdatedById = currentUserId; cancelJournalVoucher.UpdatedDateTime = DateTime.Now; db.SubmitChanges(); if (cancelJournalVoucher.IsCancelled) { var journalVoucherLines = from d in db.TrnJournalVoucherLines where d.JVId == Convert.ToInt32(id) select d; if (journalVoucherLines.Any()) { foreach (var journalVoucherLine in journalVoucherLines) { if (journalVoucherLine.APRRId != null) { accountsPayable.UpdateAccountsPayable(Convert.ToInt32(journalVoucherLine.APRRId)); } if (journalVoucherLine.ARSIId != null) { accountsReceivable.UpdateAccountsReceivable(Convert.ToInt32(journalVoucherLine.ARSIId)); } journalVoucherLine.DebitAmount = 0; journalVoucherLine.CreditAmount = 0; } db.SubmitChanges(); } journal.CancelJournal(Convert.ToInt32(id), "JournalVoucher"); } String newObject = auditTrail.GetObjectString(journalVoucher.FirstOrDefault()); auditTrail.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, oldObject, newObject); return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Cancel Error. Cannot cancel journal voucher detail if journal voucher detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "Data not found. These journal voucher details are not found in the server.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to cancel journal voucher.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access for this journal voucher 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 CancelSalesInvoice(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("SalesInvoiceDetail") select d; if (userForms.Any()) { if (userForms.FirstOrDefault().CanCancel) { var salesInvoice = from d in db.TrnSalesInvoices where d.Id == Convert.ToInt32(id) select d; if (salesInvoice.Any()) { if (salesInvoice.FirstOrDefault().IsLocked) { if (salesInvoice.FirstOrDefault().PaidAmount + salesInvoice.FirstOrDefault().AdjustmentAmount == 0) { String oldObject = auditTrail.GetObjectString(salesInvoice.FirstOrDefault()); var cancelSalesInvoice = salesInvoice.FirstOrDefault(); cancelSalesInvoice.Amount = 0; cancelSalesInvoice.PaidAmount = 0; cancelSalesInvoice.AdjustmentAmount = 0; cancelSalesInvoice.BalanceAmount = 0; cancelSalesInvoice.IsCancelled = true; cancelSalesInvoice.UpdatedById = currentUserId; cancelSalesInvoice.UpdatedDateTime = DateTime.Now; db.SubmitChanges(); if (cancelSalesInvoice.IsCancelled) { inventory.DeleteSalesInvoiceInventory(Convert.ToInt32(id)); journal.CancelJournal(Convert.ToInt32(id), "SalesInvoice"); } String newObject = auditTrail.GetObjectString(salesInvoice.FirstOrDefault()); auditTrail.InsertAuditTrail(currentUser.FirstOrDefault().Id, GetType().Name, MethodBase.GetCurrentMethod().Name, oldObject, newObject); return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Cancel Error. Cannot cancel sales invoice detail if sales invoice detail is paid and adjusted.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Cancel Error. Cannot cancel sales invoice detail if sales invoice detail is locked.")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "Data not found. These sales invoice details are not found in the server.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no rights to cancel sales invoice.")); } } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sorry. You have no access for this sales invoice 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.")); } }