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(); } } }
// 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; }