public void CreateOrder(ZakazBindingModel model) { int maxId = 0; for (int i = 0; i < source.Zakazs.Count; ++i) { if (source.Zakazs[i].Id > maxId) { maxId = source.Pokupatels[i].Id; } } source.Zakazs.Add(new Zakaz { Id = maxId + 1, PokupatelId = model.PokupatelId, OutputId = model.OutputId, DateCreate = DateTime.Now, Number = model.Number, Summa = model.Summa, Status = ZakazStatus.Принят }); }
public void CreateZakaz(ZakazBindingModel model) { int maxId = 0; for (int i = 0; i < source.Zakazes.Count; ++i) { if (source.Zakazes[i].Id > maxId) { maxId = source.Buyers[i].Id; } } source.Zakazes.Add(new Zakaz { Id = maxId + 1, BuyerId = model.BuyerId, GBIpieceofArtId = model.GBIpieceOfArtId, DateCreate = DateTime.Now, Count = model.Count, Sum = model.Sum, Status = ZakazStatus.taken }); }
public void PayOrder(ZakazBindingModel model) { int index = -1; for (int i = 0; i < source.Zakazs.Count; ++i) { if (source.Zakazs[i].Id == model.Id) { index = i; break; } } if (index == -1) { throw new Exception("Элемент не найден"); } if (source.Zakazs[index].Status != ZakazStatus.Готов) { throw new Exception("Заказ не в статусе \"Готов\""); } source.Zakazs[index].Status = ZakazStatus.Оплачен; }
public void TakeOrderInWork(ZakazBindingModel model) { int index = -1; for (int i = 0; i < source.Zakazs.Count; ++i) { if (source.Zakazs[i].Id == model.Id) { index = i; break; } } if (index == -1) { throw new Exception("Элемент не найден"); } if (source.Zakazs[index].Status != ZakazStatus.Принят) { throw new Exception("Заказ не в статусе \"Принят\""); } source.Zakazs[index].DateImplement = DateTime.Now; source.Zakazs[index].Status = ZakazStatus.Выполняется; }
public void TakeZakazInWork(ZakazBindingModel model) { int index = -1; for (int i = 0; i < source.Zakazes.Count; ++i) { if (source.Zakazes[i].Id == model.Id) { index = i; break; } } if (index == -1) { throw new Exception("Элемент не найден"); } // смотрим по количеству компонентов на складах for (int i = 0; i < source.GBIpieceofArt__ingridients.Count; ++i) { if (source.GBIpieceofArt__ingridients[i].GBIpieceOfArtId == source.Zakazes[index].GBIpieceofArtId) { int countOnStocks = 0; for (int j = 0; j < source.Storage__GBIingridients.Count; ++j) { if (source.Storage__GBIingridients[j].GBIingridientId == source.GBIpieceofArt__ingridients[i].GBIindgridientId) { countOnStocks += source.Storage__GBIingridients[j].Count; } } if (countOnStocks < source.GBIpieceofArt__ingridients[i].Count * source.Zakazes[index].Count) { for (int j = 0; j < source.GBIindgridients.Count; ++j) { if (source.GBIindgridients[j].Id == source.GBIpieceofArt__ingridients[i].GBIindgridientId) { throw new Exception("Не достаточно компонента " + source.GBIindgridients[j].GBIindgridientName + " требуется " + source.GBIpieceofArt__ingridients[i].Count + ", в наличии " + countOnStocks); } } } } } // списываем for (int i = 0; i < source.GBIpieceofArt__ingridients.Count; ++i) { if (source.GBIpieceofArt__ingridients[i].GBIpieceOfArtId == source.Zakazes[index].GBIpieceofArtId) { int countOnStocks = source.GBIpieceofArt__ingridients[i].Count * source.Zakazes[index].Count; for (int j = 0; j < source.Storage__GBIingridients.Count; ++j) { if (source.Storage__GBIingridients[j].GBIingridientId == source.GBIpieceofArt__ingridients[i].GBIindgridientId) { // компонентов на одном слкаде может не хватать if (source.Storage__GBIingridients[j].Count >= countOnStocks) { source.Storage__GBIingridients[j].Count -= countOnStocks; break; } else { countOnStocks -= source.Storage__GBIingridients[j].Count; source.Storage__GBIingridients[j].Count = 0; } } } } } source.Zakazes[index].ExecutorId = model.ExecutorId; source.Zakazes[index].DateExecute = DateTime.Now; source.Zakazes[index].Status = ZakazStatus.inProcess; }