protected string GetSparePartDetailsUrl(SparePartFranch sparePart)
 {
     SparePartPriceKey key = new SparePartPriceKey(
         sparePart.Manufacturer,
         sparePart.PartNumber,
         sparePart.SupplierID);
     return UrlManager.GetSparePartDetailsUrl(key.ToUrlString());
 }
Пример #2
0
        internal void AssignSparePart(SparePartFranch part, RmsAuto.Acctg.ClientGroup clientGroup, decimal personalMarkup)
        {
            _issues = ShoppingCartItemIssues.NoIssues;

            if (part != null)
            {
                if( UnitPrice != part.GetFinalSalePrice( clientGroup, personalMarkup ) )
                    _issues |= ShoppingCartItemIssues.FinalPartPriceChanged;

                UpdateQtyIssues( part );
                //if (Qty < part.DefaultOrderQty)
                //    _issues |= ShoppingCartItemIssues.QtyBelowRequiredMinimum;
                //else if (Qty % part.DefaultOrderQty != 0)
                //    _issues |= ShoppingCartItemIssues.QtyMultiplicityViolation;

                //if (part.QtyInStock.GetValueOrDefault() > 0 && Qty > part.QtyInStock)
                //    _issues |= ShoppingCartItemIssues.QtyAboveAvailableInStock;

                // deas 25.05.2011 task4218 запрет заказа товаров по нулевой цене
                if ( UnitPrice == 0 )
                    _issues |= ShoppingCartItemIssues.FinalPartPriceNoSet;
            }
            else
                _issues |= ShoppingCartItemIssues.SparePartDiscontinued;

            _part = part;

            //Здесь не нужно использовать фабрику так как
            using (var dc = new StoreDataContext())
            {
                try
                {
                    var resList = dc.spSelSuppliersWithoutAnalogs().ToList().Select( s => s.SupplierID ).ToList<int>();
                    _isAnalogsNotSupported = resList.Contains( part.SupplierID );

                    //TODO: дописать запрос
                    IEnumerable<int> resList2 = dc.ExecuteQuery<int>("Select [SupplierID] From SuppliersWithOnlyAnalogs");
                    if (resList2.Contains(part.SupplierID)) { _isAnalogsNotSupported = null; };
                }
                catch
                {
                    //просто не падаем
                }
                finally
                {
                    if (dc.Connection.State == System.Data.ConnectionState.Open)
                        dc.Connection.Close();
                }
            }
        }
Пример #3
0
        // deas 01.03.2011 task2401
        // для расчета ограничений по итоговым данным
        public void UpdateQtyIssues( SparePartFranch part )
        {
            if ( Qty < part.DefaultOrderQty )
                _issues |= ShoppingCartItemIssues.QtyBelowRequiredMinimum;
            else if ( Qty % part.DefaultOrderQty != 0 )
                _issues |= ShoppingCartItemIssues.QtyMultiplicityViolation;

            if ( part.QtyInStock.GetValueOrDefault() > 0 && Qty > part.QtyInStock )
                _issues |= ShoppingCartItemIssues.QtyAboveAvailableInStock;
        }
Пример #4
0
        /// <summary>
        /// Возвращает строковое представление кол-ва на складе (остатков)
        /// </summary>
        /// <param name="qtyInStock">кол-во на складе</param>
        /// <returns>строковое представление</returns>
        public static string GetQtyInStockString(SparePartFranch sp)
        {
            if (!sp.QtyInStock.HasValue) { return string.Empty; } //эта проверка на всякий случай, т.к. по бизнес-логике не должно быть такого
            else if (StoreRefCatalog.RefSearchOwnStores.Items.Select(x => x.SupplierID).Contains(sp.SupplierID))
            {
                if (sp.QtyInStock.Value < 10) return sp.QtyInStock.Value.ToString();
                if (sp.QtyInStock.Value <= 30) { return ">10"; }
                if (sp.QtyInStock.Value <= 100) { return ">30"; }
                if (sp.QtyInStock.Value <= 1000) { return ">100"; }
                return ">1000"; //Всех остальных случаях

            }
            else { return sp.QtyInStock.Value.ToString(); }
        }