Ejemplo n.º 1
0
 public void AssignPurchaseToDemandProvider(PurchasePart purchasePart, DemandProviderPurchasePart provider, int quantity)
 {
     provider.PurchasePartId = purchasePart.Id;
     provider.Quantity       = quantity;
     Update(provider);
     SaveChanges();
 }
Ejemplo n.º 2
0
        public void CreatePurchase(IDemandToProvider demand, decimal amount, DemandProviderPurchasePart demandProviderPurchasePart, int time)
        {
            var articleToPurchase = ArticleToBusinessPartners.Single(a => a.ArticleId == demand.ArticleId);
            var purchase          = new Purchase()
            {
                BusinessPartnerId = articleToPurchase.BusinessPartnerId,
                DueTime           = articleToPurchase.DueTime + time
            };

            //amount to be purchased has to be raised to fit the packsize
            amount = Math.Floor(amount / articleToPurchase.PackSize) * articleToPurchase.PackSize;
            var purchasePart = new PurchasePart()
            {
                ArticleId = demand.ArticleId,
                Quantity  = (int)amount,
                DemandProviderPurchaseParts = new List <DemandProviderPurchasePart>()
                {
                    demandProviderPurchasePart
                },
                PurchaseId = purchase.Id
            };

            purchase.PurchaseParts = new List <PurchasePart>()
            {
                purchasePart
            };

            Purchases.Add(purchase);
            PurchaseParts.Add(purchasePart);
            SaveChanges();
        }
Ejemplo n.º 3
0
        //Todo: check logic
        public void CreatePurchaseDemand(IDemandToProvider demand, decimal amount, int time)
        {
            if (NeedToRefill(demand, amount))
            {
                var providerPurchasePart = new DemandProviderPurchasePart()
                {
                    Quantity          = amount,
                    ArticleId         = demand.ArticleId,
                    DemandRequesterId = demand.Id,
                    State             = State.Created,
                };
                Demands.Add(providerPurchasePart);

                CreatePurchase(demand, amount, providerPurchasePart, time);
                Demands.Update(providerPurchasePart);
            }
            else
            {
                var providerStock = new DemandProviderStock()
                {
                    Quantity          = amount,
                    ArticleId         = demand.ArticleId,
                    DemandRequesterId = demand.Id,
                    State             = State.Created,
                    StockId           = Stocks.Single(a => a.ArticleForeignKey == demand.ArticleId).Id
                };
                Demands.Add(providerStock);
            }
            SaveChanges();
        }
Ejemplo n.º 4
0
        public DemandProviderPurchasePart CreateDemandProviderPurchasePart(IDemandToProvider demand, PurchasePart purchase, decimal amount)
        {
            var dppp = new DemandProviderPurchasePart()
            {
                ArticleId         = demand.ArticleId,
                Quantity          = amount,
                PurchasePartId    = purchase.Id,
                DemandRequesterId = demand.Id,
            };

            Add(dppp);
            SaveChanges();
            return(dppp);
        }