// POST: api/DeliveryNote public string Post(HttpRequestMessage value) { try { Model.Delivery_Note dn = new Model.Delivery_Note(); string message = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5); JObject json = JObject.Parse(message); JArray parts = (JArray)json["details"]; int key = db.Delivery_Note.Count() == 0 ? 1 : (from t in db.Delivery_Note orderby t.Delivery_Note_ID descending select t.Delivery_Note_ID).First() + 1; dn.Delivery_Note_ID = key; dn.Delivery_Note_Date = (DateTime)json["Delivery_Note_Date"]; dn.Client_Order_ID = (int)json["Client_Order_ID"]; string action = (string)json["action"]; db.Delivery_Note.Add(dn); foreach (JObject part in parts) { Delivery_Note_Details cod = new Delivery_Note_Details(); cod.Quantity_Delivered = (int)part["Quantity_Delivered"]; cod.Delivery_Note_ID = key; cod.Client_Order_Detail_ID = (int)part["Client_Order_Detail_ID"]; Client_Order_Detail cod2 = new Client_Order_Detail(); cod2 = (from d in db.Client_Order_Detail where d.Client_Order_Detail_ID == cod.Client_Order_Detail_ID select d).First(); cod2.Quantity_Delivered += cod.Quantity_Delivered; db.Delivery_Note_Details.Add(cod); } if (action == "email") { Client_Contact_Person_Detail cl = new Client_Contact_Person_Detail(); string to = (string)json["email"]; string subject = "WME Delivery Note #" + key; String orderDate = dn.Delivery_Note_Date.ToShortDateString(); string body = "Walter Meano Engineering Delivery Note #" + key + "\nThe delivery note was generated on " + orderDate + "\n\nItems delivered:\n"; foreach (JObject part in parts) { body += (string)part["Part_Type_Name"] + "\t\tx" + (int)part["Quantity_Delivered"] + "\n"; } Email.SendEmail(to, subject, body); } db.SaveChanges(); return("true|Delivery Note #" + key + " successfully added.|" + key); } catch (Exception e) { ExceptionLog.LogException(e, "DeliveryNoteController POST"); return("false|An error has occured adding the Delivery Note to the system."); } }
// POST: api/CustomerOrder public string Post(HttpRequestMessage value) { // try // { Model.Client_Order co = new Model.Client_Order(); string message = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5); JObject json = JObject.Parse(message); JObject orderDetails = (JObject)json["client"]; JArray parts = (JArray)orderDetails["details"]; string todo = (string)json["action"]; int key = db.Client_Order.Count() == 0 ? 1 : (from t in db.Client_Order orderby t.Client_Order_ID descending select t.Client_Order_ID).First() + 1; co.Client_Order_ID = key; co.Date = (DateTime)orderDetails["Date"]; co.Reference_ID = (string)orderDetails["Reference_ID"]; co.Contact_ID = (int)orderDetails["Contact_ID"]; co.Client_ID = (int)orderDetails["Client_ID"]; co.Settlement_Discount_Rate = (double)orderDetails["Settlement_Discount_Rate"]; co.Client_Order_Type_ID = (int)orderDetails["Client_Order_Type_ID"]; co.Client_Order_Status_ID = 1; co.Settlement_Discount_Rate = (double)orderDetails["Settlement_Discount_Rate"]; co.Delivery_Method_ID = (int)orderDetails["Delivery_Method_ID"]; co.VAT_Inclu = Convert.ToBoolean((string)orderDetails["VAT_Inclu"]); co.Comment = (string)orderDetails["Comment"]; string errorString = "false|"; bool error = false; if ((from t in db.Client_Order where t.Reference_ID == co.Reference_ID select t).Count() != 0) { error = true; errorString += "The Customer Order Reference entered already exists on the system. "; } if (error) { return(errorString); } Job_Card jc = new Job_Card(); int job_key = db.Job_Card.Count() == 0 ? 1 : (from t in db.Job_Card orderby t.Job_Card_ID descending select t.Job_Card_ID).First() + 1; jc.Job_Card_ID = job_key; jc.Job_Card_Date = (DateTime)orderDetails["Date"]; jc.Job_Card_Status_ID = 1; jc.Job_Card_Priority_ID = 1; co.Job_Card_ID = job_key; db.Client_Order.Add(co); db.Job_Card.Add(jc); db.SaveChanges(); int detail_key = db.Job_Card_Detail.Count() == 0 ? 1 : (from t in db.Job_Card_Detail orderby t.Job_Card_Details_ID descending select t.Job_Card_Details_ID).First() + 1; int co_key = db.Client_Order_Detail.Count() == 0 ? 1 : (from t in db.Client_Order_Detail orderby t.Client_Order_Detail_ID descending select t.Client_Order_Detail_ID).First() + 1; foreach (JObject part in parts) { Client_Order_Detail cqd = new Client_Order_Detail(); cqd.Part_Type_ID = (int)part["Part_Type_ID"]; cqd.Quantity = (int)part["Quantity"]; cqd.Quantity_Delivered = 0; cqd.Part_Price = (decimal)part["Part_Price"]; cqd.Client_Discount_Rate = (double)part["Client_Discount_Rate"]; cqd.Client_Order_ID = key; cqd.Client_Order_Detail_ID = co_key; co_key++; db.Client_Order_Detail.Add(cqd); Job_Card_Detail jcd = new Job_Card_Detail(); jcd.Job_Card_Details_ID = detail_key; detail_key++; jcd.Part_Type_ID = (int)part["Part_Type_ID"]; jcd.Job_Card_ID = job_key; jcd.Non_Manual = false; jcd.Quantity = (int)part["Quantity"]; db.Job_Card_Detail.Add(jcd); db.SaveChanges(); //2. Handle child dependencies checkForChildren(jcd.Part_Type_ID, jcd.Quantity, job_key, "Ordering"); generateUniqueParts(jcd.Quantity, jcd.Part_Type_ID, 0, detail_key - 1, "Ordering"); } db.SaveChanges(); if (todo == "email") { Client_Contact_Person_Detail cl = new Client_Contact_Person_Detail(); cl = (from p in db.Client_Contact_Person_Detail where p.Contact_ID == co.Contact_ID select p).First(); string to = cl.Email_Address; string subject = "WME Order #" + key; String orderDate = co.Date.ToShortDateString(); string body = "Walter Meano Engineering Order #" + key + "\nThe order was placed on " + orderDate + "\n\nItems on Order:\n"; foreach (JObject part in parts) { Part_Type pt = new Part_Type(); int part_id = (int)part["Part_Type_ID"]; pt = (from p in db.Part_Type where p.Part_Type_ID == part_id select p).First(); body += pt.Abbreviation + " - " + pt.Name + "\t\tx" + (int)part["Quantity"] + "\tR " + (decimal)part["Part_Price"] + " per unit\n"; } Email.SendEmail(to, subject, body); } return("true|Order #" + key + " has been placed."); /* var return_message = sendSms((int)orderDetails["Contact_ID"], key); * * return return_message; * } * catch(Exception e) * { * ExceptionLog.LogException(e, "CustomerOrderController POST"); * return "false|An error has occured adding the Customer Order to the system."; * }*/ }