Example #1
0
        /// <summary>
        /// Возвращает ссылку на balance либо созданный либо найденный
        /// </summary>
        /// <param name="date">дата остатка</param>
        /// <param name="stock">склад</param>
        /// <param name="cost">Себестоимость</param>
        /// <param name="item">Запчасть</param>
        /// <param name="count">Количество на складе</param>
        /// <param name="context"></param>
        /// <returns></returns>
        private static balance GetBalance(DateTime date, stock stock, decimal cost, item item, decimal count,
                                          OrderAssistantEntities context)
        {
            // Проверяем есть такая запись или нет
            var balance = (from b in context.balances.Local
                           where b.stock.id == stock.id && b.dateCount == date && b.item.id1C == item.id1C
                           select b).FirstOrDefault();

            // Если нет создаем
            if (balance == null)
            {
                var newBalance = new balance()
                {
                    dateCount = date,
                    stock     = stock,
                    cost      = cost,
                    item      = item,
                    count     = count
                };
                balance = context.balances.Add(newBalance);
            }
            // Или обновляем
            else
            {
                balance.cost  = cost;
                balance.count = count;
            }
            return(balance);
        }
Example #2
0
        /// <summary>
        /// Возвращает ссылку на item либо созданный либо найденный
        /// </summary>
        /// <param name="name">Название ЗЧ</param>
        /// <param name="id1C">Код 1С</param>
        /// <param name="manufacturerStr">Производитель название</param>
        /// <param name="brendStr">Название бренда</param>
        /// <param name="catNumber">Артикул</param>
        /// <param name="context"></param>
        /// <returns>Ссылка на item</returns>
        private static item GetItem(string name, string id1C, string manufacturerStr, string brendStr, string catNumber,
                                    OrderAssistantEntities context)
        {
            // Проверяем есть ли такой item
            var item = (from i in context.items.Local
                        where i.id1C == id1C
                        select i).FirstOrDefault();

            // Если такого item нет, создаем
            if (item == null)
            {
                var newItem = new item()
                {
                    id1C         = id1C,
                    manufacturer = GetManufacturer(manufacturerStr, context),
                    brand        = GetBrand(brendStr, context),
                    catNumber    = catNumber,
                    name         = name,
                    ABCgroup     = "D"                 //TODO должно само в базе подставляться. но почемуто не хочет
                };
                item = context.items.Add(newItem);
                return(item);
            }
            // Иначе обновляем
            item.manufacturer = GetManufacturer(manufacturerStr, context);
            item.brand        = GetBrand(brendStr, context);
            item.catNumber    = catNumber;
            item.name         = name;
            return(item);
        }
Example #3
0
 /// <summary>
 /// Возвращает Stock который подходит под определенную сигнатуру, без учета регистра
 /// </summary>
 /// <param name="stockStr">строка с описанием скалада</param>
 /// <param name="context"></param>
 /// <returns></returns>
 private static stock TakeStock(string stockStr, OrderAssistantEntities context)
 {
     if (String.IsNullOrEmpty(stockStr))
     {
         throw new Exception("Строка пуста или NULL.");
     }
     return(Enumerable.FirstOrDefault(context.stocks, stock => stockStr.ToLower().Contains(stock.signature)));
 }
Example #4
0
        /// <summary>
        /// Возвращает ссылку на производителя либо созданого либо найденного, ищет без учета регистра.
        /// </summary>
        /// <param name="nameStr">Название производителя</param>
        /// <param name="context"></param>
        /// <returns>Ссылка на производителя</returns>
        private static manufacturer GetManufacturer(string nameStr, OrderAssistantEntities context)
        {
            // Проверяем, есть ли такой бренд
            var manufacturer = (from m in context.manufacturers.Local
                                where m.name.ToLower().Contains(nameStr.ToLower())
                                select m).FirstOrDefault();

            if (manufacturer == null)
            {
                var newManufacturer = new manufacturer()
                {
                    name = nameStr
                };
                manufacturer = context.manufacturers.Add(newManufacturer);
            }
            return(manufacturer);
        }
Example #5
0
        /// <summary>
        /// Возвращает ссылку на бренд либо созданый либо найденный, ищет без учета регистра.
        /// </summary>
        /// <param name="nameStr">Название</param>
        /// <param name="context"></param>
        /// <returns>Ссылка на бренд</returns>
        private static brand GetBrand(string nameStr, OrderAssistantEntities context)
        {
            // Проверяем, есть ли такой бренд
            var brend = (from b in context.brands.Local
                         where b.name.ToLower().Contains(nameStr.ToLower())
                         select b).FirstOrDefault();

            if (brend == null)
            {
                var newBrend = new brand()
                {
                    name = nameStr
                };
                brend = context.brands.Add(newBrend);
            }
            return(brend);
        }