public BrandItem( RmsAuto.Store.Cms.Entities.Brand brand, RmsAuto.TechDoc.Entities.TecdocBase.Manufacturer manufacturer ) { if( brand == null ) throw new ArgumentNullException( "brand" ); if( manufacturer == null ) throw new ArgumentNullException( "manufacturer" ); Brand = brand; Manufacturer = manufacturer; }
public ShoppingCart(int ownerId, string clientId, RmsAuto.Acctg.ClientGroup clientGroup, decimal personalMarkup) { if( string.IsNullOrEmpty( clientId ) ) throw new ArgumentException( "Client id cannot be empty", "clientId" ); _ownerId = ownerId; _clientId = clientId; _clientGroup = clientGroup; _personalMarkup = personalMarkup; _storage = new PersistentShoppingCartStorage( _ownerId, _clientId ); }
/// <summary> /// Инициализация контролов и текущей заявки известными значениями /// </summary> private void InitControls(RmsAuto.Store.Entities.Reclamation tmpCurrentRequest) { if (ReclamationType == ReclamationTracking.ReclamationType.Reclamation) // Если заявка на возврат { _HeaderText.Text = Resources.Reclamations.ReturnRequest;//"Заявка на возврат"; _Qty.Text = Resources.Reclamations.ReturnQty;//"Количество на возврат"; _ReclamationReason.Text = Resources.Reclamations.ReturnReason;//"Причина возврата"; _ReclamationDescription.Text = Resources.Reclamations.ReturnReasonFull;//"Полное описание причины возврата товара"; phTorg12Number.Visible = phTorg12Price.Visible = true; _lSupplyDate.Text = Resources.Reclamations.ReturnInvoiceDate;//"Дата накладной"; _SupplyDate.Text = CurrentOrderLine.CurrentStatusDate.Value.ToString( "dd.MM.yyyy" ); } else // Если заявка на отказ { _HeaderText.Text = Resources.Reclamations.RefusalRequest;//"Заявка на отказ"; _Qty.Text = Resources.Reclamations.RefusalQty;//"Количество на отказ от получения"; _ReclamationReason.Text = Resources.Reclamations.RefusalReason;//"Причина отказа"; _ReclamationDescription.Text = Resources.Reclamations.RefusalReasonFull;//"Полное описание причины отказа от получения со склада"; phUnitQty.Visible = true; _lSupplyDate.Text = Resources.Reclamations.RefusalDeliveryDate;//"Дата поступления товара на склад"; tmpCurrentRequest.UnitQty = CurrentOrderLine.Qty; _UnitQty.Text = CurrentOrderLine.Qty.ToString(); } tmpCurrentRequest.SupplyDate = CurrentOrderLine.CurrentStatusDate; tmpCurrentRequest.ReclamationType = ReclamationType; _ClientName.Text = tmpCurrentRequest.ClientName = SiteContext.Current.CurrentClient.Profile.ClientName; _ClientID.Text = tmpCurrentRequest.ClientID = SiteContext.Current.CurrentClient.Profile.ClientId; _ManagerName.Text = tmpCurrentRequest.ManagerName = GetManagerName( SiteContext.Current.CurrentClient.Profile.ManagerId ); tmpCurrentRequest.ReclamationDate = DateTime.Now; _ReclamationDate.Text = DateTime.Now.ToString( "dd.MM.yyyy" ); tmpCurrentRequest.OrderID = CurrentOrderLine.OrderID; _OrderID.Text = CurrentOrderLine.OrderID.ToString(); _OrderDate.Text = tmpCurrentRequest.OrderDate.ToString("dd.MM.yyyy"); tmpCurrentRequest.EstSupplyDate = CurrentOrderLine.EstSupplyDate; _EstSupplyDate.Text = CurrentOrderLine.EstSupplyDate.HasValue ? CurrentOrderLine.EstSupplyDate.Value.ToString( "dd.MM.yyyy" ) : string.Empty; _Manufacturer.Text = tmpCurrentRequest.Manufacturer = CurrentOrderLine.Manufacturer; _PartNumber.Text = tmpCurrentRequest.PartNumber = CurrentOrderLine.PartNumber; _PartName.Text = tmpCurrentRequest.PartName = CurrentOrderLine.PartName; tmpCurrentRequest.SupplierID = CurrentOrderLine.SupplierID; tmpCurrentRequest.UnitPrice = CurrentOrderLine.UnitPrice; _UnitPrice.Text = CurrentOrderLine.UnitPrice.ToString(); tmpCurrentRequest.OrderLineID = CurrentOrderLine.OrderLineID; tmpCurrentRequest.AcctgOrderLineID = CurrentOrderLine.AcctgOrderLineID; }
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(); } } }
public decimal GetFinalSalePrice(RmsAuto.Acctg.ClientGroup clientGroup, decimal personalMarkup ) { GlobalSetting setting = null; decimal additionalPriceFactor = 1.0m; if (SizeID == 1) /* значит товар - габарит */ { setting = GlobalDBSettings.GlobalSettings.Current.GetSettingByName("PriceFactors.Gabarit"); } else if (SizeID == 2) /* значит товар - шина */ { setting = GlobalDBSettings.GlobalSettings.Current.GetSettingByName("PriceFactors.Tires"); } if (setting != null) { if (!Decimal.TryParse( setting.Value, NumberStyles.AllowDecimalPoint, new NumberFormatInfo() { NumberDecimalSeparator = "." }, out additionalPriceFactor)) { additionalPriceFactor = 1.0m; } } decimal clientGroupPrice = 0; if (SiteContext.Current.InternalFranchName == "rmsauto") //для Москвы цена считается по-старому { clientGroupPrice = InitialPrice * CorrectionFactor * CorrectionFactor39 * GetCustomFactor(clientGroup) /** GetAdditionalCustomFactor(clientGroup)*/ * additionalPriceFactor + PriceConstantTerm.GetValueOrDefault(); } else { //считаем цену для франча //номер колонки для расчета базовой цены для франча берем из справочника RmsAuto.Acctg.ClientGroup cgf = (RmsAuto.Acctg.ClientGroup)AcctgRefCatalog.RmsFranches[SiteContext.Current.InternalFranchName].ClientGroup; var clientGroupPrice_Franch = InitialPrice * CorrectionFactor * CorrectionFactor39 * GetCustomFactor(cgf) * GetAdditionalCustomFactor(clientGroup) * additionalPriceFactor + PriceConstantTerm.GetValueOrDefault(); //считаем цену для РМС var clientGroupPrice_RMS = InitialPrice * CorrectionFactor * CorrectionFactor39 * GetCustomFactor(clientGroup) * additionalPriceFactor + PriceConstantTerm.GetValueOrDefault(); //берем максимальную (исключая таким образом занижение франчами цен относительно наших) clientGroupPrice = Math.Max(clientGroupPrice_Franch, clientGroupPrice_RMS); } var finalPrice = clientGroupPrice * (100 + personalMarkup) / 100; return Math.Round(finalPrice, 2); //Math.Round(x, 2) - since coefs have 4-digits accuracy }
public decimal GetCustomFactor(RmsAuto.Acctg.ClientGroup clientGroup) { switch( clientGroup ) { case RmsAuto.Acctg.ClientGroup.Group1: return CustomFactor1; case RmsAuto.Acctg.ClientGroup.Group2: return CustomFactor2; case RmsAuto.Acctg.ClientGroup.Group3: return CustomFactor3; case RmsAuto.Acctg.ClientGroup.Group4: return CustomFactor4; case RmsAuto.Acctg.ClientGroup.Group5: return CustomFactor5; case RmsAuto.Acctg.ClientGroup.Group6: return CustomFactor6; case RmsAuto.Acctg.ClientGroup.Group7: return CustomFactor7; case RmsAuto.Acctg.ClientGroup.Group8: return CustomFactor8; case RmsAuto.Acctg.ClientGroup.Group9: return CustomFactor9; case RmsAuto.Acctg.ClientGroup.Group10: return CustomFactor10; case RmsAuto.Acctg.ClientGroup.Group11: return CustomFactor11; case RmsAuto.Acctg.ClientGroup.Group12: return CustomFactor12; case RmsAuto.Acctg.ClientGroup.Group13: return CustomFactor13; case RmsAuto.Acctg.ClientGroup.Group14: return CustomFactor14; case RmsAuto.Acctg.ClientGroup.Group15: return CustomFactor15; case RmsAuto.Acctg.ClientGroup.Group16: return CustomFactor16; case RmsAuto.Acctg.ClientGroup.Group17: return CustomFactor17; case RmsAuto.Acctg.ClientGroup.Group18: return CustomFactor18; case RmsAuto.Acctg.ClientGroup.Group19: return CustomFactor19; case RmsAuto.Acctg.ClientGroup.Group20: return CustomFactor20; case RmsAuto.Acctg.ClientGroup.Group21: return CustomFactor21; case RmsAuto.Acctg.ClientGroup.Group22: return CustomFactor22; case RmsAuto.Acctg.ClientGroup.Group23: return CustomFactor23; case RmsAuto.Acctg.ClientGroup.Group24: return CustomFactor24; case RmsAuto.Acctg.ClientGroup.Group25: return CustomFactor25; case RmsAuto.Acctg.ClientGroup.Group26: return CustomFactor26; case RmsAuto.Acctg.ClientGroup.Group27: return CustomFactor27; case RmsAuto.Acctg.ClientGroup.Group28: return CustomFactor28; case RmsAuto.Acctg.ClientGroup.Group29: return CustomFactor29; case RmsAuto.Acctg.ClientGroup.Group30: return CustomFactor30; case RmsAuto.Acctg.ClientGroup.Group31: return CustomFactor31; case RmsAuto.Acctg.ClientGroup.Group32: return CustomFactor32; case RmsAuto.Acctg.ClientGroup.Group33: return CustomFactor33; case RmsAuto.Acctg.ClientGroup.Group34: return CustomFactor34; case RmsAuto.Acctg.ClientGroup.Group35: return CustomFactor35; case RmsAuto.Acctg.ClientGroup.Group36: return CustomFactor36; case RmsAuto.Acctg.ClientGroup.Group37: return CustomFactor37; case RmsAuto.Acctg.ClientGroup.Group38: return CustomFactor38; case RmsAuto.Acctg.ClientGroup.Group39: return CustomFactor39; case RmsAuto.Acctg.ClientGroup.Group40: return CustomFactor40; case RmsAuto.Acctg.ClientGroup.Group41: return CustomFactor41; case RmsAuto.Acctg.ClientGroup.Group42: return CustomFactor42; case RmsAuto.Acctg.ClientGroup.Group43: return CustomFactor43; case RmsAuto.Acctg.ClientGroup.Group44: return CustomFactor44; case RmsAuto.Acctg.ClientGroup.Group45: return CustomFactor45; case RmsAuto.Acctg.ClientGroup.Group46: return CustomFactor46; case RmsAuto.Acctg.ClientGroup.Group47: return CustomFactor47; case RmsAuto.Acctg.ClientGroup.Group48: return CustomFactor48; case RmsAuto.Acctg.ClientGroup.Group49: return CustomFactor49; case RmsAuto.Acctg.ClientGroup.Group50: return CustomFactor50; case RmsAuto.Acctg.ClientGroup.Group51: return CustomFactor51; case RmsAuto.Acctg.ClientGroup.Group52: return CustomFactor52; case RmsAuto.Acctg.ClientGroup.Group53: return CustomFactor53; case RmsAuto.Acctg.ClientGroup.Group54: return CustomFactor54; case RmsAuto.Acctg.ClientGroup.Group55: return CustomFactor55; case RmsAuto.Acctg.ClientGroup.Group56: return CustomFactor56; case RmsAuto.Acctg.ClientGroup.Group57: return CustomFactor57; case RmsAuto.Acctg.ClientGroup.Group58: return CustomFactor58; case RmsAuto.Acctg.ClientGroup.Group59: return CustomFactor59; case RmsAuto.Acctg.ClientGroup.Group60: return CustomFactor60; case RmsAuto.Acctg.ClientGroup.Group61: return CustomFactor61; case RmsAuto.Acctg.ClientGroup.Group62: return CustomFactor62; case RmsAuto.Acctg.ClientGroup.Group63: return CustomFactor63; case RmsAuto.Acctg.ClientGroup.Group64: return CustomFactor64; case RmsAuto.Acctg.ClientGroup.Group65: return CustomFactor65; case RmsAuto.Acctg.ClientGroup.Group66: return CustomFactor66; case RmsAuto.Acctg.ClientGroup.Group67: return CustomFactor67; case RmsAuto.Acctg.ClientGroup.Group68: return CustomFactor68; case RmsAuto.Acctg.ClientGroup.Group69: return CustomFactor69; case RmsAuto.Acctg.ClientGroup.Group70: return CustomFactor70; case RmsAuto.Acctg.ClientGroup.Group71: return CustomFactor71; case RmsAuto.Acctg.ClientGroup.Group72: return CustomFactor72; case RmsAuto.Acctg.ClientGroup.Group73: return CustomFactor73; case RmsAuto.Acctg.ClientGroup.Group74: return CustomFactor74; case RmsAuto.Acctg.ClientGroup.Group75: return CustomFactor75; case RmsAuto.Acctg.ClientGroup.Group76: return CustomFactor76; case RmsAuto.Acctg.ClientGroup.Group77: return CustomFactor77; case RmsAuto.Acctg.ClientGroup.Group78: return CustomFactor78; case RmsAuto.Acctg.ClientGroup.Group79: return CustomFactor79; case RmsAuto.Acctg.ClientGroup.Group80: return CustomFactor80; case RmsAuto.Acctg.ClientGroup.Group81: return CustomFactor81; case RmsAuto.Acctg.ClientGroup.Group82: return CustomFactor82; case RmsAuto.Acctg.ClientGroup.Group83: return CustomFactor83; case RmsAuto.Acctg.ClientGroup.Group84: return CustomFactor84; case RmsAuto.Acctg.ClientGroup.Group85: return CustomFactor85; case RmsAuto.Acctg.ClientGroup.Group86: return CustomFactor86; case RmsAuto.Acctg.ClientGroup.Group87: return CustomFactor87; case RmsAuto.Acctg.ClientGroup.Group88: return CustomFactor88; case RmsAuto.Acctg.ClientGroup.Group89: return CustomFactor89; case RmsAuto.Acctg.ClientGroup.Group90: return CustomFactor90; case RmsAuto.Acctg.ClientGroup.Group91: return CustomFactor91; case RmsAuto.Acctg.ClientGroup.Group92: return CustomFactor92; case RmsAuto.Acctg.ClientGroup.Group93: return CustomFactor93; case RmsAuto.Acctg.ClientGroup.Group94: return CustomFactor94; case RmsAuto.Acctg.ClientGroup.Group95: return CustomFactor95; case RmsAuto.Acctg.ClientGroup.Group96: return CustomFactor96; case RmsAuto.Acctg.ClientGroup.Group97: return CustomFactor97; case RmsAuto.Acctg.ClientGroup.Group98: return CustomFactor98; case RmsAuto.Acctg.ClientGroup.Group99: return CustomFactor99; case RmsAuto.Acctg.ClientGroup.Group100: return CustomFactor100; default: throw new IndexOutOfRangeException(); } }
public decimal GetAdditionalCustomFactor(RmsAuto.Acctg.ClientGroup clientGroup) { //Если это не франч, то этот параметр не учитывается if (SiteContext.Current.InternalFranchName == "rmsauto") return 1.0m; switch (clientGroup) { case RmsAuto.Acctg.ClientGroup.Group1: return AdditionalCF1; case RmsAuto.Acctg.ClientGroup.Group2: return AdditionalCF2; case RmsAuto.Acctg.ClientGroup.Group3: return AdditionalCF3; case RmsAuto.Acctg.ClientGroup.Group4: return AdditionalCF4; case RmsAuto.Acctg.ClientGroup.Group5: return AdditionalCF5; case RmsAuto.Acctg.ClientGroup.Group20: return AdditionalCF6; case RmsAuto.Acctg.ClientGroup.Group21: return AdditionalCF7; case RmsAuto.Acctg.ClientGroup.Group8: return AdditionalCF8; case RmsAuto.Acctg.ClientGroup.Group10: return AdditionalCF9; case RmsAuto.Acctg.ClientGroup.Group13: return AdditionalCF10; case RmsAuto.Acctg.ClientGroup.Group15: return AdditionalCF11; default: throw new IndexOutOfRangeException(); } }
private ShoppingCart(RmsAuto.Acctg.ClientGroup clientGroup, decimal personalMarkup) { _clientGroup = clientGroup; _personalMarkup = personalMarkup; _storage = new TemporaryShoppingCartStorage(); }
public decimal GetFinalSalePrice(RmsAuto.Acctg.ClientGroup clientGroup, decimal personalMarkup) { var clientGroupPrice = InitialPrice * CorrectionFactor * CorrectionFactor39 * GetCustomFactor(clientGroup) + _PriceConstantTerm.GetValueOrDefault(); var finalPrice = clientGroupPrice * (100 + personalMarkup) / 100; return Math.Round(finalPrice, 2); //Math.Round(x, 2) - since coefs have 4-digits accuracy }
public static ClientProfile CreateGuestProfile(RmsAuto.Acctg.ClientGroup clientGroup,decimal personalMarkup) { return new ClientProfile() { ClientGroup = clientGroup, PersonalMarkup = personalMarkup }; }