コード例 #1
0
        public static SparePartFranch Load(StoreDataContext context, SparePartPriceKey key)
        {
            if (context == null)
                throw new ArgumentNullException("context");
            if (key == null)
                throw new ArgumentNullException("key");

            string query = @"SELECT * FROM fSparePartWithCustomFactors({0},{1},{2},{3},{4})";

            return context.ExecuteQuery<SparePartFranch>(query,
                "" /* код франча для "региональных" прайсов */,
                key.PN, key.Mfr, key.SupplierId,
                0 /*добавочный период к срокам поставки*/,"rmsauto").SingleOrDefault<SparePartFranch>();
        }
コード例 #2
0
ファイル: SparePartsDac.cs プロジェクト: dmziryanov/ApecAuto
        public static SparePartFranch Load(StoreDataContext context, SparePartPriceKey key)
        {
            if (context == null)
                throw new ArgumentNullException("context");
            if (key == null)
                throw new ArgumentNullException("key");

            //TODO: Протестировать создание _getPart

            string query = @"SELECT * FROM fSparePartWithCustomFactors({0},{1},{2},{3})";

            return context.ExecuteQuery<SparePartFranch>(query,
                AcctgRefCatalog.RmsFranches[SiteContext.Current.InternalFranchName].RegionCode /* код франча для "региональных" прайсов */,
                key.PN, key.Mfr, key.SupplierId).SingleOrDefault<SparePartFranch>();
        }
コード例 #3
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();
                }
            }
        }
コード例 #4
0
        public static List<SparePartFranch> LoadMassive(StoreDataContext context, IEnumerable<SparePartPriceKey> keys)
        {
            if (context == null)
                throw new ArgumentNullException("context");
            if (keys == null)
                throw new ArgumentNullException("keys");
            String query = "DECLARE @t TABLE(Manufacturer varchar(50), PartNumber varchar(50), SupplierID int) ";
            foreach (var key in keys)
            {
                query += "INSERT INTO @t VALUES('" + key.Mfr + "','" + key.PN + "','" + key.SupplierId + "') ";
            }

            query += @"
                select s.* from @t as t cross apply fSparePartWithCustomFactorsRMS({0}, t.PartNumber, t.Manufacturer, t.SupplierID, {1}) s
                union
                select s.* from @t as t cross apply fSparePartWithCustomFactors({0}, t.PartNumber, t.Manufacturer, t.SupplierID, {1}) s";

            IEnumerable<SparePartFranch> parts = context.ExecuteQuery<SparePartFranch>(
                        query, AcctgRefCatalog.RmsFranches[SiteContext.Current.InternalFranchName].RegionCode, AcctgRefCatalog.RmsFranches[SiteContext.Current.InternalFranchName].AdditionalPeriod);

            return new List<SparePartFranch>(parts);
        }
コード例 #5
0
ファイル: SparePartsDac.cs プロジェクト: dmziryanov/ApecAuto
        public static List<SparePartFranch> LoadMassive(StoreDataContext context, IEnumerable<SparePartPriceKey> keys)
        {
            if (AcctgRefCatalog.RmsFranches[SiteContext.Current.InternalFranchName].InternalFranchName == "rmsauto")
            {
                if (context == null)
                    throw new ArgumentNullException("context");
                if (keys == null)
                    throw new ArgumentNullException("keys");
                String query = "DECLARE @t TABLE(Manufacturer varchar(50), PartNumber varchar(50), SupplierID int) ";
                foreach (var key in keys)
                {
                    query += "INSERT INTO @t VALUES('" + key.Mfr + "','" + key.PN + "','" + key.SupplierId + "') ";
                }

                query += "SELECT s.* " +
                        "FROM SparePartWithCustomFactors AS s " +
                        "JOIN @t AS t on s.Manufacturer = t.Manufacturer AND " +
                        "s.PartNumber = t.PartNumber AND s.SupplierID = t.SupplierID";

                IEnumerable<SparePartFranch> parts = context.ExecuteQuery<SparePartFranch>(query);

                return new List<SparePartFranch>(parts);
            }
            else
            {
                return SparePartsDacFranch.LoadMassive(context, keys);
            }
        }
コード例 #6
0
ファイル: SparePartsDac.cs プロジェクト: dmziryanov/ApecAuto
        public static List<SparePartFranch> LoadMassive(StoreDataContext context, IEnumerable<ShoppingCartAddItem> keys)
        {
            if (context == null)
                throw new ArgumentNullException("context");
            if (keys == null)
                throw new ArgumentNullException("keys");
            String query = "DECLARE @t TABLE(Manufacturer varchar(50), PartNumber varchar(50), SupplierID int) ";
            foreach (var key in keys)
            {
                query += "INSERT INTO @t VALUES('" + key.Key.Mfr + "','" + key.Key.PN + "','" + key.Key.SupplierId + "') ";
            }

            query += "SELECT s.* " +
                    "FROM SparePartWithCustomFactors AS s " +
                    "JOIN @t AS t on s.Manufacturer = t.Manufacturer AND " +
                    "s.PartNumber = t.PartNumber AND s.SupplierID = t.SupplierID";

            IEnumerable<SparePartFranch> parts = context.ExecuteQuery<SparePartFranch>(
                        query);

            return new List<SparePartFranch>(parts);
        }