O desejo do vinho - Livro - Editora Senac São Paulo
O desejo do vinho:
conquistando o mundo
É possível encontrar vinhos em qualquer lugar do mundo desde que as formas de cultivo e os métodos de vinificação tornaram-se criativos e diversos. Com a chegada do vinho aos países mais inesperados, assistimos a outro tipo de globalização a que favorece o calor humano e o diálogo entre os povos. Entenda a história do mundo através do colorido prisma do vinho.
O desejo do vinho:
conquistando o mundo
É possível encontrar vinhos em qualquer lugar do mundo desde que as formas de cultivo e os métodos de vinificação tornaram-se criativos e diversos. Com a chegada do vinho aos países mais inesperados, assistimos a outro tipo de globalização a que favorece o calor humano e o diálogo entre os povos. Entenda a história do mundo através do colorido prisma do vinho.
Quantidade em
estoque:
178
-
Boleto Bancário
Parcela única, à vista
-
Pix
Parcela única, à vista
-
Cartão de Crédito
Parcelado em até
com cartão Mastercard, Visa ou Elo.
O desejo do vinho:
conquistando o mundoNão sabe seu CEP? Consulte aqui
-
Cartão de Crédito
'
Parcelamento em até 3 vezes sem juros com Mastercard, Visa ou Elo.
-
Cartão de Crédito
Parcelado em até
com cartão Mastercard, Visa ou Elo.
Ficha Técnica:
ISBN: 9788539602018
Edição: 1.a EDIÇÃO
Área: Gastronomia e Alimentação
Número de páginas: 284
Idioma: Português
Data de lançamento: 08/10/2012
Tamanho: 16 x 23
Editora(s): SENAC SÃO PAULO
Utilizado pelos povos pagãos e pelo povo hebreu na antiguidade, a bebida sagrada do cristianismo, o vinho, acompanhou a expansão da religião por toda a terra, encontrando nesse caminho um único obstáculo o islã. Apesar de ter perdido parte de seu caráter religioso, a bebida é um símbolo de alta cultura e de sociabilidade. Atualmente, é possível encontrar vinhos em qualquer lugar do mundo Com a chegada do vinho aos países mais inesperados, assistimos a outro tipo de globalização a que favorece o calor humano e o diálogo entre os povos. Entenda a história do mundo através do colorido prisma do vinho.
21469-sku
-
Utilizado pelos povos pagãos e pelo povo hebreu na antiguidade, a bebida sagrada do cristianismo, o vinho, acompanhou a expansão da religião por toda a terra, encontrando nesse caminho um único obstáculo o islã. Apesar de ter perdido parte de seu caráter religioso, a bebida é um símbolo de alta cultura e de sociabilidade. Atualmente, é possível encontrar vinhos em qualquer lugar do mundo Com a chegada do vinho aos países mais inesperados, assistimos a outro tipo de globalização a que favorece o calor humano e o diálogo entre os povos. Entenda a história do mundo através do colorido prisma do vinho.
Ficha Técnica:
ISBN: 9788539602018
Edição: 1.a EDIÇÃO
Área: Gastronomia e Alimentação
Número de páginas: 284
Idioma: Português
Data de lançamento: 08/10/2012
Tamanho: 16 x 23
Editora(s): SENAC SÃO PAULO
Em breve entraremos em contato!
|
The following has evaluated to null or missing:
==> curCPCatalogEntry.CPSkus[0] [in template "20102#20129#43699000" at line 14, column 30]
----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign cpSku = curCPCatalogEntry.CPS... [in template "20102#20129#43699000" at line 14, column 13]
----
1<#setting locale="pt_BR">
2
3<#assign commerceOrderLocalService = serviceLocator.findService("com.liferay.commerce.service.CommerceOrderLocalService")>
4<#assign contentHelper = serviceLocator.findService("com.liferay.commerce.product.content.util.CPContentHelper") />
5<#assign definitionHelper = serviceLocator.findService("com.liferay.commerce.product.util.CPDefinitionHelper") />
6<#assign productService = serviceLocator.findService("br.senac.sp.editora.services.service.ProductService") />
7<#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
8<#assign warehouseService = serviceLocator.findService("com.liferay.commerce.inventory.service.CommerceInventoryWarehouseItemLocalService") />
9<#assign companyId = userLocalService.getUser(themeDisplay.getUserId()).getCompanyId() />
10
11<div class="slider4 slider4semextracard">
12 <#if entries?has_content>
13 <#list entries as curCPCatalogEntry>
14 <#assign cpSku = curCPCatalogEntry.CPSkus[0] >
15 <#if productService.isAvailable( curCPCatalogEntry.getCPDefinitionId() )>
16 <div class="imgContainerEspecialCarrossel4">
17 <a onclick="cardProductClick(this)" href="${definitionHelper.getFriendlyURL(curCPCatalogEntry.getCPDefinitionId(),themeDisplay)}" data-definition="${curCPCatalogEntry.getCPDefinitionId()}">
18 <#assign cpMedia = contentHelper.getImages(curCPCatalogEntry.getCPDefinitionId(), themeDisplay) />
19 <#assign defaultImage = "/documents/d/editora-senac/liferay_logo" />
20 <#assign productImage = defaultImage />
21
22 <#list cpMedia as media>
23 <#if media.getURL()?has_content && (media.getTitle()?? && media.getTitle()?contains("small"))>
24 <#assign productImage = media.getURL() />
25 <#break>
26 </#if>
27 </#list>
28 <#if productImage == defaultImage>
29 <#list cpMedia as media>
30 <#if media.getURL()?has_content>
31 <#assign productImage = media.getURL() />
32 <#break>
33 </#if>
34 </#list>
35 </#if>
36 <img src="${productImage}" onerror="this.onerror=null;this.src='${defaultImage}';" />
37
38
39 <div class="informacoesProdutoCarrossel4">
40 <div class="infoSuperiores">
41 <div class="tituloEspecialCarrossel4">
42 ${curCPCatalogEntry.name?truncate(60, '...')}
43 </div>
44 <div class="autorEspecialCarrossel4">
45 <#if contentHelper?has_content >
46 <#list contentHelper.getCategorizedCPDefinitionSpecificationOptionValues(curCPCatalogEntry.getCPDefinitionId(),43620166) as specs>
47 <#if specs.CPSpecificationOptionId == 43594743>
48 ${specs.getValueCurrentValue()?truncate(45, '...')}
49 <#break>
50 </#if>
51 </#list>
52 </#if>
53 </div>
54 </div>
55 </div>
56 </a>
57 <div class="valorCarrossel4" data-definition="${curCPCatalogEntry.getCPDefinitionId()}">
58 <@liferay_commerce_ui["price"]
59 CPCatalogEntry=curCPCatalogEntry
60 />
61 </div>
62 <div class="divEspiarCarrossel4">
63 <#if productService.isAvailable( curCPCatalogEntry.getCPDefinitionId() ) && warehouseService.getStockQuantity(companyId,cpSku.getSku()) gt 0 >
64 <span class="comprarCarrossel4" data-sku="${cpSku.getSku()}">
65 <#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
66 <#assign id = "add-to-cart" + PortalUtil.generateRandomKey(request, "add-to-cart") + "" + cpSku.getSku() />
67 <@liferay_commerce_ui["add-to-cart"]
68 CPInstanceId=cpSku.getCPInstanceId()
69 id=id
70 />
71 </span>
72 <#else>
73 <span class="comprarCarrossel4">
74 <button class="btnIndisponivelEspecialCarrossel4" href="javascript:void(0)" disabled>Livro Indisponível</button>
75 </span>
76 </#if>
77 </div>
78 </div>
79 </#if>
80 </#list>
81 </#if>
82</div>
83
84<style>
85 .comprarCarrossel4 div.form-group {
86 display: none;
87 }
88 .comprarCarrossel4 .add-to-cart-quantity-marker.active {
89 opacity: 0;
90 display: none;
91 }
92
93 .comprarCarrossel4 form.quantity-selector {
94 display: none;
95 }
96
97 .comprarCarrossel4 button.btn.btn-primary {
98 background-color: #5ACC75;
99 border-radius: 4px;
100 width: 206px;
101 padding: 1px;
102 justify-content: center;
103 padding-left: 13%;
104 margin-top: 0.75rem !important;
105 }
106
107
108 .customCart{
109 opacity: 1 !important;
110 filter: none !important;
111 height: 405 !important;
112 width: 246 !important;
113 }
114
115 @media (max-width: 768px) {
116 .slider4.slider4semextracard .next-arrow {
117 right: unset;
118 left: calc(100vw - 94px);
119 z-index: 10;
120 }
121
122 .slider4.slider4semextracard .prev-arrow {
123 left: 18px;
124 z-index: 10;
125 }
126
127 .slider4.slider4semextracard .slick-list {
128 z-index: 8;
129 }
130
131 .slider4.slider4semextracard .slide-arrow .fa {
132 font-size: 22px;
133 font-weight: 400;
134 }
135
136 .divEspiarCarrossel4 {
137 margin-top: 19px !important;
138 }
139
140 .slider4semextracard .valorCarrossel4,
141 .slider4semextracard .divEspiarCarrossel4 {
142 position: absolute !important;
143 }
144
145 .slider4semextracard .valorCarrossel4 {
146 bottom: 50px;
147 left: 20px;
148 }
149
150 .slider4semextracard .divEspiarCarrossel4 {
151 bottom: 10px;
152 right: 20px;
153 }
154
155 .slider4semextracard .valorCarrossel4 .price-value {
156 font: normal 600 18px/17px Montserrat !important;
157 margin-left: 0!important;
158 }
159 .slider4semextracard .comprarCarrossel4 .btn-add-to-cart {
160 margin: 0 !important;
161 padding-top: 2px !important;
162 }
163 .comprarCarrossel4 .btn-add-to-cart::before {
164 font-size: 16px;
165 }
166 }
167
168 @media (max-width: 600px) {
169 .comprarCarrossel4 button.btn.btn-primary.btn-lg.btn-add-to-cart.btn-add-to-cart-inline {
170 padding-left: 1px;
171 height: 30px;
172 }
173
174 .btn-add-to-cart-inline::before {
175 font-size: 14px;
176 width: 100%;
177 text-align: center;
178 display: block;
179 }
180 }
181
182 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a {
183 display: flex;
184 align-items: flex-end;
185 }
186
187 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-promo-price {
188 order: 1;
189 margin-top: 0!important;
190 margin-right: 2px;
191 }
192
193 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .divValorCarrossel4 {
194 order: 2;
195 }
196
197 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .divValorCarrossel4 + .product-promo-price {
198 margin-right: 5px;
199 }
200
201 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-price {
202 order: 3;
203 margin-top: 0;
204 }
205
206 .slider4semextracard .valorCarrossel4,
207 .slider4semextracard .divEspiarCarrossel4 {
208 position: relative;
209 z-index: 9999;
210 }
211
212 @media (min-width: 769px) {
213 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-price,
214 .slider4.slider4semextracard .informacoesProdutoCarrossel4 > a .product-promo-price {
215 line-height: 17px;
216 }
217
218 .slider4semextracard .valorCarrossel4 {
219 top: 100px;
220 left: 20px;
221 }
222
223 .slider4semextracard .divEspiarCarrossel4 {
224 top: 90px;
225 right: 20px;
226 }
227 }
228
229 .tituloEspecialCarrossel4 {
230 display: -webkit-box;
231 -webkit-line-clamp: 3;
232 -webkit-box-orient: vertical;
233 overflow: hidden;
234 }
235
236 .informacoesSuperioresCarrossel4 {
237 height: 72px;
238 }
239
240 @media (max-width: 414px){
241 .slider4 {
242 width: 100vw !important;
243 /* margin-right: 0; */
244 margin-right: 20px;
245 margin-left: 20px;
246 }
247 }
248
249 @media (min-width: 769px) and (max-width: 820px) {
250 .slider4semextracard .valorCarrossel4,
251 .slider4semextracard .divEspiarCarrossel4 {
252 position: absolute;
253 }
254
255 .slider4semextracard .valorCarrossel4 {
256 top: initial !important;
257 bottom: 50px;
258 }
259
260 .slider4semextracard .divEspiarCarrossel4 {
261 top: 315px;
262 }
263 }
264
265 @media (max-width: 1200px) {
266 .slick-dots {
267 width: 100vw !important;
268 }
269 }
270
271</style>
272
273<script
274 src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"
275 integrity="sha512-XtmMtDEcNz2j7ekrtHvOVR4iwwaD6o/FUJe6+Zq+HgcCsk3kj4uSQQR8weQ2QVj1o0Pk6PwYLohm206ZzNfubg=="
276 crossorigin="anonymous"
277 referrerpolicy="no-referrer"
278 ></script>
279
280<script type="text/javascript">
281
282 var tituloSlider = setInterval(function() {
283 if ($('.slider4').length >= 1) {
284 $(`
285 <div class="background-right titulo-slider4"><a href="\rita-lobo">Livros que você pode gostar </a><i class="fas fa-circle circulo-laranja" aria-hidden="true"></i></div>
286 `).insertBefore('.slider4:has(.imgContainerEspecialCarrossel4)');
287 clearInterval(tituloSlider);
288 }
289 }, 50);
290
291 setTimeout(function(){
292 $(document).ready(function() {
293 $('.slider4').slick({
294 arrows: true,
295 slidesToShow: 4,
296 slidesToScroll: 4,
297 dots:true,
298 infinite: false,
299 lazyLoad: 'ondemand',
300 prevArrow: '<a href="#" class="slide-arrow prev-arrow"><i class="fa fa-chevron-left gray"></i></a>',
301 nextArrow: '<a href="#" class="slide-arrow next-arrow"><i class="fa fa-chevron-right gray"></i></a>',
302 speed: 1000,
303 index: 1,
304 focusOnSelect:false,
305 accessibility:false,
306 adaptiveHeight:false,
307 autoplay:false,
308 responsive: [{
309 breakpoint: 1200,
310 settings: {
311 slidesToShow: 4,
312 slidesToScroll: 4,
313 variableWidth: true,
314 infinite: false,
315 centerMode: false,
316 dots:true,
317 arrows: true
318 }
319 }, {
320 breakpoint: 768,
321 settings: {
322 slidesToShow: 1,
323 slidesToScroll: 1,
324 variableWidth: true,
325 infinite: false,
326 centerPadding: 0,
327 centerMode: false,
328 dots:false,
329 arrows: false
330 }
331 }]
332 });
333
334 sendViewItemList([<#list entries as curCPCatalogEntry>${curCPCatalogEntry.getCPDefinitionId()},</#list>])
335
336 });
337
338 if (typeof promoPrice !== 'undefined') {
339 promoPrice = document.getElementsByClassName("price");
340 }
341 else {
342 promoPrice = document.getElementsByClassName("price");
343 }
344
345 for (let i = 0; i < document.getElementsByClassName("price").length; i++) {
346 let carrossel = document.getElementsByClassName("price");
347
348 if(carrossel[i].children.length < 5) {
349 if (carrossel[i].children[0]) {
350 carrossel[i].children[0].innerText = "Por:"
351 }
352 if (carrossel[i].children[1]) {
353 carrossel[i].children[1].style.color = "#D2691E"
354 carrossel[i].children[1].style.marginLeft = ".5rem"
355 }
356
357 carrossel[i].style.marginTop = "24px"
358 }
359 else if (carrossel[i].children.length > 7){
360 if (carrossel[i].children[0]) {
361 carrossel[i].children[0].innerHTML = "<del>De:</del>"
362 carrossel[i].children[0].style.color = "#78849e"
363 }
364
365 if (carrossel[i].children[1]) {
366 carrossel[i].children[1].classList.remove("price-value-inactive")
367 let priceBefore = carrossel[i].children[1].innerText
368 carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>'
369 carrossel[i].children[1].style.color = "#78849e"
370 }
371
372 carrossel[i].children[2].style.display = "none"
373 carrossel[i].children[3].style.display = "none"
374 carrossel[i].children[4].innerText = "Por:"
375 carrossel[i].children[5].style.display = "none"
376 carrossel[i].children[6].style.display = "none"
377 carrossel[i].children[7].style.color = "#D2691E"
378 carrossel[i].children[7].style.marginLeft = ".5rem"
379 carrossel[i].style.marginTop = "10px"
380 }
381 else {
382 if (carrossel[i].children[0]) {
383 carrossel[i].children[0].innerHTML = "<del>De:</del>"
384 carrossel[i].children[0].style.color = "#78849e"
385 }
386 if (carrossel[i].children[1]) {
387 carrossel[i].children[1].classList.remove("price-value-inactive")
388 let priceBefore = carrossel[i].children[1].innerText
389 carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>'
390 carrossel[i].children[1].style.color = "#78849e"
391 }
392
393 carrossel[i].children[2].style.display = "none"
394 carrossel[i].children[3].style.display = "none"
395 carrossel[i].children[4].innerText = "Por:"
396 carrossel[i].children[5].style.color = "#D2691E"
397 carrossel[i].children[5].style.marginLeft = ".5rem"
398 carrossel[i].style.marginTop = "10px"
399 }
400 }
401
402 const slider4 = document.getElementsByClassName("slider4");
403
404 for (let i = 0; i < slider4.length; i++) {
405 slider4[i].style.display ='block';
406 }
407
408 $('.slider4.slider4semextracard').on('afterChange', function(event, slick, currentSlide) {
409 if (slick.$slides.length - 1 == currentSlide) {
410 $('.slider4.slider4semextracard .next-arrow').css('display', 'none');
411 }
412 else {
413 $('.slider4.slider4semextracard .next-arrow').css('display', 'flex');
414 }
415
416 if (0 == currentSlide) {
417 $('.slider4.slider4semextracard .prev-arrow').css('display', 'none');
418 }
419 else {
420 $('.slider4.slider4semextracard .prev-arrow').css('display', 'flex');
421 }
422 });
423
424 if (typeof promoPrice !== 'undefined') {
425 let promoPrice = document.getElementsByClassName("product-promo-price");
426 }
427 else{
428 promoPrice = document.getElementsByClassName("product-promo-price");
429 }
430
431 if(promoPrice.length > 0){
432 const productPrice = document.getElementsByClassName(".price-value-final");
433 for (let i = 0; i < productPrice.length; i++) {
434 $(productPrice[i]).attr('data-content','Por: ');
435 }
436 }else{
437 const valorCarrossel4 = document.getElementsByClassName("valorCarrossel4");
438 for (let i = 0; i < valorCarrossel4.length; i++) {
439 valorCarrossel4[i].style.marginTop='25px';
440 // valorCarrossel4[i].style.marginBottom='17px';
441 }
442 }
443
444 }, 2000);
445
446</script>
