コード例 #1
0
        // 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.");
            }
        }
コード例 #2
0
        // 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.";
             *   }*/
        }