public HttpResponseMessage PostAllAR(Models.TrnSalesInvoice salesInvoice, String ORId) { try { Data.TrnCollectionLine newCollectionLine = new Data.TrnCollectionLine(); newCollectionLine.ORId = Convert.ToInt32(ORId); newCollectionLine.BranchId = salesInvoice.BranchId; newCollectionLine.AccountId = salesInvoice.AccountId; newCollectionLine.ArticleId = salesInvoice.CustomerId; newCollectionLine.SIId = salesInvoice.Id; newCollectionLine.Particulars = salesInvoice.DocumentReference; newCollectionLine.Amount = salesInvoice.Amount; newCollectionLine.PayTypeId = (from d in db.MstPayTypes select d.Id).FirstOrDefault(); newCollectionLine.CheckNumber = "NA"; newCollectionLine.CheckDate = DateTime.Now; newCollectionLine.CheckBank = "NA"; newCollectionLine.DepositoryBankId = (from d in db.MstArticles where d.ArticleTypeId == 5 select d.Id).FirstOrDefault(); newCollectionLine.IsClear = true; db.TrnCollectionLines.InsertOnSubmit(newCollectionLine); db.SubmitChanges(); return(Request.CreateResponse(HttpStatusCode.OK)); } catch { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
public Int32 insertSalesInvoice(Models.TrnSalesInvoice sales) { try { var userId = (from d in db.MstUsers where d.UserId == User.Identity.GetUserId() select d.Id).SingleOrDefault(); var lastSINumber = from d in db.TrnSalesInvoices.OrderByDescending(d => d.Id) where d.BranchId == currentBranchId() select d; var SINumberResult = "0000000001"; if (lastSINumber.Any()) { var SINumber = Convert.ToInt32(lastSINumber.FirstOrDefault().SINumber) + 0000000001; SINumberResult = zeroFill(SINumber, 10); } Data.TrnSalesInvoice newSalesInvoice = new Data.TrnSalesInvoice(); newSalesInvoice.BranchId = currentBranchId(); newSalesInvoice.SINumber = SINumberResult; newSalesInvoice.SIDate = DateTime.Today; newSalesInvoice.CustomerId = (from d in db.MstArticles where d.ArticleTypeId == 2 select d.Id).FirstOrDefault(); newSalesInvoice.TermId = (from d in db.MstTerms select d.Id).FirstOrDefault(); newSalesInvoice.DocumentReference = "NA"; newSalesInvoice.ManualSINumber = "NA"; newSalesInvoice.Remarks = "NA"; newSalesInvoice.Amount = 0; newSalesInvoice.PaidAmount = 0; newSalesInvoice.AdjustmentAmount = 0; newSalesInvoice.BalanceAmount = 0; newSalesInvoice.SoldById = userId; newSalesInvoice.PreparedById = userId; newSalesInvoice.CheckedById = userId; newSalesInvoice.ApprovedById = userId; newSalesInvoice.IsLocked = false; newSalesInvoice.CreatedById = userId; newSalesInvoice.CreatedDateTime = DateTime.Now; newSalesInvoice.UpdatedById = userId; newSalesInvoice.UpdatedDateTime = DateTime.Now; db.TrnSalesInvoices.InsertOnSubmit(newSalesInvoice); db.SubmitChanges(); return(newSalesInvoice.Id); } catch (Exception e) { Debug.WriteLine(e); return(0); } }
public HttpResponseMessage unlockSalesInvoice(String id, Models.TrnSalesInvoice sales) { try { var userId = (from d in db.MstUsers where d.UserId == User.Identity.GetUserId() select d.Id).SingleOrDefault(); var salesInvoces = from d in db.TrnSalesInvoices where d.Id == Convert.ToInt32(id) select d; if (salesInvoces.Any()) { var updateSalesInvoice = salesInvoces.FirstOrDefault(); updateSalesInvoice.IsLocked = false; updateSalesInvoice.UpdatedById = userId; updateSalesInvoice.UpdatedDateTime = DateTime.Now; db.SubmitChanges(); if (updateSalesInvoice.IsLocked == true) { inventory.InsertSIInventory(Convert.ToInt32(id)); journal.insertSIJournal(Convert.ToInt32(id)); } else { inventory.deleteSIInventory(Convert.ToInt32(id)); journal.deleteSIJournal(Convert.ToInt32(id)); } return(Request.CreateResponse(HttpStatusCode.OK)); } else { return(Request.CreateResponse(HttpStatusCode.NotFound)); } } catch { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } }
public HttpResponseMessage updateSalesInvoice(String id, Models.TrnSalesInvoice sales) { try { var userId = (from d in db.MstUsers where d.UserId == User.Identity.GetUserId() select d.Id).SingleOrDefault(); var salesInvoices = from d in db.TrnSalesInvoices where d.Id == Convert.ToInt32(id) select d; if (salesInvoices.Any()) { Decimal PaidAmount = 0; var collectionLinesORId = from d in db.TrnCollectionLines where d.SIId == Convert.ToInt32(id) select d; if (collectionLinesORId.Any()) { Boolean collectionHeaderIsLocked = (from d in db.TrnCollections where d.Id == collectionLinesORId.First().ORId select d.IsLocked).SingleOrDefault(); var collectionLines = from d in db.TrnCollectionLines where d.SIId == Convert.ToInt32(id) select d; if (collectionLines.Any()) { if (collectionHeaderIsLocked == true) { PaidAmount = collectionLines.Sum(d => d.Amount); } } } var updateSalesInvoice = salesInvoices.FirstOrDefault(); updateSalesInvoice.BranchId = sales.BranchId; updateSalesInvoice.SINumber = sales.SINumber; updateSalesInvoice.SIDate = Convert.ToDateTime(sales.SIDate); updateSalesInvoice.CustomerId = sales.CustomerId; updateSalesInvoice.TermId = sales.TermId; updateSalesInvoice.DocumentReference = sales.DocumentReference; updateSalesInvoice.ManualSINumber = sales.ManualSINumber; updateSalesInvoice.Remarks = sales.Remarks; updateSalesInvoice.Amount = getAmountSalesInvoiceItem(Convert.ToInt32(id)); updateSalesInvoice.PaidAmount = PaidAmount; updateSalesInvoice.AdjustmentAmount = 0; updateSalesInvoice.BalanceAmount = getAmountSalesInvoiceItem(Convert.ToInt32(id)) - PaidAmount; updateSalesInvoice.SoldById = sales.SoldById; updateSalesInvoice.PreparedById = sales.PreparedById; updateSalesInvoice.CheckedById = sales.CheckedById; updateSalesInvoice.ApprovedById = sales.ApprovedById; updateSalesInvoice.IsLocked = true; updateSalesInvoice.UpdatedById = userId; updateSalesInvoice.UpdatedDateTime = DateTime.Now; db.SubmitChanges(); inventory.InsertSIInventory(Convert.ToInt32(id)); journal.insertSIJournal(Convert.ToInt32(id)); // Check for negative inventory bool foundNegativeQuantity = false; if (updateSalesInvoice.TrnSalesInvoiceItems.Any()) { foreach (var salesInvoiceItem in updateSalesInvoice.TrnSalesInvoiceItems) { if (salesInvoiceItem.MstArticle.IsInventory) { var mstArticleInventory = from d in db.MstArticleInventories where d.TrnSalesInvoiceItems.Contains(salesInvoiceItem) select d; if (mstArticleInventory.Any()) { if (salesInvoiceItem.MstArticleInventory.Quantity < 0) { foundNegativeQuantity = true; break; } } } } } if (!foundNegativeQuantity) { return(Request.CreateResponse(HttpStatusCode.OK)); } else { inventory.deleteSIInventory(Convert.ToInt32(id)); journal.deleteSIJournal(Convert.ToInt32(id)); updateSalesInvoice.IsLocked = false; db.SubmitChanges(); return(Request.CreateResponse(HttpStatusCode.BadRequest, "Negative Inventory Found!")); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "No Sales Invoice Found!")); } } catch (Exception e) { Debug.WriteLine(e); return(Request.CreateResponse(HttpStatusCode.BadRequest, "Internal Server Error!")); } }