Beispiel #1
0
        public async Task AssignChildJobs(PartStructure partStructure, Order order, int quantity)
        {
            for (var i = 0; i < quantity; i++)
            {
                var childStructures = await GetPartStructures(partStructure.ChildID);

                if (childStructures != null && childStructures.Count != 0)
                {
                    var job = await AssignJob(partStructure, order);
                    await CreateJob(job);

                    var properties = await GetPartProperties(partStructure.PartID);

                    foreach (var property in properties)
                    {
                        await CreatePropertyValue(await AssignPropertyValue(property));
                    }
                    foreach (var childStructure in childStructures)
                    {
                        var partquantity = await GetQuantity(childStructure, order);
                        await CreateQuantityValue(partquantity);

                        var pickOrder = await AssignPickOrder(job, childStructure.ChildID, partquantity.ChildQuantityValue);
                        await CreatePickOrder(pickOrder);
                        await AssignChildJobs(childStructure, order, partquantity.ChildQuantityValue);
                    }
                    Session["order"] = order;
                }
                //RedirectToAction("Operations");
            }
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            PartStructure partStructure = await db.PartStructures.FindAsync(id);

            db.PartStructures.Remove(partStructure);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind(Include = "ID,PartID,ChildID,ISChildQuantityConfigurable,ChildQuantity")] PartStructure partStructure)
        {
            if (ModelState.IsValid)
            {
                db.Entry(partStructure).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(partStructure));
        }
        // GET: PartStructures/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PartStructure partStructure = await db.PartStructures.FindAsync(id);

            if (partStructure == null)
            {
                return(HttpNotFound());
            }
            return(View(partStructure));
        }
Beispiel #5
0
        public async Task <Job> AssignJob(PartStructure partStructure, Order order)
        {
            var workstation = await GetWorkstation(partStructure.ChildID);

            Job job = new Job
            {
                OrderID     = order.Id,
                PartID      = partStructure.ChildID,
                Workstation = workstation,
                IsConfirmed = false
            };

            return(job);
        }
Beispiel #6
0
        public async Task <QuantityExpressionValue> GetQuantity(PartStructure partStructure, Order order)
        {
            QuantityExpressionValue value = new QuantityExpressionValue();

            if (partStructure.ISChildQuantityConfigurable == false)
            {
                value.ChildQuantityValue        = partStructure.ChildQuantity;
                value.ChildQuantityExpressionId = null;
                value.OrderId = order.Id;
                return(value);
            }
            var expression = await GetQuantityExpression(partStructure.ChildID);

            var variableValue = await db.VariableValues.Where(v => v.Id == expression.VariableId).Select(v => v).FirstAsync();

            value.ChildQuantityExpressionId = expression.Id;
            value.ChildQuantityValue        = Convert.ToInt32(SolveQuantityExpression(variableValue, expression));
            value.OrderId = order.Id;
            return(value);
        }
        public async Task <ActionResult> Create([Bind(Include = "ID,PartID,ChildID,ISChildQuantityConfigurable,ChildQuantity")] PartStructure partStructure)
        {
            partStructure.PartID = Session["PartId"].ToString();
            Session["ChildId"]   = partStructure.ChildID;
            await AutoCreate(partStructure.ChildID);

            if (partStructure.ISChildQuantityConfigurable == true && partStructure.ChildQuantityExpression == null)
            {
                Session["PartStructure"] = partStructure;
                db.PartStructures.Add(partStructure);
                await db.SaveChangesAsync();

                return(RedirectToAction("Create", "ChildQuantityExpressions"));
            }
            if (ModelState.IsValid)
            {
                db.PartStructures.Add(partStructure);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(partStructure));
        }