public List <IndustrialArea> GetAreaByCityId(int cityId) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable dataTable = conn_db.ReadTable(offerQuery.GetObjectByColname("IndustrialAreas", "CITY_ID", cityId)); if (dataTable.Rows.Count == 0) { throw new EmptyViewException(language); } IndustrialArea industrialArea; List <IndustrialArea> listArea = new List <IndustrialArea>(); foreach (System.Data.DataRow row in dataTable.Rows) { industrialArea = new IndustrialArea(); industrialArea.id = Convert.ToInt32(row["id"].ToString()); industrialArea.areaName = row["areaName"].ToString(); industrialArea.areaNumber = row["areaNumber"].ToString(); industrialArea.areaLocationX = row["LocationX"].ToString(); industrialArea.areaLocationY = row["LocationY"].ToString(); listArea.Add(industrialArea); } return(listArea); }
public OfferDetails GetOfferDetailsWorkShop(int accident_id, int workshop_id) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable dataTable = conn_db.ReadTable(offerQuery.GetOfferDetailsWorkShop(accident_id, workshop_id)); OfferDetails offerDetails = new OfferDetails(); if (dataTable.Rows.Count == 0) { throw new EmptyViewException(language); } offerDetails = new OfferDetails(); offerDetails.OFFER_ID = Convert.ToInt32(dataTable.Rows[0]["OFFER_ID"]); offerDetails.shop_ID = Convert.ToInt32(dataTable.Rows[0]["WORKSHOP_ID"]); offerDetails.FULLNAME = dataTable.Rows[0]["FULLNAME"].ToString(); offerDetails.SHOPNUMBER = dataTable.Rows[0]["SHOPNUMBER"].ToString(); offerDetails.SHOPNAME = dataTable.Rows[0]["SHOPNAME"].ToString(); offerDetails.LOCATIONX_WORKSHOP = Convert.ToDouble(dataTable.Rows[0]["LOCATIONX"].ToString()); offerDetails.LOCATIONY_WORKSHOP = Convert.ToDouble(dataTable.Rows[0]["LOCATIONY"].ToString()); offerDetails.CONFIRMATION = Convert.ToInt32(dataTable.Rows[0]["CONFIRMATION"].ToString()); offerDetails.timeValue = dataTable.Rows[0]["timeValue"] is DBNull ? 0 : Convert.ToInt32(dataTable.Rows[0]["timeValue"]); offerDetails.timeFlag = dataTable.Rows[0]["timeFlag"] is DBNull ? 0 : Convert.ToInt32(dataTable.Rows[0]["timeFlag"]); offerDetails.PRICE = Convert.ToDouble(dataTable.Rows[0]["PRICE"]); offerDetails.rating = Convert.ToDouble(dataTable.Rows[0]["RATING"]); offerDetails.workshop_image = dataTable.Rows[0]["IMAGE"].ToString(); offerDetails.OFFER_DATETIME = Convert.ToDateTime(dataTable.Rows[0]["OFFER_DATETIME"]).ToString("dd-MM-yyyy"); offerDetails.canFinish = Convert.ToInt32(dataTable.Rows[0]["WAITINGFIX"].ToString()); offerDetails.isDelivered = Convert.ToInt32(dataTable.Rows[0]["FINISHEDFLAG"].ToString()); offerDetails.AreaName = dataTable.Rows[0]["AreaName"].ToString(); offerDetails.phonenumber = dataTable.Rows[0]["phoneNumber"].ToString(); return(offerDetails); }
public Stats GetSupplierStats(int workshop_id) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable dataTable = new System.Data.DataTable(); dataTable = conn_db.ReadTable(offerQuery.GetSupplierStats(workshop_id)); if (dataTable.Rows.Count == 0) { throw new EmptyViewException(language); } Stats stats = new Stats(); foreach (System.Data.DataRow row in dataTable.Rows) { //if (row["OFFERTYPE"].ToString() == Enums.OfferType.offerNotAccepted.ToString()) // try { stats.offerNotAccepted = Convert.ToInt32(row["OFFERCOUNT"].ToString()); } catch { stats.offerNotAccepted = 0; } //if (row["OFFERTYPE"].ToString() == Enums.OfferType.offerAccepted.ToString()) // try { stats.offerAccepted = Convert.ToInt32(row["OFFERCOUNT"].ToString()); } catch { stats.offerAccepted = 0; } //if (row["OFFERTYPE"].ToString() == Enums.OfferType.offerIsFixing.ToString()) // try { stats.offerIsFixing = Convert.ToInt32(row["OFFERCOUNT"].ToString()); } catch { stats.offerIsFixing = 0; } //if (row["OFFERTYPE"].ToString() == Enums.OfferType.offerFinishFixing.ToString()) // try { stats.offerFinishFixing = Convert.ToInt32(row["OFFERCOUNT"].ToString()); } catch { stats.offerFinishFixing = 0; } stats.CONFIRMED = Convert.ToInt32(row["ORDERCOUNT"].ToString()); } return(stats); }
public static async Task <List <OfferViewModel> > GetOffers(List <OfferViewModel> offersToGet) { var taskDictionary = new Dictionary <Guid, Task <IRestResponse <long> > >(); var OPEKey = OPE.CreateKeyString(); var ope = new OPE(OPEKey); foreach (var offer in offersToGet) { var query = new OfferQuery() { Id = offer.ProductId, Key = OPEKey }; var client = new RestClient(offer.StoreApiUrl); var request = new RestRequest(_paths["offer"]); request.AddJsonBody(query); request.Method = Method.POST; var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(10)); var task = client.ExecuteAsync <long>(request, cancellationTokenSource.Token); taskDictionary.Add(offer.ProductId, task); } await Task.WhenAll(taskDictionary.Values); taskDictionary .Where(t => !t.Value.IsFaulted && t.Value.Result.StatusCode == System.Net.HttpStatusCode.OK) .ToList() .ForEach(t => { offersToGet.First(o => o.ProductId == t.Key).EncryptedPrice = t.Value.Result.Data; offersToGet.First(o => o.ProductId == t.Key).RealPrice = ope.Decrypt(t.Value.Result.Data); }); return(offersToGet); }
public long GetOffer(OfferQuery query) { var ope = new OPE(query.Key); var prod = _db.Products.FirstOrDefault(p => p.Id == query.Id); var encryptedPrice = ope.Encrypt(Convert.ToInt32(Math.Ceiling(prod.Price))); return(encryptedPrice); }
public List <OfferDTO> GetOffers(OfferCriteria offerCriteria) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable OfferDT = conn_db.ReadTable(offerQuery.GetOffersWithCondition(offerCriteria.filters, offerCriteria.sort)); OfferDTO offersDTO; List <OfferDTO> Offers = new List <OfferDTO>(); if (OfferDT.Rows.Count == 0) { throw new EmptyViewException(language, Messages.GetMessage(language, TypeM.OFFER, offerM.OFFER_NOT_FOUND)); } foreach (System.Data.DataRow dataRow in OfferDT.Rows) { offersDTO = new OfferDTO(); offersDTO.OFFER_ID = dataRow["OFFER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["OFFER_ID"]); offersDTO.ORDER_ID = dataRow["ORDER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["ORDER_ID"]); offersDTO.PRICE = dataRow["PRICE"] is DBNull ? 0 : Convert.ToDouble(dataRow["PRICE"]); offersDTO.SUPPLIER_Name = dataRow["SUPPLIER_Name"] is DBNull ? "" : dataRow["SUPPLIER_Name"].ToString(); offersDTO.timeValue = dataRow["timeValue"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeValue"]); offersDTO.timeFlag = dataRow["timeFlag"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeFlag"]); offersDTO.supplierImage = dataRow["supplierImage"] is DBNull ? "" : dataRow["supplierImage"].ToString(); offersDTO.PHONENUMBER = dataRow["PHONENUMBER"] is DBNull ? "" : dataRow["PHONENUMBER"].ToString(); offersDTO.lat = dataRow["LOCATIONX"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONX"]); offersDTO.lng = dataRow["LOCATIONY"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONY"]); offersDTO.Rating = dataRow["RATING"] is DBNull ? 0 : Convert.ToDouble(dataRow["RATING"]); offersDTO.offerStatus = dataRow["offer_status"] is DBNull ? 0 : Convert.ToInt32(dataRow["offer_status"]); offersDTO.RateType = new Enums().checkRateTypeWords(offersDTO.Rating, language); offersDTO.RateTypeId = (int)new Enums().checkRateType(offersDTO.Rating); if (offerCriteria.lat == 0 || offerCriteria.lng == 0 || offersDTO.lat == 0 || offersDTO.lng == 0) { offersDTO.DISTANCE = 0; offersDTO.time = "0"; } else { double distanceMiles = Math.Sqrt( Math.Pow((offerCriteria.lat - offersDTO.lat) * 69, 2) + Math.Pow((offerCriteria.lng - offersDTO.lng) * 69.172, 2)); offersDTO.DISTANCE = Math.Round(distanceMiles * 1.60934, 2); offersDTO.time = new ServicesRepository(language).getTime(offerCriteria.lat + "," + offerCriteria.lng, offersDTO.lat + "," + offersDTO.lng); } Offers.Add(offersDTO); } return(Offers); }
/// <summary> /// Récupérer un Offer en base /// </summary> /// <param name="offerId">Id de l'Offer</param> /// <returns>Offer</returns> public Offer GetOffer(int offerId) { OfferQuery fq = new OfferQuery(_context); Offer o = fq.GetById(offerId); o.Status = this.GetStatus(o.StatusId); o.Postulations = this.GetPostulationsFromOffer(o); return(o); }
/// <summary> /// Récupérer une liste de Offers en base /// </summary> /// <returns>Offers List</returns> public List <Offer> GetAllOffers() { OfferQuery oq = new OfferQuery(_context); List <Offer> listOffers = oq.GetAll().ToList(); foreach (Offer o in listOffers) { o.Status = GetStatus(o.StatusId); o.Postulations = GetPostulationsFromOffer(o); } return(listOffers); }
/// <summary> /// Rechercher une liste d'offres /// </summary> /// <returns></returns> public List <Offer> GetSearchedOffers(string searchOffer) { OfferQuery oq = new OfferQuery(_context); List <Offer> listOffers = oq.GetAll().Where(x => x.Title.ToUpper().Contains(searchOffer.ToUpper())).ToList(); foreach (Offer o in listOffers) { o.Status = GetStatus(o.StatusId); o.Postulations = GetPostulationsFromOffer(o); } return(listOffers); }
public virtual DataSet PostOrder(ulong[] orderIds, uint[] quanties, string[] messages, uint[] orderCodes1, uint[] orderCodes2, bool[] junks) { if (orderIds == null || quanties == null || orderCodes1 == null || orderCodes2 == null || junks == null || orderIds.Length != quanties.Length || orderIds.Length != orderCodes1.Length || orderIds.Length != orderCodes2.Length || orderIds.Length != junks.Length) { return(null); } var toOrders = ToOrder.FromRequest(orderIds, quanties, messages, orderCodes1, orderCodes2, junks); using (var session = _factory.OpenSession()) using (var trx = session.BeginTransaction()) { var user = ServiceContext.User; var rules = session.Load <OrderRules>(user.Client.Id); var offers = OfferQuery.GetByIds(session, user, orderIds); var orders = new List <Order>(); foreach (var toOrder in toOrders) { var offer = offers.FirstOrDefault(o => o.Id.CoreId == toOrder.OfferId); if (offer == null) { continue; } var order = orders.FirstOrDefault(o => o.PriceList.PriceCode == offer.PriceList.Id.Price.PriceCode); if (order == null) { order = new Order(offer.PriceList, ServiceContext.User, rules); order.ClientAddition = toOrder.Message; orders.Add(order); } toOrder.OrderItem = order.AddOrderItem(offer, toOrder.Quantity); } session.SaveEach(orders.Where(x => x.OrderItems.Count > 0)); trx.Commit(); } return(BuildOrderReport(toOrders)); }
public void Post_order() { var data = service.GetPrices(false, false, new[] { "OriginalName" }, new[] { "*" }, new string[] { }, new string[] { }, 100, 0); Assert.That(data.Tables[0].Rows.Count, Is.GreaterThan(0), "предложений нет"); var coreId = Convert.ToUInt64(data.Tables[0].Rows[0]["OrderID"]); session.CreateSQLQuery(@" update farm.core0 set RequestRatio = 5, OrderCost = 10.5, MinOrderCount = 10 where id = :CoreId") .SetParameter("CoreId", coreId) .ExecuteUpdate(); var result = service.PostOrder(new[] { coreId }, new[] { 20u }, new[] { "это тестовый заказ" }, new[] { Convert.ToUInt32(data.Tables[0].Rows[0]["OrderCode1"]) }, new[] { Convert.ToUInt32(data.Tables[0].Rows[0]["OrderCode2"]) }, new[] { false }); Assert.That(result.Tables[0].Rows.Count, Is.EqualTo(1), "ни вернули ни одной записи"); Assert.That(result.Tables[0].Rows[0]["OriginalOrderID"], Is.EqualTo(coreId), "заказали что то не то, идентификатор из core не совпал"); var orderid = Convert.ToUInt32(result.Tables[0].Rows[0]["OrderId"]); session.BeginTransaction(); var offer = OfferQuery.GetById(session, user, coreId); var order = session.Load <Order>(orderid); var orderLine = (from orderItem in order.OrderItems where orderItem.CoreId == coreId select orderItem).Single(); Assert.That(offer.Id.CoreId, Is.EqualTo(orderLine.CoreId)); Assert.That(orderLine.RequestRatio, Is.EqualTo(offer.RequestRatio)); Assert.That(orderLine.MinOrderCount, Is.EqualTo(offer.MinOrderCount)); Assert.That(orderLine.OrderCost, Is.EqualTo(offer.OrderCost)); }
public ActionResult Search(string searchText, bool?orderByDate) { string IndexPath = Server.MapPath("~/Index"); var indexSearcher = new DirectoryIndexSearcher(new DirectoryInfo(IndexPath), true); using (var searchService = new SearchService(indexSearcher)) { var query = new OfferQuery().WithKeywords(searchText); var result = searchService.SearchIndex <Offers>(query.Query, new OfferResultDefinition()); if (orderByDate.HasValue) { return(View(result.Results.OrderBy(x => x.DateAndTime).ToList())); } return(View("Search", result.Results.ToList())); } }
public List <WarshaRequestDTO> GetAllRequestsCityPermission(int workshop) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable dataTable = conn_db.ReadTable(offerQuery.GetAllRequestsCityPermission(workshop)); if (dataTable.Rows.Count == 0) { throw new EmptyViewException(language); } WarshaRequestDTO workshopRequestDTO = new WarshaRequestDTO(); List <WarshaRequestDTO> workshopRequests = new List <WarshaRequestDTO>(); foreach (System.Data.DataRow row in dataTable.Rows) { workshopRequestDTO = new WarshaRequestDTO(); workshopRequestDTO.ACCIDENT_ID = Convert.ToInt32(row["ACCIDENT_ID"].ToString()); workshopRequestDTO.FULLNAME = row["FULLNAME"].ToString(); workshopRequestDTO.PLATENUMBER = row["PLATENUMBER"].ToString(); workshopRequestDTO.MANUFACTURER = row["MANUFACTURER"].ToString(); workshopRequestDTO.MODEL = row["MODEL"].ToString(); workshopRequestDTO.FOUNDDATE = row["FOUNDDATE"].ToString(); workshopRequestDTO.COLOR = row["COLOR"].ToString(); workshopRequestDTO.paper_NO = row["paper_NO"].ToString(); workshopRequestDTO.LocationX = Convert.ToDouble(row["LocationX"].ToString()); workshopRequestDTO.LocationY = Convert.ToDouble(row["LocationY"].ToString()); workshopRequestDTO.Image = row["url"].ToString(); try { workshopRequestDTO.ACCIDENTDATE = Convert.ToDateTime(row["AccidentDate"].ToString()).ToString("dd-MM-yyyy h:mm tt"); } catch { workshopRequestDTO.ACCIDENTDATE = "01-01-2000"; } workshopRequestDTO.Status = Convert.ToInt32(row["Status"].ToString()); workshopRequestDTO.statusNameAr = row["status_Name_Ar"].ToString(); workshopRequestDTO.statusNameEn = row["status_Name_En"].ToString(); workshopRequests.Add(workshopRequestDTO); } return(workshopRequests); }
public PersonStats GetPersonStats(int user_id) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable dataTable = new System.Data.DataTable(); dataTable = conn_db.ReadTable(offerQuery.GetPersonOfferCount(user_id)); if (dataTable.Rows.Count == 0) { throw new EmptyViewException(language); } PersonStats personStats = new PersonStats(); foreach (System.Data.DataRow row in dataTable.Rows) { personStats.AvailableOffers = Convert.ToInt32(row[0]); } return(personStats); }
internal static async Task GetOffers(Player player, int page, OfferQuery q, ISocketMessageChannel chan) { int itemPerPage = 5; ItemOffer[] array = null; EmbedBuilder em = player.UserEmbedColor(new EmbedBuilder()); switch (q) { case OfferQuery.Receiver: array = await GetOffers(player.userid); em.WithTitle("Received Offers"); break; case OfferQuery.Sender: array = await SentOffers(player.userid); em.WithTitle("Sent Offers"); break; } if (array != null && array.Length > 0) { page = Methods.Verify.MinMax(page, Methods.NumbersM.CeilParse <int>(array.Length / 5.00)); int x = 1; List <Guid> guids = new List <Guid>(); for (int p = (itemPerPage * page); p < (itemPerPage * (page + 1)) && p < array.Length; p++, x++) { em.AddField($"{EUI.GetNum(x)} {array[p]._id}", array[p].ToInfo(false)); guids.Add(array[p]._id); } em.WithFooter("Use reactions to inspect Offer and use accept and deny/delete options"); await player.NewUI(await chan.SendMessageAsync(embed: em.Build()), MsgType.OfferList, $"{page}.{array.Length}.{q}.{JsonConvert.SerializeObject(guids)}"); } else { await chan.SendMessageAsync("No offers to display"); } }
public List <City> GetCity(string lang) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable dataTable = conn_db.ReadTable(offerQuery.GetMasterTranslated("city", lang)); if (dataTable.Rows.Count == 0) { throw new EmptyViewException(language); } City city; List <City> cities = new List <City>(); foreach (System.Data.DataRow row in dataTable.Rows) { city = new City(); city.CityId = Convert.ToInt32(row["id"].ToString()); city.CityName = row["city_Name"].ToString(); cities.Add(city); } return(cities); }
public static IList <NamedOffer> QueryOffers(ISession session, uint userId) { var query = new OfferQuery(); query.SelectSynonyms(); using (StorageProcedures.GetActivePrices((MySqlConnection)session.Connection, userId)) { var sql = query.ToSql() .Replace(" as {Offer.Id.CoreId}", " as CoreId") .Replace(" as {Offer.Id.RegionCode}", " as RegionId") .Replace("{Offer.", "") .Replace("}", ""); var offers = session.CreateSQLQuery(sql) .SetResultTransformer(new AliasToPropertyTransformer(typeof(NamedOffer))) .List <NamedOffer>(); var activePrices = session.Query <ActivePrice>().Where(p => p.Id.Price.PriceCode > 0).ToList(); offers.Each( offer => offer.PriceList = activePrices.First( price => price.Id.Price.PriceCode == offer.PriceCode && price.Id.RegionCode == offer.Id.RegionCode)); return(offers); } }
private static Order OrderParse(ISession session, uint userId, DataTable table) { var user = session.Load <User>(userId); Order order = null; if (table.Rows.Count == 0) { return(null); } var supplierDeliveryId = table.Rows[0]["PODRCD"].ToString(); uint id; unchecked { id = (uint)table.Rows[0]["NUMZ"].GetHashCode(); } var reject = new Reject { DepId = supplierDeliveryId, OrderId = id }; foreach (DataRow row in table.Rows) { uint qunatity; try { qunatity = Convert.ToUInt32(row["QNT"]); } catch (Exception) { qunatity = SafeConvert.ToUInt32(row["QNT"].ToString()); } var cost = Convert.ToDecimal(row["PRICE"]); var offerId = SafeConvert.ToUInt64(row["XCODE"].ToString()); var code = row["CODEPST"].ToString(); var name = row["NAME"].ToString(); reject.Items.Add(new RejectItem(id, code, qunatity, name, cost, offerId)); } var addressIds = Program.GetAddressId(session, supplierDeliveryId, null, Program.SupplierIdForCodeLookup, user); var address = session.Load <Address>(addressIds[0]); var rules = session.Load <OrderRules>(user.Client.Id); rules.Strict = false; rules.CheckAddressAccessibility = false; List <ActivePrice> activePrices; using (StorageProcedures.GetActivePrices((MySqlConnection)session.Connection, userId)) { activePrices = session.Query <ActivePrice>().ToList(); } var existOrder = session.Query <Order>().FirstOrDefault(o => o.UserId == userId && o.ClientOrderId == id && !o.Deleted); if (existOrder != null) { throw new UserFriendlyException( $"Дублирующий заказ {id}, существующий заказ {existOrder.RowId}", "Дублирующая заявка"); } var ordered = new List <RejectItem>(); foreach (var item in reject.Items) { try { var offer = OfferQuery.GetById(session, user, item.OfferId); if (offer == null) { var archiveOffer = session.Get <ArchiveOffer>(item.OfferId); if (archiveOffer == null) { throw new UserFriendlyException($"Не удалось найти предложение {item.OfferId} игнорирую строку", "Заявка сделана по неактуальному прайс-листу"); } offer = archiveOffer.ToOffer(activePrices, item.Price); if (offer == null) { throw new UserFriendlyException( $"Прайс {archiveOffer.PriceList.PriceCode} больше не доступен клиенту игнорирую строку", "Прайс-лист отключен"); } } if (order == null) { order = new Order(offer.PriceList, user, address, rules); order.ClientOrderId = id; } order.AddOrderItem(offer, item.Quantity); ordered.Add(item); } catch (OrderException e) { log.Warn($"Не удалось заказать позицию {item.Name} в количестве {item.Quantity}", e); } } foreach (var rejectItem in ordered) { reject.Items.Remove(rejectItem); } if (order != null && order.OrderItems.Count == 0) { return(null); } return(order); }
public List <Offer> GetSearchOffer(String search) { OfferQuery oq = new OfferQuery(contexte); return(oq.GetByName(search)); }
public Offer GetOfferById(int id) { OfferQuery oq = new OfferQuery(contexte); return(oq.GetById(id)); }
public List <Offer> GetAllOffer() { OfferQuery oq = new OfferQuery(contexte); return(oq.GetAll().ToList()); }
public List <Employee> GetEmployeeFromSpecificOffer(int offerId) { OfferQuery oq = new OfferQuery(contexte); return(oq.GetAllEmployeeOfSpecificOffer(offerId).ToList()); }
public virtual DataSet PostOrder2(ulong[] orderIds, decimal[] cost, uint[] quanties, DateTime[] priceDates, string[] messages, uint[] orderCodes1, uint[] orderCodes2, bool[] junks) { orderIds = orderIds ?? new ulong[0]; cost = cost ?? new decimal[0]; quanties = quanties ?? new uint[0]; messages = messages ?? new string[0]; orderCodes1 = orderCodes1 ?? new uint[0]; orderCodes2 = orderCodes2 ?? new uint[0]; junks = junks ?? new bool[0]; priceDates = priceDates ?? new DateTime[0]; var length = orderIds.Length; if (cost.Length != length || quanties.Length != length || orderCodes1.Length != length || orderCodes2.Length != length || junks.Length != length || priceDates.Length != length) { log.Warn("Некорректное число параметров"); return(null); } using (var session = _factory.OpenSession()) using (var trx = session.BeginTransaction()) { var user = ServiceContext.User; var rules = session.Load <OrderRules>(user.Client.Id); List <ActivePrice> activePrices; using (StorageProcedures.GetActivePrices((MySqlConnection)session.Connection, user.Id)) { activePrices = session.Query <ActivePrice>().ToList(); } var orders = new List <Order>(); var toOrders = ToOrder.FromRequest(orderIds, quanties, cost, priceDates, messages, orderCodes1, orderCodes2, junks); var offers = OfferQuery.GetByIds(session, user, toOrders.Select(o => o.OfferId)); foreach (var toOrder in toOrders) { try { if (toOrder.Cost <= 0) { throw new OrderException($"Цена не может быть меньше или равной нулю, текущее значение цены {cost}"); } var offer = offers.FirstOrDefault(o => o.Id.CoreId == toOrder.OfferId); if (offer == null) { var archiveOffer = session.Get <ArchiveOffer>(toOrder.OfferId); if (archiveOffer == null) { log.WarnFormat("Не удалось найти предложение в архиве {0} игнорирую строку", toOrder.OfferId); continue; } offer = archiveOffer.ToOffer(activePrices, toOrder.Cost); if (offer == null) { log.WarnFormat("Прайс {0} больше не доступен клиенту игнорирую строку {1}", archiveOffer.PriceList.PriceCode, toOrder.OfferId); continue; } } else if ((decimal)offer.Cost != toOrder.Cost) { log.WarnFormat("Заявка сделана по неактуальному прайс-листу код предложения {0}", toOrder.OfferId); offer = Offer.Clone(offer, offer.PriceList, (float)toOrder.Cost, toOrder.OfferId); } if (toOrder.PriceDate > offer.PriceList.PriceDate) { throw new OrderException( $"Дата прайс-листа {toOrder.PriceDate} по позиции {toOrder.OfferId} больше текущей даты прайс-листа {offer.PriceList.PriceDate}"); } var order = orders.FirstOrDefault(o => o.PriceList == offer.PriceList.Id.Price && o.PriceDate == toOrder.PriceDate); if (order == null) { order = new Order(offer.PriceList, user, rules); order.PriceDate = toOrder.PriceDate; order.ClientAddition = toOrder.Message; orders.Add(order); } toOrder.OrderItem = order.AddOrderItem(offer, toOrder.Quantity); } catch (OrderException e) { log.Warn($"Не удалось сформировать заявку по позиции {toOrder.OfferId}", e); } } session.SaveEach(orders.Where(x => x.OrderItems.Count > 0)); trx.Commit(); return(BuildOrderReport(toOrders)); } }
public Domain.Entities.Order.OrdersDetails GetOrderDetails(int user_id, int order_id, double lat, double lng, int offer_id) { OrderQuery orderQuery = new OrderQuery(language); OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable OrderDT = conn_db.ReadTable(orderQuery.GetRequestByOrder_id(order_id, language)); int orderStatus = 0; if (OrderDT.Rows.Count > 0) { orderStatus = OrderDT.Rows[0]["order_status"] is DBNull ? 0:Convert.ToInt32(OrderDT.Rows[0]["order_status"]); } System.Data.DataTable OrderDetailsAssign = conn_db.ReadTable(offerQuery.GetOrderDetailsAssigns(order_id)); System.Data.DataTable OfferDT = new System.Data.DataTable(); if (orderStatus == (int)Enums.orderStatus.UNCONFIRMED) { OfferDT = conn_db.ReadTable(offerQuery.GetOffertempOfferByOffer_id(offer_id)); } else { OfferDT = conn_db.ReadTable(offerQuery.GetOfferDetailsByOrderId(order_id)); } UserRequestCriteria userRequestCriteria = new UserRequestCriteria(); OfferDTO offersDTO = new OfferDTO(); if (OrderDT.Rows.Count == 0) { throw new EmptyViewException(language, Messages.GetMessage(language, TypeM.ACCIDENT, orderM.Order_DATA_NOT_FOUND)); } userRequestCriteria.ORDER_ID = OrderDT.Rows[0]["ORDER_ID"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["ORDER_ID"]); userRequestCriteria.USER_ID = OrderDT.Rows[0]["USER_ID"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["USER_ID"].ToString()); try { userRequestCriteria.ORDERDATE = Convert.ToDateTime(OrderDT.Rows[0]["ORDERDATE"].ToString()).ToString("dd-MM-yyyy"); } catch (Exception ex) { userRequestCriteria.ORDERDATE = ""; } userRequestCriteria.PLATENUMBER = OrderDT.Rows[0]["PLATENUMBER"].ToString(); userRequestCriteria.ORDER_IDENTITY = OrderDT.Rows[0]["ORDER_IDENTITY"].ToString(); userRequestCriteria.firstName = OrderDT.Rows[0]["FIRSTNAME"].ToString(); userRequestCriteria.lastName = OrderDT.Rows[0]["LASTNAME"].ToString(); userRequestCriteria.CountryCode = OrderDT.Rows[0]["COUNTRY_CODE"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["COUNTRY_CODE"].ToString()); userRequestCriteria.phoneNumber = OrderDT.Rows[0]["PHONENUMBER"].ToString(); userRequestCriteria.ORDERTYPE_ID = OrderDT.Rows[0]["ORDERTYPE_ID"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["ORDERTYPE_ID"].ToString()); userRequestCriteria.ORDERTYPE_NAME = OrderDT.Rows[0]["ORDERTYPE_NAME"].ToString(); userRequestCriteria.VEHICLE_ID = OrderDT.Rows[0]["VEHICLE_ID"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["VEHICLE_ID"].ToString()); userRequestCriteria.ORDER_STATUS = OrderDT.Rows[0]["ORDER_STATUS"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["ORDER_STATUS"].ToString()); userRequestCriteria.ISACTIVE = OrderDT.Rows[0]["ISACTIVE"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["ISACTIVE"].ToString()); userRequestCriteria.OFFERS_COUNT = OrderDT.Rows[0]["OFFERS_COUNT"] is DBNull ? 0 : Convert.ToInt32(OrderDT.Rows[0]["OFFERS_COUNT"].ToString()); if (language == Messages.language.ar.ToString()) { userRequestCriteria.BRANDNAME = OrderDT.Rows[0]["BRANDNAME_AR"].ToString(); userRequestCriteria.MODELNAME = OrderDT.Rows[0]["MODELNAME_AR"].ToString(); } else { userRequestCriteria.BRANDNAME = OrderDT.Rows[0]["BRANDNAME_EN"].ToString(); userRequestCriteria.MODELNAME = OrderDT.Rows[0]["MODELNAME_EN"].ToString(); } userRequestCriteria.carIMAGE = OrderDT.Rows[0]["carImage"].ToString(); userRequestCriteria.userIMAGE = OrderDT.Rows[0]["userImage"].ToString(); userRequestCriteria.Note = OrderDT.Rows[0]["NOTE"].ToString(); userRequestCriteria.COLORNAME = OrderDT.Rows[0]["COLOR_NAME"].ToString(); userRequestCriteria.lat = OrderDT.Rows[0]["lat"] is DBNull ? 0 : Convert.ToDouble(OrderDT.Rows[0]["lat"].ToString()); userRequestCriteria.lng = OrderDT.Rows[0]["lng"] is DBNull ? 0 : Convert.ToDouble(OrderDT.Rows[0]["lng"].ToString()); if (lat == 0 || lng == 0 || userRequestCriteria.lat == 0 || userRequestCriteria.lng == 0) { userRequestCriteria.time = "0"; userRequestCriteria.distance = 0; } else { double distanceMiles1 = Math.Sqrt( Math.Pow((lat - userRequestCriteria.lat) * 69, 2) + Math.Pow((lng - userRequestCriteria.lng) * 69.172, 2)); userRequestCriteria.distance = Math.Round(distanceMiles1 * 1.60934, 2); userRequestCriteria.time = new ServicesRepository(language).getTime(lat + "," + lng, userRequestCriteria.lat + "," + userRequestCriteria.lng); } if (OfferDT.Rows.Count > 0) { offersDTO.OFFER_ID = OfferDT.Rows[0]["OFFER_ID"] is DBNull ? 0 : Convert.ToInt32(OfferDT.Rows[0]["OFFER_ID"]); offersDTO.offerStatus = OfferDT.Rows[0]["OFFER_STATUS"] is DBNull ? 0: Convert.ToInt32(OfferDT.Rows[0]["OFFER_STATUS"]); offersDTO.ORDER_ID = OfferDT.Rows[0]["ORDER_ID"] is DBNull ? 0 : Convert.ToInt32(OfferDT.Rows[0]["ORDER_ID"]); offersDTO.PRICE = OfferDT.Rows[0]["PRICE"] is DBNull ? 0 : Convert.ToDouble(OfferDT.Rows[0]["PRICE"]); offersDTO.SUPPLIER_Name = OfferDT.Rows[0]["SUPPLIER_Name"] is DBNull ? "" : OfferDT.Rows[0]["SUPPLIER_Name"].ToString(); offersDTO.timeValue = OfferDT.Rows[0]["timeValue"] is DBNull ? 0 : Convert.ToInt32(OfferDT.Rows[0]["timeValue"]); offersDTO.timeFlag = OfferDT.Rows[0]["timeFlag"] is DBNull ? 0 : Convert.ToInt32(OfferDT.Rows[0]["timeFlag"]); offersDTO.supplierImage = OfferDT.Rows[0]["supplierImage"] is DBNull ? "" : OfferDT.Rows[0]["supplierImage"].ToString(); offersDTO.CountryCode = OfferDT.Rows[0]["COUNTRY_CODE"] is DBNull ? 0 : Convert.ToInt32(OfferDT.Rows[0]["COUNTRY_CODE"]); offersDTO.PHONENUMBER = OfferDT.Rows[0]["PHONENUMBER"] is DBNull ? "" : OfferDT.Rows[0]["PHONENUMBER"].ToString(); offersDTO.lat = OfferDT.Rows[0]["LOCATIONX"] is DBNull ? 0 : Convert.ToDouble(OfferDT.Rows[0]["LOCATIONX"]); offersDTO.lng = OfferDT.Rows[0]["LOCATIONY"] is DBNull ? 0 : Convert.ToDouble(OfferDT.Rows[0]["LOCATIONY"]); offersDTO.Rating = OfferDT.Rows[0]["RATING"] is DBNull ? 0 : Convert.ToDouble(OfferDT.Rows[0]["RATING"]); offersDTO.RateType = new Enums().checkRateTypeWords(offersDTO.Rating, language); offersDTO.RateTypeId = (int)new Enums().checkRateType(offersDTO.Rating); if (lat == 0 || lng == 0 || offersDTO.lat == 0 || offersDTO.lng == 0) { offersDTO.time = "0"; offersDTO.DISTANCE = 0; } else { double distanceMiles2 = Math.Sqrt( Math.Pow((lat - offersDTO.lat) * 69, 2) + Math.Pow((lng - offersDTO.lng) * 69.172, 2)); offersDTO.DISTANCE = Math.Round(distanceMiles2 * 1.60934, 2); offersDTO.time = new ServicesRepository(language).getTime(lat + "," + lng, offersDTO.lat + "," + offersDTO.lng); } } infoAssign info; List <infoAssign> infoAssigns = new List <infoAssign>(); if (OrderDetailsAssign.Rows.Count > 0) { foreach (System.Data.DataRow row in OrderDetailsAssign.Rows) { info = new infoAssign(); if (language == Messages.language.ar.ToString()) { info.key = row["LISTNAME_AR"].ToString(); info.value = row["CONTENTNAME_AR"].ToString(); } else { info.key = row["LISTNAME_EN"].ToString(); info.value = row["CONTENTNAME_EN"].ToString(); } infoAssigns.Add(info); } } userRequestCriteria.info = infoAssigns; Domain.Entities.Order.OrdersDetails orderDatails = new Domain.Entities.Order.OrdersDetails(); orderDatails.order = userRequestCriteria; orderDatails.offer = offersDTO; return(orderDatails); }
public Offer GetOffer(int id) { OfferQuery of = new OfferQuery(contexte); return(of.GetByID(id)); }
public List <Offer> GetOfferByString(String chaine) { OfferQuery oq = new OfferQuery(contexte); return(oq.GetByString(chaine).ToList()); }
public List <UserOffer> GetSupplierOffers(OfferCriteria offerCriteria, int user_id) { OfferQuery offerQuery = new OfferQuery(language); OrderQuery orderQuery = new OrderQuery(language); System.Data.DataTable OfferDT = new System.Data.DataTable(); switch (offerCriteria.offerType) { case (int)OfferType.offerNotAccepted: OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersUnConfirmed(user_id, language)); break; case (int)OfferType.offerAccepted: OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersConfirmed(user_id, language)); break; case (int)OfferType.offerIsFixing: OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersStart(user_id, language)); break; case (int)OfferType.offerFinishFixing: OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersfinish(user_id, language)); break; default: OfferDT = conn_db.ReadTable(offerQuery.GetsupplierOffersUnConfirmed(user_id, language)); break; } UserOffer userOffer; List <UserOffer> userOffers = new List <UserOffer>(); if (OfferDT.Rows.Count == 0) { throw new EmptyViewException(language, Messages.GetMessage(language, TypeM.OFFER, offerM.OFFER_NOT_FOUND)); } foreach (System.Data.DataRow dataRow in OfferDT.Rows) { userOffer = new UserOffer(); userOffer.ORDERTYPE_NAME = dataRow["ORDERTYPE_NAME"] is DBNull ? "" : dataRow["ORDERTYPE_NAME"].ToString(); userOffer.colorname = dataRow["COLOR_NAME"] is DBNull ? "" : dataRow["COLOR_NAME"].ToString(); userOffer.firstName = dataRow["FIRSTNAME"].ToString(); userOffer.lastName = dataRow["LASTNAME"].ToString(); userOffer.carImage = dataRow["CARIMAGE"].ToString(); userOffer.userImage = dataRow["userIMAGE"].ToString(); if (language == Messages.language.ar.ToString()) { userOffer.brandname = dataRow["BRANDNAME_AR"].ToString(); userOffer.modelname = dataRow["MODELNAME_AR"].ToString(); } else { userOffer.brandname = dataRow["BRANDNAME_EN"].ToString(); userOffer.modelname = dataRow["MODELNAME_EN"].ToString(); } userOffer.OFFER_ID = dataRow["OFFER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["OFFER_ID"]); userOffer.ORDER_ID = dataRow["ORDER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["ORDER_ID"]); userOffer.PRICE = dataRow["PRICE"] is DBNull ? 0 : Convert.ToDouble(dataRow["PRICE"]); userOffer.SUPPLIER_Name = dataRow["SUPPLIER_Name"] is DBNull ? "" : dataRow["SUPPLIER_Name"].ToString(); userOffer.timeValue = dataRow["timeValue"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeValue"]); userOffer.timeFlag = dataRow["timeFlag"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeFlag"]); userOffer.supplierImage = dataRow["supplierImage"] is DBNull ? "" : dataRow["supplierImage"].ToString(); userOffer.PHONENUMBER = dataRow["PHONENUMBER"] is DBNull ? "" : dataRow["PHONENUMBER"].ToString(); userOffer.lat = dataRow["LOCATIONX"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONX"]); userOffer.lng = dataRow["LOCATIONY"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONY"]); userOffer.Rating = dataRow["RATING"] is DBNull ? 0 : Convert.ToDouble(dataRow["RATING"]); userOffer.offerStatus = dataRow["offer_status"] is DBNull ? 0 : Convert.ToInt32(dataRow["offer_status"]); userOffer.RateType = new Enums().checkRateTypeWords(userOffer.Rating, language); userOffer.RateTypeId = (int)new Enums().checkRateType(userOffer.Rating); if (offerCriteria.lat == 0 || offerCriteria.lng == 0 || userOffer.lat == 0 || userOffer.lng == 0) { userOffer.DISTANCE = 0; userOffer.time = "0"; } else { double distanceMiles = Math.Sqrt( Math.Pow((offerCriteria.lat - userOffer.lat) * 69, 2) + Math.Pow((offerCriteria.lng - userOffer.lng) * 69.172, 2)); userOffer.DISTANCE = Math.Round(distanceMiles * 1.60934, 2); userOffer.time = new ServicesRepository(language).getTime(offerCriteria.lat + "," + offerCriteria.lng, userOffer.lat + "," + userOffer.lng); } userOffers.Add(userOffer); } return(userOffers); }
public List <UserOffer> GetPrsonOffers(OfferCriteria offerCriteria, int user_id) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable OfferDT = conn_db.ReadTable(offerQuery.GetPersonOffersWithCondition(offerCriteria, language, user_id)); UserOffer userOffer; List <UserOffer> userOffers = new List <UserOffer>(); if (OfferDT.Rows.Count == 0) { throw new EmptyViewException(language, Messages.GetMessage(language, TypeM.OFFER, offerM.OFFER_NOT_FOUND)); } foreach (System.Data.DataRow dataRow in OfferDT.Rows) { userOffer = new UserOffer(); userOffer.ORDERTYPE_NAME = dataRow["ORDERTYPE_NAME"] is DBNull ? "" : dataRow["ORDERTYPE_NAME"].ToString(); userOffer.colorname = dataRow["COLOR_NAME"] is DBNull ? "" : dataRow["COLOR_NAME"].ToString(); if (language == Messages.language.ar.ToString()) { userOffer.brandname = dataRow["BRANDNAME_AR"].ToString(); userOffer.modelname = dataRow["MODELNAME_AR"].ToString(); } else { userOffer.brandname = dataRow["BRANDNAME_EN"].ToString(); userOffer.modelname = dataRow["MODELNAME_EN"].ToString(); } userOffer.OFFER_ID = dataRow["OFFER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["OFFER_ID"]); userOffer.ORDER_ID = dataRow["ORDER_ID"] is DBNull ? 0 : Convert.ToInt32(dataRow["ORDER_ID"]); try { userOffer.ORDER_DATE = Convert.ToDateTime(dataRow["ORDERDATE"].ToString()).ToString("dd-MM-yyyy"); } catch (Exception ex) { userOffer.ORDER_DATE = ""; } userOffer.ORDER_NO = dataRow["ORDER_IDENTITY"] is DBNull ? 0 : Convert.ToInt64(dataRow["ORDER_IDENTITY"]); userOffer.PRICE = dataRow["PRICE"] is DBNull ? 0 : Convert.ToDouble(dataRow["PRICE"]); userOffer.SUPPLIER_Name = dataRow["SUPPLIER_Name"] is DBNull ? "" : dataRow["SUPPLIER_Name"].ToString(); userOffer.timeValue = dataRow["timeValue"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeValue"]); userOffer.timeFlag = dataRow["timeFlag"] is DBNull ? 0 : Convert.ToInt32(dataRow["timeFlag"]); userOffer.supplierImage = dataRow["supplierImage"] is DBNull ? "" : dataRow["supplierImage"].ToString(); userOffer.PHONENUMBER = dataRow["PHONENUMBER"] is DBNull ? "" : dataRow["PHONENUMBER"].ToString(); userOffer.lat = dataRow["LOCATIONX"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONX"]); userOffer.lng = dataRow["LOCATIONY"] is DBNull ? 0 : Convert.ToDouble(dataRow["LOCATIONY"]); userOffer.Rating = dataRow["RATING"] is DBNull ? 0 : Convert.ToDouble(dataRow["RATING"]); userOffer.Rater_No = dataRow["Rater_NO"] is DBNull ? 0 : Convert.ToInt32(dataRow["Rater_NO"]); userOffer.offerStatus = dataRow["offer_status"] is DBNull ? 0 : Convert.ToInt32(dataRow["offer_status"]); userOffer.RateType = new Enums().checkRateTypeWords(userOffer.Rating, language); userOffer.RateTypeId = (int)new Enums().checkRateType(userOffer.Rating); if (offerCriteria.lat == 0 || offerCriteria.lng == 0 || userOffer.lat == 0 || userOffer.lng == 0) { userOffer.DISTANCE = 0; userOffer.time = "0"; } else { double distanceMiles = Math.Sqrt( Math.Pow((offerCriteria.lat - userOffer.lat) * 69, 2) + Math.Pow((offerCriteria.lng - userOffer.lng) * 69.172, 2)); userOffer.DISTANCE = Math.Round(distanceMiles * 1.60934, 2); userOffer.time = new ServicesRepository(language).getTime(offerCriteria.lat + "," + offerCriteria.lng, userOffer.lat + "," + userOffer.lng); } userOffers.Add(userOffer); } return(userOffers); }
private static Order OrderParse(ISession session, uint userId, XDocument doc, List <Reject> rejects, TextWriter logForClient, out uint id) { var user = session.Load <User>(userId); id = 0; Order order = null; var packet = doc.XPathSelectElement("/PACKET"); if (packet == null) { return(null); } var type = (string)packet.Attribute("TYPE"); if (type == null) { return(null); } var predId = (string)packet.Attribute("PRED_ID"); var to = (string)packet.Attribute("TO"); var from = (string)packet.Attribute("FROM"); var depId = (string)doc.XPathSelectElement("/PACKET/ORDER/DEP_ID"); var orderElement = doc.XPathSelectElement("/PACKET/ORDER"); var clientOrderId = SafeConvert.ToUInt32((string)orderElement.XPathSelectElement("ORDER_ID")); id = clientOrderId; var reject = new Reject { To = to, From = @from, PredId = predId, DepId = depId, OrderId = clientOrderId }; var items = orderElement.XPathSelectElements("ITEMS/ITEM"); foreach (var item in items) { var qunatity = SafeConvert.ToUInt32((string)item.XPathSelectElement("QTTY")); var cost = Convert.ToDecimal((string)item.XPathSelectElement("PRICE")); var offerId = SafeConvert.ToUInt64((string)item.XPathSelectElement("XCODE")); var code = (string)item.XPathSelectElement("CODE"); var name = (string)item.XPathSelectElement("NAME"); reject.Items.Add(new RejectItem(clientOrderId, code, qunatity, name, cost, offerId)); } rejects.Add(reject); var addressIds = Program.GetAddressId(session, reject.DepId.Slice(-2, -1), reject.PredId, Program.SupplierIdForCodeLookup, user); var address = session.Load <Address>(addressIds[0]); var rules = session.Load <OrderRules>(user.Client.Id); rules.Strict = false; rules.CheckAddressAccessibility = false; List <ActivePrice> activePrices; using (StorageProcedures.GetActivePrices((MySqlConnection)session.Connection, userId)) { activePrices = session.Query <ActivePrice>().ToList(); } var comment = (string)orderElement.XPathSelectElement("COMMENT"); var existOrder = session.Query <Order>().FirstOrDefault(o => o.UserId == userId && o.ClientOrderId == clientOrderId && !o.Deleted); if (existOrder != null) { throw new UserFriendlyException( $"Дублирующий заказ {clientOrderId}, существующий заказ {existOrder.RowId}", "Дублирующая заявка"); } var ordered = new List <RejectItem>(); foreach (var item in reject.Items) { try { var offer = OfferQuery.GetById(session, user, item.OfferId); if (offer == null) { var archiveOffer = session.Get <ArchiveOffer>(item.OfferId); if (archiveOffer == null) { throw new UserFriendlyException($"Не удалось найти предложение {item.OfferId} игнорирую строку", "Заявка сделана по неактуальному прайс-листу"); } offer = archiveOffer.ToOffer(activePrices, item.Price); if (offer == null) { throw new UserFriendlyException( $"Прайс {archiveOffer.PriceList.PriceCode} больше не доступен клиенту игнорирую строку", "Прайс-лист отключен"); } } if (order == null) { order = new Order(offer.PriceList, user, address, rules); order.ClientAddition = comment; order.ClientOrderId = clientOrderId; } order.AddOrderItem(offer, item.Quantity); ordered.Add(item); } catch (OrderException e) { var message = Utils.TryGetUserFriendlyMessage(e); log.Warn($"Не удалось заказать позицию {item.Name} в количестве {item.Quantity}", e); logForClient.WriteLine("Не удалось заказать позицию {0} по заявке {3} в количестве {1}: {2}", item.Name, item.Quantity, message, clientOrderId); } } foreach (var rejectItem in ordered) { reject.Items.Remove(rejectItem); } if (reject.Items.Count == 0) { rejects.Remove(reject); } if (order != null && order.OrderItems.Count == 0) { return(null); } return(order); }
// Gets public List <WarshaOffersCriteria> GetOffersByWarsha_id(int warsha_id, Enums.OfferType offerType) { OfferQuery offerQuery = new OfferQuery(language); System.Data.DataTable dataTable = new System.Data.DataTable(); if (offerType == Enums.OfferType.offerNotAccepted) { dataTable = conn_db.ReadTable(offerQuery.GetWorkshopOfferNotAccespted(warsha_id)); } else if (offerType == Enums.OfferType.offerAccepted) { dataTable = conn_db.ReadTable(offerQuery.GetWorkshopOfferAccespted(warsha_id)); } else if (offerType == Enums.OfferType.offerIsFixing) { dataTable = conn_db.ReadTable(offerQuery.GetWorkshopOfferIsFixing(warsha_id)); } else if (offerType == Enums.OfferType.offerFinishFixing) { dataTable = conn_db.ReadTable(offerQuery.GetWorkshopOfferFinishFixing(warsha_id)); } if (dataTable.Rows.Count == 0) { throw new EmptyViewException(language); } WarshaOffersCriteria warshaOffersCriteria = new WarshaOffersCriteria(); List <WarshaOffersCriteria> warshaOffersCriterias = new List <WarshaOffersCriteria>(); foreach (System.Data.DataRow row in dataTable.Rows) { warshaOffersCriteria = new WarshaOffersCriteria(); warshaOffersCriteria.offer_id = Convert.ToInt32(row["OFFER_ID"].ToString()); warshaOffersCriteria.workshop_id = Convert.ToInt32(row["WORKSHOP_ID"].ToString()); warshaOffersCriteria.accident_Id = Convert.ToInt32(row["accidentId"].ToString()); warshaOffersCriteria.Price = row["PRICE"].ToString(); try { warshaOffersCriteria.timeValue = Convert.ToInt32(row["timeValue"]); } catch (Exception ex) { warshaOffersCriteria.timeValue = 0; } try { warshaOffersCriteria.timeFlag = Convert.ToInt32(row["timeFlag"]); } catch (Exception ex) { warshaOffersCriteria.timeFlag = 0; } try { warshaOffersCriteria.offerDateTime = Convert.ToDateTime(row["offer_DateTime"].ToString()).ToString("dd-MM-yyyy"); } catch { warshaOffersCriteria.offerDateTime = "01-01-2000"; } //IMPORTANT //if(offerType == Enums.OfferType.offerIsFixing) //{ // DateTime fixingStartDate = Convert.ToDateTime(row["WAITINGFIX_DATETIME"].ToString()).AddDays( Convert.ToInt32(warshaOffersCriteria.workDays+1) ); // DateTime Nowaday = DateTime.Now ; // TimeSpan noOfDays = fixingStartDate -Nowaday ; // if(noOfDays.Days<0) // { // warshaOffersCriteria.workDays = 0; // } // else // { // DateTime age = DateTime.MinValue + noOfDays; // int days = age.Day - 1; // warshaOffersCriteria.workDays = days; // } //} warshaOffersCriteria.plateNumber = row["plateNumber"].ToString(); warshaOffersCriteria.Status = Convert.ToInt32(row["Status"].ToString()); warshaOffersCriteria.statusNameEn = row["STATUS_NAME_EN"].ToString(); warshaOffersCriteria.statusNameAr = row["STATUS_NAME_AR"].ToString(); warshaOffersCriterias.Add(warshaOffersCriteria); } return(warshaOffersCriterias); }