Example #1
0
        public IHttpActionResult Post([FromBody] AddNewPositionModel model)
        {
            var term = termManager.GetById(model.termId);
            ClientTermViewModel result = null;

            var product = productManager.GetById(model.productId);
            var user    = userManager.GetByLogin(model.Login);

            if (user != null && user.Token == model.Token &&
                product != null && term != null)
            {
                var newPosition = new Positions()
                {
                    Amount      = 1, //TODO
                    Description = product.Name,
                    ProductId   = product.Id,
                    Price       = product.Price,
                    OrderId     = term.OrderId,
                };

                positionsManager.AddEntity(newPosition);


                var newTermPosition = new TermPositions()
                {
                    TermId    = term.Id,
                    Amount    = 1, //TODO
                    Positions = newPosition,
                    TermPositionMaterialRsps = new List <TermPositionMaterialRsp>()
                };

                term.TermPositions.Add(newTermPosition);


                //add linked material to position
                foreach (var material in product.ProductMaterialRsps.Where(o => !o.DeleteDate.HasValue))
                {
                    newTermPosition.TermPositionMaterialRsps.Add(new TermPositionMaterialRsp()
                    {
                        Amount        = material.Amount,
                        MaterialId    = material.MaterialId,
                        TermPositions = newTermPosition
                    });
                }

                positionsManager.SaveChanges();



                if (term != null)
                {
                    result = TermViewModelHelper.ToModel(term, true, false);
                }

                return(Ok(result));
            }

            return(BadRequest());
        }
Example #2
0
        public IHttpActionResult Put(OrdersModel model)
        {
            var order = manager.GetById(model.Id);

            var newOrder = new Orders()
            {
                AutoBill = order.AutoBill,
                City     = order.City,
                Comment  = order.Comment,
                CommunicationPartnerId = order.CommunicationPartnerId,
                CustomerId             = order.CustomerId,
                Discount    = order.Discount,
                Street      = order.Street,
                Status      = (int)OrderStatusTypes.Open,
                Zip         = order.Zip,
                IsOffer     = false,
                OrderNumber = numberProvider.GetNextOrderNumber(),
                Positions   = new List <Positions>(),
                CreateDate  = DateTime.Now,
                ChangeDate  = DateTime.Now,
            };

            manager.AddEntity(newOrder);

            foreach (var position in order.Positions.Where(o => o.MaterialId.HasValue && !o.DeleteDate.HasValue).ToList())
            {
                var newPosition = new Positions()
                {
                    MaterialId         = position.MaterialId.Value,
                    IsAlternative      = position.IsAlternative,
                    IsMaterialPosition = position.IsMaterialPosition,
                    Amount             = position.Amount,
                    Price       = position.Price,
                    PaymentType = position.PaymentType,
                    Orders      = newOrder
                };

                positionManager.AddEntity(newPosition);
                newOrder.Positions.Add(newPosition);
            }

            manager.SaveChanges();

            return(Ok(new { id = newOrder.Id }));
        }
Example #3
0
        public IHttpActionResult Post([FromBody] AddNewMaterialModel model)
        {
            var term = termManager.GetById(model.termId);
            ClientTermViewModel result = null;

            var material = materialManager.GetById(model.materialId);
            var user     = userManager.GetByLogin(model.Login);

            if (user != null && user.Token == model.Token &&
                material != null && term != null)
            {
                var newPosition = new Positions()
                {
                    Amount             = 1, //TODO
                    Description        = material.Name,
                    MaterialId         = material.Id,
                    Price              = material.Price,
                    OrderId            = term.OrderId,
                    IsMaterialPosition = true,
                    TermId             = term.Id,
                    CreateDate         = DateTime.Now,
                    ChangeDate         = DateTime.Now,
                };

                positionsManager.AddEntity(newPosition);

                positionsManager.SaveChanges();

                if (term != null)
                {
                    result = TermViewModelHelper.ToModel(term, false, true);
                }

                return(Ok(result));
            }

            return(BadRequest());
        }