Manitou 100VJR


Info about the machine
- Specifications
Number
000702674
Model year
2023
2023
Number of hours
40
Serial number
MAN00000L01095534
Weight (kg)
2650
Construction height (mm)
1990
Length (mm)
2820
Width (mm)
990
Lifting capacity (kg)
200
Electric equipment
230V to the platform
Hydraulics
Biodegradable hydraulic oil
Other equipment
Easy Manager - Trackunit med Dual-id
Engine fuel type
Electric
Wheel front type
non-marking
Wheel front size
16-5-11 1/4
Wheel rear type
non-marking
Wheel rear size
16-5-11 1/4
Battery (V)
24
Battery (Ah)
250
Platform height (mm)
7900
Outlay (mm)
3150
Rotation chassis (degrees)
350
Platform width (mm)
750
Platform length (mm)
900
Wheelbase (mm)
120
Free height (mm)
100
Lifting speed up/down (sek.)
4
Gradeability (%)
25
Permissible leveling (degrees)
2/3,5
Trackunit
3811253
Working height (mm)
9900
Placement
Sweden
Location
Rosersberg
Error executing template "Designs/Swift/Paragraph/Custom_RelatedProducts.cshtml" System.NullReferenceException: Object reference not set to an instance of an object. at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryFieldGroupValueService.GetOrderedInheritableParentIds(Group group, String defaultLanguageId) at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryFieldGroupValueService.RecursivelySearchForFieldValues(Group group, String defaultLanguageId, List`1 categoryFields) at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryFieldGroupValueService.RecursivelySearchForFieldValues(Group group, String defaultLanguageId, List`1 categoryFields) at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode) at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor) at System.Lazy`1.CreateValue() at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryFieldGroupValueService.GetGroupFieldValuesByLanguage(Group group, List`1 categoryFields, String languageId, Boolean isInheritedValue, Boolean searchRecursively) at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryFieldGroupValueService.GetGroupCategoryFieldValues(IEnumerable`1 groups, List`1 fields, Boolean allowFallback) at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryFieldGroupValueService.GetDefaultCategoryValuesFromGroups(IEnumerable`1 groupInfos, List`1 catFields) at Dynamicweb.Ecommerce.Products.Categories.ProductCategoryFieldValueService.GetProductCategoryFieldValue(Product product, String categoryId, Field field) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.CreateView(ProductViewModelSettings settings, Product product, Field field) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.GetFieldDisplayGroupValues(ProductViewModelSettings settings, Product product, String languageID, Lazy`1 productIds) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.<>c__DisplayClass3_1.<BulkCreateView>b__59() at Dynamicweb.Ecommerce.ProductCatalog.ViewModelPropertyFiller`1.Fill[S](T model, String propertyName, Func`1 source) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.BulkCreateView(ProductViewModelSettings settings, Boolean isRecursive, IList`1 products) at Dynamicweb.Ecommerce.ProductCatalog.ViewEngine.CreateView(ProductViewModelSettings settings, Product product) at CompiledRazorTemplates.Dynamic.RazorEngine_a6f01f4f58b44571895a4fb9d3243558.ExecuteAsync() at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Core 3 @using Dynamicweb.Ecommerce.ProductCatalog 4 @using System.Linq 5 @using Dynamicweb.Environment 6 @using Application.Extensions 7 @using Scantruck.Website.Custom.ViewModels 8 9 @if (!Pageview.IsVisualEditorMode) 10 { 11 12 string lazyHeight = Model.Item?.GetBoolean("SetMinHeightForLazyLoading") == true ? "min-height: 360px" : ""; 13 string theme = !string.IsNullOrWhiteSpace(Model.Item?.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 14 int paragraphId = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.Form.Get("ParagraphId")) ? Convert.ToInt32(Dynamicweb.Context.Current.Request.Form.Get("ParagraphId")) : 0; 15 16 //Link generation 17 string pageId = Model.Item?.GetLink("ProductSliderServicePage")?.PageId.ToString() ?? ""; 18 string servicePageByNavigationTag = GetPageIdByNavigationTag("RelatedProductSliderService") != 0 ? GetPageIdByNavigationTag("RelatedProductSliderService").ToString() : ""; 19 pageId = string.IsNullOrEmpty(pageId) ? servicePageByNavigationTag : pageId; 20 string HrefTarget = Model.Item?.GetBoolean("OpenNewWindow") == true ? "_blank" : ""; 21 22 bool productViewModelFound = false; 23 ProductViewModel product = new ProductViewModel(); 24 25 ProductViewModelSettings productSetting = new ProductViewModelSettings 26 { 27 LanguageId = Dynamicweb.Ecommerce.Common.Context.LanguageID, 28 CurrencyCode = Dynamicweb.Ecommerce.Common.Context.Currency.Code, 29 CountryCode = Dynamicweb.Ecommerce.Common.Context.Country.Code2, 30 ShopId = Pageview.Area.EcomShopId 31 }; 32 33 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 34 { 35 productViewModelFound = true; 36 product = Dynamicweb.Context.Current.Items["ProductDetails"] as ProductViewModel; 37 } 38 39 string title = Model?.Item?.GetRawValueString("Title", Translate("Products")); 40 41 if (product?.RelatedGroups?.Count > 0) 42 { 43 <div class="custom-related-products"> 44 @if (!string.IsNullOrWhiteSpace(title)) 45 { 46 <h2 class="custom-related-products__title">@title</h2> 47 } 48 @if (product.RelatedGroups.Count > 1) 49 { 50 <ul class="custom-related-products__menu tabs tabs--related"> 51 <li id="related-tabs-toggle" class="tabs__tab__toggle"> 52 <span class="tab-toggle__text"></span> 53 <svg class="tabs__tab__toggle__icon" :class="{ 'tabs__tab__toggle__icon--active': isToggleActive }" xmlns="http://www.w3.org/2000/svg" width="14" height="8" viewBox="0 0 14 8"> 54 <path d="M13.6641 2.56489L7.18487 8L6.79492 8L0.33073 2.56489L1.74055 1.42186e-07L7.00489 4.30534L12.2542 1.6812e-08L13.6641 2.56489Z" /> 55 </svg> 56 </li> 57 <li> 58 <ul class="tabs__dropdown custom-related-products__menu__button-container"> 59 @{ 60 int buttonCount = 0; 61 } 62 @foreach (var relatedGroup in product.RelatedGroups.OrderBy(x => x.Id)) 63 { 64 <li id="button-@relatedGroup.Id.ToLower()" data-swiper-target="#swiper-@relatedGroup.Id.ToLower()" class="tabs__tab @(buttonCount == 0 ? "tabs__tab--active" : "") custom-related-products__menu__button-container__button @(buttonCount == 0 ? "custom-related-products__menu__button-container__button--active" : "")">@relatedGroup.Name</li> 65 66 buttonCount++; 67 } 68 </ul> 69 </li> 70 </ul> 71 } 72 <div class="custom-product-slider" id="related-product-sliders"> 73 @{ 74 int groupCount = 0; 75 } 76 77 @foreach (var relatedGroup in product.RelatedGroups.OrderBy(x => x.Id)) 78 { 79 <div id="swiper-@relatedGroup.Id.ToLower()" class="swiper swiper-@relatedGroup.Id.ToLower() swiper-container @(groupCount > 0 ? "collapse" : "collapse show")"> 80 <div class="swiper-controls-container container-xl"> 81 <div class="swiper-pagination swiper-pagination-@relatedGroup.Id.ToLower() swiper-controls-container__custom-slider"></div> 82 <div class="swiper-controls-container__button-container"> 83 <div class="swiper-button-next swiper-button-@relatedGroup.Id.ToLower()-next button-box "> 84 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 85 <path d="M6.11959e-07 9L12.17 9L6.58 14.59L8 16L16 8L8 -6.99382e-07L6.59 1.41L12.17 7L7.86805e-07 7L6.11959e-07 9Z" fill="black" /> 86 </svg> 87 </div> 88 <div class="swiper-button-prev swiper-button-@relatedGroup.Id.ToLower()-prev button-box "> 89 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 90 <path d="M16 7H3.83L9.42 1.41L8 0L0 8L8 16L9.41 14.59L3.83 9H16V7Z" fill="black" /> 91 </svg> 92 </div> 93 </div> 94 </div> 95 <div class="swiper-wrapper"> 96 @foreach (var relatedProduct in relatedGroup.Products.Take(10)) 97 { 98 var productInfo = ViewModelFactory.CreateView(productSetting, relatedProduct.ProductId) as CustomProductViewModel; 99 if (productInfo == null) continue; 100101 var imagePath = productInfo.HasImages ? productInfo.DefaultImage.Value : productInfo.GetCustomDefaultImage(Pageview.AreaID); 102103 // Cache product fields 104 var productFields = productInfo.ProductFields; 105106 // Extract CustomProductType 107 int customProductType = 0; 108 if (productFields.TryGetValue("CustomProductType", out var typeField) 109 && typeField is Dynamicweb.Ecommerce.ProductCatalog.FieldValueViewModel typeValue 110 && typeValue.Value is List<Dynamicweb.Ecommerce.ProductCatalog.FieldOptionValueViewModel> typeList 111 && typeList.Any()) 112 { 113 customProductType = Convert.ToInt32(typeList.First().Value); 114 } 115116 // Extract CustomProductCondition 117 int customProductCondition = 0; 118 if (productFields.TryGetValue("CustomProductCondition", out var conditionField) 119 && conditionField is Dynamicweb.Ecommerce.ProductCatalog.FieldValueViewModel conditionValue 120 && conditionValue.Value is List<Dynamicweb.Ecommerce.ProductCatalog.FieldOptionValueViewModel> condList 121 && condList.Any()) 122 { 123 customProductCondition = Convert.ToInt32(condList.First().Value); 124 } 125126127 // Determine classification and premium status 128 bool hasClassification = false, isPremium = false; 129 string classification = ""; 130131 if (productInfo.ProductCategories?.TryGetValue("specifications_bc", out var categoryFields) == true && categoryFields.Fields != null) 132 { 133 var bcFields = categoryFields.Fields; 134 classification = bcFields.TryGetValue("M_0010500", out var classField) && classField?.Value != null ? classField.Value.ToString() : ""; 135 hasClassification = !string.IsNullOrWhiteSpace(classification); 136137 isPremium = bcFields.TryGetValue("M_0090530", out var premiumField) && bool.TryParse(premiumField?.Value?.ToString(), out var premium) && premium; 138 } 139140 if (Pageview.AreaID == 6) hasClassification = false; 141142 // Navigation Tag and Spec Fallback 143 string navigationTag = "ShopNewMachines"; 144 string specFallbackGroup = "AllSpecs"; 145146 if (customProductType != 2) // 2 == maskiner 147 { 148 navigationTag = customProductCondition == 2 ? "ShopNewEquipment" : "ShopOldEquipment"; 149 } 150 else 151 { 152 navigationTag = customProductCondition == 2 ? "ShopNewMachines" : "ShopUsedMachines"; 153 specFallbackGroup = customProductCondition == 2 ? "NewMachinesDefaultListSpecs" : "UsedMachinesDefaultListSpecs"; 154 } 155156 var link = productInfo.GetProductLink(GetPageIdByNavigationTag(navigationTag), false); 157158 @if (!string.IsNullOrWhiteSpace(productInfo.PrimaryOrDefaultGroup?.Id)) 159 { 160 <div class="swiper-slide custom-product-slider__item"> 161 <div class="custom-product-slider__item-iner"> 162 <a href="@link" class="custom-product-slider__item-name"> 163 @productInfo.Name 164 @if (hasClassification) 165 { 166 <span class="classification-badge classification-badge--@classification.Replace("+", "_plus")"></span> 167 } 168 </a> 169170 <a href="@link" class="custom-product-slider__item-media"> 171 <picture> 172 <img src="@imagePath" alt="@productInfo.Name"> 173 </picture> 174 <div class="custom-product-slider__item-media-overlay"></div> 175 <div class="custom-product-slider__item-tags"> 176 <div class="custom-product-slider__item-link"> 177 <span class="text">@Translate("Se produkt")</span> 178 <span class="icon"> 179 <svg viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 180 <path d="M0.9875 11.6029L15.5915 11.6029L8.8835 18.3109L10.5875 20.0029L20.1875 10.4029L10.5875 0.802928L8.8955 2.49493L15.5915 9.20293L0.9875 9.20293L0.9875 11.6029Z" fill="currentColor" /> 181 </svg> 182 </span> 183 </div> 184 </div> 185186 @if (isPremium) 187 { 188 <div class="product-badge product-badge--premium">@Translate("ProductBadge:Premium")</div> 189 } 190 </a> 191192 @if (productInfo.Price?.Price > 0) 193 { 194 <div class="custom-product-slider__item-price"> 195 <span class="custom-product-slider__item-price-text">@Translate("excl. VAT")</span> 196 <span class="custom-product-slider__item-price-value"> 197 @productInfo.Price.PriceWithoutVat.ToString("N2") @productInfo.Price.CurrencyCode 198 </span> 199 </div> 200 } 201202 @{ 203 var productGroup = productInfo.Groups?.FirstOrDefault(); 204 var specGroup = productGroup != null ? productInfo.FieldDisplayGroups?.Values?.FirstOrDefault(group => group.Id.Contains(productGroup.Id)) : null; 205 var defaultGroup = productInfo.FieldDisplayGroups?.Values?.FirstOrDefault(group => group.Id == specFallbackGroup); 206 var groupToUse = specGroup != null && specGroup.Fields.Count > 0 ? specGroup : defaultGroup; 207 } 208209 @if (groupToUse != null && groupToUse.Fields.Count > 0) 210 { 211 <div class="custom-product-slider__item-specs"> 212 @foreach (var fieldViewModel in groupToUse.Fields.Take(5)) 213 { 214 var field = fieldViewModel.Value; 215 var value = field.Value?.ToString(); 216 if (!string.IsNullOrWhiteSpace(value) && value != "0") 217 { 218 value = value == "False" ? Translate("No") : value == "True" ? Translate("Yes") : value; 219220 <div class="custom-product-slider__item-specs-line"> 221 <span class="name">@Translate(field.SystemName == "ProductNumber" ? "Product Number" : field.Name)</span> 222 <span class="value"> 223 @(field.Type == "Double" ? StringFormatExtensions.FormatDecimal(value, Pageview.Area.CultureInfo.ToString()) : value) 224 </span> 225 </div> 226 } 227 } 228 </div> 229 } 230 </div> 231 </div> 232 } 233 } 234 </div> 235 </div> 236237 <script type="module"> 238 const swiper = new Swiper('.swiper-@relatedGroup.Id.ToLower()', { 239 slidesPerView: 'auto', 240 spaceBetween: 20, 241 speed: 600, 242 navigation: { 243 nextEl: '.swiper-button-@relatedGroup.Id.ToLower()-next', 244 prevEl: '.swiper-button-@relatedGroup.Id.ToLower()-prev' 245 }, 246 pagination: { 247 el: '.swiper-pagination-@relatedGroup.Id.ToLower()', 248 type: 'progressbar' 249 } 250 }) 251 </script> 252253 groupCount++; 254 } 255 </div> 256 </div> 257258 <script> 259 document.querySelectorAll('.custom-related-products__menu__button-container__button').forEach(button => { 260 button.addEventListener('click', event => { 261 document.querySelector('.custom-related-products__menu__button-container__button--active').classList.remove('custom-related-products__menu__button-container__button--active'); 262 button.classList.add('custom-related-products__menu__button-container__button--active'); 263264 document.querySelector('.swiper.show').classList.remove('show'); 265 document.querySelector(button.getAttribute('data-swiper-target')).classList.add('show'); 266 }) 267 }); 268 </script> 269270 <script> 271 const relatedTabLinks = document.querySelectorAll('.custom-related-products__menu .tabs__tab'); 272 const relatedTabToggle = document.getElementById('related-tabs-toggle'); 273 const relatedDropdown = document.querySelector('.custom-related-products__menu .tabs__dropdown'); 274 const relatedIcon = document.querySelector('.custom-related-products__menu .tabs__tab__toggle__icon'); 275276 function toggleRelatedDropdown() { 277 relatedDropdown.classList.toggle('tabs__dropdown--active'); 278 relatedTabToggle.classList.toggle('tabs__tab__toggle--active'); 279 relatedIcon.classList.toggle('tabs__tab__toggle__icon--active'); 280 } 281282 relatedTabLinks.forEach(link => { 283 link.addEventListener('click', function (e) { 284 const activeTab = document.querySelector('.custom-related-products__menu .tabs__tab--active'); 285 activeTab.classList.remove('tabs__tab--active'); 286 this.classList.add('tabs__tab--active'); 287288 relatedTabToggle.querySelector('.tab-toggle__text').textContent = this.textContent; 289 toggleRelatedDropdown(); 290 }); 291 }); 292293 relatedTabToggle.addEventListener('click', function () { 294 toggleRelatedDropdown(); 295 }); 296297 relatedTabToggle.querySelector('.tab-toggle__text').textContent = document.querySelector('.custom-related-products__menu .tabs__tab--active').textContent; 298 </script> 299300 } 301 } 302 else 303 { 304 <div class="alert alert-dark m-0">@Translate("No products available")</div> 305 } 306