Error executing template "/Designs/Dwsimple/Paragraph/syseddel.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_ed257fe23521402bb00f2704d1dd498d.Execute() in C:\inetpub\PagunetteDW\Files\Templates\Designs\Dwsimple\Paragraph\syseddel.cshtml:line 20
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2 @using System;
3 @using System.Web;
4 @using Pagunette.CustomModules;
5 @using Pagunette.CustomModules.Classes;
6 @using System.Configuration;
7 @using Pagunette.Models;
8 @using Newtonsoft.Json;
9 @using Pagunette.CustomModules.Utils;
10 @using Dynamicweb;
11 @using Dynamicweb.Logging;
12 @using Dynamicweb.Ecommerce.Orders;
13
14 @{
15 ILogger logger = LogManager.Current.GetLogger("internalReceipt");
16
17 var request = HttpContext.Current.Request;
18
19 Order ordre = Dynamicweb.Ecommerce.Orders.Order.GetOrderById(request.QueryString["OrderID"]);
20 OrderFieldValueCollection orderFields = ordre.OrderFieldValues;
21
22 var localeString = "pl-PL";
23
24 var printStyle = new HtmlString("@media");
25
26 string vismaOrderNo = "";
27
28 if (ordre.OrderFieldValues.GetOrderFieldValue("VismaOrderID") != null)
29 {
30 if (ordre.OrderFieldValues.GetOrderFieldValue("VismaOrderID").Value.ToString().Contains(","))
31 {
32 vismaOrderNo = ordre.OrderFieldValues.GetOrderFieldValue("VismaOrderID").Value.ToString().Split(',')[0];
33 }
34 else
35 {
36 vismaOrderNo = ordre.OrderFieldValues.GetOrderFieldValue("VismaOrderID").Value.ToString();
37 }
38 }
39
40 }
41 <html>
42 <head>
43 <meta charset="utf-8">
44 <style>
45 #cookieWarningDiv {
46 display: none
47 }
48 </style>
49 </head>
50
51 <body>
52 @{
53 var logoimage = Dynamicweb.Frontend.PageView.GetPageviewByPageID(ordre.CheckoutPageId).Area.Item["GeneralLogo"].ToString();
54 var logotext = Dynamicweb.Frontend.PageView.GetPageviewByPageID(ordre.CheckoutPageId).Area.Item["GeneralLogoText"].ToString();
55 int i = 1;
56 string[] produktionsNumre = new string[0];
57 }
58
59 @foreach (OrderLine orderline in ordre.OrderLines.Where(ol => ol.ProductNumber == ConfigurationManager.AppSettings["ConfiguratorProductNumber"]))
60 {
61 string productNumber = orderline.ProductNumber;
62 bool isConfiguratorProduct = productNumber == ConfigurationManager.AppSettings["ConfiguratorProductNumber"];
63 ConfiguratorSelectionModel configuratorSelection = null;
64 ConfiguratorPriceDetailsModel selectionPrices = null;
65 string image = string.Empty;
66 OrderLineFieldValueCollection items = orderline.OrderLineFieldValues;
67 string assumedProductionNo = orderFields.GetOrderFieldValue("VismaProductionIDs").Value.ToString().Split(',').ElementAtOrDefault((i - 1));
68 // hvis ProductionNo er sendt med
69 if (!string.IsNullOrEmpty(request.QueryString["ProductionNo"]))
70 {
71 if (request.QueryString["ProductionNo"] != assumedProductionNo)
72 {
73 // hvis ProductionNo ikke matcher det antaget produktions nummer fra Visma
74 i++;
75 continue;
76 }
77 }
78
79 foreach (OrderLineFieldValue item in items)
80 {
81
82 switch (item.OrderLineFieldSystemName)
83 {
84 case "ConfiguratorData":
85 try
86 {
87 //@item.GetString("Ecom:Order:OrderLine.OrderLineField.Value");
88 configuratorSelection = JsonConvert.DeserializeObject<ConfiguratorSelectionModel>(item.Value);
89 selectionPrices = ConfiguratorOperations.GetPriceDetails(configuratorSelection, orderline.Quantity, true, true, ordre);
90
91 if ("PLK" != configuratorSelection.PerfionLanguage)
92 {
93 configuratorSelection.ChangeLanguage(configuratorSelection, "PLK");
94 }
95
96 image = PIMComUtilities.GetPerfionImageUrl(configuratorSelection.Vare.Image1, "100x100");
97 }
98 catch (Exception e) { }
99 break;
100
101 case "VismaProductionIDs":
102 if (!string.IsNullOrEmpty(item.Value))
103 {
104 produktionsNumre = item.Value.Split(',');
105 }
106 break;
107
108 default:
109 break;
110 }
111 }
112
113
114
115 if (string.IsNullOrEmpty(image) && orderline.get_OrderLineFieldValue("MainProductImage") != null)
116 {
117 image = PIMComUtilities.GetPerfionImageUrl(orderline.get_OrderLineFieldValue("MainProductImage").Value.ToString(), "100x100");
118 }
119 <h2>@Translate("InternalReceipt", "Intern kopi af ordrekvittering", localeString)</h2>
120
121 <table width="800" border="0" cellspacing="0" cellpadding="0" ID="Table3">
122 <tr>
123 <td width="50%" valign="top">
124 <table width="100%" border="0" cellspacing="0" cellpadding="0" ID="Table2">
125 <tr>
126 <td width="100%" valign="top" colspan="3"><b>@Translate("Billingaddress", "Billing address", localeString)</b></td>
127 </tr>
128 <tr>
129 <td width="40%" valign="top">@Translate("Company", "Company", localeString)</td>
130 <td width="60%" valign="top">@ordre.CustomerCompany</td>
131 </tr>
132 <tr>
133 <td width="40%" valign="top">@Translate("Address", "Address", localeString)</td>
134
135 <td width="60%" valign="top">@ordre.CustomerAddress</td>
136 </tr>
137
138 <tr>
139 <td width="40%" valign="top">@Translate("Zipcode", "Zipcode", localeString)</td>
140
141 <td width="60%" valign="top">@ordre.CustomerZip<text> </text>@ordre.CustomerCity</td>
142 </tr>
143 <tr>
144 <td width="40%" valign="top">@Translate("Country", "Country", localeString)</td>
145
146 <td width="60%" valign="top">@ordre.CustomerCountry</td>
147 </tr>
148
149 </table>
150 <br>
151 <table width="100%" border="0" cellspacing="0" cellpadding="0" ID="Table5">
152 <tr>
153 <td width="100%" valign="top" colspan="3"><b>@Translate("Orderinformation", "Orderinformation", localeString)</b></td>
154 </tr>
155 <tr>
156 <td width="40%" valign="top">@Translate("Customer number", "Kundenr", localeString)</td>
157
158 <td width="60%" valign="top">@ordre.CustomerNumber</td>
159 </tr>
160 @if (!string.IsNullOrWhiteSpace(@ordre.TransactionNumber))
161 {
162 <tr>
163 <td width="40%" valign="top">@Translate("Transaction number", "Transaction number", localeString)</td>
164
165 <td width="60%" valign="top">@ordre.TransactionNumber</td>
166 </tr>
167 }
168 <tr>
169 <td width="40%" valign="top">@Translate("ReqNo", "Rekv.nummer", localeString)</td>
170
171 <td width="60%" valign="top">@orderFields.GetOrderFieldValue("RequisitionNumber").Value.ToString()</td>
172 </tr>
173 <tr>
174 <td width="40%" valign="top">@Translate("Order date", "Order date", localeString)</td>
175
176 <td width="60%" valign="top">@ordre.CompletedDate.Value.ToString("dd-MM-yyyy")</td>
177 </tr>
178 @if (!string.IsNullOrEmpty(orderFields.GetOrderFieldValue("DesiredDeliveryDate").Value.ToString()) && DateTime.Parse(orderFields.GetOrderFieldValue("DesiredDeliveryDate").Value.ToString()) >= DateTime.UtcNow)
179 {
180 <tr>
181 <td width="40%" valign="top">@Translate("Desired delivery date", "Desired delivery date", localeString)</td>
182
183 <td width="60%" valign="top">@DateTime.Parse(orderFields.GetOrderFieldValue("DesiredDeliveryDate").Value.ToString()).ToString(Dynamicweb.Core.Helpers.DateHelper.DateOnlyFormatStringShort)</td>
184
185 </tr>
186 }
187
188
189 </table>
190 </td>
191 @if (!string.IsNullOrWhiteSpace(ordre.DeliveryAddress))
192 {
193 <td width="50%" valign="top">
194 <table width="100%" border="0" cellspacing="0" cellpadding="0" ID="Table4">
195 <tr>
196 <td width="100%" valign="top" colspan="3"><b>@Translate("Delivery address", "Delivery address", localeString)</b></td>
197 </tr>
198 <tr>
199 <td width="40%" valign="top">@Translate("Company", "Company", localeString)</td>
200
201 <td width="60%" valign="top">ordre.DeliveryCompany</td>
202 </tr>
203 <tr>
204 <td width="40%" valign="top">@Translate("Att", "Att.", localeString)</td>
205
206 <td width="60%" valign="top">ordre.DeliveryName</td>
207 </tr>
208 <tr>
209 <td width="40%" valign="top">@Translate("Address", "Address", localeString)</td>
210
211 <td width="60%" valign="top">ordre.DeliveryAddress</td>
212 </tr>
213
214 <tr>
215 <td width="40%" valign="top">@Translate("Zipcode", "Zipcode", localeString)</td>
216
217 <td width="60%" valign="top">ordre.DeliveryZip<text> </text>ordre.DeliveryCity</td>
218 </tr>
219 <tr>
220 <td width="40%" valign="top">@Translate("Country", "Country", localeString)</td>
221
222 <td width="60%" valign="top">ordre.DeliveryCountry</td>
223 </tr>
224
225
226
227 </table>
228 </td>
229 }
230 </tr>
231 </table>
232
233 <table cellspacing="0" cellpadding="0" border="0" width="800" style="margin-top: 15px;">
234 <tr>
235 <td colspan="3">
236 <b>@Translate("Ordrespecifikation", "Ordrespecifikation", localeString)</b>
237 </td>
238 </tr>
239 <tr class="basketheader">
240 <th style="text-align:left;">@Translate("Product", "Product2", localeString)</th>
241 <th> </th>
242 <th style="text-align:right;">@Translate("Qty", "Qty", localeString)</th>
243 </tr>
244 <tr class="separator">
245 <td colspan="3"><hr /></td>
246 </tr>
247 @if (ordre.OrderLines.Count > 0)
248 {
249
250 <tr>
251 <td colspan="3">@Translate("VismaSalesnumber", "Sales ordernumber", localeString): @vismaOrderNo, @Translate("VismaProductionOrder", "Production order", localeString) @assumedProductionNo</td>
252 </tr>
253 <tr>
254 <td colspan="3"><hr /></td>
255 </tr>
256 }
257
258 <tr>
259 <td width="120">
260 <img src="@image" class="receipt-image" width="100" height="100" />
261
262 @if (configuratorSelection == null)
263 {
264 <span class="receipt-p-number"> @orderline.ProductNumber</span>
265 if (orderline.Type == "1")
266 {
267 <small>@Translate("Discount", "Discount", localeString)</small>
268 }
269 }
270 </td>
271 <td>
272 @if (configuratorSelection != null)
273 {
274 <b>@configuratorSelection.Vare.Name</b>
275 }
276 else
277 {
278 <a href="@orderline.Reference">
279 @orderline.ProductName
280 @if (!string.IsNullOrWhiteSpace(orderline.ProductVariantText))
281 {
282 @orderline.ProductVariantText;
283 }
284 </a>
285 }
286 @if (orderline.OrderLineFieldValues.Any())
287 {
288 <table class="table receipt-table">
289 @foreach (OrderLineFieldValue item in items)
290 {
291 var label = "";
292 var value = item.Value.ToString();
293
294 switch (item.OrderLineFieldSystemName)
295 {
296 case "DesiredDeliveryDate":
297 label = Translate("ReceptOrderLineDeliveryDate", "Ønsket leveringsdato", localeString);
298 if (string.IsNullOrEmpty(value))
299 {
300 value = Translate("ReceptOrderLineDeliveryDateASAP", "Hurtigst muligt", localeString);
301 }
302 break;
303 case "Comment":
304 if (configuratorSelection != null)
305 {
306 label = null;
307 }
308 else
309 {
310 label = Translate("ReceptOrderLineComment", "Kommentar");
311 }
312 if (!string.IsNullOrEmpty(value))
313 {
314 value = value.Replace("\n", "<br/>");
315 }
316 break;
317 }
318
319 if (!string.IsNullOrWhiteSpace(label) && !string.IsNullOrWhiteSpace(value))
320 {
321 <tr>
322 <td>@label</td>
323 <td>@value</td>
324 </tr>
325 }
326 }
327 </table>
328 }
329 </td>
330 <td style="text-align:right;">@orderline.Quantity</td>
331 </tr>
332
333
334
335
336 @if (isConfiguratorProduct && configuratorSelection != null)
337 {
338
339
340 var combined = new ConfiguratorCombinedModel() { selection = configuratorSelection, prices = selectionPrices, dwOrderline = Dynamicweb.Ecommerce.Orders.OrderLine.GetOrderLineById(orderline.Id) };
341 var imageList = ConfiguratorOperations.GetConfiguratorImages(configuratorSelection);
342 if (imageList.Count() > 0)
343 {
344
345 foreach (var objWithImage in imageList)
346 {
347 <tr>
348 <td width="120">
349 <img src='@objWithImage.ImageUrl' width="100" height="100" />
350 </td>
351 <td>@objWithImage.Name</td>
352 <td></td>
353 </tr>
354 }
355
356 }
357 var descriptionText = "";
358 foreach (var text in ConfiguratorOperations.GetProductionDescription(combined, configuratorSelection.PerfionLanguage, "syseddel"))
359 {
360 var style = "";
361 if (text.style == ConfiguratorDescriptionTextStyle.bold)
362 {
363 style = "style='font-weight:bold'";
364 }
365 descriptionText += "<div " + style + "> " + text.text + "</div>";
366 }
367 <tr>
368 <td colspan="3">@descriptionText</td>
369 </tr>
370
371
372 }
373 <tr>
374 <td>
375
376 </td>
377 </tr>
378 <tr>
379 <td colspan="3">
380 <strong>@Translate("OrderComment", "Comment", localeString)</strong> <br />
381 @ordre.CustomerComment
382 </td>
383 </tr>
384 </table>
385
386 if (string.IsNullOrEmpty(request.QueryString["ProductionNo"]) && i < ordre.OrderLines.Count)
387 {
388 <div style="page-break-before:always"> </div>
389 }
390
391 i++;
392
393 }
394 @*
395 <table cellspacing="0" cellpadding="0" border="0" width="800" style="">
396 <tr class="separator">
397 <td colspan="3"> </td>
398 </tr>
399 <tr>
400 <td>
401 <strong>@Translate("OrderComment", "Comment", localeString)</strong> <br />
402 @ordre.CustomerComment
403 </td>
404 </tr>
405
406 </table>
407 *@
408 </body>
409
410 </html>
411