private static M_ArticleToBusinessPartner[] CreateArticleToBusinessPartners(
            M_Article[] articles, M_BusinessPartner[] businessPartners)
        {
            M_BusinessPartner businessPartnerWholeSale =
                businessPartners.Single(x => x.Name.Equals(BUSINESS_PARTNER_WHOLESALE));

            return(new M_ArticleToBusinessPartner[]
            {
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartnerWholeSale.Id,
                    ArticleId = articles.Single(x => x.Name == ARTICLE_DESK_SURFACE).Id, PackSize = 1,
                    Price = 20,
                    TimeToDelivery = 100
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartnerWholeSale.Id,
                    ArticleId = articles.Single(x => x.Name == ARTICLE_SCREWS).Id, PackSize = 100,
                    Price = 5,
                    TimeToDelivery = 100
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartnerWholeSale.Id,
                    ArticleId = articles.Single(x => x.Name == ARTICLE_MOUNTING_PLATE).Id, PackSize = 10,
                    Price = 10,
                    TimeToDelivery = 100
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartnerWholeSale.Id,
                    ArticleId = articles.Single(x => x.Name == ARTICLE_STEEL_PIPE).Id, PackSize = 10,
                    Price = 20,
                    TimeToDelivery = 100
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartnerWholeSale.Id,
                    ArticleId = articles.Single(x => x.Name == ARTICLE_FELT_GLIDERS).Id, PackSize = 10,
                    Price = 2,
                    TimeToDelivery = 100
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartners.Single(x => x.Name.Equals(BUSINESS_PARTNER_PRINT_SHOP)).Id,
                    ArticleId = articles.Single(x => x.Name == ARTICLE_MANUAL).Id,
                    PackSize = 100,
                    Price = 0.05,
                    TimeToDelivery = 100
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartnerWholeSale.Id,
                    ArticleId = articles.Single(x => x.Name == ARTICLE_PACKAGE).Id, PackSize = 10,
                    Price = 0.50,
                    TimeToDelivery = 100
                },
            });
        }
Пример #2
0
        public async Task <IActionResult> Edit(int id, [Bind("BusinessPartnerId,Name,Debitor,Kreditor")] M_BusinessPartner businessPartner)
        {
            if (id != businessPartner.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(entity: businessPartner);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BusinessPartnerExists(id: businessPartner.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(actionName: "Index"));
            }
            return(View(model: businessPartner));
        }
Пример #3
0
        /**
         * SE:I --> satisfy by orders PuOP
         */
        public EntityCollector Satisfy(Demand demand, Quantity demandedQuantity)
        {
            EntityCollector entityCollector = new EntityCollector();
            M_Article       article         = demand.GetArticle();
            DueTime         dueTime         = demand.GetStartTimeBackward();

            if (article.ToBuild)
            {
                throw new MrpRunException(
                          "You try to create a purchaseOrderPart for a articleToBuild.");
            }

            // currently only one businessPartner per article TODO: This could be changing
            M_ArticleToBusinessPartner articleToBusinessPartner =
                _dbMasterDataCache.M_ArticleToBusinessPartnerGetAllByArticleId(article.GetId())[0];
            M_BusinessPartner businessPartner =
                _dbMasterDataCache.M_BusinessPartnerGetById(new Id(articleToBusinessPartner
                                                                   .BusinessPartnerId));
            T_PurchaseOrder purchaseOrder = new T_PurchaseOrder();

            // [Name],[DueTime],[BusinessPartnerId]
            purchaseOrder.DueTime         = dueTime.GetValue();
            purchaseOrder.BusinessPartner = businessPartner;
            purchaseOrder.Name            = $"PurchaseOrder{article.Name} for " +
                                            $"businessPartner {purchaseOrder.BusinessPartner.Id}";

            // init a new purchaseOderPart
            T_PurchaseOrderPart tPurchaseOrderPart = new T_PurchaseOrderPart();

            // [PurchaseOrderId],[ArticleId],[Quantity],[State],[ProviderId]
            tPurchaseOrderPart.PurchaseOrder   = purchaseOrder;
            tPurchaseOrderPart.PurchaseOrderId = purchaseOrder.Id;
            tPurchaseOrderPart.Article         = article;
            tPurchaseOrderPart.ArticleId       = article.Id;
            tPurchaseOrderPart.Quantity        =
                CalculateQuantity(articleToBusinessPartner, demandedQuantity) *
                articleToBusinessPartner
                .PackSize;
            if (tPurchaseOrderPart.Quantity < demandedQuantity.GetValue())
            {
                throw new MrpRunException("You cannot purchase less than you need!");
            }

            tPurchaseOrderPart.State = State.Created;

            PurchaseOrderPart purchaseOrderPart =
                new PurchaseOrderPart(tPurchaseOrderPart, null);

            T_DemandToProvider demandToProvider = new T_DemandToProvider()
            {
                DemandId   = demand.GetId().GetValue(),
                ProviderId = purchaseOrderPart.GetId().GetValue(),
                Quantity   = demandedQuantity.GetValue()
            };

            entityCollector.Add(purchaseOrderPart);
            entityCollector.Add(demandToProvider);
            return(entityCollector);
        }
Пример #4
0
        public async Task <IActionResult> Create([Bind("BusinessPartnerId,Name,Debitor,Kreditor")] M_BusinessPartner businessPartner)
        {
            if (ModelState.IsValid)
            {
                _context.Add(entity: businessPartner);
                await _context.SaveChangesAsync();

                return(RedirectToAction(actionName: "Index"));
            }
            return(View(model: businessPartner));
        }
        private static M_ArticleToBusinessPartner[] CreateArticleToBusinessPartners(M_BusinessPartner businessPartner2,
                                                                                    M_Article[] articles)
        {
            var artToBusinessPartner = new M_ArticleToBusinessPartner[]
            {
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartner2.Id,
                    ArticleId         = articles.Single(predicate: x => x.Name == ARTICLE_TABLE).Id, PackSize = 10, Price = 20.00,
                    TimeToDelivery    = 2880
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartner2.Id,
                    ArticleId         = articles.Single(predicate: x => x.Name == ARTICLE_TABLE_LEG).Id, PackSize = 10, Price = 20.00,
                    TimeToDelivery    = 2880
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartner2.Id,
                    ArticleId         = articles.Single(predicate: x => x.Name == ARTICLE_TABLETOP).Id, PackSize = 500, Price = 0.05,
                    TimeToDelivery    = 1440
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartner2.Id,
                    ArticleId         = articles.Single(predicate: x => x.Name == ARTICLE_SCREW).Id, PackSize = 50, Price = 2.50,
                    TimeToDelivery    = 1440
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartner2.Id,
                    ArticleId         = articles.Single(predicate: x => x.Name == ARTICLE_PEG).Id, PackSize = 50, Price = 0.20,
                    TimeToDelivery    = 1440
                },
                new M_ArticleToBusinessPartner
                {
                    BusinessPartnerId = businessPartner2.Id,
                    ArticleId         = articles.Single(predicate: x => x.Name == ARTICLE_WOOD_PANEL).Id, PackSize = 50, Price = 0.20,
                    TimeToDelivery    = 1440
                },
            };

            return(artToBusinessPartner);
        }
Пример #6
0
        public BusinessPartners M_ArticleToBusinessPartnerGetAllBusinessPartnersByArticleId(
            Id articleId)
        {
            List <M_BusinessPartner> businessPartners = new List <M_BusinessPartner>();

            foreach (var articleToBusinessPartner in _articleToBusinessPartners)
            {
                if (articleToBusinessPartner.ArticleId.Equals(articleId))
                {
                    M_BusinessPartner businessPartner =
                        _businessPartners.GetById(
                            new Id(articleToBusinessPartner.BusinessPartnerId));
                    businessPartners.Add(businessPartner);
                }
            }

            return(new BusinessPartners(businessPartners));
        }
        public static void DbInitialize(MasterDBContext context)
        {
            context.Database.EnsureCreated();

            // Look for any entries
            if (context.Articles.Any())
            {
                return;   // DB has already been seeded
            }
            // article types
            var articleTypes = CreateArticleTypes();

            context.ArticleTypes.AddRange(entities: articleTypes);
            context.SaveChanges();

            // Units
            var units = CreateUnits();

            context.Units.AddRange(entities: units);
            context.SaveChanges();

            //ResourceSkills
            var resourceSkills = CreateResourceSkills();

            //ResourceTools
            var resourceTools = CreateResourceTools();

            context.ResourceTools.AddRange(entities: resourceTools);
            context.SaveChanges();

            //Resources
            var resources = CreateResources();

            context.Resources.AddRange(entities: resources);
            context.SaveChanges();

            //ResourceSetups
            var resourceSetups = CreateResourceSetups(resources: resources, resourceTools: resourceTools);

            // register resourceSetups at the resourceSkills
            resourceSkills = UpdateResourceSkills(resourceSkills: resourceSkills, resourceSetups: resourceSetups);
            context.ResourceSkills.AddRange(entities: resourceSkills);
            context.ResourceSetups.AddRange(entities: resourceSetups);
            context.SaveChanges();

            // Articles
            var articles = CreateArticles(articleTypes: articleTypes, units: units);

            context.Articles.AddRange(entities: articles);
            context.SaveChanges();

            // create stock entries for each article
            foreach (var article in articles)
            {
                var stock = new M_Stock
                {
                    ArticleForeignKey = article.Id,
                    Name       = "Stock: " + article.Name,
                    Min        = (article.ToPurchase) ? 1000 : 0,
                    Max        = (article.ToPurchase) ? 2000 : 0,
                    Current    = (article.ToPurchase) ? 1000 : 0,
                    StartValue = (article.ToPurchase) ? 1000 : 0,
                };
                context.Stocks.Add(entity: stock);
                context.SaveChanges();
            }

            //Operations
            var operations = CreateOperations(articles: articles, resourceSkills: resourceSkills, resourceTools: resourceTools);

            context.Operations.AddRange(entities: operations);
            context.SaveChanges();

            var articleBom = CreateArticleBoms(articles: articles, operations: operations);

            context.ArticleBoms.AddRange(entities: articleBom);
            context.SaveChanges();


            //create Businesspartner
            var businessPartner = new M_BusinessPartner()
            {
                Debitor = true, Kreditor = false, Name = "Toys'R'us toy department"
            };
            var businessPartner2 = new M_BusinessPartner()
            {
                Debitor = false, Kreditor = true, Name = "Material wholesale"
            };

            context.BusinessPartners.Add(entity: businessPartner);
            context.BusinessPartners.Add(entity: businessPartner2);
            context.SaveChanges();

            var artToBusinessPartner = CreateArticleToBusinessPartners(businessPartner2: businessPartner2, articles: articles);

            context.ArticleToBusinessPartners.AddRange(entities: artToBusinessPartner);
            context.SaveChanges();
        }