Example #1
0
 public IHttpActionResult item_Supplied_to_Cart([FromBody] item_supplied_cart item_supplied_model)
 {
     try
     {
         if (item_supplied_model != null)
         {
             var supplier             = (item_supplied_model.supplier_id != null) ? db.supplier.Find(item_supplied_model.supplier_id) : null;
             var item                 = (item_supplied_model.item_id != null) ? db.product.Find(item_supplied_model.item_id) : null;
             item_supplied_cart model = new item_supplied_cart();
             model.supplier_id               = item_supplied_model.supplier_id;
             model.supplier                  = (supplier != null) ? supplier.supplier_name : null;
             model.item_id                   = item_supplied_model.item_id;
             model.item_name                 = (item != null) ? item.product_name : null;
             model.item_base_unit            = item_supplied_model.item_base_unit;
             model.qtySupplied               = item_supplied_model.qtySupplied;
             model.qty_denomination          = item_supplied_model.qty_denomination;
             model.qty_supplied_in_base_unit = item_supplied_model.qty_supplied_in_base_unit;
             model.s_r_v_no                  = item_supplied_model.s_r_v_no;
             model.unit_price                = item_supplied_model.unit_price;
             model.total_amount_per_item     = item_supplied_model.total_amount_per_item;
             model.supplied_date             = item_supplied_model.supplied_date;
             db.item_supplied_cart.Add(model);
             //check if cart is not null
             //and check if new cart_id matches the one earlier created
             //if yes, proceed to add item to cart, other reject item from cart
             var ct = db.item_supplied_cart.ToList();
             if (ct.Count > 0)
             {
                 var s_r_v_no_in_cart = db.item_supplied_cart.FirstOrDefault(m => m.s_r_v_no == model.s_r_v_no);
                 if (s_r_v_no_in_cart != null)
                 {
                     var item_in_cart     = db.item_supplied_cart.FirstOrDefault(i => i.item_id == model.item_id);
                     var supplier_in_cart = db.item_supplied_cart.FirstOrDefault(s => s.supplier_id == model.supplier_id);
                     if (item_in_cart != null)
                     {
                         return(Content(HttpStatusCode.BadRequest, " You cannot add '" + model.item_name + "' to cart more than once, Kindly delete and re-add in-order to make changes"));
                     }
                     if (supplier_in_cart == null)
                     {
                         return(Content(HttpStatusCode.BadRequest, "New item cannot be added to cart, because the supplier you selected is the different from the one currently been processed, kindly proceed to checkout the existing cart item or delete item(s) in cart"));
                     }
                     db.SaveChanges();
                     return(Ok(item_supplied_cart));
                 }
                 else
                 {
                     return(Content(HttpStatusCode.BadRequest, "New item cannot be added to cart, because the store requistion number is the different from the one currently been processed, kindly proceed to checkout the existing cart item or delete item(s) in cart."));
                 }
             }
             db.SaveChanges();
             return(Ok(item_supplied_cart));
         }
         return(BadRequest());
     }
     catch (Exception ex)
     {
         return(Content(HttpStatusCode.BadRequest, ex));
     }
 }
Example #2
0
 public HttpResponseMessage updateSupplies_in_Cart([FromBody] item_supplied_cart model)
 {
     // var logInUserName = RequestContext.Principal.Identity.Name;
     try
     {
         if (!string.IsNullOrEmpty(model.s_r_v_no) && !string.IsNullOrEmpty(model.supplier_id) && !string.IsNullOrEmpty(model.item_id) && model.qty_supplied_in_base_unit > 0)
         {
             //IDictionary<string, string> values = JsonConvert.DeserializeObject<IDictionary<string, string>>(data);
             string supplier_name = db.supplier.Find(model.supplier_id).supplier_name;
             var    p             = db.product.Find(model.item_id);
             var    ct            = db.item_supplied_cart.Find(model.id);
             if (ct != null)
             {
                 //  ulog.loguserActivities(logInUserName, "Update the details of Store supply item : '" + ct.product_name + "'");
                 ct.supplier                  = supplier_name;
                 ct.supplier_id               = model.supplier_id;
                 ct.item_id                   = model.item_id;
                 ct.item_name                 = p.product_name;
                 ct.qtySupplied               = model.qtySupplied;
                 ct.qty_denomination          = model.qty_denomination;
                 ct.qty_supplied_in_base_unit = model.qty_supplied_in_base_unit;
                 ct.item_base_unit            = model.item_base_unit;
                 ct.unit_price                = model.unit_price;
                 ct.total_amount_per_item     = model.total_amount_per_item;
                 ct.supplied_date             = model.supplied_date;
                 db.SaveChanges();
                 return(Request.CreateResponse(HttpStatusCode.OK, "cart has been updated successfully!"));
             }
             else
             {
                 // ulog.loguserActivities(logInUserName, "supplier details update fail");
                 return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "cart update fail"));
             }
         }
         //   ulog.loguserActivities(logInUserName, "supplier details update fail");
         return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "All Fields must be filled!"));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
Example #3
0
        public IHttpActionResult createSupplies([FromBody] item_supplied_cart model)
        {
            var logInUserName = RequestContext.Principal.Identity.Name;

            try
            {
                if (model.s_r_v_no != null)
                {
                    //IDictionary<string, string> values = JsonConvert.DeserializeObject<IDictionary<string, string>>(data);

                    var ct   = new Stock_In_Items();
                    var cart = db.item_supplied_cart.Where(c => c.s_r_v_no == model.s_r_v_no).ToList();
                    if (cart.Count() > 0)
                    {
                        foreach (var item in cart)
                        {
                            //ct.stock_id = string.Concat("ST-" + item.s_r_v_no);
                            ct.s_r_v_no                  = item.s_r_v_no;
                            ct.supplier_name             = item.supplier;
                            ct.supplier_id               = item.supplier_id;
                            ct.product_id                = item.item_id;
                            ct.product_name              = item.item_name;
                            ct.qty_supplied              = item.qtySupplied;
                            ct.qty_denomination          = item.qty_denomination;
                            ct.qty_supplied_in_base_unit = item.qty_supplied_in_base_unit;
                            ct.item_base_unit            = item.item_base_unit;
                            ct.unitPrice                 = item.unit_price;
                            ct.Amount = item.total_amount_per_item;
                            //ct.totalAmount += ct.Amount;
                            ct.supplied_date = DateTime.ParseExact(item.supplied_date, "d/M/yyyy", CultureInfo.InvariantCulture);
                            ct.Created_date  = DateTime.UtcNow.Date;
                            ct.Recieved_by   = logInUserName;
                            db.stock_in_items.Add(ct);
                            db.SaveChanges();
                            var p = db.product.Find(item.item_id);
                            if (p != null)
                            {
                                p.opening_stock_qty += item.qty_supplied_in_base_unit;
                                p.current_stock_pending_approval = p.opening_stock_qty - p.total_item_allocated_pending_approval;
                                db.SaveChanges();
                            }
                        }
                        foreach (var item in cart)
                        {                        // delete this item from cart
                            var ctItem = db.item_supplied_cart.Find(item.id);
                            db.item_supplied_cart.Remove(ctItem);
                            db.SaveChanges();
                        }
                        ulog.loguserActivities(logInUserName, "Newly supplied items added to store");
                        return(Ok(model.s_r_v_no));
                    }
                    else
                    {
                        // ulog.loguserActivities(logInUserName, "supplier details not registered");
                        return(Content(HttpStatusCode.NotFound, "supplied items not added to store."));
                    }
                }
                //ulog.loguserActivities(logInUserName, "supplier details not registered");
                return(Content(HttpStatusCode.NotFound, ""));
            }
            catch (DbEntityValidationException ex)
            {
                // Retrieve the error messages as a list of strings.
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }
        }