Example #1
0
        public HttpResponseMessage Get(string token, string start, string end)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    string[] startPart = start.Split('-');
                    DateTime startDate = new DateTime(Int32.Parse(startPart[0])
                                                      , Int32.Parse(startPart[1])
                                                      , Int32.Parse(startPart[2])
                                                      , Int32.Parse(startPart[3])
                                                      , Int32.Parse(startPart[4])
                                                      , Int32.Parse(startPart[5]));
                    string[] endPart = end.Split('-');
                    DateTime endDate = new DateTime(Int32.Parse(endPart[0])
                                                    , Int32.Parse(endPart[1])
                                                    , Int32.Parse(endPart[2])
                                                    , Int32.Parse(endPart[3])
                                                    , Int32.Parse(endPart[4])
                                                    , Int32.Parse(endPart[5]));

                    if (session != null)
                    {
                        //Validate storeID and FakturiID
                        var data = database.Fakturies.Where(x => (x.Date <= endDate) && (x.Date >= startDate) && (x.StoreID == session.StoreID)).ToList();
                        //le agrego la lista de c/u
                        data.ForEach(
                            x => x.Items = database.FakturiArticles.Where(y => y.FakturiID == x.ID).ToList()
                            );

                        if (data != null)
                        {
                            //Save last  update
                            session.LastUpdate = DateTime.Now;
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.OK, data);
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.NotFound, "Fakturi not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #2
0
        // DELETE: api/Menu/5
        // DELETE
        public HttpResponseMessage Delete(int id, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        Menu menu = database.Menues.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (menu == null)
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                               "Menu with Id = " + id.ToString() + " not found to delete"));
                        }
                        else
                        {
                            database.Menues.Remove(menu);
                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "DELETE MENU",
                                Date     = DateTime.Now
                            });

                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Delete Success");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbUpdateException dbEx)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #3
0
        // GET: api/Store/5
        //READ
        //It should have permissions
        public HttpResponseMessage GetCompanyUsers(string token, int companyID)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);


                    var SessionUser = database.Users.FirstOrDefault(x => x.ID == session.UserID);

                    if (session != null)
                    {
                        if (SessionUser.UserLevel.ToLower() == "admin")
                        {
                            //Validate storeID and UserID
                            List <User> userList = database.Users.Where(x => (x.CompanyID == companyID)).ToList();
                            if (userList != null)
                            {
                                //Save last  update
                                session.LastUpdate = DateTime.Now;
                                database.SaveChanges();

                                var message = Request.CreateResponse(HttpStatusCode.OK, userList);
                                return(message);
                            }
                            else
                            {
                                var message = Request.CreateResponse(HttpStatusCode.NotFound, "Users not found");
                                return(message);
                            }
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "You don't have privileges");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #4
0
        // POST: api/Company
        //CREATE
        public HttpResponseMessage Post([FromBody] Company Company)
        {
            string errorStatus = " ";

            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();

                    errorStatus += " Before Find similar Company || ";
                    var currentCompany = database.Companies.ToList().FirstOrDefault(x => x.Name == Company.Name);
                    if (currentCompany != null)
                    {
                        database.SaveChanges();
                        var message = Request.CreateResponse(HttpStatusCode.OK, "There is a Company with this name");
                        return(message);
                    }
                    else
                    {
                        database.Companies.Add(Company);

                        errorStatus += " Before adding in the db || ";
                        database.SaveChanges();

                        var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex + " || " + errorStatus));
            }
        }
Example #5
0
        // GET: api/Shift
        public HttpResponseMessage Get(string token, string period)
        {
            try
            {
                string[] dPart = period.Split('-');
                DateTime date  = new DateTime(Int32.Parse(dPart[0])
                                              , Int32.Parse(dPart[1])
                                              , Int32.Parse(dPart[2])
                                              , Int32.Parse(dPart[3])
                                              , Int32.Parse(dPart[4])
                                              , Int32.Parse(dPart[5]));
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Validate storeID and ShiftID
                        var data = database.Shifts.ToList().Where(x => (x.TimeStart <= date) && (x.TimeEnd >= date) && (x.StoreID == session.StoreID));
                        if (data != null)
                        {
                            //Save last  update
                            session.LastUpdate = DateTime.Now;
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.OK, data);
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.NotFound, "Shift not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #6
0
 //GET
 //api/Session/
 public HttpResponseMessage GetAll(string token)
 {
     try
     {
         using (CompanyPosDBContext database = new CompanyPosDBContext())
         {
             SessionController sessionController = new SessionController();
             Session           session           = sessionController.Autenticate(token);
             if (session != null)
             {
                 var SessionUser = database.Users.FirstOrDefault(x => x.ID == session.UserID);
                 if (SessionUser.UserLevel.ToLower() == "admin")
                 {
                     var sessionList = database.Sessions.ToList();
                     var message     = Request.CreateResponse(HttpStatusCode.OK, sessionList);
                     return(message);
                 }
                 else
                 {
                     return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "You don't have privileges"));
                 }
             }
             else
             {
                 return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session"));
             }
         }
     }
     catch (DbEntityValidationException dbEx)
     {
         foreach (var validationErrors in dbEx.EntityValidationErrors)
         {
             foreach (var validationError in validationErrors.ValidationErrors)
             {
                 Trace.TraceInformation("Property: {0} Error: {1}",
                                        validationError.PropertyName,
                                        validationError.ErrorMessage);
             }
         }
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
     }
 }
Example #7
0
        public HttpResponseMessage Get(string token, string InvoiceNumber, bool active = true)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Validate storeID and FakturiID
                        var data = database.Fakturies.ToList().FirstOrDefault(x => (x.InvoiceNumber == InvoiceNumber) &&
                                                                              (x.StoreID == session.StoreID));

                        //le agrego la lista de c/u
                        data.Items = database.FakturiArticles.Where(y => y.FakturiID == data.ID).ToList();

                        if (data != null)
                        {
                            data.Items = database.FakturiArticles.Where(x => x.FakturiID == data.ID).ToList();
                            //Save last  update
                            session.LastUpdate = DateTime.Now;
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.OK, data);
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.NotFound, "Fakturi not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #8
0
        // GET: api/Store/5
        //READ
        public HttpResponseMessage Get(string token, int id)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        var SessionUser = database.Users.FirstOrDefault(x => x.ID == session.UserID);

                        //Validate storeID and UserID
                        User user = database.Users.ToList().FirstOrDefault(x => (x.ID == id) &&
                                                                           ((x.StoreID == session.StoreID) || ((SessionUser.Type.ToLower() == "owner") && SessionUser.CompanyID == x.CompanyID))
                                                                           );
                        if (user != null)
                        {
                            //Save last  update
                            session.LastUpdate = DateTime.Now;

                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.OK, user);
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.NotFound, "User not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #9
0
        //// GET: api/Products
        //public IQueryable<Category> GetCategories()
        //{
        //	using (CompanyPosDBContext database = new CompanyPosDBContext())
        //	{
        //		return database.Categories;
        //	}
        //}

        // GET: api/Category
        public HttpResponseMessage Get(string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Validate storeID and CategoryID
                        var data = database.Categories.ToList().Where(x => (x.StoreID == session.StoreID));

                        if (data != null)
                        {
                            //Save last  update
                            session.LastUpdate = DateTime.Now;
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.OK, data);
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.NotFound, "Category not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #10
0
        // GET: api/ProductAmount/5
        public HttpResponseMessage Get(string token, int id)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Validate storeID
                        var ProductAmount = database.ProductAmounts.FirstOrDefault(x => (x.ID == id) && (x.StoreID == session.StoreID));

                        if (ProductAmount != null)
                        {
                            //Save last  update
                            session.LastUpdate = DateTime.Now;
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.OK, ProductAmount);
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.NotFound, "ProductAmount not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #11
0
        //// GET: api/Store
        //public HttpResponseMessage Get()
        //{
        //	try
        //	{
        //		using (CompanyPosDBContext database = new CompanyPosDBContext())
        //		{
        //			List<Store> storeList = database.Stores.ToList();

        //			if (storeList != null)
        //			{
        //				var message = Request.CreateResponse(HttpStatusCode.OK, storeList);
        //				return message;
        //			}
        //			else
        //			{
        //				var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
        //				return message;
        //			}
        //		}
        //	}
        //	catch (Exception ex)
        //	{
        //		return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
        //	}
        //}

        // GET: api/Store/5
        public HttpResponseMessage GetRead(string token, int id)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        Store store = database.Stores.ToList().FirstOrDefault(x => (x.ID == id));
                        if (store != null)
                        {
                            //Save last  update
                            session.LastUpdate = DateTime.Now;

                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.OK, store);
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.NoContent, "No asociated Store");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #12
0
        // GET: api/Company/
        //public HttpResponseMessage GetAll()
        //{
        //	try
        //	{
        //		using (CompanyPosDBContext database = new CompanyPosDBContext())
        //		{
        //			//Validate storeID and CompanyID
        //			var data = database.Companies.ToList();
        //			if (data != null)
        //			{
        //				var message = Request.CreateResponse(HttpStatusCode.OK, data);
        //				return message;
        //			}
        //			else
        //			{
        //				var message = Request.CreateResponse(HttpStatusCode.NotFound, "Companies not found");
        //				return message;
        //			}
        //		}
        //	}
        //	catch (Exception ex)
        //	{
        //		return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
        //	}
        //}

        // GET: api/Company/5
        public HttpResponseMessage GetCompany(int id, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);
                    if (session != null)
                    {
                        var SessionUser = database.Users.FirstOrDefault(x => x.ID == session.UserID);
                        if (SessionUser.UserLevel.ToLower() == "admin")
                        {
                            //Validate storeID and CompanyID
                            var data = database.Companies.ToList().FirstOrDefault(x => (x.Id == id));
                            if (data != null)
                            {
                                return(Request.CreateResponse(HttpStatusCode.OK, data));
                            }
                            else
                            {
                                return(Request.CreateResponse(HttpStatusCode.NotFound, "Company not found"));
                            }
                        }
                        else
                        {
                            return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "You don't have privileges"));
                        }
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session"));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #13
0
        // POST: api/Category
        //CREATE
        public HttpResponseMessage Post([FromBody] Category Category, string token)
        {
            string errorStatus = " ";

            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();

                    errorStatus += " Before Atutentication || ";
                    Session session = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        errorStatus += " Before Find similar category || ";
                        var currentCategory = database.Categories.ToList().FirstOrDefault(x => x.Name.ToLower().Trim() == Category.Name.ToLower().Trim() && (x.StoreID == session.StoreID));
                        if (currentCategory != null)
                        {
                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "There is a Category with this name");
                            return(message);
                        }
                        else
                        {
                            Category.StoreID = session.StoreID;
                            database.Categories.Add(Category);
                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE Category"
                                ,
                                Date = DateTime.Now
                            });

                            errorStatus += " Before adding in the db || ";
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex + " || " + errorStatus));
            }
        }
Example #14
0
        // POST: api/Invoice
        //CREATE
        public HttpResponseMessage Post(int saleId, [FromBody] Invoice Invoice, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentInvoice = database.Invoices.ToList().FirstOrDefault(x => (x.SaleID == saleId) && (x.StoreID == session.StoreID));
                        if (currentInvoice != null)
                        {
                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "There is a Invoice with this name");
                            return(message);
                        }
                        else
                        {
                            if (!(database.Invoices.Any(x => x.SaleID == saleId && x.StoreID == session.StoreID)))
                            {
                                if ((database.Sales.Any(x => x.ID == saleId)))
                                {
                                    if (Invoice.Date == null)
                                    {
                                        return(Request.CreateResponse(HttpStatusCode.OK, "Date not found." + Invoice.errorMessage));
                                    }

                                    Invoice.StoreID = session.StoreID;
                                    Invoice.SaleID  = saleId;

                                    database.Invoices.Add(Invoice);
                                    //SAVE ACTIVITY
                                    database.UserActivities.Add(new UserActivity()
                                    {
                                        StoreID = session.StoreID
                                        ,
                                        UserID = session.UserID
                                        ,
                                        Activity = "CREATE Invoice",
                                        Date     = DateTime.Now
                                    });


                                    database.SaveChanges();

                                    return(Request.CreateResponse(HttpStatusCode.Created, "Create Success"));
                                }
                                else
                                {
                                    return(Request.CreateResponse(HttpStatusCode.OK, "Sale not found."));
                                }
                            }
                            else
                            {
                                return(Request.CreateResponse(HttpStatusCode.OK, "Sale has already an Invoice"));
                            }
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (System.FormatException ex)
            {
                var message = Request.CreateResponse(HttpStatusCode.BadRequest, @"Bad Datetime format, it must be (YYYY-DD-MM-hh-mm-ss)");
                return(message);
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #15
0
        // PUT: api/Invoice/5
        //UPDATE
        public HttpResponseMessage Put(int id, [FromBody] Invoice Invoice, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentInvoice = database.Invoices.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (currentInvoice != null)
                        {
                            currentInvoice.PaymentMethod = Invoice.PaymentMethod;

                            if (Invoice.Date == null)
                            {
                                return(Request.CreateResponse(HttpStatusCode.OK, "Date not found."));
                            }

                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "UPDATE Invoice",
                                Date     = DateTime.Now
                            });

                            //update sale



                            database.SaveChanges();
                            return(Request.CreateResponse(HttpStatusCode.OK, "Update Success"));
                        }
                        else
                        {
                            return(Request.CreateResponse(HttpStatusCode.OK, "Invoice Not found"));
                        }
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session"));
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #16
0
        // POST: api/Item (CREATE)
        public HttpResponseMessage Post([FromBody] Item Item, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentItem = database.Items.ToList().FirstOrDefault(x => x.Name == Item.Name && (x.StoreID == session.StoreID));
                        if (currentItem != null)
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "There is a Item with this name");
                            return(message);
                        }
                        else
                        {
                            var category = database.Categories.FirstOrDefault(x => (x.StoreID == session.StoreID) && (x.ID == Item.CategoryID));

                            //check existing categories
                            if (category != null)
                            {
                                Item.StoreID = session.StoreID;
                                database.Items.Add(Item);
                                //SAVE ACTIVITY
                                database.UserActivities.Add(new UserActivity()
                                {
                                    StoreID = session.StoreID
                                    ,
                                    UserID = session.UserID
                                    ,
                                    Activity = "CREATE Item",
                                    Date     = DateTime.Now
                                });
                                database.SaveChanges();
                                var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                                return(message);
                            }
                            else
                            {
                                var message = Request.CreateResponse(HttpStatusCode.OK, "Category not found");
                                return(message);
                            }
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #17
0
        // PUT: api/Item/5 (UPDATE)
        public HttpResponseMessage Put(int id, [FromBody] Item Item, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentItem = database.Items.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (currentItem != null)
                        {
                            currentItem.Name          = Item.Name;
                            currentItem.UnitPrice     = Item.UnitPrice;
                            currentItem.CategoryID    = Item.CategoryID;
                            currentItem.Description   = Item.Description;
                            currentItem.ActiveForSale = Item.ActiveForSale;
                            currentItem.Color         = Item.Color ?? currentItem.Color;
                            currentItem.Tax           = Item.Tax;
                            currentItem.On            = Item.On;
                            currentItem.Cost          = Item.Cost;
                            currentItem.AttributesOn  = Item.AttributesOn;

                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE Item",
                                Date     = DateTime.Now
                            });

                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Update Success");
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Item Not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #18
0
        // PUT: api/User/5
        //UPDATE
        public HttpResponseMessage Put(string uuid, [FromBody] User user, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        if (user.UUID == null || user.UUID.Trim().Equals(""))
                        {
                            return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "UUID not specified"));
                        }
                        var currentCompanyID = database.Stores.FirstOrDefault(x => x.ID == session.StoreID);
                        //Save last  update
                        session.LastUpdate = DateTime.Now;
                        var currentUser = database.Users.ToList().FirstOrDefault(x => x.UUID == uuid && (x.StoreID == session.StoreID));

                        if (currentUser != null)
                        {
                            currentUser.LastName  = user.LastName;
                            currentUser.UserLevel = user.UserLevel;
                            currentUser.Username  = user.Username;
                            currentUser.Email     = user.Email;
                            currentUser.FirstName = user.FirstName;
                            currentUser.Phone     = user.Phone;
                            currentUser.Status    = user.Status;
                            currentUser.UUID      = user.UUID;
                            currentUser.CompanyID = currentUser.CompanyID ?? Int32.Parse(currentCompanyID.CompanyID.ToString());

                            if (user.Password != null)
                            {
                                currentUser.Password = user.Password;
                            }
                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE USER",
                                Date     = DateTime.Now
                            });

                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Update Success");
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "User Not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #19
0
        // POST: api/User
        //CREATE
        public HttpResponseMessage Post([FromBody] User user, string token, int?storeID)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);


                    if (session != null)
                    {
                        var sessionUser = database.Users.ToList().FirstOrDefault(x => (x.ID == session.UserID));

                        if (user.UUID == null || user.UUID.Trim().Equals(""))
                        {
                            return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "UUID not specified"));
                        }

                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentUser = database.Users.ToList().FirstOrDefault(x => x.UUID == user.UUID && (x.StoreID == session.StoreID));
                        if (currentUser != null)
                        {
                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "There is a user with this UUID");
                            return(message);
                        }
                        else
                        {
                            if (database.Users.ToList().Any(x => (x.ClerkNum == user.ClerkNum) && (x.StoreID == session.StoreID)))
                            {
                                return(Request.CreateResponse(HttpStatusCode.OK, "ClerkNum Already exists"));
                            }

                            //Save last  update
                            var currentCompanyID = database.Stores.FirstOrDefault(x => x.ID == session.StoreID);

                            if (currentCompanyID == null)
                            {
                                return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "Wrong StoreID" + " SessionId: " + session.ID));
                            }
                            else
                            {
                                user.CompanyID = currentCompanyID.CompanyID;
                            }
                            if (storeID == null)
                            {
                                user.StoreID = session.StoreID;
                            }
                            else
                            {
                                var newStore = database.Companies.FirstOrDefault(x => x.Id == user.CompanyID).Stores.First(y => y.ID == storeID);
                                if (newStore != null)
                                {
                                    user.StoreID = newStore.ID;
                                }
                                else
                                {
                                    return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "Wrong StoreID"));
                                }
                            }

                            if (sessionUser.Type != "OWNER")
                            {
                                database.Users.Add(user);
                                //SAVE ACTIVITY
                                //database.UserActivities.Add(new UserActivity()
                                //{
                                //	StoreID = session.StoreID
                                //	,
                                //	UserID = session.UserID
                                //	,
                                //	Activity = "CREATE USER",
                                //	Date = DateTime.Now
                                //});
                                database.SaveChanges();

                                var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                                return(message);
                            }
                            else
                            {
                                var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "You cannot create an Owner");
                                return(message);
                            }
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx + "    " + dbEx.Message));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex + "    " + ex.Message));
            }
        }
Example #20
0
        // POST: api/TimeTable
        //CREATE
        public HttpResponseMessage Post([FromBody] TimeTable TimeTable, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var user = database.Users.ToList().FirstOrDefault(x =>
                                                                          (x.ID == TimeTable.UserID) && (x.StoreID == TimeTable.StoreID) && (x.CompanyID == TimeTable.CompanyID));

                        // If there is no combination, some of the parameters are wrong or missed
                        if (user == null)
                        {
                            return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "User in (Store,Company) not found"));
                        }

                        var currentTimeTable = database.TimeTables.ToList().FirstOrDefault(
                            x => x.TimeIn.Equals(TimeTable.TimeIn) && x.TimeOut.Equals(TimeTable.TimeOut));

                        if (currentTimeTable != null)
                        {
                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "There is a TimeTable with this TimeIn/Out Configuration");
                            return(message);
                        }
                        else
                        {
                            TimeTable.StoreID   = session.StoreID;
                            TimeTable.Date      = DateTime.Now;
                            TimeTable.CompanyID = database.Stores.FirstOrDefault(x => x.ID == session.StoreID).CompanyID;
                            database.TimeTables.Add(TimeTable);

                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE TimeTable"
                                ,
                                Date = DateTime.Now
                            });
                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #21
0
        // PUT: api/Shift/5
        //UPDATE
        public HttpResponseMessage Put(int id, [FromBody] Shift Shift, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentShift = database.Shifts.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (currentShift != null)
                        {
                            currentShift.Status        = Shift.Status;
                            currentShift.TimeEnd       = Shift.TimeEnd;
                            currentShift.TimeStart     = Shift.TimeStart;
                            currentShift.OpeningAmount = Shift.OpeningAmount;
                            currentShift.ClosingAmount = Shift.ClosingAmount;
                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE Shift",
                                Date     = DateTime.Now
                            });

                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Update Success");
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Shift Not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #22
0
        public HttpResponseMessage Put(int id, FakturiArticle Item, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentFakturiArticle = database.FakturiArticles.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (currentFakturiArticle != null)
                        {
                            //Validate storeID and FakturiID
                            var data = database.Fakturies.ToList().FirstOrDefault(x => (x.ID == Item.FakturiID) &&
                                                                                  (x.StoreID == session.StoreID));

                            if (data != null)
                            {
                                var ItemWithProduct = database.ProductTables.ToList().FirstOrDefault(x => (x.ID == Item.ProductTableID) && (x.StoreID == session.StoreID));
                                if (ItemWithProduct != null)
                                {
                                    currentFakturiArticle.Unit  = Item.Unit ?? currentFakturiArticle.Unit;
                                    currentFakturiArticle.Item  = Item.Item ?? currentFakturiArticle.Item;
                                    currentFakturiArticle.Qty   = Item.Qty;
                                    currentFakturiArticle.Price = Item.Price ?? currentFakturiArticle.Price;
                                    currentFakturiArticle.Tax   = Item.Tax ?? currentFakturiArticle.Tax;

                                    //SAVE ACTIVITY
                                    database.UserActivities.Add(new UserActivity()
                                    {
                                        StoreID = session.StoreID
                                        ,
                                        UserID = session.UserID
                                        ,
                                        Activity = "CREATE FakturiArticle"
                                        ,
                                        Date = DateTime.Now
                                    });

                                    database.SaveChanges();
                                    var message = Request.CreateResponse(HttpStatusCode.OK, "Update Success");
                                    return(message);
                                }
                                else
                                {
                                    var message = Request.CreateResponse(HttpStatusCode.NotFound, "Product not found");
                                    return(message);
                                }
                            }
                            else
                            {
                                var message = Request.CreateResponse(HttpStatusCode.NotFound, "Fakturi not found");
                                return(message);
                            }
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "FakturiArticle Not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #23
0
        // POST: api/Menu
        // CREATE
        public HttpResponseMessage Post([FromBody] Menu Menu, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentMenu = database.Menues.ToList().FirstOrDefault(x => x.StoreID == session.StoreID);
                        if (currentMenu != null)
                        {
                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "There is already a menu on this store");
                            return(message);
                        }
                        else
                        {
                            Menu.StoreID = session.StoreID;
                            database.Menues.Add(Menu);
                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE MENU",
                                Date     = DateTime.Now
                            });
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #24
0
        // PUT: api/Associate/5
        //UPDATE
        public HttpResponseMessage Put(int id, [FromBody] Associate Associate, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentAssociate = database.Associates.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (currentAssociate != null)
                        {
                            currentAssociate.Name        = Associate.Name;
                            currentAssociate.Address     = Associate.Address ?? currentAssociate.Address;
                            currentAssociate.Bulstat     = Associate.Bulstat ?? currentAssociate.Bulstat;
                            currentAssociate.City        = Associate.City ?? currentAssociate.City;
                            currentAssociate.Country     = Associate.Country ?? currentAssociate.Country;
                            currentAssociate.Email       = Associate.Email ?? currentAssociate.Email;
                            currentAssociate.PhoneNumber = Associate.PhoneNumber ?? currentAssociate.PhoneNumber;
                            currentAssociate.PostalCode  = Associate.PostalCode ?? currentAssociate.PostalCode;

                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE Associate"
                                ,
                                Date = DateTime.Now
                            });

                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Update Success");
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Associate Not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #25
0
        // POST: api/Store
        public HttpResponseMessage PostCreate([FromBody] Store store, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        Store currentStore = database.Stores.ToList().FirstOrDefault(x => x.Name == store.Name);
                        if (currentStore != null)
                        {
                            //Save last  update
                            currentStore.CompanyID = database.Stores.FirstOrDefault(x => x.ID == session.StoreID).CompanyID;

                            session.LastUpdate = DateTime.Now;
                            database.SaveChanges();

                            var message = Request.CreateResponse(HttpStatusCode.NotModified, "There is a store with this name");
                            return(message);
                        }
                        else
                        {
                            var User = database.Users.FirstOrDefault(x => (x.UserLevel == "admin") &&
                                                                     x.ID == session.UserID);
                            if (User != null)
                            {
                                store.CompanyID = database.Stores.FirstOrDefault(x => x.ID == session.StoreID).CompanyID;
                                database.Stores.Add(store);
                                //SAVE ACTIVITY
                                database.UserActivities.Add(new UserActivity()
                                {
                                    StoreID = session.StoreID
                                    ,
                                    UserID = session.UserID
                                    ,
                                    Activity = "CREATE STORE",
                                    Date     = DateTime.Now
                                }
                                                            );
                                database.SaveChanges();

                                var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                                return(message);
                            }
                            else
                            {
                                var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "The user does not have privileges for this operation");
                                return(message);
                            }
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #26
0
        // PUT: api/ItemPagePosition/5
        //UPDATE
        public HttpResponseMessage Put(int id, [FromBody] ItemPagePosition ItemPagePosition, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        //First I check if the new positions are free
                        var currentItemPagePosition = database.ItemPagePositions
                                                      .ToList()
                                                      .FirstOrDefault(x => (x.MenuID == ItemPagePosition.MenuID) && (x.MenuPage_ID == ItemPagePosition.MenuPage_ID) &&
                                                                      (x.hPos == ItemPagePosition.hPos) &&
                                                                      (x.vPos == ItemPagePosition.vPos) &&
                                                                      (x.StoreID == session.StoreID));
                        if (currentItemPagePosition != null)
                        {
                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "There is a ItemPagePosition in this position");
                            return(message);
                        }

                        //Get the currentItemPagePosition to update
                        currentItemPagePosition = database.ItemPagePositions.ToList().FirstOrDefault(x => (x.ID == id) &&
                                                                                                     (x.MenuPage_ID == x.MenuPage_ID) &&
                                                                                                     (x.StoreID == session.StoreID));

                        if (currentItemPagePosition != null)
                        {
                            currentItemPagePosition.hPos = ItemPagePosition.hPos;
                            currentItemPagePosition.vPos = ItemPagePosition.vPos;

                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "CREATE ItPagePos",
                                Date     = DateTime.Now
                            });

                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Update Success");
                            return(message);
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "ItemPagePosition Not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #27
0
        // PUT: api/Sale/5
        //UPDATE
        public HttpResponseMessage Put(int id, [FromBody] Sale Sale, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var currentSale = database.Sales.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (currentSale != null)
                        {
                            var shiftToFind = database.Shifts.FirstOrDefault(x => x.ID == Sale.ShiftID && session.StoreID == x.StoreID);
                            if ((shiftToFind != null) && (shiftToFind.Status == "OPEN"))
                            {
                                currentSale.Title          = Sale.Title;
                                currentSale.DiscountAmount = Sale.DiscountAmount;
                                currentSale.DiscountRate   = Sale.DiscountRate;
                                currentSale.TaxAmunt       = Sale.TaxAmunt;
                                currentSale.TaxRate        = Sale.TaxRate;
                                currentSale.TotalPrice     = Sale.TotalPrice;
                                currentSale.SubtotalPrice  = Sale.SubtotalPrice;
                                currentSale.Status         = Sale.Status;
                                currentSale.UserID         = Sale.UserID;
                                currentSale.ShiftID        = Sale.ShiftID;

                                //SAVE ACTIVITY
                                database.UserActivities.Add(new UserActivity()
                                {
                                    StoreID = session.StoreID
                                    ,
                                    UserID = session.UserID
                                    ,
                                    Activity = "CREATE Sale",
                                    Date     = DateTime.Now
                                });

                                database.SaveChanges();
                                var message = Request.CreateResponse(HttpStatusCode.OK, "Update Success");
                                return(message);
                            }
                            else
                            {
                                var message = Request.CreateResponse(HttpStatusCode.OK, "Shift not found or not OPEN");
                                return(message);
                            }
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Sale Not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #28
0
        // POST: api/Sale
        //CREATE
        public HttpResponseMessage Post([FromBody] Sale Sale, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last update
                        session.LastUpdate = DateTime.Now;

                        var shiftToFind = database.Shifts.FirstOrDefault(x => x.ID == Sale.ShiftID && session.StoreID == x.StoreID);
                        if ((shiftToFind != null) && (shiftToFind.Status == "OPEN"))
                        {
                            Sale.StoreID = session.StoreID;
                            Sale.Date    = DateTime.Now;
                            //Create Transaction Number
                            Sale.TransactionNumber = Math.Abs((decimal)DateTime.Now.GetHashCode() * 1000 + (decimal)DateTime.Now.AddDays(-7).GetHashCode()).ToString();

                            database.Sales.Add(Sale);

                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID    = session.StoreID
                                , UserID   = session.UserID
                                , Activity = "CREATE Sale"
                                , Date     = DateTime.Now
                            });
                            database.SaveChanges();
                            return(Request.CreateResponse(HttpStatusCode.Created, Sale.ID));
                        }
                        else
                        {
                            return(Request.CreateResponse(HttpStatusCode.OK, "Shift not found or not OPEN"));
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #29
0
        // DELETE: api/Category/5
        //DELETE
        public HttpResponseMessage Delete(int id, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        var Category = database.Categories.ToList().FirstOrDefault(x => x.ID == id && (x.StoreID == session.StoreID));

                        if (Category == null)
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                               "Category with Id = " + id.ToString() + " not found to delete"));
                        }
                        else
                        {
                            database.Categories.Remove(Category);
                            //SAVE ACTIVITY
                            database.UserActivities.Add(new UserActivity()
                            {
                                StoreID = session.StoreID
                                ,
                                UserID = session.UserID
                                ,
                                Activity = "DELETE Category"
                                ,
                                Date = DateTime.Now
                            });

                            database.SaveChanges();
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Delete Success");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
Example #30
0
        // POST: api/ProductAmount (CREATE)
        public HttpResponseMessage Post([FromBody] ProductAmount ProductAmount, string token)
        {
            try
            {
                using (CompanyPosDBContext database = new CompanyPosDBContext())
                {
                    SessionController sessionController = new SessionController();
                    Session           session           = sessionController.Autenticate(token);

                    if (session != null)
                    {
                        //Save last  update
                        session.LastUpdate = DateTime.Now;

                        //Validate storeID
                        var Item = database.Items.FirstOrDefault(x => x.StoreID == session.StoreID && x.ID == ProductAmount.ItemID);

                        if (Item != null)
                        {
                            var Product = database.ProductTables.FirstOrDefault(x => x.StoreID == session.StoreID && x.ID == ProductAmount.ProductID);

                            if (Product != null)
                            {
                                //var currentProductAmount = Item.ID;

                                //if ((currentProductAmount != null) && (currentProductAmount.ToList().Exists(x => (x.Name == ProductAmount.Name))))
                                //{
                                //	var message = Request.CreateResponse(HttpStatusCode.OK, "There is an ProductAmount with this name");
                                //	return message;
                                //}
                                //else
                                //{
                                ProductAmount.StoreID = session.StoreID;
                                database.ProductAmounts.Add(ProductAmount);
                                //SAVE ACTIVITY
                                database.UserActivities.Add(new UserActivity()
                                {
                                    StoreID = session.StoreID
                                    ,
                                    UserID = session.UserID
                                    ,
                                    Activity = "CREATE ProductAmount",
                                    Date     = DateTime.Now
                                });

                                database.SaveChanges();
                                var message = Request.CreateResponse(HttpStatusCode.Created, "Create Success");
                                return(message);
                                //}
                            }
                            else
                            {
                                var message = Request.CreateResponse(HttpStatusCode.OK, "Product not found");
                                return(message);
                            }
                        }
                        else
                        {
                            var message = Request.CreateResponse(HttpStatusCode.OK, "Item not found");
                            return(message);
                        }
                    }
                    else
                    {
                        var message = Request.CreateResponse(HttpStatusCode.MethodNotAllowed, "No asociated Session");
                        return(message);
                    }
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}",
                                               validationError.PropertyName,
                                               validationError.ErrorMessage);
                    }
                }
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, dbEx));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }