Esempio n. 1
0
        // PUT: api/Component/5
        public string Put(int id, HttpRequestMessage value)
        {
            try
            {
                Component component = new Component();
                component = (from p in db.Components
                             where p.Component_ID == id
                             select p).First();

                string  message         = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5);
                JObject json            = JObject.Parse(message);
                JObject cmpDetails      = (JObject)json["component"];
                JArray  supplierDetails = (JArray)json["suppliers"];

                component.Quantity    = (int)cmpDetails["Quantity"];
                component.Unit_Price  = (decimal)cmpDetails["Unit_Price"];
                component.Description = (string)cmpDetails["Description"];
                component.Dimension   = (string)cmpDetails["Dimension"];
                component.Name        = (string)cmpDetails["Name"];
                component.Min_Stock   = (int)cmpDetails["Min_Stock"];

                string errorString = "false|";
                bool   error       = false;

                if ((from t in db.Components
                     where t.Name == component.Name && t.Component_ID != id
                     select t).Count() != 0)
                {
                    error        = true;
                    errorString += "The Component name entered already exists on the system. ";
                }

                if (error)
                {
                    return(errorString);
                }

                db.Component_Supplier.RemoveRange(db.Component_Supplier.Where(x => x.Component_ID == id));

                foreach (JObject supplier in supplierDetails)
                {
                    Component_Supplier cs = new Component_Supplier();
                    cs.Component_ID = id;
                    cs.Supplier_ID  = (int)supplier["Supplier_ID"];
                    cs.is_preferred = Convert.ToBoolean(Convert.ToInt32(supplier["Is_Prefered"]));
                    cs.unit_price   = (decimal)supplier["unit_price"];

                    db.Component_Supplier.Add(cs);
                }

                db.SaveChanges();
                return("true|Component successfully updated.");
            }
            catch (Exception e)
            {
                ExceptionLog.LogException(e, "ComponentController PUT");
                return("false|An error has occured updating the Component on the system.");
            }
        }
        // PUT: api/Supplier/5
        public string Put(int id, HttpRequestMessage value)
        {
            try
            {
                Model.Supplier supplier = new Model.Supplier();
                supplier = (from p in db.Suppliers
                            where p.Supplier_ID == id
                            select p).First();

                string  message            = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5);
                JObject json               = JObject.Parse(message);
                JObject supplierDetails    = (JObject)json["supplier"];
                JArray  componentDetails   = (JArray)json["components"];
                JArray  partTypeDetails    = (JArray)json["parts"];
                JArray  RawMaterialDetails = (JArray)json["raw"];

                supplier.Name                = (string)supplierDetails["Name"];
                supplier.Address             = (string)supplierDetails["Address"];
                supplier.City                = (string)supplierDetails["City"];
                supplier.Zip                 = (string)supplierDetails["Zip"];
                supplier.Bank_Account_Number = (string)supplierDetails["Bank_Account_Number"];
                supplier.Bank_Branch         = (string)supplierDetails["Bank_Branch"];
                supplier.Bank_Name           = (string)supplierDetails["Bank_Name"];
                supplier.Email               = (string)supplierDetails["Email"];
                supplier.Contact_Number      = (string)supplierDetails["Contact_Number"];
                supplier.Status              = Convert.ToBoolean(supplierDetails["Status"]);
                supplier.Province_ID         = (int)supplierDetails["Province_ID"];
                supplier.Bank_Reference      = (string)supplierDetails["Bank_Reference"];
                supplier.Contact_Name        = (string)supplierDetails["Contact_Name"];
                supplier.Foreign_Bank        = Convert.ToBoolean(supplierDetails["Foreign_Bank"]);

                string errorString = "false|";
                bool   error       = false;

                if ((from t in db.Suppliers
                     where t.Name == supplier.Name && t.Supplier_ID != id
                     select t).Count() != 0)
                {
                    error        = true;
                    errorString += "The Supplier name entered already exists on the system. ";
                }

                if ((from t in db.Suppliers
                     where t.Contact_Name == supplier.Contact_Name && t.Supplier_ID != id
                     select t).Count() != 0)
                {
                    error        = true;
                    errorString += "The Contact Name entered already exists on the system. ";
                }

                if ((from t in db.Suppliers
                     where t.Email == supplier.Email && t.Supplier_ID != id
                     select t).Count() != 0)
                {
                    error        = true;
                    errorString += "The Contact Email entered already exists on the system. ";
                }

                if ((from t in db.Suppliers
                     where t.Contact_Number == supplier.Contact_Number && t.Supplier_ID != id
                     select t).Count() != 0)
                {
                    error        = true;
                    errorString += "The Contact Number entered already exists on the system. ";
                }

                if ((from t in db.Suppliers
                     where (t.Address == supplier.Address && t.City == supplier.City && t.Zip == supplier.Zip) && t.Supplier_ID != id
                     select t).Count() != 0)
                {
                    error        = true;
                    errorString += "The Supplier Address entered already exists on the system. ";
                }

                if ((from t in db.Suppliers
                     where (t.Bank_Account_Number == supplier.Bank_Account_Number && t.Bank_Branch == supplier.Bank_Branch) && t.Supplier_ID != id
                     select t).Count() != 0)
                {
                    error        = true;
                    errorString += "The Supplier Banking details entered already exists on the system. ";
                }

                if (error)
                {
                    return(errorString);
                }

                db.Component_Supplier.RemoveRange(db.Component_Supplier.Where(x => x.Supplier_ID == id));

                if (componentDetails != null)
                {
                    foreach (JObject comp in componentDetails)
                    {
                        Component_Supplier cs = new Component_Supplier();
                        cs.Component_ID = (int)comp["Component_ID"];
                        cs.Supplier_ID  = id;
                        cs.is_preferred = Convert.ToBoolean(Convert.ToInt32(comp["Is_Prefered"]));
                        cs.unit_price   = (decimal)comp["unit_price"];

                        db.Component_Supplier.Add(cs);
                    }
                }

                db.Part_Supplier.RemoveRange(db.Part_Supplier.Where(x => x.Supplier_ID == id));

                if (partTypeDetails != null)
                {
                    foreach (JObject part in partTypeDetails)
                    {
                        Part_Supplier ps = new Part_Supplier();
                        ps.Part_Type_ID = (int)part["Part_Type_ID"];
                        ps.Supplier_ID  = id;
                        ps.Is_Prefered  = Convert.ToBoolean(Convert.ToInt32(part["Is_Prefered"]));
                        ps.unit_price   = (decimal)part["unit_price"];

                        db.Part_Supplier.Add(ps);
                    }
                }

                db.Raw_Material_Supplier.RemoveRange(db.Raw_Material_Supplier.Where(x => x.Supplier_ID == id));

                if (RawMaterialDetails != null)
                {
                    foreach (JObject raw in RawMaterialDetails)
                    {
                        Raw_Material_Supplier rms = new Raw_Material_Supplier();
                        rms.Raw_Material_ID = (int)raw["Raw_Material_ID"];
                        rms.Supplier_ID     = id;
                        rms.Is_Prefered     = Convert.ToBoolean(Convert.ToInt32(raw["Is_Prefered"]));
                        rms.unit_price      = (decimal)raw["unit_price"];

                        db.Raw_Material_Supplier.Add(rms);
                    }
                }

                db.SaveChanges();
                return("true|Supplier successfully updated.");
            }
            catch (Exception e)
            {
                ExceptionLog.LogException(e, "SupplierController PUT");
                return("false|An error has occured updating the Suplier on the system.");
            }
        }
        // POST: api/SupplierQuote
        public string Post(HttpRequestMessage value)
        {
            try
            {
                Model.Supplier_Quote supplier = new Model.Supplier_Quote();

                string  message            = HttpContext.Current.Server.UrlDecode(value.Content.ReadAsStringAsync().Result).Substring(5);
                JObject json               = JObject.Parse(message);
                JObject supplierDetails    = (JObject)json["quote"];
                JArray  componentDetails   = (JArray)json["components"];
                JArray  partTypeDetails    = (JArray)json["parts"];
                JArray  RawMaterialDetails = (JArray)json["raw"];

                int key = db.Supplier_Quote.Count() == 0 ? 1 : (from t in db.Supplier_Quote
                                                                orderby t.Supplier_Quote_ID descending
                                                                select t.Supplier_Quote_ID).First() + 1;

                supplier.Supplier_Quote_ID          = key;
                supplier.Supplier_Quote_Serial      = (string)supplierDetails["Supplier_Quote_Reference"];
                supplier.Supplier_Quote_Date        = (DateTime)supplierDetails["Supplier_Quote_Date"];
                supplier.Supplier_ID                = (int)supplierDetails["Supplier_ID"];
                supplier.Supplier_Quote_Expiry_Date = (DateTime)supplierDetails["Supplier_Quote_Expiry_Date"];

                db.Supplier_Quote.Add(supplier);

                if (componentDetails != null)
                {
                    foreach (JObject comp in componentDetails)
                    {
                        Supplier_Quote_Component cs = new Supplier_Quote_Component();
                        cs.Component_ID       = (int)comp["Component_ID"];
                        cs.Supplier_Quote_ID  = key;
                        cs.Quantity_Requested = (int)comp["Quantity"];
                        cs.Price = (decimal)comp["Price"];

                        Component_Supplier comp2 = new Component_Supplier();
                        comp2 = (from d in db.Component_Supplier
                                 where d.Supplier_ID == supplier.Supplier_ID && d.Component_ID == cs.Component_ID
                                 select d).First();
                        comp2.unit_price = cs.Price;

                        db.Supplier_Quote_Component.Add(cs);
                    }
                }

                if (partTypeDetails != null)
                {
                    foreach (JObject part in partTypeDetails)
                    {
                        Supplier_Quote_Detail_Part ps = new Supplier_Quote_Detail_Part();
                        ps.Part_Type_ID      = (int)part["Part_Type_ID"];
                        ps.Supplier_Quote_ID = key;
                        ps.Quantity          = (int)part["Quantity"];
                        ps.Price             = (decimal)part["Price"];

                        Part_Supplier part2 = new Part_Supplier();
                        part2 = (from d in db.Part_Supplier
                                 where d.Supplier_ID == supplier.Supplier_ID && d.Part_Type_ID == ps.Part_Type_ID
                                 select d).First();
                        part2.unit_price = ps.Price;

                        db.Supplier_Quote_Detail_Part.Add(ps);
                    }
                }

                if (RawMaterialDetails != null)
                {
                    foreach (JObject raw in RawMaterialDetails)
                    {
                        Supplier_Quote_Detail_Raw_Material rms = new Supplier_Quote_Detail_Raw_Material();
                        rms.Raw_Material_ID   = (int)raw["Raw_Material_ID"];
                        rms.Supplier_Quote_ID = key;
                        rms.Quantity          = (int)raw["Quantity"];
                        rms.Price             = (decimal)raw["Price"];
                        rms.Dimension         = (string)raw["Dimension"];

                        Raw_Material_Supplier raw2 = new Raw_Material_Supplier();
                        raw2 = (from d in db.Raw_Material_Supplier
                                where d.Supplier_ID == supplier.Supplier_ID && d.Raw_Material_ID == rms.Raw_Material_ID
                                select d).First();
                        raw2.unit_price = rms.Price;

                        db.Supplier_Quote_Detail_Raw_Material.Add(rms);
                    }
                }

                db.SaveChanges();

                return("true|Supplier Quote #" + key + " successfully added.");
            }
            catch (Exception e)
            {
                ExceptionLog.LogException(e, "SupplierQuoteController POST");
                return("false|An error has occured adding the Supplier Quote to the system.");
            }
        }