public string Init() { var GUID = TempData["GUID"]; string IsAmmendment = TempData["IsAmmendment"].ToString(); dynamic PO; if (GUID == null) { PO = new mst_PurchaseOrder(); PO.CrudStatus = "I"; //var fdhsj = db.GetPOByGuid("sdsff-dg"); } else { var _GUID = GUID.ToString(); var Check = db.mst_PurchaseOrder.Where(g => g.PO_GUID == _GUID).Select(s => new { s.StatusId, s.PO_ID }).FirstOrDefault(); if (IsAmmendment != "N" && Check.StatusId != 2) { return("Insecure request"); } PO = (from po in db.mst_PurchaseOrder where po.PO_GUID == _GUID select new { po.PO_ID, po.PO_GUID, po.PONO, po.CustomerId, po.PODate, po.DeliveryAddress, po.PurchaseOffice, po.ExpDeliveryDate, po.ActualDelDate, po.BuyFromBP, po.BuyFromOrder, po.AmendNo, po.AmendDate, po.AmendRemarks, po.StatusId, po.RefA, po.RefB, po.GSTN, po.Buyer, ParentId = IsAmmendment == "N" ? po.ParentId: Check.PO_ID, po.TotalAdvance, po.BalanceAdvance, po.GrandTotal, po.CreatedDt, po.CreatedBy, CrudStatus = IsAmmendment == "N"?"U":"I", DeletedPODetails = "", PurchaseOrderDetails = po.PurchaseOrderDetails.Select(s => new { s.PoDetailId, s.PO_ID, s.ProjectCode, s.ItemDescription, s.WBS, s.ItemCode, s.Quantity, s.UomId, s.ItemAdvance, s.BasicRate, s.BasicAmt, s.TotalBasic, s.IGSTorCGST, s.SGSTorUGST, s.OtherTax, s.IGSTorCGST_Amt, s.SGSTorUGST_Amt, s.OtherTax_Amt, s.HsnSacCode, s.ItemDelDate, s.Total, s.IsDelivered, CrudStatus = IsAmmendment == "N" ? "U" : "I" }), po.Customer.CompanyName, po.Customer.CompanyIdNo, po.Customer.LocAddress, po.Customer.Telephone }).FirstOrDefault(); } var TaxList = db.GetTaxList(); var Uoms = db.GetUoms(); var Customers = db.Customers.Select(s => new { s.CompanyName, s.CustomerId }).ToList(); var HsnCodes = db.HsnHacCodes.Select(s => new { s.HsnHacCodeId, s.Code }).ToList(); string[] detailArr = new string[1]; var details = (from d in detailArr select new { PO = PO, TaxList = TaxList, Uoms = Uoms, Customers = Customers, IsAmd = IsAmmendment, HsnCodes = HsnCodes }).FirstOrDefault(); return((Newtonsoft.Json.JsonConvert.SerializeObject(details, Newtonsoft.Json.Formatting.None, new Newtonsoft.Json.JsonSerializerSettings { ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore })).ToString()); }
//Created by and updated by should be included after login service is provided -Anand public string Save(mst_PurchaseOrder _paramPO, string status) { var Parent = db.mst_PurchaseOrder.Where(g => g.PO_ID == _paramPO.ParentId).FirstOrDefault(); if (Parent != null && Parent.StatusId != 2) { return("Request cannot be submitted."); } if (Parent != null) { _paramPO.AmendNo = (Parent.AmendNo == null?0:Parent.AmendNo) + 1; _paramPO.AmendDate = DateTime.Now; } if (_paramPO.CrudStatus == "I") { _paramPO.PO_GUID = Guid.NewGuid().ToString(); _paramPO.CreatedDt = DateTime.Now; if (status == "S") { _paramPO.StatusId = 2; } else { _paramPO.StatusId = 1; } db.mst_PurchaseOrder.Add(_paramPO); } else { var oldPO = (from po in db.mst_PurchaseOrder where po.PO_GUID == _paramPO.PO_GUID select po).FirstOrDefault(); _paramPO.UpdatedDt = DateTime.Now; if (status == "S") { if (oldPO.AmendNo == null || oldPO.AmendNo == 0) { _paramPO.AmendNo = 1; } else { _paramPO.AmendNo = oldPO.AmendNo + 1; } _paramPO.AmendDate = DateTime.Now; _paramPO.StatusId = 2; } else { _paramPO.StatusId = 1; } db.Entry <mst_PurchaseOrder>(oldPO).CurrentValues.SetValues(_paramPO); foreach (var item in oldPO.PurchaseOrderDetails) { if (item.CrudStatus == "I") { db.PurchaseOrderDetails.Add(item); } else { var oldPODetail = db.PurchaseOrderDetails.Find(item.PoDetailId); db.Entry <PurchaseOrderDetail>(oldPODetail).CurrentValues.SetValues(item); } } if (_paramPO.DeletedPODetails != null) { if (_paramPO.DeletedPODetails.Count > 0) { foreach (var item in _paramPO.DeletedPODetails) { var oldPODetail = db.PurchaseOrderDetails.Find(item.PoDetailId); db.PurchaseOrderDetails.Remove(oldPODetail); } } } } if (Parent != null) { Parent.IsAmmended = true; db.Entry <mst_PurchaseOrder>(Parent).State = System.Data.Entity.EntityState.Modified; } try { db.SaveChanges(); return("S"); } catch (Exception e) { return("E"); } }