Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> isEMED [in template "20102#20129#438394" at line 4101, column 15]
----
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: #if !isEMED [in template "20102#20129#438394" at line 4101, column 9]
----
1<#assign
2 isEditMode = themeDisplay.getURLCurrent()?contains('p_l_mode=edit')
3/>
4<!-- Essa verificação é necessária para que não encaminhe erros de freemarker ao KIBANA ao acessar a página de edição dos componentes -->
5<#if isEditMode >
6 <h3>Modo de edição identificado</h3>
7<#else>
8
9<#assign resources = themeDisplay.getPortalURL() />
10<#assign contextPath = "/documents/d/global" />
11<#assign _rnd = .now?long >
12
13<style>
14
15 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card {
16 background: white;
17 width: 100%;
18 padding: 32px 52px;
19 box-shadow: 2px 5px 12px #00000040;
20 border-radius: 20px;
21 display: flex;
22 flex-wrap: nowrap;
23 justify-content: space-between;
24 align-items: center;
25 }
26
27 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-icone {
28 max-width: 100%;
29 height: 72px;
30 margin-bottom: 10px;
31 }
32
33 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section {
34 background: #472247;
35 border-top: 18px solid #792F7A;
36 text-align: center;
37 padding-bottom: 60px;
38 }
39
40 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white::after {
41
42
43 display: none;
44
45
46 }
47
48 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white {
49 color: white;
50 font-size: 44px !important;
51 margin-bottom: 32px !important;
52 text-align:unset;
53 }
54
55 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-title {
56 font-size: 28px;
57 color: #B767C2;
58 font-weight: bold;
59 line-height: 28px;
60 margin: 0;
61 margin-bottom:.5rem;
62 }
63
64
65.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-credit-card::after {
66
67 font-size: 18px;
68
69}
70
71.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto::after {
72
73 font-size: 18px;
74
75}
76
77.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__header {
78 align-items:center;
79 color:#454F63;
80}
81
82.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__btn-close::after {
83 font-family: "Font Awesome 6 Pro";
84 font-weight: normal;
85 content: "\f00d";
86 font-style: normal;
87 font-size:30px;
88 cursor: pointer;
89}
90
91.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__body {
92
93 padding:0 15px;
94}
95
96.ssp-card-modal-forma-pagamento__tipos-content p {
97
98 color: #454F63!important;
99 font-size: 14px!important;
100}
101
102.ssp-card-modal-forma-pagamento__tipos-content strong {
103
104 font-weight: bold!important;
105}
106
107.txt-desconto-oito{
108
109 font-weight: 600!important;
110 border: 1px solid #f2f2f2;
111 border-right: 0;
112 border-left: 0;
113 padding: 10px 0;
114}
115
116.next-mobile{
117 color: white;
118 display: flex;
119 align-items: center;
120 text-decoration: none!important;
121}
122
123.next-mobile:hover{
124 color: white;
125 font-weight: normal!important;
126}
127
128.next-mobile::before{
129 font-family: "Montserrat", sans-serif;
130 content: "Próxima";
131 font-size: 14px;
132 font-weight: 600;
133 display: block;
134 margin-right: 9px;
135 color: white;
136}
137
138.next-mobile.slick-arrow.slick-disabled{
139 opacity: 0.4;
140}
141
142
143/* Prev Mobile button */
144
145
146.prev-mobile{
147 color: white;
148 display: flex;
149 align-items: center;
150 text-decoration: none;
151 text-decoration: none!important;
152}
153
154.prev-mobile:hover{
155 color: white;
156 font-weight: normal!important;
157}
158
159.prev-mobile::after{
160 font-family: "Montserrat", sans-serif;
161 content: "Anterior";
162 font-weight: 600;
163 font-size: 14px;
164 display: block;
165 margin-left: 9px;
166 color: white;
167}
168
169.prev-mobile.slick-arrow.slick-disabled{
170 opacity: 0.4;
171}
172
173
174.icon-ao-vivo{
175 font-size: 15px!important;
176 margin: 0 3px;
177}
178
179.ssp-card-detalhe-curso__tag-ao-vivo{
180 font-family: "Montserrat";
181 font-size: 19px;
182 letter-spacing: 0px;
183 color: #F77A3B;
184}
185
186.selecione-unidade-title-custom{
187
188 width:100%!important;
189
190}
191
192.recalcular{
193 background:#F6921E!important;
194 border: solid 1px #F6921E!important;
195}
196
197.ssp-card-detalhe-curso__description{
198
199 font-family: "Montserrat";
200 max-width: 800px;
201 font-size: 20px;
202 font-weight: 500;
203 font-stretch: normal;
204 font-style: normal;
205 line-height: 1.23;
206 letter-spacing: normal;
207 margin: 10px 0;
208 text-align: left;
209 color: #4f596f;
210
211}
212
213/* nova formatação para registro de interesse */
214.ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
215 display: flex;
216 flex-wrap: nowrap;
217 justify-content: center;
218 align-items: center;
219 padding: 10px 0;
220}
221
222/* Novas tags para formato de curso */
223
224.ssp-card-detalhe-curso__tag-formato{
225
226 font-size:18px;
227 font-weight:600;
228
229}
230
231.icon-formato{
232 margin-right:7px;
233}
234
235.online-aovivo{
236 position:relative;
237
238}
239
240.icon-small-wifi {
241 font-size: 13px;
242 position: absolute;
243 left: -12px;
244 top: -5px;
245}
246
247.ssp-desconto-2022 .modal-extensao_txteconomiza {
248 font-size: 14px !important;
249 font-weight: 100 !important;
250}
251.ssp-desconto-2022 .ssp-card-oferta-curso__desconto-content .ssp-card-oferta-curso__valor-desconto {
252 font-weight: 100 !important;
253}
254.ssp-desconto-2022 .modal-extensao-btn-conheca {
255 border: 1px solid #474F61 !important;
256 border-radius: 4px;
257 color: #474F61 !important;
258 font-size: 15px;
259 height: 50px;
260 margin-left: 0;
261 display: flex;
262 align-items: center;
263 justify-content: center;
264}
265
266.ssp-card-modal-forma-pagamento.ssp-desconto-2022 {
267 color: #454F63;
268}
269.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 {
270 font-size: 22px !important;
271}
272.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 span {
273 font-size: 13px !important;
274}
275.ssp-desconto-2022 span {
276 padding: 0 !important;
277}
278
279.ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
280 appearance: none !important;
281 -webkit-appearance: none !important;
282 -moz-appearance: none !important;
283
284 background-size: 25px 25px !important;
285 background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0xODcuOCAyNjQuNUw0MSA0MTIuNWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDQuMiAzOTIuN2MtNC43LTQuNy00LjctMTIuMyAwLTE3TDEyMi43IDI1NiA0LjIgMTM2LjNjLTQuNy00LjctNC43LTEyLjMgMC0xN0wyNCA5OS41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwxNDYuOCAxNDhjNC43IDQuNyA0LjcgMTIuMyAwIDE3eiIvPjwvc3ZnPg==);
286 background-repeat: no-repeat !important;
287 background-position-x: 99% !important;
288 background-position-y: 50% !important;
289}
290
291@media only screen and (max-width: 768px){
292
293 .ssp-card-detalhe-curso__tag-ao-vivo{
294 font-size: 14px;
295 display: none;
296 }
297 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
298
299 flex-wrap: wrap!important;
300
301}
302.ssp-card-modal-forma-pagamento__tipos-content p {
303
304 font-size: 12px!important;
305}
306
307
308 .ssp:not(.liferay-instance) .ssp-section-selecione-unidade {
309 padding: 30px 0!important;
310 padding-bottom: 30px !important;
311 background-color: #2a2e43;
312 }
313
314 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__title {
315 padding-bottom: 1.25rem !important;
316 }
317
318 .selecione-unidade-title-custom{
319 width:100%!important;
320
321 }
322
323 .ssp-card-detalhe-curso__description{
324 width: 100%;
325 font-size: 15px;
326
327 }
328 .ssp-como-me-matricular__passo-passo-card {
329 padding: 30px 24px!important;
330
331 }
332
333 .emed-select-group {
334 box-shadow: none!important;
335 border: none !important;
336 border-bottom: 1px solid #6E6E6E!important;
337 border-radius: 0 !important;
338 padding: 0 !important;
339 margin: 1rem 0 !important;
340 }
341
342 .emed .ssp-card-registro-interesse__title-modal{
343 font-size: 20px!important;
344 }
345 .emed .ssp-card-registro-interesse__title-section-itens {
346 font-size: 15px!important;
347 margin-top: 0px!important;
348 margin-bottom: 0px!important;
349 color: #2a2e43;
350 }
351 .ssp-card-registro-interesse.emed [type="checkbox"] {
352 transform: scale(0.6);
353 margin-left: 2px;
354 }
355
356 .ssp-card-registro-interesse.emed label {
357 margin-left: 0px;
358 margin-right: 3px;
359 }
360}
361
362.ssp-card-oferta-curso__local-realizacao-content__title {
363 font-family: "Open Sans", sans-serif;
364 font-size: 10pt;
365 font-weight: normal;
366 color: #00488c;
367 font-weight: bold;
368 text-decoration: none!important;
369 padding-left: 10px;
370}
371
372 @media screen and (min-width: 767px){
373
374 .ssp-modal-local-realizacao{
375 width: 480px!important;
376 }
377 .ssp-card-modal-forma-pagamento__header {
378 margin-bottom: 20px;
379 }
380
381 .ssp-modal-local-realizacao__title{
382 color:#01488C !important;
383 text-align: center!important;
384 margin-left: -23px!important;
385 }
386
387 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
388 font-size: 14pt;
389 }
390 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
391 font-size: 14px !important;
392 text-align: left;
393 }
394 .ssp-modal-emed-txt-desconto-oito {
395 padding: 10px 0 0px!important;
396 }
397 .ssp:not(.liferay-instance) .ssp-modal-emed-info-valor-matricula {
398 color: #4F596F;
399 font-size: 15px!important;
400 text-align: center;
401 font-weight: 500!important;
402 }
403}
404
405@media screen and (max-width: 767px){
406 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao {
407 width: 347px;
408 padding: 22px;
409 }
410 .ssp-modal {
411 padding-top: 72px!important;
412 }
413 .ssp-card-modal-forma-pagamento {
414 max-width: 335px!important;
415 }
416 .ssp-card-modal-forma-pagamento__body {
417 padding: 0px!important;
418 }
419 .ssp-modal-emed-txt-desconto-oito {
420 font-size: 12px !important;
421 }
422 .ssp-card-modal-forma-pagamento__header {
423 margin-bottom: 20px!important;
424 }
425 .txt-desconto-oito i {
426 font-size: 12px!important;
427 padding-top: 3px;
428 }
429 .txt-pague-vista {
430 font-size: 12px!important;
431 }
432 .txt-ganhe-mais {
433 font-size: 12px!important;
434 }
435 .ssp-modal-emed-info-valor-matricula {
436 color: #2A2E43!important;
437 font-size: 12px!important;
438 font-weight: 500!important;
439 }
440 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
441 font-size: 12px !important;
442 line-height: 1.5;
443 text-align: left;
444 }
445
446 .ssp-desconto-2022 .txt-desconto-oito {
447 font-size: 14px !important;
448 }
449}
450
451@media screen and (max-width: 767px){
452 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
453 font-size: 16pt;
454 }
455}
456
457.container-local-realizacao{
458 padding: 6px;
459 border: 0.5pt solid #cdd0d8;
460 border-radius: 5px;
461 width: 260px;
462 margin: 10px auto;
463 box-shadow: 1px 1px 1px #0000000F;
464}
465
466.idioma-online{
467 border:0!important;
468 box-shadow:none!important;
469}
470
471.btn-idiomas__aula-online .fa-wifi{
472 margin-right: 7px
473}
474
475.ssp-modal-local-realizacao__title{
476 color:#01488C !important;
477 text-align: center!important;
478}
479
480h6.ssp-modal-local-realizacao__title::after {
481 content: "";
482 display: block;
483 width: 20%;
484 padding-top: 10px;
485 border-bottom: 1px solid #01488C;
486 transition: .5s;
487 margin:auto;
488}
489
490.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-wifi::after {
491 font-family: "Font Awesome 5 Free";
492 content: '\f1eb';
493 font-weight: 600;
494 color: #00488c;
495 font-size: 8px;
496 font-style: normal;
497 margin-left: 2px;
498}
499
500.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-chalkboard-teacher::after {
501 font-family: "Font Awesome 5 Free";
502 content: '\f51c';
503 font-weight: 600;
504 color: #00488c;
505 font-size: 13px;
506 font-style: normal;
507}
508
509.ssp-card-oferta-curso__local-realizacao-content__icon-wifi{
510 display: flex;
511 margin-top: 0px;
512 margin-bottom: -10px;
513}
514
515.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-wifi::after {
516 font-family: "Font Awesome 5 Free";
517 content: '\f1eb';
518 font-weight: 600;
519 color: #00488c;
520 font-size: 9pt;
521 font-style: normal;
522 margin-right: 10px;
523}
524
525.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-chalkboard-teacher::after {
526 font-family: "Font Awesome 5 Free";
527 content: '\f51c';
528 font-weight: 600;
529 color: #00488c;
530 font-size: 16pt;
531 font-style: normal;
532 margin-left: -16px;
533}
534
535.ssp-modal__local-realizacao-content__icon-wifi{
536 display: flex;
537 margin-right: 2px
538}
539
540.ssp-modal-local-realizacao__texto{
541 text-align:center!important;
542}
543
544.texto-modal-emed{
545 text-align:left;
546}
547
548.nextPrevOpacity{
549 opacity: 0.3;
550}
551
552
553 .modal-extensao {
554 display: block;
555 position: fixed;
556 z-index: 2000;
557 padding-top: 100px;
558 left: 0;
559 top: 0;
560 width: 100%;
561 height: 100%;
562 overflow: auto;
563 background-color: black;
564 background-color: rgba(0, 0, 0, 0.6);
565 font-family: Montserrat;
566 }
567 .modal-extensao_content {
568 max-width: 700px;
569 width: 100%;
570 background: white;
571 border-radius: 12px;
572 padding: 30px 60px;
573 position: relative;
574 text-align: center;
575 margin: auto;
576 -webkit-animation-name: animatetop;
577 -webkit-animation-duration: 0.4s;
578 animation-name: animatetop;
579 animation-duration: 0.4s;
580 }
581 .modal-extensao-condicoes__title {
582 color: #000!important;
583 text-transform: uppercase!important;
584 font-size: 18px!important;
585
586 }
587 .modal-extensao-condicoes__subtitle {
588 color: #000!important;
589 font-size: 18px!important;
590 margin-bottom: 0px!important;
591
592 }
593 .modal-extensao__btn {
594 background-color: #5ACC75!important;
595 font-size: 14px;
596 float: right;
597 color: #ffffff;
598 min-width: 165px;
599 }
600 .modal-extensao__btn:hover {
601 background-color: #3fb25c!important;
602 border-color: transparent;
603 color: #ffffff;
604 }
605 .modal-extensao_subtitle {
606 font-size: 13.7px!important;
607 color: #2A2E43!important;
608 font-family: Montserrat, semi-bold!important;
609 font-weight: 600!important;
610 }
611 .modal-extensao_subtitle::after {
612 content: " ";
613 display: block;
614 width: 126px;
615 height: 2px;
616 background: #707070;
617 margin: 0 auto;
618 margin-top: 5px;
619 }
620 .modal-extensao_preco {
621 color: #454F63;
622 font-size: 25px;
623 font-family: Montserrat;
624 font-weight: bold;
625 }
626 .modal-extensao_ctboleto {
627 width: 50%;
628 float: left;
629 border-color: #D7D7DB;
630 border-style: solid;
631 border-width: 1px;
632 border-left: none;
633 font-size: 21px;
634 color: #454F63
635
636 }
637 .modal-extensao_ctcard {
638 width: 50%;
639 float: left;
640 border-color: #D7D7DB;
641 border-style: solid;
642 border-width: 1px;
643 border-right: none;
644 border-left: none;
645 font-size: 21px;
646 color: #454F63;
647 }
648
649 .modal-extensao_txtPag {
650 color:#2A2E43;
651 font-size: 9px;
652 font-family: Montserrat;
653 font-weight: 600;
654 display: block;
655 }
656 .modal-extensao_txteconomiza {
657 display: block;
658 font-size: 12px;
659 }
660 .modal-extensao_txtverde {
661 color: #5ACC75;
662 }
663 .modal-extensao_txtParcela {
664 color:#2A2E43;
665 font-size: 12px;
666 font-family: Montserrat;
667 font-weight: normal;
668 display: block;
669 }
670 .modal-extensao_txtporcent{
671 font-size: 9px;
672 color: #5ACC75;
673 font-weight: 600;
674 }
675 .modal-extensao-btn-conheca {
676 color: #2967F4 !important;
677 background-color: transparent;
678 border-color: #2967F4 !important;
679 box-shadow: none !important;
680 font-size: 14px !important;
681 margin-left: 10px;
682 transition: 0.3s;
683 float: left;
684 }
685 .modal-extensao-btn-conferir {
686 color: #2967F4 !important;
687 background-color: transparent;
688 border-color: #2967F4 !important;
689 box-shadow: none !important;
690 font-size: 14px !important;
691 margin-left: 10px;
692 transition: 0.3s;
693 min-width: 330px;
694 min-height: 50px;
695 }
696 .modal-extensao-btn-conferir:hover {
697 color: #ffffff!important;
698 }
699
700 .modal-extensao-btn-conheca:hover, .modal-extensao-btn-conheca:focus {
701 color: #ffffff!important;
702 }
703 .modal-extensao-btn-aluno-sim-nao {
704 color: #000000;
705 background-color: transparent;
706 border-color: #000000 !important;
707 box-shadow: none !important;
708 font-size: 14px !important;
709 margin-left: 10px;
710 transition: 0.3s;
711 min-width: 95px;
712 }
713 .modal-extensao-btn-aluno-sim-ativo {
714 color: #ffffff!important;
715 background-color: #3969EB!important;
716 border-color: #3969EB !important;
717 }
718 .modal-extensao-btn-aluno-sim-nao:hover {
719 background-color: transparent;
720 border-color: #3969EB !important;
721 color: #3969EB!important; }
722 .modal-extensao-voltar-icon,.modal-extensao-fechar {
723 font-size: 13px;
724 position: absolute;
725 top: 30px;
726 right: 20px;
727 cursor: pointer;
728 color: #000;
729 }
730
731 .modal-extensao-voltar-txticon {
732 color: #000;
733 font-size: 9px;
734 font-family: Montserrat;
735 font-weight: 600;
736 padding-left: 5px;
737 }
738 .modal-extensao-ico-check {
739 color: #5ACC75;
740 font-size: 65px;
741 }
742 .modal-extensao-aluno_txtcontent {
743 font-size: 18px!important;
744 color: #000;
745 }
746 .modal-extensao-aluno__btn {
747 background-color: #5ACC75!important;
748 font-size: 14px;
749 color: #ffffff;
750 min-width: 330px;
751 text-transform: uppercase;
752 min-height: 50px;
753 }
754 .modal-extensao-aluno__btn:hover {
755 color: #fff;
756 background-color: #3fb25c!important;
757 border-color: transparent;
758 color: #ffffff;
759 }
760 .modal-extensao-ico-percent {
761 background-color: blue;
762 color: #fff;
763 font-size: 48px;
764 border-radius: 50%;
765 padding: 10px 18px;
766 }
767
768 .btn-preco-ex-aluno,.btn-preco-padrao{
769
770 background:none;
771 border: none;
772 width: 100%;
773 display: flex;
774 align-items: center;
775 justify-content: space-between;
776 text-align: left;
777 font-size: 14px;
778 }
779
780 .custom-icon-right{
781 transform: rotate(0);
782 transition: all 0.5s;
783 }
784
785 .custom-icon-right-active{
786 transform: rotate(90deg);
787 }
788
789 .ssp-divisor{
790 width: 100%;
791 color: #D7D7DB;
792 margin: 15px 0;
793 }
794
795
796 @media only screen and (max-width: 768px){
797
798 .modal-extensao_content{
799 width:336px;
800 padding: 60px 20px 20px 20px;
801 }
802
803 .modal-extensao__btn{
804 width: 100%;
805 }
806
807 .modal-extensao-modal-extensao__btn {
808 float: initial;
809 width: 234px;
810 }
811 .modal-extensao-btn-conheca {
812 float: initial;
813 width: 100%;
814 margin-left: 0px;
815 }
816 .modal-extensao-aluno__btn {
817 min-width: 234px;
818 }
819 .modal-extensao-btn-conferir{
820 min-width: 234px;
821 margin-left: 0px;
822 }
823 }
824
825
826/* Emed */
827.ssp-btn-emed__voltar-curso {
828 border: 1px solid #474F61;
829 color: #474F61;
830 max-width: 372px;
831 margin-left: 60px;
832 height: 50px;
833 padding: 12px!important;
834}
835
836@media (max-width: 768px) {
837 .ssp-btn-emed__voltar-curso {
838 font-size: 14px;
839 margin-left: 0px!important;
840 }
841}
842
843@media only screen and (max-width: 767px){
844 .ssp:not(.liferay-instance) .ssp-emed-visita-text {
845 margin: 0;
846 transform: none;
847 margin-left: 10px;
848 }
849}
850
851.ssp:not(.liferay-instance) .icon-map-adress::after {
852 padding: 0 8px 0 0;
853}
854
855.ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
856 margin: 5px 0;
857}
858
859.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento {
860 width: 100%;
861 color: white !important;
862 font-size: 15px;
863 font-weight: 600;
864 margin: 10px 0;
865}
866
867.ssp-modal-emed-info-txt-matricula {
868 display: inline-block;
869}
870.ssp:not(.liferay-instance) .btn-card-investimento.--inscreva-se.disabled, .ssp:not(.liferay-instance) a.btn.btn-success.disabled.manutencao {
871 background: #BFC3C9 !important;
872 color: #454F63!important;
873 opacity: 1!important;
874 font-size: 14px;
875 border:none;
876}
877
878.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--bolsas.disabled {
879 background: #E5E8ED;
880 color: #454F63!important;
881 opacity: 1;
882 font-size: 14px;
883}
884
885.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--inscreva-se {
886 background-color: #5acc75;
887 text-transform: none;
888}
889
890.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .link-descontos-parcelamentos {
891 font-weight: 600;
892}
893
894.ssp:not(.liferay-instance) .ssp-card-oferta-curso__sem-vaga-title {
895 margin: 0;
896}
897
898.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-container {
899
900 padding: 0;
901
902}
903
904.ssp:not(.liferay-instance) .ssp-ofertas-emed__filtro-content {
905 padding: 40px 0;
906}
907
908.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .txt-boleto-cartao {
909 text-align: center;
910}
911.ssp-card-modal-emed-lineou {
912height: 1px;
913 background-color: #FC7834;
914 text-align: center;
915 width: 50%;
916 margin: 0px auto;
917 margin-bottom: 15px;
918}
919.ssp-card-modal-emed-lineou span {
920background-color: white;
921 position: relative;
922 top: -0.8em;
923 padding: 0 19px;
924 font-weight: bold;
925 color: #2A2E43;
926 font-size: 15px;
927}
928.ssp-modal-emed-txtValor {
929 font-size: 16px;
930 color: #04488C;
931 font-weight: bold;
932}
933.ssp-card-modal-emed-centralizaPagtos{
934max-width: 285px;margin:0 auto; margin-top: 18px!important;
935}
936.ssp-card-modal-forma-pagamento__tipos-content p {
937 font-weight: 500!important;
938}
939.textoCartoesAceitos {
940 font-weight: 500!important;
941}
942.ssp-card-modal-emed-valorObs {
943 color: #004A8C;
944 display: flex;
945 justify-content: center;
946 font-weight: 500;
947 padding-top: 11px;
948 font-size: 14px;
949}
950.ssp-card-modal-emed-boxDesconto{
951 border: 0!important;
952 font-weight: 500!important;
953 background-color: #F7F7F7;
954 border-radius: 13px;
955 padding: 20px 40px!important;
956 margin-bottom: 0!important;
957}
958.ssp-modal-emed-boxoito {
959 padding: 5px 45px!important;
960 text-align: center;
961 border-bottom: 0px!important;
962}
963.ssp-modal-emed-btfechar {
964 position: absolute;
965 right: 0;
966 display: flex;
967 flex-direction: column;
968 text-align: center;
969 line-height: 0.9;
970 top: -48px;
971 color: #E4E8F0;
972 font-weight: 500;
973 font-size: 14px;
974}
975.ssp-card-modal-forma-pagamento__btn-close:hover {
976 opacity: .6;
977}
978.ssp-card-modal-emed-ano {
979 font-weight: 500;
980 font-size: 22px;
981 color: #454F63;
982}
983.ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
984 font-weight: 500!important;
985
986}
987.ssp-card-modal-emed-valorObs i {
988 padding-top: 2px;
989 padding-right: 3px;
990}
991button[id^="btnComprarEmedModal_"] {
992 height: 50px;
993 font-weight: 600;
994 max-width: 372px;
995 width: 100%;
996 margin: 0 auto;
997 /* margin-left: 60px; */
998 display: block;
999 height: 50px;
1000 padding: 12px !important;
1001
1002}
1003.obsspan {
1004 justify-content: left;
1005 padding-bottom: 10px;
1006}
1007
1008.emed_transferencia_texto{
1009 font-size:20px!important;;
1010}
1011
1012
1013@media only screen and (max-width: 767px){
1014
1015 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
1016 width: 100%;
1017 }
1018
1019 .ssp-card-modal-emed-valorObs {
1020 font-size: 12px;
1021 }
1022 .obsspan {
1023 justify-content: left;
1024 margin-left: -14px!important;
1025 }
1026 .ssp-modal-emed-boxoito {
1027 padding: 5px 0px!important;
1028 }
1029 .ssp-modal-emed-info-txt-matricula {
1030 display: inherit;
1031 }
1032 .ssp-card-modal-emed-boxDesconto{
1033 padding: 20px 20px!important;
1034 font-size: 12px!important;
1035 }
1036 .ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
1037 font-size: 12px !important;
1038 font-weight: 500!important;
1039 }
1040 .ssp-modal-emed-btfechar {
1041 font-size: 12px;
1042
1043 }
1044 button[id^="btnComprarEmedModal_"] {
1045 height: 50px;
1046 padding: 10px;
1047 border-radius: 4px;
1048 margin-left: 0px!important
1049 }
1050 button[id^="btnComprarEmedModal_"] span {
1051 font-size: 15px;
1052 font-weight: 600;
1053 }
1054 .ssp-btn-emed__voltar-curso_0 {
1055 font-weight: 600!important;
1056 height: 50px;
1057 border-radius: 4px!important;
1058 padding: 14px!important;
1059 }
1060
1061 .emed_transferencia_texto{
1062 font-size:16px!important;
1063 }
1064
1065}
1066
1067@media screen and (min-width: 1200px){
1068 .ssp-col-lg-without {
1069 flex: unset;
1070 width: unset;
1071 }
1072}
1073@media screen and (max-width: 1199px){
1074 .ssp-desconto-2022 .modal-extensao_txteconomiza {
1075 font-size: 12px !important;
1076 }
1077 .ssp-filters-px {
1078 padding: 0 !important;
1079 }
1080 .ssp-switch-label {
1081 margin: auto 0 !important;
1082 }
1083 .ssp-switch-label-message {
1084 margin-top: 10px;
1085 margin-bottom: 10px;
1086 padding-right: 0 !important;
1087 padding-left: 0 !important;
1088 }
1089 .ssp-container-selecione-unidade [name="unidades-ofertas"] {
1090 max-width: 316px!important;
1091 }
1092 .ssp-detalhe-curso-titulo-filter {
1093 font-size: 16px !important;
1094 }
1095}
1096
1097
1098.ssp-filters-px {
1099 padding: 0 80px;
1100}
1101/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1102/* !!!!!!! CSS Destinado ao switch(toggle) !!!!!!! */
1103/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1104.ssp-switch {
1105 position: relative;
1106 display: inline-block;
1107 width: 63px;
1108 height: 32px;
1109}
1110
1111.ssp-switch input {
1112 opacity: 0;
1113 width: 0;
1114 height: 0;
1115}
1116
1117.ssp-switch-label {
1118 margin: auto 15px;
1119 font: normal normal 600 16px/19px Montserrat;
1120 letter-spacing: 0px;
1121 color: #FFFFFF;
1122 white-space: nowrap;
1123}
1124
1125.ssp-switch-label-section {
1126 font: normal normal 600 18px/22px Montserrat;
1127 margin-bottom: 11px;
1128}
1129
1130.ssp-switch-label-message {
1131 font: normal normal medium 16px/19px Montserrat !important;
1132 letter-spacing: 0px;
1133 color: #FFFFFF;
1134 margin-top: 16px;
1135 padding-left: 25px;
1136 padding-right: 25px;
1137}
1138
1139.ssp-switch-divider {
1140 border-bottom: 1px solid #4a4d5f;
1141 width: 100%;
1142}
1143
1144.ssp:not(.liferay-instance) .ssp-detalhe-curso-titulo-filter.ssp-detalhe-curso-titulo-filter {
1145 font-size: 21px;
1146}
1147
1148.ssp-switch-slider {
1149 position: absolute;
1150 cursor: pointer;
1151 top: 0;
1152 left: 0;
1153 right: 0;
1154 bottom: 0;
1155 background-color: #00000000;
1156 border: 1px solid #FFFFFF;
1157 -webkit-transition: .4s;
1158 transition: .4s;
1159}
1160
1161.ssp-switch-slider:before {
1162 position: absolute;
1163 content: "";
1164 height: 21px;
1165 width: 21px;
1166 left: 4px;
1167 bottom: 4px;
1168 background-color: white;
1169 -webkit-transition: .4s;
1170 transition: .4s;
1171}
1172
1173input:checked + .ssp-switch-slider {
1174 background-color: #5ACC75;
1175 border: 1px solid #5ACC75;
1176}
1177input:checked + .ssp-switch-slider-secondary {
1178 background-color: #2967F4;
1179 border: 1px solid #2967F4;
1180}
1181
1182input:focus + .ssp-switch-slider {
1183 box-shadow: 0 0 1px #5ACC75;
1184}
1185input:focus + .ssp-switch-slider-secondary {
1186 box-shadow: 0 0 1px #2967F4;
1187}
1188
1189input:checked + .ssp-switch-slider:before {
1190 -webkit-transform: translateX(33px);
1191 -ms-transform: translateX(33px);
1192 transform: translateX(33px);
1193}
1194
1195/* Rounded sliders */
1196.ssp-switch-slider.round {
1197 border-radius: 34px;
1198}
1199
1200.ssp-switch-slider.round:before {
1201 border-radius: 50%;
1202}
1203
1204/*Utilizado no modal de registro de interesse #9309*/
1205option[value=""][disabled] {
1206 display: none;
1207}
1208/* Css para botao de idiomas online */
1209
1210.btn-idiomas__aula-online{
1211 background:#5382FF;
1212 color:white!important;
1213 text-decoration:none!important;
1214 padding:11px 14px;
1215 border-radius:4px;
1216 font-size:13px;
1217 font-weight:600;
1218 transition:.3s;
1219}
1220
1221.btn-idiomas__aula-online:hover{
1222 background:#5275D1;
1223 font-weight:600!important;
1224}
1225
1226.title-idioma-online__modal,.icon-wifi-title__modal{
1227 color:#5382FF!important;
1228 font-size:25px!important;
1229 margin:0!important;
1230 margin-right:5px!important;
1231}
1232
1233.btn-modal-entendi__idioma-online{
1234 font-size:16px!important;
1235 font-weight:600!important;
1236 color:#5382FF!important;
1237 border:#5382FF 1px solid!important;
1238 padding:15px 142px;
1239 width:auto!important;
1240}
1241
1242.btn-modal-entendi__idioma-online:hover{
1243 font-size:16px!important;
1244 font-weight:600!important;
1245 color:#5382FF!important;
1246 border:#5382FF 1px solid!important;
1247 background:white!important;
1248}
1249
1250@media only screen and (max-width: 768px){
1251
1252 .title-idioma-online__modal,.icon-wifi-title__modal{
1253 color:#5382FF!important;
1254 font-size:21px!important;
1255 margin:0!important;
1256 margin-right:5px!important;
1257 }
1258
1259 .btn-modal-entendi__idioma-online{
1260 font-size:16px!important;
1261 font-weight:600!important;
1262 color:#5382FF!important;
1263 border:#5382FF 1px solid!important;
1264 padding:12px 30%;
1265 width:auto!important;
1266 }
1267
1268}
1269
1270.btn-emed-lista-espera{
1271 background-color:#C560C7!important;
1272}
1273
1274.ssp:not(.liferay-instance) .ssp-container__form-select {
1275 max-width: 430px;
1276 width:100%;
1277}
1278
1279
1280@media (max-width: 768px){
1281 .ssp:not(.liferay-instance) .ssp-ofertas-emed__card {
1282 margin: 10px 20px;
1283 max-width: 335px;
1284 }
1285}
1286
1287/* css EMED Registro de interesse */
1288
1289.emed #periodo-registro-interesse,.emed #turmas-registro-interesse{
1290
1291 display: flex;
1292 align-items: center;
1293 padding: 0.625rem 0;
1294 width: 85%;
1295 justify-content: space-between;
1296 margin: 0 auto;
1297
1298}
1299
1300.ssp-card-registro-interesse__title-section-itens{
1301 margin: 10px 0 11.5px 0 !important;
1302 font-size: 20px;
1303 flex-basis: 120px;
1304}
1305
1306.ssp-card-registro-interesse__check-itens-content {
1307 display: flex!important;
1308 justify-content: center!important;
1309 flex: 0 1 90%!important;
1310}
1311.ssp-card-registro-interesse__check-item {
1312 display: flex;
1313 align-items: center;
1314 flex-basis: 100px;
1315}
1316
1317.ssp-card-registro-interesse label {
1318 margin-right: 0!important;
1319}
1320
1321.ssp-card-registro-interesse [type="checkbox"] {
1322box-shadow: 0px 0px 6px #00000029;
1323}
1324
1325#cursos-registro-interesse,#unidades-registro-interesse{
1326padding: 10px 0;
1327}
1328
1329.emed-select-group{
1330
1331box-shadow: 0px 0px 12px #00000010;
1332border: 1px solid #6E6E6E;
1333border-radius: 4px;
1334padding: 1.0rem 1.125rem;
1335margin: 1rem 0;
1336
1337}
1338
1339.ssp:not(.liferay-instance) .ssp-card-registro-interesse__add-mais > a {
1340 color: #457eff !important;
1341 }
1342
1343.emed .ssp-card-registro-interesse__btn-enviar {
1344background-color: #C560C7 !important;
1345}
1346
1347.ssp-card-registro-interesse__title-modal{
1348color:#C560C7 !important;
1349font-size: 35px !important;
1350font-weight: bold !important;
1351margin: 0 !important;
1352}
1353
1354#msg-transferencia-emed{
1355display: flex;
1356justify-content: center;
1357flex: wrap;
1358flex-direction: column;
1359align-items: center;
1360padding: 1rem 0;
1361}
1362
1363.transferencia-emed-title {
1364 color: #d266d4;
1365 display: flex;
1366 gap: 10px;
1367 font-size: 16px;
1368 font-weight: bold;
1369 align-items:center;
1370}
1371
1372.transferencia-emed-title p {
1373 margin: 0 !important;
1374 font-weight: bold !important;
1375 font-size: 16px!important;
1376}
1377
1378.transferencia-emed-link a{
1379 font-size: 15px;
1380 font-weight: 500!important;
1381 color: #792F7A;
1382 display: block;
1383 text-align: center;
1384}
1385
1386.transferencia-emed-link a:hover {
1387 font-weight: 500!important;
1388 color: #792F7A;
1389}
1390
1391.emed .ssp-card-registro-interesse__label-curso-selecionado{
1392color:#2A2E43!important;
1393font-weight: bold!important;
1394font-size: 28px;
1395}
1396
1397
1398/* css para registro de interesse atual */
1399
1400#periodo-registro-interesse,#dias-registro-interesse{
1401padding: .625rem 0;
1402}
1403
1404/* css card sem turma e registro de interesse emed*/
1405
1406.slick-area-emed {
1407 display: -webkit-box !important;
1408 display: -ms-flexbox !important;
1409 display: flex !important;
1410 -webkit-box-align: center;
1411 -ms-flex-align: center;
1412 align-items: center;
1413 -webkit-box-pack: center;
1414 -ms-flex-pack: center;
1415 justify-content: center;
1416 font-size: 0;
1417 -ms-flex-wrap: nowrap;
1418 flex-wrap: nowrap;
1419 }
1420
1421 .slick-area-emed .slick-track, .slick-area-emed .slick-list {
1422 width: 100%;
1423 }
1424
1425 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1426 .slick-area-emed--md-bleed {
1427 width: 100vw;
1428 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1429 }
1430 .slick-area-emed--md-bleed .slick-list {
1431 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1432 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1433 }
1434 .slick-area-emed--md-bleed .slick-arrow {
1435 display: none !important;
1436 }
1437 }
1438
1439 @media only screen and (min-width: 376px) and (max-width: 1024px) {
1440 .slick-area-emed--md-bleed {
1441 width: 100vw;
1442 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1443 }
1444 .slick-area-emed--md-bleed .slick-list {
1445 padding-left: 2px;
1446 }
1447 .slick-area-emed--md-bleed .slick-arrow {
1448 display: none !important;
1449 }
1450 }
1451
1452 @media only screen and (max-width: 375px) {
1453
1454 .ssp-emed__card-slider-body {
1455 padding: 25px 30px;
1456 }
1457
1458
1459 .slick-area-emed--md-bleed {
1460 width: 100vw;
1461 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1462 }
1463 /* .slick-area-emed--md-bleed .slick-list {
1464 padding-left: 20px;
1465
1466 } */
1467 .slick-area-emed--md-bleed .slick-arrow {
1468 display: none !important;
1469 }
1470 }
1471
1472 .slick-area__item {
1473 display: flex;
1474 flex-basis: auto;
1475 }
1476
1477 .ssp-emed__section__textCard {
1478 margin: 20px 0 0 0;
1479}
1480
1481 .ssp-emed__card-slider-body {
1482 padding: 25px 50px;
1483 min-height: 350px;
1484 display: flex;
1485 flex-direction: column;
1486 }
1487
1488 .slick-area__item {
1489 display: flex;
1490 flex-basis: auto;
1491 }
1492
1493 .ssp-emed__card-slider-body a {
1494 text-decoration: none!important;
1495 font-weight: normal;
1496 color: #78849E
1497 }
1498
1499 .ssp-emed__card-slider-body a:hover {
1500 font-weight: bold!important;
1501 color: #2a2e43
1502 }
1503
1504 .ssp-emed__card-slider {
1505 border-radius: 12px;
1506 background: transparent;
1507 -webkit-box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1508 box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1509 margin: 12px;
1510 position: relative;
1511 overflow: hidden;
1512 color: #ffffff!important;
1513 border: 1px solid #fff;
1514 min-height: 350px;
1515 }
1516
1517 .ssp-emed__card-slider-transferencias{
1518 border-radius: 12px;
1519 background: var(--color-neutral-25);
1520 max-width: 816px;
1521 margin: 0 auto;
1522 width:100%;
1523 padding: 56px;
1524 color: var(--color-neutral-800);
1525
1526 .ssp-h3,p{
1527 margin-bottom: 0;
1528 }
1529
1530 .card-slider-body{
1531 display: grid;
1532 gap:16px;
1533 }
1534
1535 .btn-transferencia{
1536 padding: 16px 40px;
1537 background: var(--marca-azulsenac-400);
1538 color: var(--color-neutral-25);
1539 width: fit-content;
1540 margin: 0 auto;
1541 margin-top: 16px;
1542 text-decoration: none!important;
1543 border-radius: 4px;
1544 transition: .3s;
1545
1546 &:hover{
1547 background: var(--marca-azulsenac-500);
1548 }
1549
1550 }
1551
1552 }
1553
1554 .slick-initialized .slick-track {
1555 display: flex;
1556 }
1557
1558 .slick-initialized .slick-slide {
1559 height: inherit!important;
1560 display: flex;
1561 }
1562
1563 .ssp-emed__section__titleCard {
1564 font-size: 28px !important;
1565 color: #ffffff !important;
1566 margin: 0 !important;
1567 display: flex !important;
1568 justify-content: flex-start !important;
1569 flex-direction: row !important;
1570 align-items: start !important;
1571 flex-basis: 60px;
1572}
1573
1574.ssp-emed__section__titleCard i {
1575 font-size: 28px;
1576 color: #ffffff;
1577 margin: 0 0.85rem 0 0;
1578 line-height: 30px;
1579}
1580
1581.ssp-emed__section__titleCard i.fa-envelope {
1582 margin-top: 0px;
1583}
1584
1585.ssp-emed__section__titleCard i.fa-users-class {
1586 margin-top:2px;
1587}
1588
1589.ssp-emed__section__titleCard div {
1590 text-decoration: underline;
1591 font-size: 28px !important;
1592 font-weight: bold;
1593 margin: 0!important;
1594 transform:translateY(-2px)
1595}
1596
1597 .ssp-emed__section__introCard {
1598 display: block;
1599 font: 28px/30px 'Montserrat';
1600 font-weight: 600;
1601 margin: 20px 0;
1602 color: #ffffff;
1603 }
1604
1605 .ssp-emed__section__introCardCTA {
1606 font: 34px/36px 'Montserrat';
1607 font-weight: bold;
1608 display: block;
1609 margin: 20px 0;
1610 color: #ffffff;
1611 }
1612
1613 .ssp-emed__section__textCard {
1614 font: 22px/30px 'Montserrat';
1615 color: #ffffff;
1616 display: block;
1617 margin: 20px 0 0 0;
1618 position: relative;
1619 }
1620
1621 .ssp-emed__iconWrapper {
1622 display: inline-block;
1623 width: 50px;
1624 color: #B053B2;
1625 position: absolute;
1626 bottom: 0;
1627 right: 0;
1628 }
1629
1630 .ssp-emed__btn {
1631 background-color: #B053B2 ;
1632 color: #fff!important;
1633 font: normal normal 600 18px/22px Montserrat;
1634 box-shadow: 0px 4px 16px #455B6314;
1635 width: 100%;
1636 transition: .3s;
1637 padding:10px!important;
1638 }
1639
1640 .ssp-emed__btn:hover {
1641 opacity: 0.7;
1642 }
1643
1644 /*mobile emed*/
1645 @media only screen and (max-width: 1024px) {
1646 .slick-area-emed .slick-dots li.slick-active button:before {
1647 opacity: .75;
1648 color: #707070;
1649 }
1650
1651 .slick-area-emed .slick-dots li button:before {
1652 color: blue;
1653 }
1654
1655 .ssp-card-detalhe-curso__secundary-info-carga-horaria {
1656 min-width: 35%;
1657 text-align: end;
1658 }
1659
1660 .ssp-emed__card-slider-transferencias{
1661 padding: 56px 24px;
1662 border-radius: 0;
1663
1664
1665 .card-slider-body{
1666 display: grid;
1667 gap:16px;
1668 }
1669
1670 .btn-transferencia{
1671 padding: 16px;
1672 text-align: center;
1673 width: 100%;
1674 }
1675
1676 }
1677
1678 }
1679
1680 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1681 .slick-area-emed--md-bleed {
1682 width: 100vw;
1683 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1684 }
1685 .slick-area-emed--md-bleed .slick-list {
1686 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1687 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1688 }
1689 .slick-area-emed--md-bleed .slick-arrow {
1690 display: none !important;
1691 }
1692 }
1693
1694 @media only screen and (min-width: 375px) and (max-width: 1024px) {
1695 .slick-area-emed--md-bleed {
1696 width: 100vw;
1697 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1698 }
1699 .slick-area-emed--md-bleed .slick-list {
1700 padding-left: 2px;
1701 }
1702 .slick-area-emed--md-bleed .slick-arrow {
1703 display: none !important;
1704 }
1705 .ssp-emed__section__titleCard {
1706 align-items: start !important;
1707 }
1708
1709 .ssp-emed__section__titleCard div {
1710 font-weight: bold !important;
1711 }
1712
1713 .ssp-emed__section__titleCard i {
1714 font-weight: 300 !important;
1715 font-size: 28px !important;
1716 margin: 3px 0.85rem 0 0;
1717 }
1718
1719 .transferencia-emed-title {
1720 font-size: 12px;
1721 }
1722
1723 .ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
1724 background-size: 15px 15px !important;
1725 padding: 0 10px;
1726 }
1727 }
1728
1729 @media only screen and (max-width: 550px) {
1730
1731 .ssp-emed__section__introCardCTA{
1732 font-size: 28px;
1733 }
1734
1735 #msg-transferencia-emed{
1736 gap:12px;
1737 }
1738
1739
1740
1741 .ssp-emed__card-slider {
1742 width:335px;
1743 min-height: 440px;
1744 }
1745
1746 .slick-initialized .slick-track {
1747 display: flex;
1748 }
1749
1750 .slick-initialized .slick-slide {
1751 height: inherit!important;
1752 display: flex;
1753 min-height: 440px;
1754 }
1755
1756 .ssp-emed__card-slider-body {
1757 padding: 25px 30px;
1758 }
1759
1760 .ssp-emed__section__titleCard div {
1761 transform: translateY(-5%);
1762 font-size: 24px!important;
1763 }
1764
1765 .slick-area-emed--md-bleed {
1766 width: 100vw;
1767 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1768 }
1769 .slick-area-emed--md-bleed .slick-list {
1770 padding-left: 20px;
1771 }
1772 .slick-area-emed--md-bleed .slick-arrow {
1773 display: none !important;
1774 }
1775
1776 .ssp-card-registro-interesse__title-section-itens {
1777 flex-basis: 80px;
1778 }
1779
1780 .emed #periodo-registro-interesse, .emed #turmas-registro-interesse {
1781 width: 95%;
1782 }
1783
1784 .emed .ssp:not(.liferay-instance) .ssp-card-registro-interesse label {
1785 margin: 0!important;
1786 }
1787
1788 .emed .ssp-card-registro-interesse.emed [type="checkbox"] {
1789 margin-left: 0!important;
1790 }
1791
1792 .emed .ssp-card-registro-interesse__check-item {
1793 flex-basis: 100px;
1794 }
1795 }
1796
1797 .emed-select-group {
1798 box-shadow: 0px 0px 12px #00000010;
1799 border: 1px solid #6E6E6E;
1800 border-radius: 4px;
1801 margin: 1rem 0;
1802}
1803
1804.emed-select-group h4 {
1805 margin: 15px 0 10px 0;
1806}
1807.ssp-emed__section__textCard {
1808 margin: 20px 0 0 0;
1809}
1810
1811.ssp-card-msg-sucesso__btn{
1812 font-size: 20px;
1813}
1814
1815.ssp:not(.liferay-instance) .ssp-card-oferta-curso {
1816 height:fit-content;
1817}
1818
1819.ssp-card-duvida__bolsa-estudo{
1820
1821background:#DCE8FF;
1822padding: 30px;
1823max-width: 683px;
1824width: 100%;
1825border-radius: 14px;
1826display:flex;
1827justify-content:center;
1828align-items: center;
1829gap: 20px;
1830margin: 1rem auto;
1831
1832}
1833
1834.ssp-card-duvida__bolsa-estudo p{
1835
1836font-size: 16px!important;
1837font-weight: bold!important;
1838color: #2967F4!important;
1839margin: 0!important;;
1840
1841}
1842
1843.ssp-card-duvida__bolsa-estudo a{
1844
1845border:1px solid #2967F4!important;
1846font-size: 14px!important;
1847font-weight: 600;
1848text-decoration: none!important;
1849color: #2967F4!important;
1850padding:14px 27px;
1851border-radius:6px;
1852transition: .3s;
1853
1854}
1855
1856.ssp:not(.liferay-instance) .ssp-card-duvida__bolsa-estudo a:hover{
1857
1858font-size: 14px!important;
1859font-weight: 600!important;
1860background: #2967F4!important;
1861color:white !important;
1862opacity:1!important;
1863
1864}
1865
1866@media only screen and (max-width: 768px){
1867
1868.ssp-card-duvida__bolsa-estudo{
1869
1870 background:#DCE8FF;
1871 padding: 20px;
1872 flex-flow: column;
1873 width:90%;
1874
1875}
1876
1877.ssp-card-duvida__bolsa-estudo p{
1878
1879 max-width:200px;
1880 text-align: center;
1881
1882}
1883
1884.ssp-card-duvida__bolsa-estudo a{
1885
1886 padding:16px 27px;
1887
1888}
1889
1890}
1891
1892/* Novo Card de Oferta */
1893
1894 /* ajustes no card existente */
1895
1896 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma{
1897 margin-bottom: 30px;
1898 }
1899
1900 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma-content {
1901 margin-bottom: 5px;
1902 }
1903
1904 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-data-periodo{
1905 margin: 5px 0 10px 0;
1906 }
1907
1908 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item {
1909 border-radius: 0;
1910 background-color: unset;
1911 padding: 0;
1912 max-width: 100%;
1913 width: 100%;
1914 margin: 0;
1915 }
1916
1917 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora_content{
1918 margin:0;
1919 opacity: 0;
1920 transition: 0.3s;
1921 }
1922
1923 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1924 margin: 0;
1925 font-size: 17px;
1926 font-weight: bold;
1927 font-stretch: normal;
1928 font-style: normal;
1929 line-height: 1.23;
1930 letter-spacing: normal;
1931 text-align: center;
1932 }
1933
1934 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__hora {
1935 margin: 0;
1936 font-size: 17px;
1937 font-weight: bold;
1938 font-stretch: normal;
1939 font-style: normal;
1940 line-height: 1.3;
1941 letter-spacing: normal;
1942 text-align: center;
1943 }
1944
1945 .modal-extensao_txteconomiza{
1946 font-size: 14px;
1947 color: #454F63;
1948 font-weight: 400;
1949 }
1950
1951 .btn.btn-lg {
1952 padding:.7rem;
1953
1954 }
1955
1956 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
1957 font-size: 17px;
1958 }
1959
1960 .ssp-card-oferta-curso__item-valor-investimento{
1961 font-size: 38px;
1962 }
1963
1964 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__title{
1965 color: #454F63;
1966 font-weight: bold!important;
1967 font-size: 14px;
1968}
1969
1970.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card::after{
1971 color: #454F63!important;
1972 font-size: 14px;
1973}
1974
1975.ssp-card-modal-forma-pagamento__icon-boleto-e-cartao{
1976 font-size: 18px!important;
1977 margin-right: 15px!important;
1978}
1979
1980
1981.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{
1982 color:#454F63;
1983 font-size: 14px;
1984 font-weight: 400;
1985}
1986
1987.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content {
1988 padding-bottom: 0;
1989}
1990
1991 /* local realizacao */
1992
1993 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title {
1994 font-size: 13px;
1995 color: #00488C;
1996 font-weight: 600;
1997 text-decoration: none!important;
1998 border: 1px solid #00488C;
1999 padding: 11px 14px;
2000 transition:.3s;
2001 border-radius: 4px;
2002 display: flex;
2003 gap: 5px;
2004 align-items: center;
2005 }
2006
2007 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover {
2008 color: white;
2009 font-weight: 600!important;
2010 background: #08488C;
2011 }
2012
2013 .container-local-realizacao {
2014 padding:0;
2015 border:0;
2016 border-radius: unset;
2017 width: 100%;
2018 margin: 10px 0 0 0;
2019 box-shadow: none;
2020 display: flex;
2021 justify-content:center;
2022 align-items: flex-end;
2023 }
2024
2025 .icon-local-realizacao{
2026 color: #00488C;
2027 font-size: 13px;
2028 }
2029
2030
2031 @media only screen and (max-width: 768px){
2032
2033 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
2034 font-size: 16px;
2035 }
2036
2037 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item {
2038 font-size: 14px!important;
2039 }
2040
2041 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{
2042 font-size: 15px;
2043 }
2044
2045 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento {
2046 font-size: 33px;
2047 }
2048
2049 .icon-local-realizacao {
2050 font-size: 12px;
2051 }
2052
2053 .modal-extensao_txteconomiza {
2054 font-size: 12px;
2055 }
2056
2057 .content-valores-descontos {
2058 padding-bottom: 8px!important;
2059 }
2060
2061 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
2062 font-size: 14px!important;
2063 }
2064
2065
2066 }
2067
2068
2069
2070
2071/* final ajustes no card existente */
2072
2073
2074/* Novos elementos */
2075
2076.content-data-dias{
2077 padding:20px;
2078 padding-top:0;
2079 border-bottom: none !important;
2080}
2081
2082.content-valores-descontos{
2083 padding:20px 0 0 0;
2084 opacity: 1;
2085 height:auto;
2086 transition: 0.3s;
2087 overflow: hidden;
2088 border-top: 1px #E4E8F0 solid;
2089}
2090
2091.content-valores-descontos.hide-price{
2092
2093 padding:0;
2094 opacity: 0;
2095 height:0;
2096
2097}
2098
2099.content-btn-bolsa{
2100
2101 border-top: 1px #E4E8F0 solid;
2102 padding-top:20px;
2103
2104}
2105
2106.content-btn-bolsa.modifier-content-show{
2107
2108 padding-bottom: 20px;
2109
2110}
2111
2112.content-btn-bolsa.modifier-content-show .ou-separator-desconto{
2113 display:none;
2114}
2115
2116.content-btn-bolsa.modifier-content-show .btn-show-price{
2117 display:none;
2118}
2119
2120.content-buttons{
2121
2122 padding:20px 0 0 0;
2123
2124}
2125
2126.block-valor-desconto{
2127
2128 background-color:#F2F6FF;
2129 padding: 30px 10px 15px 10px;
2130 border-radius:12px;
2131 position: relative;
2132
2133}
2134
2135.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2136 font-size: 18px;
2137}
2138
2139.block-valor-total{
2140
2141 background-color:#F2F6FF;
2142 padding:15px 10px;
2143 border-radius:12px;
2144 position: relative;
2145
2146}
2147
2148.block-valor-total .ssp-card-oferta-curso__title-item{
2149 font-size: 16px!important;
2150 color: #454F63!important;
2151 font-weight:500!important;
2152}
2153
2154.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{
2155 font-size:22px;
2156}
2157
2158.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{
2159 font-size:11px;
2160}
2161
2162.block-valor-total .ssp-card-oferta-curso__desconto-content p{
2163 font-size:14px;
2164 font-weight: 500;
2165}
2166
2167.tag-label-desconto{
2168
2169background-color:#B6FDCF;
2170border-radius: 15px;
2171padding:5px;
2172margin: -50px 20px 10px 20px;
2173
2174}
2175
2176.tag-label-desconto span, .tag-label-desconto small{
2177font-size: 16px!important;
2178font-weight: bold!important;
2179color: #454F63!important;
2180}
2181
2182
2183
2184.ou-separator-desconto{
2185 font-size: 16px;
2186 color: #454F63;
2187 font-weight: bold;
2188 display:flex;
2189 flex-wrap: nowrap;
2190 align-items: center;
2191 justify-content:space-between;
2192 gap: 15px;
2193 padding:20px 0;
2194}
2195
2196.ou-separator-desconto::after{
2197 content: "";
2198 height:2px;
2199 background-color:#E4E8F0;
2200 width: 100%;
2201 display: block;
2202}
2203
2204.ou-separator-desconto::before{
2205 content: "";
2206 height:2px;
2207 background-color:#E4E8F0;
2208 width: 100%;
2209 display: block;
2210}
2211
2212.btn-show-price{
2213
2214 background: unset;
2215 border: 0;
2216 font-size: 14px!important;
2217 color: #454F63!important;
2218
2219}
2220
2221.btn-show-price p{
2222 margin: 0 !important;
2223}
2224
2225.btn-show-price span{
2226 text-decoration: underline;
2227 font-weight: bold;
2228}
2229
2230@media only screen and (max-width: 768px){
2231
2232 .content-data-dias{
2233
2234 padding:20px 0;
2235
2236 }
2237
2238 .ssp-card-oferta-curso__local-realizacao-content__title {
2239
2240 font-size: 14px;
2241 display:flex;
2242 align-items: center;
2243 gap: 5px;
2244 padding: 10px 13px;
2245 }
2246
2247 .ssp-card-oferta-curso__local-realizacao-content__title i{
2248
2249 font-size: 11px;
2250 }
2251
2252 .tag-label-desconto span, .tag-label-desconto small {
2253 font-size: 13px!important;
2254 }
2255
2256 .tag-label-desconto {
2257 padding: 5px;
2258 margin: -50px 12px 10px 12px;
2259 }
2260
2261 .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2262 font-size: 18px;
2263 }
2264
2265 .content-buttons {
2266 padding: 10px 0 0 0;
2267 }
2268
2269
2270}
2271
2272/*final Novo card de ofertas*/
2273
2274/* form aprendizagem */
2275
2276[data-modal="modal"]{
2277 background-color: rgba(0,0,0,0.7);
2278 backdrop-filter: blur(10px);
2279 display:none;
2280}
2281
2282[data-modal="close-form-modal"]{
2283
2284 font-size: 22px;
2285 background: unset!important;
2286 color: white!important;
2287 display: flex;
2288 align-items: center;
2289 margin: 0;
2290 padding: 0;
2291 position:absolute;
2292 right:0;
2293 border:0;
2294 gap:5px;
2295 right: 2%;
2296 top: -2%;
2297
2298}
2299
2300[data-modal="close-form-modal"] i{
2301
2302 font-size:43px;
2303 height:fit-content;
2304
2305}
2306
2307.open-modal-form{
2308 position: fixed;
2309 top: 0;
2310 width: 100%;
2311 height: 100%;
2312 z-index: 100;
2313 display: flex;
2314 justify-content: center;
2315 align-items: center;
2316 overflow:auto;
2317
2318}
2319
2320.open-modal-form .ssp_ct_form_programe{
2321 animation-name: animatetop;
2322 animation-duration: .4s;
2323 position:relative;
2324}
2325
2326label .reference-mark {
2327color:#78849e;
2328}
2329.lexicon-icon-asterisk {
2330 color:#78849e;
2331}
2332.lexicon-icon-reload {
2333 margin-left:10px;
2334}
2335.ssp_title_form_programe{
2336 font-size: 42px!important;
2337 color: #ffffff!important;
2338 font-family: "Montserrat",sans-serif;
2339 font-weight:600;
2340 text-align:left;
2341}
2342.ssp_subtitle_form_programe {
2343 margin-top:0px!important;
2344
2345}
2346.ssp_subtitle_form_programe{
2347 font-size: 20px!important;
2348 color: #ffffff!important;
2349 font-family: "Montserrat",sans-serif;
2350 font-weight:600;
2351 text-align:left;
2352}
2353.lfr-ddm-form-page {
2354background-color: #fff;
2355border-radius: 12px 12px 0px 0px;
2356padding: 35px 15px!important;
2357}
2358.ssp:not(.liferay-instance) .form-group label {
2359 color: #78849E;
2360 font: normal normal 600 16px/19px Montserrat;
2361 padding-bottom: 10px;
2362}
2363.lfr-ddm-form-page-description {
2364display: none!important;
2365}
2366.lfr-ddm-form-page-title {
2367display: none!important;
2368}
2369.lfr-ddm-form-submit {
2370background-color: #0380F0;
2371 text-align: center;
2372 float: none!important;
2373 border: 1px solid #0380F0;
2374 border-radius: 6px;
2375 font-size: 16px;
2376 width: 245px;
2377 height: 50px;
2378}
2379.lfr-ddm-form-pagination-controls {
2380background-color: #fff;
2381 text-align: center;
2382 border-radius: 0px 0px 12px 12px;
2383 padding-bottom: 25px;
2384}
2385.ddm-form-name {
2386display: none!important;
2387}
2388.ddm-form-description {
2389display: none!important;
2390}
2391.ddm-form-builder-app {
2392margin-top:35px;
2393}
2394.taglib-captcha {
2395 display: flex;
2396}
2397.input-text-wrapper {
2398 left: 20px;
2399}
2400.lfr-ddm-form-pagination-controls {
2401 padding-top:0px!important;
2402 display:flex;
2403 justify-content:center;
2404 align-items: center;
2405 flex-flow:column;
2406}
2407@media only screen and (max-width: 1024px) {
2408
2409.open-modal-form{
2410
2411 align-items: flex-start;
2412
2413}
2414
2415.ddm-form-builder-app {
2416 margin-top: 15px;
2417}
2418
2419.ssp_title_form_programe{
2420font-size: 34px!important;
2421line-height: 1.2!important;
2422}
2423.ssp_subtitle_form_programe{
2424font-size:18px!important;
2425}
2426.taglib-captcha {
2427 display:block;
2428}
2429.input-text-wrapper {
2430 left:0;
2431}
2432.ssp_ct_form_programe {
2433 padding:0px;
2434 max-width:100%;
2435 padding:40px 20px;
2436}
2437
2438[data-modal="close-form-modal"]{
2439
2440 right: 20px;
2441 top: 0;
2442
2443}
2444
2445}
2446
2447.ssp:not(.liferay-instance) a.btn.btn-success.disabled{
2448 pointer-events: none;
2449 opacity: 0.5 !important;
2450 color: #FFF !important;
2451 background-color: #4CBF69 !important;
2452 cursor: not-allowed;
2453 border: none !important;
2454 font-size: 0.9rem !important;
2455}
2456
2457.slick-list.draggable {
2458 height: auto !important;
2459}
2460
2461.ssp:not(.liferay-instance) .ssp-image-opacity {
2462
2463 opacity: 1;
2464 object-fit: cover;
2465 object-position: center;
2466
2467}
2468
2469.ssp-option-group {
2470 text-align: left;
2471 font: normal normal 600 15px/19px Montserrat;
2472 letter-spacing: 0px;
2473 color: #004A8C;
2474}
2475.ssp-option {
2476 text-align: left;
2477 font: normal normal normal 15px/19px Montserrat;
2478 letter-spacing: 0px;
2479 color: #656565;
2480}
2481@media only screen and (max-width: 768px){
2482 .ssp-option-group {
2483 font: normal normal 600 15px/19px Montserrat;
2484 }
2485 .ssp-option {
2486 font: normal normal normal 15px/19px Montserrat;
2487 }
2488}
2489
2490.open-modal-form.lfr-ddm__default-page-header{
2491 display:none;
2492}
2493
2494/* css para funcionalidade de híbrido */
2495
2496.ssp-emed__vantagens-content.livre span{
2497 color: #FF9057!important;
2498}
2499.ssp-emed__vantagens-content.livre a:hover {
2500 color: white;
2501 background-color: #FF9057!important;;
2502 border: 1px solid #FF9057!important;;
2503}
2504.ssp-emed__vantagens-content.tecnico span{
2505 color: #F7BD23!important;
2506}
2507.ssp-emed__vantagens-content.tecnico a:hover {
2508 color: white;
2509 background-color: #F7BD23!important;;
2510 border: 1px solid #F7BD23!important;;
2511}
2512.ssp-emed__vantagens-content.ensino-medio-tecnico span{
2513 color: #C761CB!important;
2514}
2515.ssp-emed__vantagens-content.ensino-medio-tecnico a:hover{
2516 color: white;
2517 background-color: #C761CB!important;;
2518 border: 1px solid #C761CB!important;;
2519}
2520.ssp-emed__vantagens-content.extensao span{
2521 color: #3ECCA6!important;
2522}
2523.ssp-emed__vantagens-content.extensao a:hover{
2524 color: white;
2525 background-color: #3ECCA6!important;
2526 border: 1px solid #3ECCA6!important;
2527}
2528
2529/* Transferencias EMED */
2530
2531.emed-transferencias-space{
2532 max-width: auto;
2533}
2534
2535.card-transferencias-emed {
2536 text-align: left;
2537}
2538
2539.card-transferencias-emed .ssp-emed__card-slider-body{
2540 padding: 30px;
2541}
2542
2543.card-pre-inscricao {
2544 text-align: center;
2545}
2546
2547.card-pre-inscricao .ssp-emed__card-slider-body{
2548 justify-content: space-evenly;
2549}
2550
2551.footer-card-card-pre-inscricao{
2552 margin-top: 48px;
2553 }
2554
2555.card-transferencias-emed, .card-pre-inscricao{
2556 span, strong{
2557 font-size: 24px;
2558 }
2559 span{
2560 font-weight: 500;
2561 }
2562 strong{
2563 font-weight: 700;
2564 }
2565 .transferencias-emed-rodape{
2566 margin-top:25px;
2567 span{
2568 font-size:0.9rem;
2569 font-weight: 400;
2570 }
2571 }
2572}
2573
2574@media only screen and (max-width: 768px){
2575 .card-pre-inscricao {
2576 text-align: left;
2577 }
2578
2579 .footer-card-card-pre-inscricao{
2580 margin-top: 24px;
2581 }
2582
2583 .footer-card-card-pre-inscricao strong{
2584 margin-top: 24px;
2585 font-size: 24px!important;
2586 }
2587
2588 .card-pre-inscricao .ssp-emed__card-slider {
2589 width: 100%;
2590 max-width: 329px;
2591 min-height: 390px;
2592 margin: 0;
2593 }
2594
2595 .card-pre-inscricao .ssp-emed__card-slider:nth-child(n+2){
2596 margin: 12px;
2597 }
2598
2599 .card-transferencias-emed, .card-pre-inscricao{
2600 span, strong{
2601 font-size: 16px;
2602 }
2603 .ssp-emed__section__titleCard{
2604 flex-basis: 0;
2605 margin-bottom: 24px!important;
2606 align-items: center!important;
2607 }
2608
2609 .ssp-emed__section__titleCard i{
2610 font-size: 24px!important;
2611 }
2612
2613 .ssp-emed__section__titleCard div{
2614 font-size: 20px !important;
2615 }
2616 }
2617
2618 .slick-area__item.card-pre-inscricao{
2619 min-height: 390px!important;
2620 }
2621
2622 .card-transferencias-emed .ssp-emed__card-slider{
2623 margin: 0;
2624 }
2625
2626 .card-transferencias-emed .ssp-emed__card-slider{
2627 margin: 0;
2628 min-height: 300px;
2629 }
2630
2631 .card-transferencias-emed .col-md-12{
2632 padding: 0;
2633 }
2634
2635 .card-transferencias-emed .transferencias-emed-rodape span{
2636 font-size: 12px;
2637 }
2638
2639 .ssp-ofertas-emed__filtro-content .btn-filtro{
2640 width:156px !important;
2641 font-size:14px !important;
2642 }
2643
2644 #titulo-emed{
2645 text-transform: uppercase;
2646 }
2647
2648 .emed-transferencias-space div:nth-child(n+2){
2649 padding-left:0;
2650 }
2651
2652 .emed-transferencias-space .slick-area-emed--md-bleed{
2653 position: inherit;
2654 }
2655
2656}
2657
2658</style>
2659
2660
2661 <#assign
2662
2663 prefix = "ssp"
2664 nomeVocabularioTipoCurso = 'tipo-de-curso'
2665
2666
2667 nomeVocabularioUnidades = 'unidades'
2668
2669 nomeVocabularioFormato = 'formato'
2670
2671 nomeFormato = ""
2672 nomeVocabularioModalidade = 'modalidade'
2673
2674 nomeModalidade = ""
2675
2676 normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer")
2677
2678 journalArticle = getJournalArticle()
2679 />
2680
2681 <#if journalArticle?contains("#erro#")>
2682 erro
2683 <#else>
2684
2685 <#assign
2686
2687 categories = getCategorias(journalArticle.getResourcePrimKey())
2688
2689 document = saxReaderUtil.read(journalArticle.getContent()).getRootElement()
2690
2691 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataEfetivaFTFieldSet']")
2692 dataEfetivaFTFieldSet = xPathSelector.selectSingleNode(document)
2693
2694 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='dataEfetivaFT']")
2695 dataEfetiva = xPathSelector.selectSingleNode(document)
2696
2697 dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string
2698
2699 articleId = journalArticle.getArticleId()
2700
2701 codigoFT = getStringValue(document,'codigoFT')
2702
2703 tituloComercial = journalArticle.getTitle()
2704
2705 objetivo = getStringValue(dataEfetivaFTFieldSet, 'objetivoComercial')
2706
2707 cargaHoraria = getStringValue(dataEfetivaFTFieldSet, 'cargaHorariaTotalFT')
2708
2709 oQueVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueVouAprenderComercial')
2710
2711 comoVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'comoVouAprenderComercial')
2712
2713 possoFazerEsteCursoComercial = getStringValue(dataEfetivaFTFieldSet, 'possoFazerEsteCursoComercial')
2714
2715 tereiCertificadoComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiCertificadoComercial')
2716
2717 tereiDiplomaComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiDiplomaComercial')
2718
2719 precisoEstagiarComercial = getStringValue(dataEfetivaFTFieldSet, 'precisoEstagiarComercial')
2720
2721 comoMeMatricularComercial = getStringValue(dataEfetivaFTFieldSet, 'comoMeMatricularComercial')
2722
2723 oQueMaisPrecisoSaberComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueMaisPrecisoSaberComercial')
2724
2725 normalizedModalidadeName = ""
2726
2727 />
2728
2729 <div style="display: none;">ElasticSearchNaoRetornarFiltro </div>
2730 <input type="hidden" name="codigoFT" value="${codigoFT}" />
2731 <input type="hidden" name="articleId" value="${articleId}" />
2732
2733 <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" />
2734
2735 <input type="hidden" name="codUnidadeSelecionada" value="" />
2736
2737 <#list categories as category>
2738
2739 <#assign
2740 vocabulary = getVocabulary(category.getVocabularyId())
2741 />
2742
2743 <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso>
2744
2745 <#assign
2746 categoriaTipoCurso = category
2747 normalizedCategoryName = normalizer.normalize(category.getName())
2748 />
2749
2750 <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" />
2751
2752 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades>
2753
2754 <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" />
2755
2756 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade>
2757
2758 <#assign
2759 categoriaModalidade = category
2760 normalizedModalidadeName = normalizer.normalize(category.getName())
2761
2762 />
2763 <input type="hidden" name="modalidadeName" value="${normalizedModalidadeName}" />
2764 <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" />
2765
2766 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato>
2767 <#assign
2768 nomeFormato = category.getName()
2769 />
2770
2771
2772 <#assign idFormato = category.getCategoryId() />
2773 <#if nomeFormato == "Presencial + EAD" >
2774 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="Presencial + EAD" />
2775 <#else>
2776 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" />
2777 </#if>
2778 </#if>
2779 </#list>
2780
2781 <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='imagemComercial']")>
2782
2783 <#if xPathSelector.selectSingleNode(dataEfetivaFTFieldSet)?? >
2784
2785 <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()>
2786 <#if imagemStr?contains("{") >
2787 <#attempt>
2788 <#assign
2789 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
2790 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
2791 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
2792 dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
2793 fileEntry = dl.getFileEntry(imagemId)
2794 imagemAlt = imagemJson.get('alt')
2795 imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null)
2796 />
2797 <#recover>
2798 <#assign
2799 imagemAlt = ""
2800 imagemUrl = ""
2801 />
2802 </#attempt>
2803 <#else>
2804 <#assign imagemUrl = "">
2805 </#if>
2806
2807 <#else>
2808 <#assign imagemUrl = "">
2809 </#if>
2810
2811
2812 <#assign
2813
2814 URLCodec = staticUtil["com.liferay.portal.kernel.util.URLCodec"]
2815 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]
2816 StringPool = staticUtil["com.liferay.petra.string.StringPool"]
2817 dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
2818
2819 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='quaisMateriaisComercial']")
2820 quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()
2821 />
2822
2823 <#if quaisMateriaisComercialPDFStr?contains('classPK') >
2824
2825 <#assign
2826
2827 PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr)
2828 classPKNumber = PDFJson.classPK?number
2829 fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber)
2830 folderId = fileEntry.getFolderId()
2831 title = fileEntry.getTitle()
2832
2833 quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId + StringPool.SLASH + URLCodec.encodeURL(HtmlUtil.unescape(title))
2834 />
2835
2836 <#else>
2837 <#assign quaisMateriaisComercialPDFUrl = "">
2838 </#if>
2839
2840 <#function getStatusListaEsperaEMED >
2841 <#attempt>
2842 <#assign controlService = serviceLocator.findService("br.senac.apps.api.BooleanControl")>
2843 <#return controlService.isEnabled("listaEsperaEMED")>
2844 <#recover>
2845 <#return false />
2846 </#attempt>
2847 </#function>
2848
2849 <#function getFirstArticleStructure categoryId structureName>
2850 <#attempt>
2851 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search")>
2852 <#assign companyId = themeDisplay.getCompanyId()>
2853 <#assign groupId = themeDisplay.getScopeGroupId()>
2854 <#assign articles = searchImpl.findArticlesByCategoryIds(companyId, groupId, structureName, (categoryId gt 0)?then([categoryId],[]), true, 0, 1)>
2855 <#if articles?size gt 0>
2856 <#return articles?first>
2857 </#if>
2858 <#return ''>
2859 <#recover>
2860 <#return ''>
2861 </#attempt>
2862 </#function>
2863
2864
2865 <#assign
2866 nomeTipoCurso = categoriaTipoCurso.getName()
2867 nomeCategoriaTipoCurso = categoriaTipoCurso.getName()
2868 idTipoCurso = categoriaTipoCurso.getCategoryId()
2869 />
2870 <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" />
2871
2872 <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2873
2874 <#assign
2875 nomeTipoCurso = categoriaTipoCurso.getName()
2876 />
2877
2878 <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" />
2879
2880 <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") >
2881
2882 <#assign
2883 nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s"
2884 />
2885
2886 <#else>
2887 <#assign
2888 nomeTipoCurso = categoriaTipoCurso.getName()
2889 />
2890 <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>
2891
2892 </#if>
2893
2894 <#-- Caso o curso seja do formato hibrido, busca o webcontent da pasta Onde as aulas vão acontecer - hibrido -->
2895 <#if nomeFormato == "Presencial + EAD">
2896 <#assign
2897 hibridoStructure = getFirstArticleStructure(idFormato,"formato-hibrido")
2898 documentHibrido = saxReaderUtil.read(hibridoStructure.getContent())
2899 rootElement = documentHibrido.getRootElement()
2900 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoFormatoHibrido']")
2901 />
2902 <#if xPathSelector.selectSingleNode(rootElement)?? >
2903 <#assign txtHibrido = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2904 <input type="hidden" name="textoFormatoHibrido" value="${txtHibrido}"/>
2905 </#if>
2906 </#if>
2907
2908
2909 <#-- dados de compartilhamento -->
2910 <@liferay_util["html-top"]>
2911 <meta name="image" property="og:image" content="${imagemUrl}">
2912 <meta property="og:image:width" content="1024">
2913 </@>
2914 <#-- dados de compartilhamento -->
2915
2916
2917 <#assign
2918 webContentServiceUtil = serviceLocator.findService("br.senac.services.service.WebContentServiceUtil")
2919
2920 temasMercadologicos = webContentServiceUtil.getTemasPorArticleId(themeDisplay.getScopeGroupId(), journalArticle)
2921 categoriesIdiomas = temasMercadologicos?filter(c -> c.getName()?lower_case?contains("idioma"))
2922 hasIdiomas = categoriesIdiomas?has_content
2923 hasEMED = normalizedModalidadeName?contains("ensino-medio")
2924 />
2925
2926 <#function getManutencao>
2927
2928 <#assign manutencaoStructure = getFirstArticleStructure(idTipoCurso,"manutencoes") />
2929 <#if manutencaoStructure == "">
2930 <#return {"bolsa":"", "compra":"", "rodape":""} />
2931 </#if>
2932 <#assign
2933 txtBolsa = ""
2934 txtCompra = ""
2935 txtRodape = ""
2936 content = saxReaderUtil.read(manutencaoStructure.getContent())
2937 rootElement = content.getRootElement()
2938 />
2939 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoBolsa']") />
2940 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2941 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoBolsa']") />
2942 <#assign txtBolsa = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2943 </#if>
2944 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoCompra']") />
2945 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2946 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoCompra']") />
2947 <#assign txtCompra = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2948 </#if>
2949 <#if txtCompra != "" || txtBolsa != "">
2950 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoRodape']") />
2951 <#assign txtRodape = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2952 </#if>
2953
2954 <#return {"bolsa": txtBolsa, "compra": txtCompra, "rodape": txtRodape} />
2955
2956 </#function>
2957
2958 <#assign listaEsperaAtiva = getStatusListaEsperaEMED() />
2959
2960 <#assign manutencao = getManutencao() />
2961 <input type="hidden" id="manutencao-compra" value="${manutencao.compra}" />
2962 <input type="hidden" id="manutencao-bolsa" value="${manutencao.bolsa}" />
2963
2964 <div class="${prefix}-header-curso__image">
2965 <#if imagemUrl?contains(".webp")>
2966 <#-- Remove midias adaptaveis -->
2967 <picture>
2968 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2969 </picture>
2970 <#else>
2971 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2972 </#if>
2973 <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}">
2974 <#if hasIdiomas>
2975 <span>${nomeTipoCurso}</span>
2976 <#else>
2977 <span>${nomeTipoCurso} | ${nomeFormato}</span>
2978 </#if>
2979 </div>
2980 </div>
2981
2982 <section id="curso-info">
2983 <div class="ssp-card-detalhe-curso__container">
2984
2985 <div class="ssp-card-detalhe-curso">
2986
2987 <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div>
2988
2989 <div class="container">
2990
2991 <#if nomeFormato?contains("ao-vivo") >
2992 <span class="ssp-card-detalhe-curso__tag-ao-vivo">Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo</span>
2993
2994 </#if>
2995
2996 <div class="ssp-card-detalhe-curso__content">
2997 <div>
2998
2999 <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
3000
3001 <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p>
3002
3003 </#if> -->
3004
3005 <!-- rever a lógica da chama de inscricoes abertas -->
3006
3007 <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1>
3008 <input type="hidden" name="tituloComercial" value="${tituloComercial}" />
3009
3010 <div class="ssp-card-detalhe-curso__description">${objetivo}</div>
3011 </div>
3012 <div class="ssp-card-detalhe-curso__secunday-info-content">
3013
3014 <#if nomeFormato?contains("ao-vivo") >
3015 <span class="d-md-none">
3016 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a>
3017 <#if !hasIdiomas>
3018 <span> | ${nomeFormato}</span>
3019 </#if>
3020 </span>
3021
3022 <#else>
3023 <span class="d-md-none">
3024 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#">${categoriaTipoCurso.getName()}</a>
3025 <#if !hasIdiomas>
3026 <span> | ${nomeFormato}</span>
3027 </#if>
3028 </span>
3029
3030 </#if>
3031
3032 <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p>
3033 </div>
3034 </div>
3035 <div class="ssp-saiba-mais-curso-accordion">
3036
3037 <#if (possoFazerEsteCursoComercial?length > 0)>
3038 <div class="ssp-saiba-mais-curso-accordion__body">
3039 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div>
3040 <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div>
3041 </div>
3042
3043 </#if>
3044
3045 <#if (oQueVouAprenderComercial?length > 0) >
3046 <div class="ssp-saiba-mais-curso-accordion__body">
3047 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div>
3048 <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div>
3049 </div>
3050 </#if>
3051
3052 <#if (comoVouAprenderComercial?length > 0)>
3053 <div class="ssp-saiba-mais-curso-accordion__body">
3054 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div>
3055 <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div>
3056 </div>
3057 </#if>
3058
3059
3060 <div class="ssp-saiba-mais-curso-accordion__body">
3061 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div>
3062 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3063 <div class="ssp-saiba-mais-curso-accordion__contents">
3064 Desenvolvemos os materiais e disponibilizamos tudo para você!<br/><br/>Também temos bibliotecas físicas e virtuais, além de parceria com a Microsoft, que garante acesso à plataforma Teams para conferir aulas, avisos e materiais da sua turma.
3065 </div>
3066 <#else>
3067 <#if (quaisMateriaisComercialPDFUrl?length > 0)>
3068 <div class="ssp-saiba-mais-curso-accordion__contents">
3069 <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a>
3070 </div>
3071 <#else>
3072 <div class="ssp-saiba-mais-curso-accordion__contents">Inicialmente, não há lista de materiais para este curso. Mas confirme em aula se será necessário comprar algum item.</div>
3073 </#if>
3074 </#if>
3075 </div>
3076
3077 <#if (tereiDiplomaComercial?length > 0)>
3078 <div class="ssp-saiba-mais-curso-accordion__body">
3079 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div>
3080 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div>
3081 </div>
3082 </#if>
3083
3084 <#if (tereiCertificadoComercial?length > 0)>
3085 <div class="ssp-saiba-mais-curso-accordion__body">
3086 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div>
3087 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div>
3088 </div>
3089 </#if>
3090
3091 <#if (comoMeMatricularComercial?length > 0)>
3092 <div class="ssp-saiba-mais-curso-accordion__body">
3093 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div>
3094 <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div>
3095 </div>
3096 </#if>
3097
3098 <#if (precisoEstagiarComercial?length > 0)>
3099 <div class="ssp-saiba-mais-curso-accordion__body">
3100 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div>
3101 <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div>
3102 </div>
3103 </#if>
3104
3105
3106 <#if (oQueMaisPrecisoSaberComercial?length > 0)>
3107 <div class="ssp-saiba-mais-curso-accordion__body">
3108 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3109 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div>
3110 <#else>
3111 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div>
3112 </#if>
3113 <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div>
3114 </div>
3115 </#if>
3116
3117 <!-- Info para EMED -->
3118
3119 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3120
3121 <div class="ssp-emed__vantagens-content">
3122
3123 <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p>
3124 <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a>
3125
3126 </div>
3127
3128 <#elseif nomeFormato?contains("Presencial") && nomeFormato?contains("EAD") && !nomeTipoCurso?contains("Idioma")>
3129
3130 <!-- Info para híbrido -->
3131
3132 <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3133
3134 <p>Quer saber mais sobre nossos <span>cursos com aulas presenciais e a distância</span>?</p>
3135 <a href="/presencial-ead" class="btn">Saiba mais</a>
3136
3137 </div>
3138
3139 <#else>
3140
3141 <!-- <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3142
3143 <p>Conheça <span>mais vantagens</span>?</p>
3144 <a href="#" class="btn">Saiba mais</a>
3145
3146 </div> -->
3147
3148 </#if>
3149
3150
3151 <!-- Slider para cursos de Cozinheiro e Garçom -->
3152
3153 <#if codigoFT=="14125">
3154
3155 <div>
3156
3157 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3158
3159
3160 <div class="slider-passo-passo__cursos-cozinha">
3161
3162 <div class="ssp-passo-passo-cozinheiro_card">
3163
3164 <div>
3165
3166 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3167
3168 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3169
3170 </div>
3171
3172
3173 </div>
3174
3175 <div class="ssp-passo-passo-cozinheiro_card">
3176
3177 <div>
3178
3179 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3180
3181 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 3 inscrições por vaga.</p>
3182
3183 </div>
3184
3185 </div>
3186
3187 <div class="ssp-passo-passo-cozinheiro_card">
3188
3189 <div>
3190
3191 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3192
3193 <p class="ssp-passo-passo-cozinheiro_card-txt">
3194 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3195 </p>
3196
3197
3198 </div>
3199
3200 </div>
3201
3202 <div class="ssp-passo-passo-cozinheiro_card">
3203
3204 <div>
3205
3206 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3207
3208 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista poderá ser on-line ou presencial nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Antes da entrevista, não esqueça de enviar os documentos por e-mail.
3209 </p>
3210
3211
3212 </div>
3213
3214 </div>
3215
3216 <div class="ssp-passo-passo-cozinheiro_card">
3217
3218 <div>
3219
3220 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3221
3222 <p class="ssp-passo-passo-cozinheiro_card-txt">
3223 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3224 </p>
3225
3226 </div>
3227
3228 </div>
3229
3230 <div class="ssp-passo-passo-cozinheiro_card">
3231
3232 <div>
3233
3234 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3235
3236 <p class="ssp-passo-passo-cozinheiro_card-txt">
3237 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3238 </p>
3239
3240 </div>
3241
3242 </div>
3243
3244 <div class="ssp-passo-passo-cozinheiro_card">
3245
3246 <div>
3247
3248 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3249
3250 <p class="ssp-passo-passo-cozinheiro_card-txt">
3251 Teve aprovação em todas as etapas? Parabéns!
3252
3253 Sua jornada de transformação profissional
3254
3255 começará com o início das aulas. Mas se não
3256
3257 conseguiu dessa vez, não desanime. Sempre estamos com
3258
3259 vagas abertas para diversos cursos.
3260 </p>
3261
3262 </div>
3263
3264 </div>
3265
3266
3267 </div>
3268
3269 </div>
3270
3271 <#elseif codigoFT=="15390" >
3272
3273 <div>
3274
3275 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3276
3277 <div class="slider-passo-passo__cursos-cozinha">
3278
3279 <div class="ssp-passo-passo-cozinheiro_card">
3280
3281 <div>
3282
3283 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3284
3285 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3286
3287 </div>
3288
3289
3290 </div>
3291
3292 <div class="ssp-passo-passo-cozinheiro_card">
3293
3294 <div>
3295
3296 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3297
3298 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 3 inscrições por vaga.</p>
3299
3300 </div>
3301
3302 </div>
3303
3304 <div class="ssp-passo-passo-cozinheiro_card">
3305
3306 <div>
3307
3308 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3309
3310 <p class="ssp-passo-passo-cozinheiro_card-txt">
3311 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3312 </p>
3313
3314
3315 </div>
3316
3317 </div>
3318
3319 <div class="ssp-passo-passo-cozinheiro_card">
3320
3321 <div>
3322
3323 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3324
3325 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista poderá ser on-line ou presencial nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Antes da entrevista, não esqueça de enviar os documentos por e-mail.
3326 </p>
3327
3328
3329 </div>
3330
3331 </div>
3332
3333 <div class="ssp-passo-passo-cozinheiro_card">
3334
3335 <div>
3336
3337 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3338
3339 <p class="ssp-passo-passo-cozinheiro_card-txt">
3340 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3341 </p>
3342
3343 </div>
3344
3345 </div>
3346
3347 <div class="ssp-passo-passo-cozinheiro_card">
3348
3349 <div>
3350
3351 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3352
3353 <p class="ssp-passo-passo-cozinheiro_card-txt">
3354 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3355 </p>
3356
3357 </div>
3358
3359 </div>
3360
3361 <div class="ssp-passo-passo-cozinheiro_card">
3362
3363 <div>
3364
3365 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3366
3367 <p class="ssp-passo-passo-cozinheiro_card-txt">
3368 Teve aprovação em todas as etapas? Parabéns!
3369
3370 Sua jornada de transformação profissional
3371
3372 começará com o início das aulas. Mas se não
3373
3374 conseguiu dessa vez, não desanime. Sempre estamos com
3375
3376 vagas abertas para diversos cursos.
3377 </p>
3378
3379 </div>
3380
3381 </div>
3382
3383
3384 </div>
3385
3386 </div>
3387
3388 </#if>
3389
3390 <!-- Final Slider para cursos de Cozinheiro e Garçom -->
3391
3392 </div>
3393 </div>
3394 </div>
3395 </div>
3396 </section>
3397 <#assign
3398 dNoneSelectUnidade = ''
3399 mostrarUnidades = !nomeFormato?contains("ao-vivo")
3400 isEMED = normalizedCategoryName?contains("ensino-medio-tecnico")
3401 isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz")
3402 />
3403
3404 <#if nomeFormato?contains("ao-vivo") >
3405 <#assign dNoneSelectUnidade = 'd-none' />
3406 </#if>
3407
3408 <#-- Obter data matricula emed -->
3409 <#if isEMED>
3410 <#function getMatriculaEMED >
3411 <#assign emedTags = getFirstArticleStructure(0,"emed-tags")
3412 document = saxReaderUtil.read(emedTags.getContent())
3413 rootElement = document.getRootElement()
3414 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataInicioPeriodoMatricula']") />
3415 <#if xPathSelector.selectSingleNode(rootElement)?? >
3416 <#assign dataInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3417 </#if>
3418 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='horaInicioMatricula']") />
3419 <#if xPathSelector.selectSingleNode(rootElement)?? >
3420 <#assign horaInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3421 </#if>
3422
3423 <#setting time_zone="America/Sao_Paulo">
3424 <#assign today = .now?datetime />
3425 <#assign emeddatetime = (dataInicio + " " + horaInicio)?datetime["yyyy-MM-dd HH:mm"] />
3426 <#assign matriculaAberta = today gt emeddatetime />
3427
3428 <#return {"dataInicio" : dataInicio, "horaInicio" : horaInicio, "aberta" : matriculaAberta}>
3429 </#function>
3430
3431 <#assign matriculaEMED = getMatriculaEMED() />
3432
3433 </#if>
3434
3435 <#if isEMED || isAprendizagem>
3436 <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41">
3437 <div class="container">
3438
3439 <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;">
3440 <div class="ssp-container_ofertas__title">
3441 <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom">
3442
3443 Selecione uma unidade para conhecer as próximas turmas:
3444
3445 </h3>
3446 </div>
3447
3448 <div class="ssp-container__form-select">
3449 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas">
3450 <option value="">Selecione uma unidade</option>
3451 </select>
3452 </div>
3453
3454 </div>
3455
3456 <div class="ssp-ofertas__box-endereco-unidade">
3457 <i class="icon-map-adress"></i>
3458 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3459 </div>
3460
3461 </div>
3462
3463 </section>
3464 <#else>
3465 <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41">
3466 <div class="container">
3467 <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8">
3468 <div class="ssp-container_ofertas__title">
3469 <h2 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom ssp-detalhe-curso-titulo-filter">Escolha a unidade e conheça as turmas disponíveis:</h2>
3470 </div>
3471 </div>
3472 <div class="row ssp-filters-px justify-content-center">
3473 <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1">
3474 <div class="ssp-container-selecione-unidade row no-gutters">
3475 <div class="col-12">
3476 <div class="ssp-container__form-select mx-auto">
3477 <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>
3478 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select>
3479 </div>
3480 </div>
3481 </div>
3482 </div>
3483
3484 <div id="ssp-alternadores" class="col mt-5 mt-lg-0 ${(isEMED || isAprendizagem)?then('d-none', '')} px-md-0 order-3 order-lg-2" style="max-width: 480px; display: none;">
3485 <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div>
3486 <div class="row no-gutters mt-4">
3487 <#assign
3488 mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão")
3489 mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || (nomeTipoCurso?contains("Livre") && !normalizedModalidadeName?contains("acoes-educ.-curta-duracao"))
3490 textoFiltroCompra = (nomeTipoCurso?contains("Livre") && normalizedModalidadeName?contains("acoes-educ.-curta-duracao"))?then("Matrículas abertas", "Comprar agora")
3491 />
3492
3493
3494 <#if mostrarFiltroInscricao && mostrarFiltroBolsa>
3495 <div class="ssp-switch-divider d-md-none my-4"></div>
3496 </#if>
3497
3498 <#if mostrarFiltroInscricao>
3499 <div class="col-12 col-lg">
3500 <div class="d-flex justify-content-between justify-content-lg-start">
3501 <label class="ssp-switch order-2 order-lg-1">
3502 <input type="checkbox" id="chkInscricao">
3503 <span class="ssp-switch-slider round"></span>
3504 </label>
3505 <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">${textoFiltroCompra}</label>
3506 </div>
3507 </div>
3508 </#if>
3509
3510
3511 <#if mostrarFiltroBolsa>
3512 <div class="col-12 col-lg">
3513 <div class="d-flex justify-content-between justify-content-lg-start">
3514 <label class="ssp-switch order-2 order-lg-1">
3515 <input type="checkbox" id="chkBolsa">
3516 <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span>
3517 </label>
3518 <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label>
3519 </div>
3520 </div>
3521 </#if>
3522 </div>
3523 </div>
3524
3525 <div class="col-12 order-2 order-lg-3">
3526 <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}">
3527 <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;">
3528 <div class="row no-gutters">
3529 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso. </span>
3530 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span>
3531 </div>
3532 </div>
3533 </div>
3534 </div>
3535 </div>
3536
3537 <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}">
3538 <i class="icon-map-adress"></i>
3539 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3540 </div>
3541
3542 </div>
3543
3544 </section>
3545 </#if>
3546
3547
3548 <!-- EMED -->
3549 <section class="ssp-ofertas-emed__section d-none">
3550
3551 <h2 class="title-section-white" id="titulo-emed"></h2>
3552
3553 <div class="ssp-ofertas-emed__filtro-content container">
3554
3555 <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button>
3556
3557 <button type="button" value="0" class="btn btn-filtro">Transferências</button>
3558
3559 </div>
3560
3561 <div class="ssp-ofertas-emed__card-container">
3562
3563 <div class="ssp-slick-ofertas-emed">
3564
3565 </div>
3566
3567 </div>
3568
3569 </section>
3570
3571 <!-- FIM EMED -->
3572
3573 <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;">
3574
3575 <div id="turmas-container">
3576
3577 <div id="informe-novas-turmas">
3578 <div style="display: flex; flex-wrap: nowrap;">
3579
3580 <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" >
3581 <i class="fas fa-chevron-left"></i>
3582 </a>
3583
3584 <h2 id="ssp-h3-turmas" class="ssp-section-title ssp-card-oferta-curso__section-title text-capitalize" style="font-weight: bold;text-transform: uppercase; display: none;">Turmas</h2>
3585
3586 <a href="#" class="next-mobile d-lg-none d-xl-none" >
3587 <i class="fas fa-chevron-right"></i>
3588 </a>
3589
3590 </div>
3591
3592
3593 <div class="oferta-slick-area oferta-slick-area--md-bleed slider-container">
3594
3595 </div>
3596 </div>
3597
3598 <#if !isEMED>
3599 <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;">
3600
3601 <h2 class="ssp-card-oferta-curso__sem-vaga-title">
3602 Estude com a gente na próxima turma!
3603 </h2>
3604
3605 <p class="ssp-card-oferta-curso__sem-vaga-description">
3606 Registre seu interesse e avisaremos você quando surgirem novas vagas.
3607 </p>
3608 </div>
3609 <#else>
3610
3611 <div class="card-transferencias-emed p-0 d-none emed-transferencias-space">
3612
3613 <div class="slick-area__item">
3614
3615 <div class="ssp-emed__card-slider-transferencias">
3616
3617 <div class="card-slider-body">
3618 <h2 class="ssp-h3">
3619 Confira as regras para solicitar uma transferência
3620 </h2>
3621 <p class="ssp-p-m">As solicitações são enviadas apenas via formulário on-line e para ingresso de estudantes de 1º e 2º ano.</p>
3622 <p class="ssp-p-m">As vagas são remanescentes e limitadas.</p>
3623 <a href="/ensino-medio-tecnico/transferencias" class="ssp-button btn-transferencia">Saber mais sobre transferência </a>
3624 </div>
3625 </div>
3626
3627 </div>
3628
3629 </div>
3630
3631 <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none">
3632 <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space">
3633 </#if>
3634 <div>
3635 <div class="col-md-12 col-xs-12 pb-10">
3636
3637 <!--slick slider-->
3638 <div class="slick-area-emed slick-area-emed--md-bleed">
3639
3640 <#if matriculaEMED.aberta>
3641 <div class="slick-area__item">
3642
3643 <div class="ssp-emed__card-slider">
3644
3645 <div class="ssp-emed__card-slider-body">
3646 <h2 class="ssp-emed__section__titleCard">
3647 <i class="fal fa-users-class"></i>
3648 <div><lfr-editable type="rich-text">Turmas</lfr-editable></div>
3649 </h2>
3650 <lfr-editable type="rich-text">
3651 <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div>
3652 <div class="ssp-emed__section__textCard">
3653 <span class="texto">
3654 Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano.
3655 </span>
3656 <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i
3657 class="fas fa-chevron-right"></i></span>
3658 </div>
3659 </lfr-editable>
3660 </a>
3661 </div>
3662
3663 </div>
3664
3665 </div>
3666
3667 <div class="slick-area__item">
3668
3669 <div class="ssp-emed__card-slider">
3670 <div class="ssp-emed__card-slider-body">
3671
3672 <h2 class="ssp-emed__section__titleCard">
3673 <i class="far fa-envelope"></i>
3674 <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div>
3675 </h2>
3676 <lfr-editable id="txt_emed_boleto" type="rich-text">
3677 <div class="ssp-emed__section__introCardCTA">
3678 Quer receber um aviso sobre as turmas do próximo ano?
3679 </div>
3680 </lfr-editable>
3681 </a>
3682 <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10"
3683 id="btnOptin" href="javascript:;">Sim, me avise.</a>
3684 </div>
3685 </div>
3686 </div>
3687 <#else>
3688 <#-- pre inscricao emed -->
3689 <div class="slick-area__item card-pre-inscricao">
3690
3691 <div class="ssp-emed__card-slider">
3692
3693 <div class="ssp-emed__card-slider-body">
3694 <h2 class="ssp-emed__section__titleCard">
3695 <i class="fal fa-users-class"></i>
3696 <div><h4 class="ssp-h4" data-lfr-editable-id="ssp-transf-text" data-lfr-editable-type="rich-text">Confira as datas das próximas turmas</h4></div>
3697 </h2>
3698 <lfr-editable type="rich-text" style="text-align: left;">
3699 <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Inscrições para bolsas</strong></div>
3700 <div class="ssp-emed__section__textCard" style="margin: 0!important;">
3701 <span class="ssp-p-g texto">
3702 A partir de 3/8, às 12h
3703 </span>
3704 </lfr-editable>
3705 <hr style="margin: 24px 0; background: #FFF;"/>
3706 <lfr-editable type="rich-text" style="text-align: left;">
3707 <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Matrículas</strong></div>
3708 <div class="ssp-emed__section__textCard" style="margin: 0!important;">
3709 <span class="ssp-p-g texto">
3710 A partir de 17/8, às 12h
3711 </span>
3712 </div>
3713 </lfr-editable>
3714 </a>
3715 </div>
3716
3717 </div>
3718 <!-- <div class="ssp-emed__card-slider">
3719
3720 <div class="ssp-emed__card-slider-body">
3721 <h2 class="ssp-emed__section__titleCard">
3722 <i class="fal fa-users-class"></i>
3723 <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div>
3724 </h2>
3725 <lfr-editable id="txt_emed_aulas" type="rich-text">
3726 <div>
3727 <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/>
3728 <span style="font-weight: 400;">
3729 a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas
3730 <#if matriculaEMED.horaInicio?split(":")?last != "00">
3731 e ${matriculaEMED.horaInicio?split(":")?last} minutos
3732 </#if>
3733 </span>
3734 </div>
3735
3736 <div class="footer-card-card-pre-inscricao">
3737 <strong>
3738 Estude com a gente na próxima turma!<br/>
3739 Esperamos por você!
3740 </strong>
3741 </div>
3742 </lfr-editable>
3743 </a>
3744 </div> -->
3745
3746 </div>
3747
3748 </div>
3749
3750 </#if>
3751
3752 </div>
3753 <!--/slick slider-->
3754
3755 </div>
3756 </div>
3757 </div>
3758
3759 </#if>
3760 <div class="oferta-slick-area_modal">
3761 </div>
3762
3763 <#if manutencao.rodape != "">
3764 <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p>
3765 <#else>
3766 <#if isEMED>
3767 <p class="ssp-card-oferta-curso__mensagem-legal">O Senac reserva-se o direito de alterar o número de vagas, datas, horários ou cancelar o programa.</p>
3768 <#else>
3769 <p class="ssp-card-oferta-curso__mensagem-legal">A turma pode ser cancelada ou ter alterações do número de vagas, datas e horários.</p>
3770 </#if>
3771 </#if>
3772
3773 </div>
3774
3775 <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;">
3776
3777 <p>Tem dúvidas sobre bolsas de estudo?</p>
3778 <a href="/bolsas-de-estudo">Saiba como funciona</a>
3779
3780 </div>
3781
3782
3783 </section>
3784
3785 <section id="section-registro-interesse" class="ssp-section-novas-turmas">
3786
3787 <div class="container">
3788
3789 <div class="ssp-aviso-novas-turmas__content">
3790
3791 <!-- <div class="pb-sm-5 pb-md-5" > -->
3792 <div>
3793
3794 <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p>
3795 <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p -->
3796
3797 </div>
3798
3799 <!--
3800 <div class="ssp-container__form-select">
3801
3802 <select class="form-control select-large select-registro-interesse" id="select-registro-interesse">
3803 <option value="">Selecione uma unidade</option>
3804 </select>
3805
3806 </div>
3807 -->
3808 <div class="ssp-btn-group__content-teste">
3809
3810 <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button>
3811
3812 </div>
3813
3814
3815
3816 </div>
3817
3818
3819 </div>
3820
3821
3822 </section>
3823
3824 <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none">
3825
3826 <div class="ssp-card-msg-erro">
3827
3828 <div class="ssp-card-msg-sucesso__content">
3829 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
3830 <p>Houve um erro ao inserir curso na mochila!</p>
3831 <p>Por favor, tente novamente!</p>
3832 </div>
3833
3834 <div>
3835 <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button>
3836 </div>
3837
3838 </div>
3839
3840 </section>
3841
3842 <section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none">
3843
3844 <div class="ssp-modal-mochila-curso">
3845
3846 <div class="ssp-modal-mochila-curso__header">
3847
3848 <button class="modal-btn-close" type="button">
3849
3850 <i class="fal fa-times"></i>
3851
3852 </button>
3853
3854 <h2 class="modal-title">Curso adicionado à mochila!</h2>
3855 <p class="modal-subtitle">Você incluiu na sua mochila de compras o curso
3856 <span id="modal-backpack-success__nome-curso"></span>
3857 </p>
3858
3859 </div>
3860
3861 <div class="ssp-modal-mochila-curso__body">
3862
3863 <p>A sua vaga só é garantida nesta turma quando você finaliza a
3864 compra. Deseja concluir agora?</p>
3865
3866 </div>
3867
3868 <div class="ssp-modal-mochila-curso__block-btn-items block-btn-items">
3869
3870 <a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#">
3871 Finalizar compra
3872 </a>
3873
3874 <button class="btn-continuar-site btn-mochila-continuar-site-success">
3875 Continuar no site
3876 </button>
3877
3878 </div>
3879
3880
3881 </div>
3882
3883 </section>
3884
3885</#if>
3886
3887<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") >
3888 <!-- Agende a sua visita -->
3889 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") />
3890 <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) />
3891
3892 <section id="ssp-emed-visita-sector">
3893 <div class="container py-5 pt-lg-0" style="display:none;">
3894 <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper">
3895 <#list articles![] as article>
3896 <#assign document = saxReaderUtil.read(article.getContent()) />
3897 <#assign rootElement = document.getRootElement() />
3898
3899 <#assign
3900 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']")
3901 textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3902
3903 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']")
3904 linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3905
3906 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']")
3907 ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3908 />
3909
3910 <#if ativarBotao?trim == "true">
3911 <script>$('#ssp-emed-visita-sector').children().show()</script>
3912 <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text">
3913
3914 <a href="${linkBotao}">${textoDoBotao}</a>
3915
3916 </div>
3917 <div class="ssp-emed-visita-icon">
3918 <i class="fas fa-route"></i>
3919 </div>
3920 </#if>
3921 </#list>
3922 </div>
3923 </div>
3924 </section>
3925
3926
3927 <!-- Como me matricular EMED -->
3928
3929 <section class="ssp-como-me-matricular__section">
3930
3931 <h2 class="title-section-white">Como me matricular?</h2>
3932
3933 <div class="container">
3934
3935 <div class="ssp-como-me-matricular__passo-passo-card">
3936
3937 <div class="item-passo">
3938 <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt="">
3939 <p class="item-passo-title">Escolha o curso</p>
3940 <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span>
3941 </div>
3942
3943 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3944
3945 <div class="item-passo">
3946 <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt="">
3947 <p class="item-passo-title">Adicione à Mochila</p>
3948 <span>Faça login ou crie uma conta em nosso site e continue a compra.</span>
3949 </div>
3950
3951 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3952
3953 <div class="item-passo">
3954 <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt="">
3955 <p class="item-passo-title">Faça a matrícula</p>
3956 <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span>
3957 </div>
3958
3959 </div>
3960
3961
3962 </div>
3963
3964 </section>
3965
3966 </#if>
3967
3968
3969 <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2">
3970 <div class="container">
3971 <h2 class="ssp-section-title">
3972 <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text">
3973 Cursos que você pode gostar
3974 </lfr-editable>
3975 </h2>
3976
3977 <div id="slider-curso">
3978
3979 </div>
3980
3981 </div>
3982 </div>
3983
3984
3985
3986
3987 <#-- Section para o item de curso-->
3988 <div id="curso-item-template" class="d-none slick-area__item">
3989
3990 <div class="ssp-card-curso" style="height: 288px;">
3991
3992 <a class="ssp-absolute-link ck-curso" href="#a"></a>
3993
3994 <div class="ssp-card-curso__image">
3995
3996 <div class="ssp-image-container">
3997 <img src="" />
3998
3999 </div>
4000
4001 </div>
4002
4003 <div class="ssp-card-curso__body">
4004
4005 <div class="ssp-card-curso__color-tag-modalidade"></div>
4006
4007 <div class="ssp-card-curso__tags">
4008
4009 <span class="ssp-card-curso__tag-formato-title"></span>
4010
4011 <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span>
4012
4013 </div>
4014
4015 <h6 class="ssp-card-curso__title">
4016
4017 </h6>
4018
4019 <div class="ssp-card-curso__info">
4020
4021 <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span>
4022 <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span>
4023
4024 </div>
4025
4026 </div>
4027
4028 </div>
4029
4030 </div>
4031
4032 <#function getJournalArticle>
4033
4034
4035 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
4036 <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first>
4037 <#assign groupId = themeDisplay.getSiteGroupId()>
4038 <#attempt>
4039
4040 <#if !friendlyURL?contains("fragment_collections") >
4041
4042 <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)>
4043 <#else>
4044
4045 <#return '#erro#'>
4046 </#if>
4047
4048 <#recover>
4049
4050 <#return '#erro#'>
4051 </#attempt>
4052 </#function>
4053
4054 <#function getCategorias primaryKey>
4055
4056 <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
4057 <#attempt>
4058
4059 <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)>
4060
4061 <#recover>
4062
4063 <#return '#erro#'>
4064 </#attempt>
4065 </#function>
4066
4067 <#function getVocabulary vocabularyId>
4068
4069 <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
4070 <#attempt>
4071
4072 <#return vocabularyService.getVocabulary(vocabularyId)>
4073
4074 <#recover>
4075
4076 <#return '#erro#'>
4077 </#attempt>
4078 </#function>
4079
4080 <#function getStringValue dom name>
4081 <#assign
4082 seletorSTR = "dynamic-element[@field-reference='"+name+"']"
4083 xPathSelector = saxReaderUtil.createXPath(seletorSTR)
4084 />
4085 <#if xPathSelector.selectSingleNode(dom)?? >
4086 <#assign
4087 valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim
4088 />
4089 <#return valueSTR>
4090 </#if>
4091 <#return ''>
4092 </#function>
4093
4094
4095
4096 <!-- modal registro interesse -->
4097
4098
4099 <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none">
4100
4101 <#if !isEMED>
4102 <div class="ssp-card-registro-interesse">
4103
4104 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4105
4106 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4107 <h3 class="ssp-card-registro-interesse__nome-curso"></h3>
4108
4109 <div id="unidades-registro-interesse">
4110
4111 <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4>
4112
4113 <div id="select-unidades-registro-interesse">
4114 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4115 </div>
4116
4117 <div class="ssp-card-registro-interesse__add-mais">
4118 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4119
4120
4121
4122 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4123 </div>
4124
4125 </div>
4126
4127 <div id="dias-registro-interesse">
4128 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4>
4129
4130 <div class="ssp-card-registro-interesse__week-content">
4131 <span id="todosDias" class="ssp-week-day">Todos</span>
4132 <span class="ssp-week-day">Seg</span>
4133 <span class="ssp-week-day">Ter</span>
4134 <span class="ssp-week-day">Qua</span>
4135 <span class="ssp-week-day">Qui</span>
4136 <span class="ssp-week-day">Sex</span>
4137 <span class="ssp-week-day">Sab</span>
4138 </div>
4139
4140 </div>
4141
4142 <div id="periodo-registro-interesse">
4143
4144 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4>
4145
4146 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4147
4148 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4149 <input type="checkbox" name="" value="" id="check-todos-periodos">
4150 <label for="check-todos-periodos">Todos</label>
4151 </div>
4152
4153 <div class="ssp-card-registro-interesse__check-item">
4154 <input type="checkbox" name="" value="M" id="periodo-m">
4155 <label for="periodo-m">Manhã</label>
4156 </div>
4157
4158 <div class="ssp-card-registro-interesse__check-item">
4159 <input type="checkbox" name="" value="T" id="periodo-t">
4160 <label for="periodo-t">Tarde</label>
4161 </div>
4162
4163 <div class="ssp-card-registro-interesse__check-item">
4164 <input type="checkbox" name="" value="N" id="periodo-n">
4165 <label for="periodo-n" "="">Noite</label>
4166 </div>
4167
4168
4169 </div>
4170
4171 </div>
4172
4173 <div class="ssp-card-registro-interesse__card-politica">
4174
4175
4176 </div>
4177
4178 <div class="ssp-card-registro-interesse__check-item">
4179 <input type="checkbox" name="" value="" id="check-politica-privacidade">
4180 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
4181 </div>
4182
4183 <div class="text-center mt-5">
4184
4185 <button class="btn btn-nivel ssp-card-registro-interesse__btn-enviar btn-with-loading" href="#a" id="enviar-registro-interesse-btn" disabled="disabled">Enviar</button>
4186
4187 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
4188
4189 </div>
4190
4191 </div>
4192
4193 <#else>
4194
4195 <div class="ssp-card-registro-interesse emed">
4196
4197 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4198
4199 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4200
4201 <div class="emed-select-group">
4202
4203 <h3 class="ssp-card-registro-interesse__title-modal"></h3>
4204
4205 <div id="unidades-registro-interesse">
4206
4207 <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4>
4208
4209 <div id="select-unidades-registro-interesse">
4210 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4211 </div>
4212
4213 <div class="ssp-card-registro-interesse__add-mais">
4214 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4215
4216
4217
4218 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4219 </div>
4220
4221 </div>
4222
4223 </div>
4224
4225
4226 <div id="periodo-registro-interesse">
4227
4228 <p class="ssp-card-registro-interesse__title-section-itens">Período:</p>
4229
4230 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4231 <div class="ssp-card-registro-interesse__check-item">
4232 <input type="checkbox" name="" value="M" id="periodo-m">
4233 <label for="periodo-m">Manhã</label>
4234 </div>
4235
4236 <div class="ssp-card-registro-interesse__check-item">
4237 <input type="checkbox" name="" value="T" id="periodo-t">
4238 <label for="periodo-t">Tarde</label>
4239 </div>
4240
4241 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4242 <input type="checkbox" name="" value="" id="check-todos-periodos">
4243 <label for="check-todos-periodos">Todos</label>
4244 </div>
4245
4246 </div>
4247
4248 </div>
4249
4250 <div id="turmas-registro-interesse">
4251
4252 <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p>
4253
4254 <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">
4255
4256 <div class="ssp-card-registro-interesse__check-item">
4257 <input type="checkbox" name="" value="1" id="primeiro">
4258 <label for="primeiro">1º ano</label>
4259 </div>
4260
4261 <div class="ssp-card-registro-interesse__check-item">
4262 <input type="checkbox" name="" value="2" id="segundo">
4263 <label for="segundo">2º ano</label>
4264 </div>
4265
4266 <div class="ssp-card-registro-interesse__check-item">
4267 <input type="checkbox" name="" value="3" id="terceiro">
4268 <label for="terceiro">3º ano</label>
4269 </div>
4270
4271 </div>
4272
4273 </div>
4274
4275 <div id="msg-transferencia-emed">
4276
4277 <div class="transferencia-emed-title">
4278 <i class="fas fa-comment-exclamation"></i>
4279 <p>Quer se transferir de escola?</p>
4280 </div>
4281
4282 <div class="transferencia-emed-link">
4283 <a href="#">Fale direto com a unidade de interesse.</a>
4284 </div>
4285
4286 </div>
4287
4288 <div class="ssp-card-registro-interesse__card-politica">
4289
4290 </div>
4291
4292 <div class="ssp-card-registro-interesse__check-item">
4293 <input type="checkbox" name="" value="" id="check-politica-privacidade">
4294 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
4295 </div>
4296
4297 <div class="text-center mt-5">
4298
4299 <button class="btn btn-nivel ssp-card-registro-interesse__btn-enviar btn-with-loading" href="#a" id="enviar-registro-interesse-btn" disabled="disabled">Enviar</button>
4300
4301 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
4302
4303 </div>
4304
4305 </div>
4306
4307 </#if>
4308 </section>
4309
4310 <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none">
4311
4312 <div class="ssp-card-msg-sucesso">
4313
4314 <div class="ssp-card-msg-sucesso__content">
4315 <i class="fas fa-exclamation-circle"></i>
4316 <p>Obrigado por registrar seu interesse!</p>
4317 <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p>
4318 </div>
4319
4320 <div>
4321 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a>
4322 </div>
4323
4324 </div>
4325
4326 </section>
4327
4328 <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none">
4329
4330 <div class="ssp-card-msg-erro">
4331
4332 <div class="ssp-card-msg-sucesso__content">
4333 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
4334 <p>Houve um erro ao registrar seu interesse!</p>
4335 <p>Por favor, tente novamente!</p>
4336 </div>
4337
4338 <div>
4339 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a>
4340 </div>
4341
4342 </div>
4343
4344 </section>
4345
4346 <!-- Aviso para curso de aprendizagem -->
4347
4348 <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;">
4349
4350 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
4351
4352 <div class="ssp-bolsa-formulario__card-aviso-texto">
4353 <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p>
4354 </div>
4355
4356 </div>
4357
4358 <!-- modal form de aprendizagem -->
4359
4360 <#if isAprendizagem>
4361
4362 <#assign resources = themeDisplay.getPortalURL() />
4363 <link href="${resources}/documents/d/global/css-formulario-aprendizagem" rel="stylesheet" type="text/css">
4364
4365 <dialog id="modal-form" class="ssp-modal-ds">
4366
4367 <button type="button" data-modal="close-form-modal">
4368 Fechar
4369 <i class="fas fa-times"></i>
4370 </button>
4371
4372 </dialog>
4373
4374 </#if>
4375
4376 <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">
4377 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
4378 <div class="ssp-bolsa-formulario__card-aviso-texto"><p>Para informações sobre preço do curso e matrícula, entre em contato a unidade.</p>
4379 </div>
4380
4381 </div>
4382
4383
4384 <!--modal forma pagto extensao-->
4385 <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal">
4386 <div class="modal-extensao_content">
4387 <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i>
4388 <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1>
4389 <div class="row">
4390
4391 <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none">
4392 Preço Padrão
4393 <i class="fas fa-chevron-right custom-icon-right"></i>
4394 </button> -->
4395
4396 <div class="col-lg-6 col-sm-12 col-xs-12">
4397
4398 <h2 class="modal-extensao_subtitle">Investimento</h2>
4399
4400 <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span>
4401 <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span>
4402 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
4403 <i class="fas fa-barcode" aria-hidden="true"></i>
4404 <span class="modal-extensao_txtPag">Boleto Bancário</span>
4405 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>
4406 <span class="modal-extensao_txtParcela">sem juros</span>
4407 </div>
4408 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
4409 <i class="far fa-credit-card" aria-hidden="true"></i>
4410 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
4411 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>
4412 <span class="modal-extensao_txtParcela">sem juros</span>
4413 </div>
4414 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
4415 </div>
4416
4417 <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> -->
4418
4419 <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none">
4420 Preço para Contribuintes,<br>alunos e ex-alunos*
4421 <i class="fas fa-chevron-right custom-icon-right"></i>
4422 </button> -->
4423
4424 <div class="col-lg-6 col-sm-12 col-xs-12">
4425 <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2>
4426 <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span>
4427 <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span>
4428 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
4429 <i class="fas fa-barcode" aria-hidden="true"></i>
4430 <span class="modal-extensao_txtPag">Boleto Bancário</span>
4431 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>
4432 <span class="modal-extensao_txtParcela">sem juros</span>
4433 </div>
4434 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
4435 <i class="far fa-credit-card" aria-hidden="true"></i>
4436 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
4437 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>
4438 <span class="modal-extensao_txtParcela">sem juros</span>
4439 </div>
4440 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
4441 </div>
4442 <div class="col-lg-6 col-sm-12 col-xs-12">
4443 <a target="_blank" href="#">
4444 <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button>
4445 </a>
4446 </div>
4447 <div class="col-lg-6 col-sm-12 col-xs-12">
4448 <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button>
4449 </div>
4450 </div>
4451 </div>
4452
4453 <div class="modal-extensao_content modal-pergunta-aluno-ext d-none">
4454
4455 <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i>
4456 <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1>
4457 <div class="row">
4458 <div class="col-6 text-right">
4459
4460 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button>
4461
4462 </div>
4463 <div class="col-6 text-left">
4464
4465 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button>
4466
4467 </div>
4468 </div>
4469 <div class="row d-none msg-alunoSim">
4470 <div class="col-12 text-center mt-10">
4471 <i class="fas fa-check-circle modal-extensao-ico-check"></i>
4472 <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2>
4473 <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p>
4474 <p class="mb-0">
4475 <a target="_blank" href="#">
4476 <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button>
4477 </a>
4478 </p>
4479 <p class="mt-0">
4480 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
4481 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
4482 </a>
4483 </p>
4484 </div>
4485 </div>
4486 <div class="row d-none msg-alunoNao">
4487 <div class="col-12 text-center mt-10">
4488 <i class="fas fa-percentage modal-extensao-ico-percent"></i>
4489 <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2>
4490 <p class="modal-extensao-aluno_txtcontent">Você não tem direito ao desconto de 20% neste curso. Mas você tem direito ao desconto de pontualidade (melhorar texto)</p>
4491 <p class="mb-0">
4492 <a target="_blank" href="#">
4493 <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button>
4494 </a>
4495 </p>
4496 <p class="mt-0">
4497 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
4498 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
4499 </a>
4500 </p>
4501 </div>
4502 </div>
4503 </div>
4504 </section>
4505
4506
4507 <!-- Modal Descontos e Parcelamento EMED -->
4508 <div id="modalPagtoEmed" class="ssp-modal">
4509
4510 <div class="ssp-card-modal-forma-pagamento">
4511
4512 <div class="ssp-card-modal-forma-pagamento__header">
4513 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6>
4514 <div class="ssp-modal-emed-btfechar">
4515 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i>
4516 <span>Fechar</span>
4517 </div>
4518 </div>
4519
4520 <div class="ssp-card-modal-forma-pagamento__body">
4521
4522 <p class="ssp-modal-emed-info-valor-matricula"><span class="ssp-modal-emed-info-txt-matricula">1ª parcela de R$ <span class="precoParcelaEmedModal"></span> <span>+ <span class="numParcelaEmedModal"></span> mensalidades de R$ <span class="precoParcelaEmedModal"></span></span></p>
4523
4524 <p class="ssp-card-modal-forma-pagamento__valor-desconto ssp-modal-emed-valor-total-txt"> <span class="ssp-modal-emed-txtValor">Valor total:</span> <span class="precoVendaOferta ssp-modal-emed-valor-total">R$ 414,40</span>
4525 <span class="ssp-card-modal-emed-ano">/ano</span></p>
4526
4527 <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito text-center" style="border-bottom: 0px;"><i class="fas fa-badge-percent"></i> <span class="txt-pague-vista">Pague à vista e</span> <span class="txt-ganhe-mais" style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
4528 <div class="ssp-card-modal-emed-lineou"><span>ou</span></div>
4529
4530 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:14px;text-align: center;">Ganhe fôlego: parcele seu curso!</small>
4531
4532 <div class="ssp-card-modal-forma-pagamento__tipos">
4533
4534 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
4535 <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i>
4536 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4537 <p><strong>Pix + Boleto Bancário</strong></p>
4538 <p>1ª parcela no Pix</p>
4539 <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>
4540 </div>
4541 </div>
4542
4543 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
4544 <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i>
4545 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4546 <p><strong>Cartão de Crédito +</strong></p>
4547 <p><strong>Boleto Bancário</strong></p>
4548 <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> -->
4549 <p>1ª parcela no cartão</p>
4550 <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>
4551 </div>
4552 </div>
4553
4554 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4 ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" id="content_boleto_0">
4555 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
4556 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4557 <p><strong>Boleto Bancário</strong></p>
4558 <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p>
4559 </div>
4560 </div>
4561
4562 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
4563 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
4564 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4565 <p><strong>Cartão de Crédito</strong></p>
4566 <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p>
4567 <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p>
4568 </div>
4569 </div>
4570
4571 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4 ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" id="content_boleto_0">
4572 <i class="fa-brands fa-pix" style="margin-right:15px;font-size:18px"></i>
4573 <div class="ssp-card-modal-forma-pagamento__info-cartao">
4574 <p><strong>Pix</strong></p>
4575 <p>Valor total à vista com desconto</p>
4576 </div>
4577 </div>
4578
4579 <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito ssp-modal-emed-boxoito" data-info="data-para-matricula" style="margin:16px 0"><span class="ssp-card-modal-emed-valorObs obsspan"><i class="fas fa-exclamation-circle"></i>As vagas são limitadas e por ordem de chegada!</span>Garanta seu lugar! Matricule-se agora.</p>
4580
4581 <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito ssp-card-modal-emed-boxDesconto" data-info="msg-20-desconto"><strong>E você ainda tem</strong><span style="color:#FC7834;font-weight:bold"> 20% desconto na mensalidade se:</span><br>
4582 - Estuda ou estudou no Senac<br>
4583 - É dependente de quem trabalha em empresa contribuinte do Senac<br>
4584 - Estuda ou estudou na rede pública de ensino
4585 </p>
4586
4587 </div>
4588
4589 </div>
4590
4591
4592 <a href="#a" class="btn btn-lg w-100 ssp-btn-emed__voltar-curso" style="margin-top: 20px;font-weight:600" id="" data-espaco-ex="true" data-unidade="" data-evento="" data-destino-compra="" data-index=""><span class="">Voltar para página do curso</span></a>
4593
4594
4595
4596 </div>
4597 </div>
4598
4599 <#if isEMED>
4600 <div id="modalAntesCompraEmed" class="ssp-modal">
4601 <div class="ssp-modal-local-realizacao">
4602 <div class="ssp-modal-local-realizacao__title-content">
4603 <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6>
4604 <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i>
4605 </div>
4606 <div class="ssp-modal-local-realizacao__texto">
4607 <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none">
4608
4609 Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/>
4610
4611 </p>
4612 <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none">
4613
4614 Saiba como funciona a inscrição para a lista de espera:<br/><br/>
4615 - É válida somente para a <b>compra do curso</b><br/>
4616 - Não garante vaga para o estudante<br/>
4617 - É válida apenas para o curso, horário e escola selecionados<br/>
4618 - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/>
4619
4620 </p>
4621 <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none">
4622
4623 - Essa inscrição é para uma lista de espera de transferência para 2º ou 3º ano do Ensino Médio Técnico, por isso, ao realizá-la não garantimos a vaga<br/><br/>
4624 - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/>
4625 - Se a turma escolhida tiver vagas, você receberá um e-mail com orientações sobre a entrega de documentos e as formas de pagamento para efetivar a transferência
4626
4627 </p>
4628 <div class="btn ssp-modal-local-realizacao__btn-content">
4629 <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button>
4630 <a class="ssp-modal-local-realizacao__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close" href="#a">Voltar para o curso</a>
4631 </div>
4632 </div>
4633 </div>
4634 </div>
4635
4636 </#if>
4637
4638
4639
4640
4641 <script>
4642 let showedFilters = false
4643 var groupId = themeDisplay.getScopeGroupId();
4644
4645 var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}';
4646
4647 var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId
4648
4649 var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}';
4650 var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}';
4651 var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}';
4652 var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}';
4653 var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/';
4654 var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/';
4655 var cntSelectUnidades = 1;
4656 var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html';
4657 var urlGetServerT = '/o/senac-content-services/getServerTime';
4658 var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}';
4659 var todayG = '';
4660 var codigoFTCursoAprendizagem = 18984;
4661 var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId();
4662 var isAoVivo = 0;
4663 var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo';
4664 var ofertaUnidadeMap = new Map();
4665 var ultimaUnidade = 0;
4666 var regIndex = new RegExp('\{index\}', 'g');
4667 var linkBotaoCompra = 'https://autenticacao.sp.senac.br/auth/realms/institucional/protocol/openid-connect/auth?scope=openid+email+profile&response_type=code&redirect_uri=https%3A%2F%2Fwww.sp.senac.br%2FecommerceFrontEnd%2F%3Fvcw_unidade%3D{codigoUnidade}%26vcw_evento%3D{codigoOferta}&client_id=ecommerce';
4668 var carregouUltimaOferta = false;
4669 var ofertasMap = new Map();
4670 var codUnidadeSenacAoVivo = '108';
4671 var ofertasComBolsa = false;
4672
4673 //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546
4674 function getServiceEnvironmentHost(){
4675 if(!isAmbienteTeste())
4676 return window.location.origin
4677 else
4678 return 'https://gesportal.sp.senac.br'
4679 }
4680
4681 var hostBolsa = getServiceEnvironmentHost()
4682
4683 // Montar object push - google tag manager - 1
4684 let itensEcommerce = null;
4685 let ofertaSelecionada = null;
4686
4687 const today = new Date;
4688
4689 //categoryId -> cod unidade
4690 var mapUnidadesIds = new Map();
4691 var objsTela = {
4692 unidades: [],
4693 unidadesRegistroInteresse: [],
4694 categoriesIds:[],
4695 ofertasAoVivoTodasUnidades: [],
4696 primeiroChange: true
4697 };
4698 var startOfertaParam = 0;
4699 var endOfertaParam = 25;
4700
4701 var ehCursoTrampolim = false;
4702
4703 const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD';
4704
4705 var textoFormatoHibrido = "";
4706 var temTextoParaFormatoHibrido = false;
4707
4708 //Validar se o campo textoFormatoHibrido existe e se não está vazio
4709 if(isHibrido){
4710 textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val();
4711 if(typeof textoFormatoHibrido !== 'undefined'){
4712 if (textoFormatoHibrido.trim() !== '' ) {
4713 temTextoParaFormatoHibrido = true;
4714 textoFormatoHibrido += '<br>';
4715 }
4716 }
4717 }
4718
4719 const HOST = window.location.origin;
4720 const URLGeral = window.location.href;
4721
4722 //EMED
4723 const anoTurmaEmed = '2027';
4724
4725 const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); }
4726
4727 const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1);
4728
4729 const statusEmed = Object.freeze({
4730 NAO_ENCONTRADA: 0,
4731 INSCRICAO: 1,
4732 ESPERA: 2,
4733 ESGOTADO: 3
4734 });
4735
4736 let unidadesToURL = []
4737
4738 const loadPoliticaPrivacidade = async function() {
4739
4740 if(PortalService !== 'undefined') {
4741 const politicaContent = await PortalService.getPoliticaPrivacidade();
4742 document.querySelectorAll('.ssp-card-registro-interesse__card-politica').forEach(el => {
4743 el.innerHTML = politicaContent;
4744 });
4745 }
4746
4747 }
4748
4749 const localLivreOnline = function(textoLocal){
4750 textoLocal = textoLocal || ''
4751 textoLocal = textoLocal.replaceAll('online', 'on-line')
4752
4753 const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams';
4754
4755 return textoLocal.toUpperCase().includes(textoOnline.toUpperCase());
4756 }
4757
4758 const linkBolsa = function(oferta){
4759 const hostBolsaUrl = new URL(isAmbienteTeste() ? 'https://hpsgq.sp.senac.br/queue-bootstrap' : 'https://psgq.sp.senac.br/queue-bootstrap');
4760
4761 hostBolsaUrl.searchParams.set('un', codigoUnidade);
4762 hostBolsaUrl.searchParams.set('cs', $('[name="codigoFT"]').val());
4763 hostBolsaUrl.searchParams.set('tu', oferta.codigoOferta);
4764 hostBolsaUrl.searchParams.set('qv', oferta.qtdeTotalVagasPSG);
4765
4766 return hostBolsaUrl.toString();
4767 }
4768
4769 $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){
4770
4771 var classAtivo = 'btn--filtro-ativo';
4772
4773 if(!$(this).hasClass(classAtivo)){
4774
4775 $(this).siblings().removeClass(classAtivo);
4776
4777 $(this).addClass(classAtivo);
4778
4779 const $cardTransferencias = $('.card-transferencias-emed');
4780
4781 if($(this).val() == '0'){
4782 hideCardSemTurmas(true);
4783 $('.ssp-slick-ofertas-emed').empty();
4784 if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none');
4785 $('.prev-mobile, .next-mobile').addClass('d-none');
4786 $cardTransferencias.removeClass('d-none');
4787 } else{
4788 if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none');
4789 $('.ssp-slick-ofertas-emed').removeClass('d-none');
4790 populaOfertas(objsTela.ofertas);
4791 }
4792
4793 }
4794
4795 });
4796
4797 //Cronometro
4798 var hidden, visibilityChange;
4799 var restartTimeout = null;
4800 var interval01, interval15;
4801
4802 if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
4803 hidden = "hidden";
4804 visibilityChange = "visibilitychange";
4805 } else if (typeof document.msHidden !== "undefined") {
4806 hidden = "msHidden";
4807 visibilityChange = "msvisibilitychange";
4808 } else if (typeof document.webkitHidden !== "undefined") {
4809 hidden = "webkitHidden";
4810 visibilityChange = "webkitvisibilitychange";
4811 }
4812
4813 // Verifica suporte a Visibility API
4814 if (typeof document.addEventListener === "undefined" || hidden === undefined) {
4815 console.log("Navegador incompativel com page visibility api");
4816 } else {
4817 // Evento para quando a visibilidade da pagina mudar
4818 document.addEventListener(visibilityChange, handleVisibilityChange, false);
4819 }
4820
4821 $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() {
4822
4823 $(this).toggleClass("active").next().slideToggle();
4824
4825 $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300);
4826
4827 $(this).siblings().removeClass("active");
4828 });
4829
4830 function loadUnidadesRegistroInteresse(urlCursoInfo) {
4831 if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length)
4832 return
4833
4834 let urlUnidades = new URL(window.location.origin + urlCursoInfo)
4835 let paramsUnidades = new URLSearchParams(urlUnidades.search)
4836 paramsUnidades.delete('inscricaoAberta')
4837 paramsUnidades.delete('bolsaAberta')
4838 paramsUnidades.delete('buscarUnidadesComOferta')
4839 urlUnidades.search = '?' + paramsUnidades.toString()
4840 urlUnidades = urlUnidades.href
4841
4842 $.ajax({
4843 url: urlUnidades,
4844 method:'get',
4845 async: false
4846 }).done(function(data){
4847 if(data.length > 0){
4848 const cursoInfo = JSON.parse(data);
4849 const unidadesOfertantes = cursoInfo.unidadesOfertantes;
4850
4851 $.each(unidadesOfertantes, function(k,item){
4852 var unidade = {};
4853 unidade['categoryId'] = item['categoryId'];
4854 unidade['codigoUnidade'] = item['codigoUnidade'];
4855 unidade['nome'] = item['nomeUnidade'];
4856 unidade['enderecoUnidade'] =item['enderecoUnidade'];
4857 unidade['numero'] =item['numEnderecoUnidade'];
4858 unidade['complemento'] = item['complementoEnderecoUnidade'];
4859 unidade['bairro'] = item['bairroUnidade'];
4860 unidade['googlemapsUnidade'] = item['googlemapsUnidade'];
4861 unidade['friendlyURL'] = item['friendlyURL'];
4862 unidade['selecionado'] = false;
4863 unidade['selectSelecionado'] = "";
4864 unidade['ofertas'] = [];
4865
4866 if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length)
4867 objsTela.unidadesRegistroInteresse.push(unidade)
4868 });
4869 }
4870 });
4871 }
4872
4873 function loadUnidades(showOptions, unidadeValue){
4874 //Busca as unidades do curso
4875 let buscarUnidadesComOferta = false;
4876
4877 if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')))
4878 buscarUnidadesComOferta = true;
4879
4880 const urlCursoInfo = urlSearchCursoInfo
4881 .replace('\{groupId\}', groupId)
4882 .replace('\{cursosInfo\}', $('[name="articleId"]').val())
4883 .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked'))
4884 .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked'))
4885 .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta);
4886
4887 loadUnidadesRegistroInteresse(urlCursoInfo)
4888
4889 $.ajax({
4890 url:urlCursoInfo,
4891 method:'get',
4892 async: false,
4893 beforeSend: function () {
4894 loading('.oferta-slick-area');
4895 }
4896 }).done(
4897 function(data){
4898
4899 if(data.length > 0){
4900
4901 const cursoInfo = JSON.parse(data);
4902
4903 const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes;
4904
4905 if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0))
4906 $('.ssp-container-selecione-unidade').removeClass('d-none')
4907
4908 objsTela.unidades = []
4909 mapUnidadesIds = new Map();
4910
4911 $.each(unidades, function(k,item){
4912
4913 var unidade = cloneObj(item)
4914 unidade['nome'] = item['nomeUnidade'];
4915 unidade['numero'] =item['numEnderecoUnidade'];
4916 unidade['complemento'] = item['complementoEnderecoUnidade'];
4917 unidade['bairro'] = item['bairroUnidade'];
4918 unidade['ofertas'] = [];
4919
4920 objsTela.unidades.push(unidade);
4921
4922 mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']);
4923
4924 objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade))
4925 });
4926
4927
4928 populaSelectUnidades(undefined, showOptions, unidadeValue);
4929
4930 }
4931 });
4932
4933 }
4934
4935function getOfertaObjectFromJson(ofertaJSON,index){
4936
4937
4938 var oferta = {};
4939 var xml = $($.parseXML(ofertaJSON.content));
4940 oferta['ordenar'] = paramOrdem(xml);
4941 oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim();
4942 var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-');
4943 var dataFim =xml.find('[name="dataFimOferta"]').text().split('-');
4944 oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim();
4945 oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim();
4946 oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text();
4947 oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim();
4948 var dias = [];
4949 oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim();
4950 xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){
4951 dias.push($(dia).text());
4952 });
4953 oferta['diasDaSemanaOferta'] = dias;
4954 oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim();
4955 oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim();
4956 oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim();
4957 oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim();
4958
4959 oferta['textoCartoesAceitos'] = pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
4960 oferta['numParcelaCartoes'] = pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
4961 oferta['precoParcelaCartoes'] = pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
4962 oferta['numParcelaBoleto'] = pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
4963 oferta['precoParcelaBoleto'] = pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
4964
4965 oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim();
4966 oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim();
4967 oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim();
4968 oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim();
4969 oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim();
4970 oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim();
4971 oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim();
4972 oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim();
4973 oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim();
4974 oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim();
4975 oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim();
4976 oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim();
4977 oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim();
4978 oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim();
4979 oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim();
4980 oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim();
4981 oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim();
4982 oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim();
4983 oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim();
4984 oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim();
4985 oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim();
4986 oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim();
4987 oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim();
4988 oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim();
4989 oferta['etapa'] = xml.find('[name="etapa"]').text().trim();
4990 oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();
4991 //adicao do destinoBolsa na oferta - 9546 - 11/07/2022
4992 oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim();
4993
4994 // 18/07/2025 - Removido o dataAberturaBolsaOferta recebendo o dataAberturaMatricula
4995 // devido a mudança de regra que recebemos da área
4996
4997 return oferta;
4998 }
4999
5000 const getStatusEmed = (oferta) => {
5001
5002 if("${listaEsperaAtiva?c}" !== "true") return statusEmed.INSCRICAO;
5003
5004 const urlStatusEsperaEmed = () => {
5005 let url = (isAmbienteTeste()) ?
5006 'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/'
5007 : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/';
5008
5009 return url + oferta.codigoOferta;
5010 }
5011
5012 const callTl = async () => {
5013 if(getCookie('tl') == null){
5014 return await $.ajax({
5015 url: '/o/senac-content-services/geraTokenServicosSenac',
5016 method: 'GET'
5017 });
5018 }
5019 return getCookie('tl');
5020 }
5021
5022 const callListaEspera = async () => {
5023 var tl = '';
5024 try{
5025 tl = await callTl();
5026 if(getCookie('tl') == null){
5027 tl = JSON.parse(tl).token;
5028 writeCookie('tl', tl, 6, '');
5029 }
5030 }catch(err){
5031 console.error(err);
5032 return {};
5033 }
5034
5035 return $.ajax({
5036 url: urlStatusEsperaEmed(),
5037 method: 'GET',
5038 beforeSend: function (xhr) {
5039 xhr.setRequestHeader("Authorization", tl);
5040 }
5041 })
5042 }
5043
5044 return new Promise(async function (resolve, reject) {
5045 const resp = await callListaEspera();
5046 if(typeof resp !== 'object') resp = JSON.parse(resp);
5047 let status = resp.STATUS;
5048 resolve(status);
5049 });
5050
5051 }
5052
5053 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){
5054
5055 if(categoryIds && categoryIds.length) {
5056 var params = new URLSearchParams();
5057 params.set('codigoFTOferta',codigoFT)
5058 params.set('dataEfetivaOferta',dataEfetivaOferta)
5059 params.set('categoryIds',categoryIds)
5060 params.set('start',startOfertaParam)
5061 params.set('end',endOfertaParam)
5062 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
5063 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
5064 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
5065
5066 if($('#chkBolsa').prop('checked')){
5067 params.set('considerarDataBolsaFutura', true)
5068 }
5069 const url = urlSearchOferta + '?' + params.toString()
5070
5071 $.ajax({
5072 url:url,
5073 method:'get',
5074 dataType:'json',
5075 async: false
5076 }).done(
5077 function(data){
5078
5079 if(data.length > 0){
5080 $('#ssp-alternadores').show()
5081 showedFilters = true
5082
5083 objsTela.ofertasAoVivoTodasUnidades = []
5084
5085 data.forEach(function(ofertaJSON,index){
5086
5087 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
5088
5089 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
5090 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
5091 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
5092
5093 });
5094 } else {
5095 loadAlternadores(data)
5096 }
5097
5098 populaOfertas(objsTela.ofertasAoVivoTodasUnidades);
5099 addEventBolsa()
5100 }
5101 ).fail(function(e) {
5102 console.error(e)
5103 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []);
5104 })
5105 } else {
5106 loadAlternadores([])
5107 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = [])
5108 }
5109
5110 if(isAoVivo) {
5111 if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length)
5112 hideCardSemTurmas(true)
5113 else
5114 hideCardSemTurmas(false)
5115 }
5116 }
5117
5118 function mudouToggleOferta(ofertas) {
5119 const oferta = ofertas && ofertas[0]
5120 if(!oferta)
5121 return true
5122
5123 const selecaoInscricao = $('#chkInscricao').prop('checked')
5124 const selecaoBolsa = $('#chkBolsa').prop('checked')
5125
5126 return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa
5127 }
5128
5129 function loadAlternadores(ofertas) {
5130 if(showedFilters) {
5131 $('#ssp-alternadores').show()
5132 return
5133 }
5134
5135 if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) {
5136 if(isAoVivo) {
5137 if(ofertas && ofertas.length)
5138 $('#ssp-alternadores').show()
5139 else {
5140 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
5141 $('#ssp-alternadores').hide()
5142 else
5143 $('#ssp-alternadores').show()
5144 }
5145 } else {
5146 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
5147 $('#ssp-alternadores').hide()
5148 else
5149 $('#ssp-alternadores').show()
5150 }
5151 } else
5152 $('#ssp-alternadores').show()
5153
5154 showedFilters = showedFilters || $('#ssp-alternadores').is(":visible")
5155 }
5156
5157 function getOfertas(codigoFT, dataEfetivaOferta, categoryId){
5158
5159 var indiceUnidade = -1;
5160 const selecaoInscricao = $('#chkInscricao').prop('checked')
5161 const selecaoBolsa = $('#chkBolsa').prop('checked')
5162
5163 for(var i = 0; i < objsTela.unidades.length; i++)
5164 if(objsTela.unidades[i].categoryId == categoryId)
5165 indiceUnidade = i;
5166
5167 ultimaUnidade = indiceUnidade;
5168
5169 if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){
5170 objsTela.unidades[indiceUnidade]['ofertas'] = []
5171
5172 var params = new URLSearchParams();
5173 params.set('codigoFTOferta',codigoFT)
5174 params.set('dataEfetivaOferta',dataEfetivaOferta)
5175 params.set('categoryIds',categoryId)
5176 params.set('start',startOfertaParam)
5177 params.set('end',endOfertaParam)
5178 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
5179 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
5180 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
5181
5182 if($('#chkBolsa').prop('checked')){
5183 params.set('considerarDataBolsaFutura', true)
5184 }
5185
5186 const url = urlSearchOferta + '?' + params.toString()
5187
5188 $.ajax({
5189 url:url,
5190 method:'get',
5191 dataType:'json',
5192 async: false
5193 }).done(
5194 function(data){
5195
5196 if(data.length > 0){
5197 $('#ssp-alternadores').show()
5198 showedFilters = true
5199
5200 $('.ssp-container-selecione-unidade').show();
5201
5202 data.forEach(function(ofertaJSON,index){
5203
5204 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
5205
5206 //Preenche as ofertas da unidade
5207 objsTela.unidades[indiceUnidade]['ofertas'].push(oferta);
5208 objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => {
5209 o.selecaoInscricao = selecaoInscricao
5210 o.selecaoBolsa = selecaoBolsa
5211 })
5212
5213 });
5214 } else {
5215 loadAlternadores()
5216 }
5217 objsTela.categoriesIds.push(categoryId);
5218 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
5219 addEventBolsa()
5220 }
5221 )
5222
5223 //Se estiver na cache, valida as ofertas
5224 }else{
5225
5226 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
5227
5228 }
5229 }
5230
5231 function populaSelectUnidades(unidades, showOptions, unidadeValue){
5232 var unidadePreSelecionada = false;
5233 var categoryIdUnidadePreSelecionada = '';
5234
5235 //Oredenacao
5236 objsTela.unidades.sort(function (a, b) {
5237 return ordenar(a, b, 'nome');
5238 });
5239
5240 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
5241 return ordenar(a, b, 'nome');
5242 });
5243
5244 //console.log(objsTela.unidades);
5245
5246 $.each(objsTela.unidades, function(k,item){
5247
5248 if(getURLData().includes('/'+item.friendlyURL+'/')){
5249 unidadePreSelecionada= true;
5250 categoryIdUnidadePreSelecionada = item['categoryId'];
5251 }
5252 });
5253
5254 //console.log('Unidade Pre '+unidadePreSelecionada);
5255
5256 if(objsTela.unidades.length == 0){
5257 if(!showOptions)
5258 $('.ssp-container-selecione-unidade').addClass('d-none');
5259 $('.oferta-slick-area').empty();
5260 $('.prev-mobile').addClass('d-none');
5261 $('.next-mobile').addClass('d-none');
5262 //EMED remove msg registro interesse
5263 //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
5264 }
5265
5266 if(isAoVivo){
5267
5268 const codigoFT = $('[name="codigoFT"]').val();
5269 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
5270
5271 var unidadesCategoryAll = '';
5272
5273 $.each(objsTela.unidades, function(k,unidade){
5274 unidadesCategoryAll += unidade['categoryId']+',';
5275 });
5276
5277 //tirando ultima virgula
5278 unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1);
5279
5280 getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);
5281
5282 }else{
5283 $('#unidades-ofertas').empty()
5284
5285 if(objsTela.unidades && objsTela.unidades.length){
5286 if(isEmed)
5287 $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>'))
5288 else
5289 $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>'))
5290
5291 } else
5292 $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>'))
5293
5294 let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades)
5295
5296 //Dispara o evento para primeira unidade ou pela friendlyURl da unidade
5297 if(unidadeValue) {
5298 $('#unidades-ofertas').val(unidadeValue);
5299 $('#unidades-ofertas').change();
5300 } else if(unidadeFounded){
5301 $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']);
5302 $('#unidades-ofertas').change();
5303 } else if(!unidadePreSelecionada) {
5304 $('#unidades-ofertas').change();
5305 }
5306
5307 $('.ssp-card-registro-interesse__select.unidades').empty()
5308 $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>')
5309 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
5310
5311 $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
5312 });
5313 }
5314
5315 }
5316
5317 function excecaoCursoGratuito(oferta){
5318 return $('[name="modalidadeName"]').val() == 'acoes-educ.-curta-duracao' && $('[name="tipoCurso"]').val() == 'livre' && (strToFloat(oferta.precoVendaOferta) == 0);
5319 }
5320
5321
5322 function mudarUnidade(ev){
5323 startOfertaParam = 0;
5324 endOfertaParam = 25;
5325 carregouUltimaOferta = false;
5326
5327 var elem = $(ev.target);
5328 var unidades = objsTela.unidades;
5329
5330 //verifica se selecionou alguma unidade
5331 if(!elem.val()){
5332 $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none');
5333
5334 if(isEmed)
5335 $('#ssp-section-response').addClass('d-none')
5336
5337 hideCardSemTurmas($('#unidades-ofertas option').length > 1)
5338
5339 elem.val('')
5340 habilitarRegistroInteresse(false)
5341 //Zera variável que controla existência de ofertas com bolsa
5342 ofertasComBolsa = false;
5343 controlaPaginaBolsa();
5344
5345 return;
5346 }
5347
5348 $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none');
5349 hideCardSemTurmas(true)
5350 if(isEmed){
5351 $('.ssp-ofertas-emed__section').removeClass('d-none');
5352 $('#ssp-section-response').removeClass('d-none')
5353 $('.ssp-card-oferta-curso__section-title').addClass('d-none');
5354 $('.prev-mobile, .next-mobile').addClass('d-none');
5355 var nomeUnidade = $('#unidades-ofertas option:selected').text();
5356 let tamScreen = $(window).width();
5357
5358 if(tamScreen < 1024)
5359 $('#titulo-emed').text('Turmas ' + anoTurmaEmed );
5360 else
5361 $('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade);
5362
5363 }
5364
5365 const codigoFT = $('[name="codigoFT"]').val();
5366 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
5367
5368 //colocamos dentro do option categoryId@codUnidade
5369 splitted = elem.val().split("@");
5370 var categoryIdUnidade = splitted[0];
5371 var codUnidade = splitted[1];
5372
5373 for(var i = 0; unidades.length > i ; i++){
5374
5375 if(unidades[i].categoryId == categoryIdUnidade){
5376
5377 var unidade = unidades[i];
5378
5379 //Exibe o endereco da unidade
5380 const urlBuscaUnidade = urlUnidadeInfoDetalhe
5381 .replace('\{companyId\}',themeDisplay.getCompanyId())
5382 .replace('\{codigoUnidade\}', unidade.codigoUnidade);
5383
5384 $.ajax({
5385 url : urlBuscaUnidade,
5386 type : 'get',
5387 dataType: 'json',
5388 success: function( unidadeInfo ) {
5389 if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){
5390
5391 var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', ');
5392 endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - ');
5393 endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - ');
5394
5395 $('.ssp-ofertas__endereco-unidade').text(endereco);
5396 $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade);
5397 }
5398 },
5399 error: function(data){
5400 $('.ssp-ofertas__endereco-unidade').text('');
5401 $('.ssp-ofertas__endereco-unidade').attr('href','#a');
5402 console.log('Unidade não encontrada');
5403 }
5404 })
5405
5406 getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId);
5407
5408 habilitarRegistroInteresse(!!(unidades && unidades.length));
5409
5410 }
5411 }
5412 }
5413
5414 function pegarTextoCartoesAceitos(campo){
5415 indice = campo.indexOf(' em até ');
5416 inicio = 0;
5417 fim = indice;
5418
5419 return campo.substring(inicio, fim);
5420 }
5421
5422 function pegaNumParcela(campo){
5423
5424 indice = campo.indexOf('até ');
5425 inicio = indice + 4;
5426 fim = indice + 6;
5427
5428 return campo.substring(inicio, fim);
5429
5430 }
5431
5432 function pegaValorParcela(campo){
5433
5434 indice = campo.indexOf('R$');
5435 inicio = indice+2;
5436 valorAmericano = campo.substring(inicio)
5437
5438 return formataValor(valorAmericano);
5439
5440 }
5441
5442 function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){
5443
5444 var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta);
5445 diasSemanaHTML = "";
5446
5447 for(var diaDaOferta of retornoDiasHorarios){
5448 diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias);
5449 diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario)
5450 }
5451
5452 var ofertaHTML = "";
5453
5454 if(isEmed){
5455
5456 ofertaHTML = htmlSlickAreaEmed(oferta);
5457 $('[name="codUnidadeSelecionada"]').val(codigoUnidade);
5458
5459 if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML)
5460 else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML);
5461 }else{
5462
5463
5464 ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade)
5465
5466 if(!posLoad)
5467 $('.oferta-slick-area').append(ofertaHTML);
5468 else
5469 $('.oferta-slick-area').slick('slickAdd', ofertaHTML);
5470
5471 ajustaTextoDiasHorarioOferta(oferta.codigoOferta);
5472
5473 }
5474
5475 if(turmasIniciadas(oferta.dataInicio))
5476 $("#aviso-turma-iniciada-"+index).show();
5477
5478 //remove os botões/itens de compra/bolsa caso seja preciso
5479 $('.oferta-slick-area').find('.d-none-btn').remove();
5480 }
5481
5482
5483 //RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS
5484 //@horariosAllOferta String com os dias da semana em sigla seguido do horario da aula e separados por virgula EX: "Qui 12h às 13, Sex 12h às 13h"
5485 function processaDiasHorariosOferta(horariosAllOferta){
5486
5487 var dias = horariosAllOferta.trim().split(',');
5488 let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}]
5489
5490 var arrayDia = [];
5491 if(dias.length >= 1){
5492 for(var k=0; dias.length > k; k++){
5493 var diasSplit = dias[k].trim().split(' ');
5494 var diasSemana = diasSplit.shift()
5495 var ultimaPos = diasSplit.length-1;
5496 var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]
5497 arrayDia.push({horasStr,diasSemana});
5498 }
5499 }
5500
5501 arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana');
5502 arrayDia = orderByArray(arrayDia,arrayDiasSemana);
5503
5504 var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana);
5505 return ret;
5506 }
5507
5508 //cria um array de objetos Agrupando de acordo ao campo informado como chave.
5509 //@arr = Array multidimensional que tenha os campos key e valueAdd
5510 //@key = campo que será chave nesse array
5511 //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key
5512 const groupByArray = (arr, key,valueAdd) => {
5513 const initialValue = [];
5514 const retornoValue = [];
5515 arr.forEach((acc, cval) => {
5516 const myAttribute = cval[key];
5517 acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]];
5518 return acc;
5519 }, initialValue);
5520 return retornoValue;
5521 };
5522
5523
5524 //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.
5525 //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados
5526 //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua
5527 const orderByArray = (arrayOrdena, ordem) => {
5528
5529 let diasSem = [];
5530 const arrayOrdenado = [];
5531 let controle;
5532
5533 //percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado
5534 for(let campo of ordem){
5535 Object.entries(arrayOrdena).forEach(([key, value]) => {
5536 for(let diaOferta of value){
5537 if(diaOferta===Object.keys(campo)[0]){
5538 arrayOrdenado[key]=arrayOrdena[key];
5539 }
5540 }
5541 })
5542 }
5543 return arrayOrdenado;
5544 };
5545
5546 //retorna o valor de um objeto dentro de um array
5547 //@objetoBusca = array de objetos que sera buscado o valor
5548 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
5549 function findValueInObject(objetoBusca, keyBusca){
5550 var retorno = "";
5551 Object.entries(objetoBusca).forEach(([horario, dias]) => {
5552 Object.entries(dias).forEach(([key,val]) => {
5553 if(key.trim()==keyBusca.trim()){
5554 retorno = val;
5555 }
5556 });
5557 });
5558 return retorno;
5559 }
5560
5561 //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.
5562 //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex']
5563 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
5564 function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){
5565
5566 let arrayValidador = [];
5567
5568 //cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom]
5569 for(let diaOferta of arrayComDiasDaSemana){
5570 for(let i = 0; i < arrayDiasDaSemana.length; i++){
5571 if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){
5572 arrayValidador[i] = true;
5573 }
5574 }
5575 }
5576
5577 let keyCompair = 99;
5578 var sequencial = true;
5579
5580 //verifica quais posições foram criadas no array, e se os valores delas estão em sequencia.
5581 for(let keyValidator of Object.keys(arrayValidador)){
5582 keyValidator = parseInt(keyValidator);
5583 if(keyCompair!==99){
5584 if(keyValidator===keyCompair){
5585 sequencial = true;
5586 }else{
5587 sequencial = false;
5588 break;
5589 }
5590 }
5591 keyCompair = keyValidator+1;
5592 }
5593 return sequencial;
5594 }
5595
5596
5597 //Exibe as informações de dia e horario de oferta de acordo a sua estrutura
5598 //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta
5599 //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula Ex: Segunda, terça, sexta e domingo
5600 //@arrayAgrupadoEOrdenado = array de objetos que sera exibido
5601 //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta)
5602 function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){
5603
5604 var stringAux = "";
5605 var listRetorno = [];
5606
5607 Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {
5608
5609 var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana);
5610 var stringAux = "";
5611 var diaOferta = {};
5612
5613 if(sequencial){
5614 switch (value.length) {
5615 case 1:
5616 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": ";
5617 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5618 diaOferta.horario = key;
5619 break;
5620 case 2:
5621 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
5622 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5623 diaOferta.horario = key;
5624 break;
5625 default:
5626 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
5627
5628 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5629 diaOferta.horario = key;
5630 break;
5631 }
5632 }else{
5633 switch (value.length) {
5634 case 2:
5635 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
5636 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5637 diaOferta.horario = key;
5638 break;
5639 default:
5640 var ct = 0;
5641 var stringDias="";
5642 for(let v of value){
5643 ct++;
5644 ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", ";
5645 }
5646 stringAux = stringAux+stringDias+": ";
5647 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
5648 diaOferta.horario = key;
5649 break;
5650 }
5651 }
5652
5653 listRetorno.push(diaOferta);
5654 })
5655 return listRetorno;
5656 };
5657
5658
5659 //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string
5660 function ajustaTextoDiasHorarioOferta(codOferta){
5661
5662 var classOferta = ".codigoOferta_"+codOferta;
5663 let oferta = $(classOferta);
5664
5665 let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]');
5666
5667 let widthDevice = window.screen.width;
5668 let tamLimDesktop = 185;
5669
5670 if(widthDevice <= 1024){
5671 tamLimDesktop = 180;
5672 }
5673
5674 ofertaDiasSemana.each(function(index){
5675
5676
5677 let widthDiaSemana = $(this).width();
5678
5679 let contentDiaHora = $(this).parent().parent().parent();
5680
5681 if(!(widthDiaSemana <= tamLimDesktop)){
5682 $(this).css("display","block");
5683 }
5684
5685 if(ofertaDiasSemana.length == parseInt(index+1)){
5686 contentDiaHora.css("opacity","1");
5687 }
5688
5689 })
5690 }
5691
5692 function getObjBtnComprar(oferta){
5693 let obj = {};
5694 obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false';
5695 if($('#manutencao-compra').val()){
5696 obj['classeBotao'] = 'disabled manutencao';
5697 obj['textoBotao'] = $('#manutencao-compra').val();
5698 }
5699 else{
5700 obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn';
5701 obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra';
5702 }
5703 return obj;
5704 }
5705
5706 function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){
5707
5708 var formaPagtoObj = {};
5709
5710 var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g');
5711 var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g')
5712
5713 formaPagtoObj['regIndex'] = index;
5714 formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta);
5715 formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos;
5716
5717 formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes;
5718 formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes;
5719 formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto;
5720 formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto;
5721 formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta);
5722
5723 formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2));
5724 formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false';
5725 formaPagtoObj['dataUnidade'] = codigoUnidade;
5726 formaPagtoObj['dataEvento'] = oferta.codigoOferta;
5727 formaPagtoObj['destinoCompra '] = oferta.destinoCompra;
5728
5729 //EMED nao restringe o botao
5730 if(isEmed){
5731 let manutencao = $('#manutencao-compra').val();
5732 formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR';
5733 formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : '';
5734 }else{
5735 let btnComprar = getObjBtnComprar(oferta);
5736 formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao;
5737 formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao;
5738 }
5739
5740 formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta;
5741 formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta);
5742
5743 //valores extensao - como o modal de livre e tec nao tem as classes especificas de extensao, nao há problema criar os valores abaixo para qualquer tipo de curso
5744 formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta);
5745 var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2);
5746 formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao);
5747 formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao);
5748 formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2));
5749 formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2));
5750 formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2));
5751
5752 return formaPagtoObj;
5753 }
5754
5755 function calculaPrecoAvista(precoVendaOferta){
5756 return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2);
5757 }
5758
5759 function getParcelasEntradaCartao(dataInicioCurso){
5760
5761 const dCurso = new Date(dataInicioCurso.split("/").reverse().join("-"));
5762 const dHoje = new Date();
5763
5764 let diffAnos = dCurso.getUTCFullYear() - dHoje.getUTCFullYear();
5765 let diffMeses = dCurso.getUTCMonth() - dHoje.getUTCMonth();
5766 diffMeses = diffAnos * 12 + diffMeses;
5767
5768 return (diffMeses > 4) ? 4 : ((diffMeses<=0) ? 1 : diffMeses);
5769
5770 }
5771
5772 function createModalFormaPagto(formaPagtoObj, oferta, index) {
5773 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
5774 temDesconto = temDesconto && !possuiMensalidadeCampanha(oferta)
5775
5776 result = `
5777 <div id="modalFormaPagto" class="ssp-modal">
5778 <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
5779 <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;">
5780 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6>
5781 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i>
5782 </div>
5783 `
5784 + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') +
5785 `
5786 <div class="ssp-card-modal-forma-pagamento__body">
5787 `
5788 if(temDesconto) {
5789 result = result + `
5790 <div>
5791 <p class="my-0"><strong>Valor com </strong>
5792 <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>
5793 </p>
5794 </div>
5795 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar((strToFloat(oferta.precoVendaOferta)/strToFloat(oferta.numeroMaxParcelasOferta))/2, 2)) + `*</h6>`
5796
5797 if($('[name="tipoCurso"]').val() == 'extensao') {
5798 result = result + `<p class="modal-extensao_txteconomiza my-0">*Desconto válido para quem tem ou trabalha em empresa do setor de comércio e serviços, estudantes ou ex-estudantes de cursos técnicos no Senac ou para quem já finalizou o Ensino Médio Técnico no Senac.</p>`
5799 } else {
5800 result = result + `<p class="modal-extensao_txteconomiza my-0">*Desconto válido para quem tem ou trabalha em empresa do setor de comércio e serviços.</p>`
5801 }
5802
5803
5804 result = result + `
5805 <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div>
5806 <p class="my-0"><strong>Valor:</strong></p>
5807 <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
5808 <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p>
5809 <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div>
5810 <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p>
5811 `
5812 } else {
5813 if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) {
5814 result = result + `
5815 <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
5816 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
5817 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px">Se preferir, parcele e garanta muito mais tempo para pagar:</small>
5818 </div>
5819 `
5820 } else {
5821 const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:'
5822
5823 result = result + `
5824 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small>
5825 <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p>
5826 <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
5827 <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p>
5828 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
5829 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px">Se preferir, parcele e garanta muito mais tempo para pagar:</small>
5830 </div>
5831 `
5832 }
5833 }
5834
5835 let textoParcelaCartoes, textoParcelaBoleto, textoParcelaCartaoComBoleto, textoPix, textoParcelaPixComBoleto
5836 if(temDesconto) {
5837 const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2))
5838 const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2))
5839
5840 if(formaPagtoObj.numParcelaCartoes)
5841 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>`
5842
5843 if(formaPagtoObj.numParcelaBoleto){
5844 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>`
5845 textoPix = `<p>Valor total à vista com desconto</p>`
5846 textoParcelaPixComBoleto = `<p>1ª parcela no Pix + valor restante em até <span><span class="numParcelaPixBoleto">` + (formaPagtoObj.numParcelaBoleto - 1) + `</span>x</span> sem juros no boleto bancário</p>`
5847 }
5848
5849
5850 } else {
5851 if(formaPagtoObj.numParcelaCartoes)
5852 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>`
5853
5854 if(formaPagtoObj.numParcelaBoleto){
5855 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>`
5856 textoPix = `<p>Valor total à vista com desconto</p>`
5857 textoParcelaPixComBoleto = `<p>1ª parcela no Pix + valor restante em até <span><span class="numParcelaPixBoleto">` + (formaPagtoObj.numParcelaBoleto - 1) + `</span>x</span> sem juros no boleto bancário</p>`
5858 }
5859 }
5860
5861 if(formaPagtoObj.numParcelaBoleto){
5862 textoParcelaCartaoComBoleto = `<p>1ª parcela em até <span><span class="numParcelaCartoes">` + getParcelasEntradaCartao(oferta.dataInicio) + `</span>x</span> sem juros no cartão + valor restante em até <span><span class="numParcelaBoleto">` + (parseInt(formaPagtoObj.numParcelaBoleto) - 1) + `</span>x</span> sem juros no boleto bancário</p>`;
5863 }
5864
5865 let cardPix = (textoPix) => `
5866 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
5867 <i class="fa-brands fa-pix" style="margin-right:15px;font-size:18px"></i>
5868 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5869 <p><strong>Pix</strong></p>`
5870 + textoPix +
5871 `</div>
5872 </div>`;
5873
5874 let cardPixBoleto = (textoParcelaPixComBoleto) => `
5875 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
5876 <div style="display:flex;gap:5px;margin-right:6px">
5877 <i class="fa-brands fa-pix" style="font-size:14px"></i>
5878 <i class="fa-sharp-duotone fa-light fa-barcode" style="font-size:14px"></i>
5879 </div>
5880 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5881 <p><strong>Pix + boleto bancário</strong></p>`
5882 + textoParcelaPixComBoleto +
5883 `</div>
5884 </div>
5885 `;
5886
5887 if(temDesconto) {
5888 result = result + `
5889 <div class="ssp-card-modal-forma-pagamento__tipos">`
5890
5891 if(textoPix && $('[name="tipoCurso"]').val() == 'livre')
5892 result = result + cardPix(textoPix)
5893
5894 if(textoParcelaBoleto)
5895 result = result + `
5896 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
5897 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5898 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5899 <p><strong>Boleto Bancário</strong></p>`
5900 + textoParcelaBoleto +
5901 `</div>
5902 </div>`
5903
5904 if(textoParcelaCartoes)
5905 result = result + `
5906 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
5907 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5908 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5909 <p><strong>Cartões</strong></p>
5910 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
5911 + textoParcelaCartoes +
5912 `</div>
5913 </div>
5914 </div>
5915 `
5916
5917 if(textoParcelaPixComBoleto && $('[name="tipoCurso"]').val() == 'livre')
5918 result = result + cardPixBoleto(textoParcelaPixComBoleto)
5919
5920
5921 if(textoParcelaCartaoComBoleto)
5922 result = result + `
5923 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
5924 <div style="display:flex;gap:5px;margin-right:6px">
5925 <i class="fa-regular fa-credit-card" style="font-size:14px"></i>
5926 <i class="fa-sharp-duotone fa-light fa-barcode" style="font-size:14px"></i>
5927 </div>
5928 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5929 <p><strong>Cartão + boleto bancário</strong></p>`
5930 + textoParcelaCartaoComBoleto +
5931 `</div>
5932 </div>`
5933
5934 if(textoPix && $('[name="tipoCurso"]').val() != 'livre')
5935 result = result + cardPix(textoPix)
5936
5937 if(textoParcelaPixComBoleto && $('[name="tipoCurso"]').val() != 'livre')
5938 result = result + cardPixBoleto(textoParcelaPixComBoleto)
5939
5940 } else {
5941 result = result + `
5942 <div class="ssp-card-modal-forma-pagamento__tipos">`
5943
5944 if(textoPix)
5945 result = result + cardPix(textoPix)
5946
5947 if(textoParcelaBoleto)
5948 result = result + `
5949 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
5950 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5951 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5952 <p><strong>Boleto Bancário</strong></p>`
5953 + textoParcelaBoleto +
5954 `</div>
5955 </div>
5956 </div>
5957 `
5958
5959 if(textoParcelaCartoes)
5960 result = result + `
5961 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
5962 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5963 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5964 <p><strong>Cartões</strong></p>
5965 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
5966 + textoParcelaCartoes +
5967 `</div>
5968 </div>`
5969
5970 if(textoParcelaPixComBoleto )
5971 result = result + cardPixBoleto(textoParcelaPixComBoleto)
5972
5973 if(textoParcelaCartaoComBoleto)
5974 result = result + `
5975 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
5976 <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i>
5977 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5978 <p><strong>Cartão + boleto bancário</strong></p>`
5979 + textoParcelaCartaoComBoleto +
5980 `</div>
5981 </div>`
5982 }
5983
5984
5985
5986 if(temDesconto) {
5987 result = result + `
5988 <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p>
5989 `
5990 }
5991
5992 result = result + `
5993 <a href="#a" class="btn btn-lg btn-success w-100" style="margin-top: 20px;font-weight:600"><span class="textoBotaoComprar">` + formaPagtoObj.textoBotaoComprar + `</span></a>`
5994
5995 if(temDesconto) {
5996 result = result + `
5997 <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a>
5998 `
5999 }
6000
6001 result = result + `
6002 </div>
6003 </div>
6004 `
6005
6006 return result;
6007 }
6008
6009 function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){
6010
6011 var tipoCurso = $('[name="tipoCurso"]').val();
6012
6013 var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade);
6014
6015 var modalFormaPagto
6016 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) {
6017 modalFormaPagto = $('#modalFormaPagtoExt').clone();
6018
6019 $.each(formaPagtoObj, function(k,v){
6020 if(modalFormaPagto.find('.'+k).length > 0)
6021 modalFormaPagto.find('.'+k).text(v);
6022 })
6023 } else if(isEmed) {
6024 modalFormaPagto = $('#modalPagtoEmed').clone();
6025
6026 $.each(formaPagtoObj, function(k,v){
6027 if(modalFormaPagto.find('.'+k).length > 0)
6028 modalFormaPagto.find('.'+k).text(v);
6029 })
6030 } else
6031 modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index));
6032
6033 modalFormaPagto.removeAttr('id');
6034 modalFormaPagto.removeClass('d-none');
6035 modalFormaPagto.attr('id','myModal_'+index);
6036
6037 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){
6038
6039 var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok');
6040 botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index);
6041
6042 botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
6043 botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade);
6044 botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento);
6045 botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra);
6046 botoaoCompraOk.attr('data-index', index);
6047 botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar);
6048
6049 var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not');
6050 botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index);
6051
6052 botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
6053 botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade);
6054 botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento);
6055 botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra);
6056 botoaoCompraNot.attr('data-index', index);
6057 botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar);
6058
6059 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index);
6060 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index);
6061
6062 modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
6063
6064 modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index);
6065
6066 modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index);
6067
6068 modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index);
6069 modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index);
6070
6071 var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');
6072
6073 }else{
6074
6075 modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index);
6076 modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
6077
6078 var botaoCompra = modalFormaPagto.find('.btn.w-100');
6079
6080 }
6081
6082 if(isEmed){
6083
6084 var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento');
6085
6086 //Cria botao inscreva-se ajustado ao modal
6087 var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta);
6088 if($('#manutencao-compra').val()){
6089 textoBotao = $('#manutencao-compra').val();
6090 classeBotao = 'disabled manutencao';
6091 }else{
6092 if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
6093 textoBotao = 'Lista de espera';
6094 classeBotao = 'btn-emed-lista-espera';
6095 }else{
6096 if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaMatricula || oferta.dataAberturaMatricula == ''){
6097 if(oferta.etapa == '0020' || oferta.etapa == '0030'){
6098 textoBotao = 'Lista de espera';
6099 classeBotao = 'btn-emed-lista-espera';
6100 }else{
6101 textoBotao = 'Fazer matrícula';
6102 classeBotao = '';
6103 }
6104 }else{
6105 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta);
6106 classeBotao = 'disabled';
6107 }
6108 }
6109 }
6110 criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index);
6111 preencheDadosEmedModal(oferta, modalFormaPagto);
6112
6113 }else{
6114 botaoCompra.attr('id', "btnComprarFormaPgto_"+index);
6115 botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
6116 botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade);
6117 botaoCompra.attr('data-evento', formaPagtoObj.dataEvento);
6118 botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra);
6119 botaoCompra.attr('data-index', index);
6120 botaoCompra.addClass(formaPagtoObj.classeBotaoComprar);
6121 }
6122
6123 $('.oferta-slick-area_modal').append(modalFormaPagto);
6124 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
6125
6126 //Evita o erro de exibição de Nan
6127 if(oferta.numParcelaBoleto.length == 0){
6128 $('#content_boleto_'+index).remove();
6129 }
6130 }
6131
6132 function verificaTerminoDia(dataInicio, dataFim){
6133 if (dataInicio === dataFim) {
6134 return true;
6135 }
6136 return false;
6137 }
6138
6139
6140 function montaHTMLModalLocalRealizacao(oferta, index){
6141
6142 // Lógica para decidir o texto (Singular ou Plural)
6143 // Assume que oferta.dataInicio e oferta.dataFim existem
6144 var textoTitulo = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ?
6145 "ONDE A AULA IRÁ ACONTECER?" : // True: Mesmo dia (Singular)
6146 "ONDE AS AULAS VÃO ACONTECER?"; // False: Dias diferentes (Plural)
6147
6148 var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ?
6149 '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>'
6150 : '<i class="ssp-modal__local-realizacao-content__icon-wifi"></i> <i class="ssp-modal__local-realizacao-content__icon-chalkboard-teacher"></i> <h6 class="ssp-modal-local-realizacao__title">' + textoTitulo + '</h6>';
6151
6152 if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true")
6153 textoFormatoHibrido += '</br>';
6154
6155 var localRealizacaoHTMLModal = htmlModalLocalRealizacao
6156 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
6157 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
6158 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" )
6159 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
6160 .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none")
6161 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
6162 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
6163 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
6164 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
6165 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
6166 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
6167 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
6168 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
6169 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
6170 .replace(regIndex, index)
6171 .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao)
6172 .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : "");
6173
6174 $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal);
6175 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
6176
6177 if(oferta.ruaEspacoExterno == "")
6178 $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle');
6179 }
6180
6181 function montaHTMLModalAntesCompra(oferta, index, codigoUnidade){
6182
6183 if(isEmed){
6184
6185 $('#modalAntesCompraEmed_' + oferta.indice).remove();
6186 const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone();
6187 antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice);
6188 antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice);
6189 antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice);
6190 antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed');
6191
6192 if(oferta.etapa == '0010'){
6193 if(oferta.permiteListaEspera == statusEmed.ESPERA){
6194 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none');
6195 antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera');
6196 }else{
6197 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none');
6198 }
6199 }else{
6200 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none');
6201 }
6202
6203 const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed');
6204 btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice);
6205 btnCompra.attr('offercode', oferta.codigoOferta);
6206
6207 btnCompra.on('click', function(ev){
6208 ev.preventDefault();
6209 execCompraEmed(oferta);
6210 });
6211
6212 }else{
6213
6214 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
6215
6216
6217 var antesCompraHTMLModal = htmlModalAntesCompra
6218 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
6219 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
6220 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" )
6221 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
6222 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
6223 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
6224 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
6225 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
6226 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
6227 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
6228 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
6229 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
6230 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
6231 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
6232 .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat))
6233 .replace('\{linkBtnBolsa\}', linkBolsa(oferta))
6234 .replace(regIndex, index);
6235
6236 $('.oferta-slick-area_modal').append(antesCompraHTMLModal);
6237 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
6238 }
6239 }
6240
6241 async function populaOfertas(ofertas){
6242
6243 //Zera variável que controla existência de ofertas com bolsa
6244 ofertasComBolsa = false;
6245
6246 objsTela.ofertas = ofertas;
6247
6248 if(ofertas && ofertas.length)
6249 $('#ssp-h3-turmas').show()
6250 else
6251 $('#ssp-h3-turmas').hide()
6252
6253 if(ofertas && ofertas.length > 1){
6254 //remove dupl
6255 const ofertasDistintas = [];
6256 ofertas.forEach(oferta => {
6257 if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){
6258 ofertasDistintas.push(oferta);
6259 }
6260 });
6261 ofertas = ofertasDistintas;
6262 }
6263
6264 if(isEmed){
6265
6266 $('.btn-filtro[value="0"]').attr('disabled','');
6267 $('.ssp-slick-ofertas-emed').empty();
6268 // executa a class do slick slider
6269 $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted');
6270 ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas);
6271
6272 }
6273
6274 if(ofertas.length == 0){
6275
6276 if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked'))
6277 hideCardSemTurmas(false)
6278
6279 $('.oferta-slick-area').empty();
6280 $('.prev-mobile, .next-mobile').addClass('d-none');
6281
6282 //Mostrar section registro interesse quando nao tiver oferta
6283 habilitarRegistroInteresse(true);
6284
6285 controlaPaginaBolsa()
6286 if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled');
6287 return;
6288 }
6289 hideCardSemTurmas(true)
6290 if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none');
6291 habilitarRegistroInteresse(false);
6292
6293 $('.oferta-slick-area').empty();
6294 $('.oferta-slick-area_modal').empty();
6295 ofertas = ofertas.sort(function(a, b){
6296 return ordenar(a, b, 'ordenar');
6297 });
6298 // executa a class do slick slider
6299 $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted');
6300
6301 //busca o codigoUnidade para o link do ecommerce
6302 if(!isAoVivo){
6303 var selectedUnidade = $('#unidades-ofertas').val().split('@')[0];
6304 for(var i=0;objsTela.unidades.length > i ;i++){
6305 if(selectedUnidade == objsTela.unidades[i].categoryId)
6306 codigoUnidade = objsTela.unidades[i].codigoUnidade;
6307 }
6308 }
6309
6310 // Montar object push - google tag manager - 2
6311 itensEcommerce = criaItensEcommerce(ofertas);
6312 sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values()));
6313
6314 for(var i=0;ofertas.length > i ;i++){
6315
6316 var oferta = ofertas[i];
6317 var ofertaGratuita = excecaoCursoGratuito(oferta);
6318
6319 //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real
6320 oferta['indice'] = i;
6321 ofertasMap.set(oferta.codigoOferta, oferta);
6322
6323 if(isAoVivo)
6324 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
6325
6326 if(isEmed && oferta.etapa == '0010'){
6327 try{
6328 let status = await getStatusEmed(oferta);
6329 oferta['permiteListaEspera'] = status;
6330 }catch(err){
6331 console.log(err);
6332 }
6333 }
6334 montaHTMLOferta(oferta, i, codigoUnidade, false);
6335
6336 if(!ofertaGratuita)
6337 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
6338
6339 montaHTMLModalLocalRealizacao(oferta, i);
6340 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
6341
6342 if(!ofertaGratuita)
6343 verificaBotaoBolsaSS(oferta);
6344
6345 verificaCursoAprendizagem(i, oferta.codigoOferta);
6346 verificaCursoTrampolim(i, oferta.codigoOferta);
6347
6348 if(!ofertaGratuita)
6349 associaEventoBtnFormaPagamento(i);
6350
6351 associaEventoBtnComprar(i);
6352
6353 if(!ofertaGratuita)
6354 associaEventoBtnComprarDentroFormaPgto(i);
6355
6356 associaEventoBtnLocalRealizacao(i);
6357 associaEventosFecharModal(i);
6358
6359 if($('[name="tipoCurso"]').val() == 'extensao'){
6360 associaEventoBtnConheca(i);
6361 associaEventoBtnComprarConhecaDescontoOk(i);
6362 associaEventoBtnComprarConhecaDescontoNot(i);
6363 associaEventoBtnAlunoNao(i);
6364 associaEventoBtnAlunoSim(i);
6365 }
6366
6367 }
6368
6369 if(isEmed){
6370 sliderOfertasEmed();
6371 $('.btn-filtro[value="0"]').removeAttr('disabled');
6372 }
6373 else sliderOfertas();
6374
6375 controlaPaginaBolsa()
6376
6377 }
6378
6379 function hideCardSemTurmas(hide){
6380 if(!isEmed){
6381 if(hide)
6382 $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none');
6383 else
6384 $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none');
6385 } else {
6386
6387
6388 if(hide || getEtapaSelecionadaEmed() == "0"){
6389 $('.sem-vaga-emed').addClass('d-none');
6390 }else{
6391 $('.sem-vaga-emed').removeClass('d-none');
6392 if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return;
6393 var tamScreen = $(window).width();
6394 if(tamScreen < 768){
6395 $('.slick-area-emed').slick({
6396 slidesToShow: 2,
6397 slidesToScroll: 2,
6398 autoplay: false,
6399 infinite: false,
6400 dots: false,
6401 arrows: false,
6402 centerPadding: 0,
6403 centerMode: false,
6404 responsive: [
6405 {
6406 breakpoint: 768,
6407 settings: {
6408 slidesToShow: 1,
6409 slidesToScroll: 1,
6410 variableWidth: false,
6411 infinite: false,
6412 centerPadding: 0,
6413 centerMode: false,
6414 dots: true,
6415 }
6416 }
6417 ]
6418 });
6419 }
6420 }
6421 }
6422 }
6423
6424 function verificaCursoAprendizagem(i, codigoOferta){
6425
6426 //Esconde elementsos quando o curso é aprendizagem
6427 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
6428 $('#btnComprar_'+i).remove();
6429 $('#container_investimento_'+i).remove();
6430 $('#container_forma_pgto_'+i).remove();
6431
6432 var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone();
6433 let btnFormAprendizagem = '<button class="btn btn-lg btn-success w-100 mt-3 btnModalAprendizagem" data-codigo-oferta="'+ codigoOferta +'" data-modal="open-modal" style="font-size:16px;background:#1FC923;font-weight: 600;">Preencher formulário</button>'
6434 avisoAprendizagem.removeAttr('id');
6435 avisoAprendizagem.removeClass('d-none');
6436 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem);
6437 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem);
6438 }
6439 }
6440
6441 function verificaCursoTrampolim(i, codOferta){
6442 if(ehCursoTrampolim){
6443 $('#btnComprar_'+i).remove();
6444 $('#container_investimento_'+i).remove();
6445 $('#container_forma_pgto_'+i).remove();
6446 $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide();
6447
6448 var avisoTrampolim = $('#avisoTrampolim').clone();
6449 avisoTrampolim.removeAttr('id');
6450 avisoTrampolim.removeClass('d-none');
6451 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim);
6452 }
6453 }
6454
6455 function verificaBotoesEmed(dadosOferta, verificaBolsa) {
6456
6457 var elementoPai = $('.codigoOferta_' + dadosOferta.codigoOferta + ' .ssp-ofertas-emed__card-info-investimento');
6458
6459 //INICIO - Logica para Matricula
6460
6461 //adicionamos uma nova variável em 18/07/2025 quando surgiu a necessidade de uma data diferente de matricula em relação a data de bolsa
6462 var dadosAberturaMatricula = calculaTempoAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta);
6463
6464 var textoBotaoMatricula = '';
6465 var exibirBotaoMatricula = true;
6466 var classeBotaoMatricula = '';
6467 var htmlBotaoMatricula = '';
6468
6469 if (dadosAberturaMatricula.exibirContador) {
6470 textoBotaoMatricula = dadosAberturaMatricula.textoContador;
6471 exibirBotaoMatricula = false;
6472 }
6473
6474 //exibe o botão sem cronômetro
6475 if (exibirBotaoMatricula) {
6476 if ($('#manutencao-compra').val()) {
6477 textoBotaoMatricula = $('#manutencao-compra').val();
6478 classeBotaoMatricula = 'disabled manutencao';
6479 } else {
6480
6481 if (dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAberturaMatricula.bolsaJaAberta) {
6482 textoBotaoMatricula = 'Lista de espera';
6483 classeBotaoMatricula = 'btn-emed-lista-espera';
6484 } else {
6485 classeBotaoMatricula = '';
6486 if (dadosAberturaMatricula.bolsaJaAberta || !dadosOferta.dataAberturaMatricula || dadosOferta.dataAberturaMatricula == '') {
6487 textoBotaoMatricula = 'Fazer matrícula';
6488
6489 if (dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030') {
6490 textoBotaoMatricula = 'Lista de espera';
6491 classeBotaoMatricula = 'btn-emed-lista-espera';
6492 }
6493 } else {
6494 textoBotaoMatricula = 'Matrícula em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta);
6495 }
6496 if (!dadosAberturaMatricula.bolsaJaAberta)
6497 classeBotaoMatricula = 'disabled';
6498 }
6499 }
6500
6501 criaBotaoInscreverEmed(dadosOferta, textoBotaoMatricula, classeBotaoMatricula, 'btnComprarEmed_' + dadosOferta.indice, elementoPai);
6502
6503 } else { //exibe o cronometro para matricula
6504
6505 //codigoOferta como index para usar o ofertasMap
6506 htmlBotaoMatricula = '<button id="btnContadorComprar_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>' + textoBotaoMatricula + '</span></button>';
6507 elementoPai.append(htmlBotaoMatricula);
6508 }
6509
6510 //INICIO - Logica para Botão Bolsa
6511
6512 if (!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == '') {
6513 dadosOferta.vagasBolsaOferta = false;
6514 dadosOferta.botaoBolsaOferta = false;
6515 }
6516
6517 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
6518 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
6519
6520 var textoBotaoBolsa = '';
6521 var classeBotaoBolsa = '';
6522 var exibirBotaoBolsa = false;
6523 var exibirContadorBolsa = false;
6524 var htmlBotaoBolsa = '';
6525
6526 //verifica se o botão de concorrer a bolsa deve aparecer
6527 //Oferta EMED possui bolsa apenas no 1o ano
6528 if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAberturaBolsa.exibirContador) {
6529 exibirBotaoBolsa = true;
6530 if ($('#manutencao-bolsa').val()) {
6531 classeBotaoBolsa = 'disabled manutencao';
6532 textoBotaoBolsa = $('#manutencao-bolsa').val();
6533 } else {
6534 if (dadosOferta.vagasBolsaOferta) {
6535 classeBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? '' : 'disabled';
6536 textoBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
6537 } else {
6538 classeBotaoBolsa = 'disabled';
6539 textoBotaoBolsa = 'Bolsas de Estudo Esgotadas';
6540 }
6541 }
6542 }
6543
6544 //Verifica se o botão do cronômetro deve aparecer
6545 if (dadosAberturaBolsa.exibirContador) {
6546 textoBotao = dadosAberturaBolsa.textoContador;
6547 textoBotaoBolsa = dadosAberturaBolsa.textoContador;
6548 exibirContadorBolsa = true;
6549 exibirBotaoBolsa = false;
6550 }
6551
6552 if (exibirBotaoBolsa) {
6553
6554 if (!ofertasComBolsa) ofertasComBolsa = true;
6555
6556 criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa);
6557
6558 } else if (exibirContadorBolsa) {
6559
6560 if (!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true;
6561
6562 if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta) {
6563 htmlBotaoBolsa = '<button id="btnContadorBolsa_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --bolsas">Bolsa em <span>' + textoBotaoBolsa + '</span></button>';
6564 elementoPai.append(htmlBotaoBolsa);
6565 }
6566 }
6567 }
6568
6569 function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){
6570 criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai);
6571 var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index);
6572 btnInscr.removeClass(btnInscr.classList);
6573 btnInscr.addClass('btn btn-lg btn-success w-100');
6574 btnInscr.attr('style', 'margin-top: 20px;font-weight:600');
6575
6576 //Reposiciona o botao voltar
6577 var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso');
6578 elementoPai.find('.ssp-btn-emed__voltar-curso').remove();
6579 elementoPai.append(btnVoltar);
6580 btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index);
6581 btnVoltar.click(() => {
6582 $('[id^="myModal_"]').each(function(index,modal){
6583 modal.style.display = "none";
6584 })
6585 });
6586 }
6587
6588 function preencheDadosEmedModal(oferta,$modal){
6589 const parcelaEntrada = 1;
6590 $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
6591 $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta));
6592 $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
6593 $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta));
6594 }
6595
6596
6597 function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){
6598 if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return;
6599 var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>';
6600 elementoPai.append(htmlBotao);
6601
6602 if(!classeBotao.includes('disabled')){
6603
6604 elementoPai.on("click", '#'+ idBotao, function(ev){
6605 ev.preventDefault();
6606 const _modal = $('#modalAntesCompraEmed_'+$(this).data('index'));
6607 _modal.css('display','flex');
6608
6609
6610 });
6611
6612 }
6613
6614 }
6615
6616 function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
6617
6618 var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>';
6619 $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao);
6620
6621 if(!classeBotaoBolsa.includes('disabled')){
6622 // Associa o evento de clique no botão de bolsa
6623 $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta));
6624 $('#btnBolsa_'+oferta.indice).attr('target', '_blank');
6625 //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;');
6626
6627 }
6628 }
6629
6630 function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
6631
6632 const botao = $('<a>'+ textoBotaoBolsa +'</a>');
6633 botao.attr('id', 'btnBolsa_' + oferta.indice);
6634 botao.attr('data-index', oferta.indice);
6635 botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || ''));
6636 botao.css('font-size', '14px');
6637 botao.css('font-weight', '600');
6638 botao.css('background-color', '#004EFF');
6639 if(!classeBotaoBolsa.includes('disabled')){
6640 if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){
6641 botao.attr('data-espaco-ex', 'true');
6642 botao.click((ev)=>{
6643 ev.preventDefault();
6644 $('#btnCompraLocal_'+oferta.indice).hide();
6645 $('#btnBolsaLocal_'+oferta.indice).show();
6646 const _modal = $('#modalAntesCompra_'+oferta.indice);
6647 _modal.css('display','flex');
6648 });
6649 }else{
6650 botao.attr('href', linkBolsa(oferta));
6651 botao.attr('target', '_blank');
6652 }
6653 }
6654
6655 return botao;
6656
6657 }
6658
6659 function verificaBotaoBolsaSS(oferta, codigoUnidade){
6660
6661
6662 if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return;
6663
6664 if(!ehCursoTrampolim){
6665 $.ajax({
6666 url : getUrlConsultaBolsa(oferta),
6667 type : 'get',
6668 dataType: 'json',
6669 beforeSend: function (xhr) {
6670 xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww==");
6671 },
6672 })
6673 .done(function(infosBolsa){
6674
6675
6676 if(infosBolsa != null && typeof infosBolsa !== 'undefined'){
6677
6678 var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO;
6679 var retornoOfertaBolsaSenac = infosBolsa.DATA[0];
6680
6681 //Sobrescreve as flags de bolsa com o retorno do serviço SS
6682 ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA;
6683 ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA;
6684
6685 var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa);
6686
6687 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
6688 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta);
6689 var textoBotaoBolsa = '';
6690 var classeBotaoBolsa = '';
6691 var textoBotaoContadorBolsa = '';
6692 var exibirBotaoBolsa = false;
6693 var exibirContadorBolsa = false;
6694
6695 //EMED
6696 if(isEmed){
6697 verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true);
6698 return;
6699 }
6700
6701 //Verifica o texto do botão de bolsa
6702 if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val();
6703 else{
6704
6705 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){
6706
6707 if(dadosAberturaBolsa.bolsaJaAberta)
6708 textoBotaoBolsa = "Inscrever para bolsa de estudo";
6709
6710 else
6711 textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
6712
6713 if(!ofertasComBolsa){ ofertasComBolsa = true;
6714 }
6715 }else
6716 textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo";
6717 }
6718
6719 //verifica se o botão de concorrer a bolsa deve aparecer
6720 if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){
6721
6722 exibirBotaoBolsa = true;
6723
6724 if(!ofertasComBolsa) ofertasComBolsa = true;
6725
6726 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){
6727 classeBotaoBolsa = '';
6728 }else{
6729 classeBotaoBolsa = 'disabled';
6730 }
6731 }
6732
6733 //Verifica se o botão do cronômetro deve aparecer
6734 if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){
6735 textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador;
6736 exibirContadorBolsa = true;
6737 }
6738
6739 if(exibirBotaoBolsa)
6740 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) )
6741 else if(exibirContadorBolsa)
6742 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append('<a id="btnContadorBolsa_'+dadosOferta.indice+'" data-index="'+dadosOferta.indice+'" class="btn btn-lg btn-info w-100 mt-3" >Você poderá se inscrever para bolsa em <span>'+textoBotaoContadorBolsa+'</span></a>')
6743 else {
6744 $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide()
6745 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
6746 }
6747
6748 }else{
6749 //EMED
6750 if(isEmed){
6751 verificaBotoesEmed(oferta, false);
6752 }
6753 }
6754
6755 controlaPaginaBolsa()
6756 })
6757 .fail(function(){
6758 $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide()
6759 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
6760
6761 //EMED
6762 if(isEmed){
6763 verificaBotoesEmed(oferta, false);
6764 }
6765 });
6766
6767
6768 }
6769
6770 }
6771
6772 function controlaPaginaBolsa(){
6773 if(ofertasComBolsa)
6774 $("#ssp-abrir-pagina-bolsa").removeClass("d-none")
6775 else
6776 $("#ssp-abrir-pagina-bolsa").addClass("d-none")
6777 }
6778
6779 function associaEventoBtnFormaPagamento(i){
6780 var modal = document.getElementById("myModal_"+i);
6781
6782 var btn = document.getElementById("myBtn_"+i);
6783
6784 if(btn!=null){
6785 btn.onclick = function(ev) {
6786 event.preventDefault()
6787
6788 $('#modalExtAluno_'+i).addClass('d-none');
6789
6790 var elem = $(ev.target);
6791 var _modal = document.getElementById(
6792 'myModal_'+elem.data('index'));
6793 _modal.style.display = "block";
6794 $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none');
6795
6796 }
6797 }
6798
6799
6800
6801
6802 }
6803
6804
6805 function actionBtnComprar(elem){
6806
6807 // Montar object push - google tag manager - 3
6808 ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento'))
6809 sendEventEcommerce("select_item", ofertaSelecionada);
6810 sendEventEcommerce("view_item", ofertaSelecionada);
6811
6812 //Verifica se deve exibir o modal com a localização
6813 if(elem.attr('data-espaco-ex') == 'true'){
6814 $('#btnCompraLocal_'+elem.data('index')).show();
6815
6816 //Limpa onclicks para nao repetir execucao
6817 $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index'))
6818 $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () {
6819 // Montar object push - google tag manager - 4
6820 sendEventEcommerce("add_to_cart", ofertaSelecionada);
6821 if( elem.attr('data-destino-compra') != '2' )
6822 sendEventEcommerce("begin_checkout", ofertaSelecionada);
6823 })
6824 $('#btnBolsaLocal_'+elem.data('index')).hide();
6825 const _modal = $('#modalAntesCompra_'+elem.data('index'));
6826 _modal.css('display','flex');
6827 }else{
6828 var urlCompra = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento'));
6829
6830 if( elem.attr('data-destino-compra') == '2' ){
6831 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
6832
6833 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);
6834
6835 }else{
6836 window.open(urlCompra, '_blank');
6837 }
6838 }
6839
6840
6841
6842 }
6843
6844 function associaEventoBtnComprar(i){
6845 var btnComprar = document.getElementById("btnComprar_"+i);
6846
6847 if(btnComprar != null && !btnComprar.classList.contains('disabled')){
6848 btnComprar.onclick = function(ev) {
6849
6850 ev.preventDefault()
6851 var elem = $(ev.target);
6852 actionBtnComprar(elem);
6853
6854 }
6855 }
6856 }
6857
6858 function associaEventoBtnComprarDentroFormaPgto(i){
6859 var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i);
6860
6861 if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){
6862 btnComprarFormaPgto.onclick = function(ev) {
6863 event.preventDefault()
6864 var elem = $('#btnComprarFormaPgto_'+i);
6865 actionBtnComprar(elem);
6866 }
6867 }
6868 }
6869
6870 function associaEventoBtnComprarConhecaDescontoOk(i){
6871 var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i);
6872
6873 if(btnComprarConhecaDescontoOk != null){
6874 btnComprarConhecaDescontoOk.onclick = function(ev) {
6875 event.preventDefault()
6876 var elem = $(ev.target);
6877 actionBtnComprar(elem);
6878 }
6879 }
6880 }
6881
6882 function associaEventoBtnComprarConhecaDescontoNot(i){
6883 var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i);
6884
6885 if(btnComprarConhecaDescontoNot != null){
6886 btnComprarConhecaDescontoNot.onclick = function(ev) {
6887 event.preventDefault()
6888 var elem = $(ev.target);
6889 actionBtnComprar(elem);
6890 }
6891 }
6892 }
6893
6894 function associaEventoBtnAlunoNao(i){
6895 var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i);
6896
6897 if(btnAlunoNao != null){
6898 btnAlunoNao.onclick = function(ev) {
6899 event.preventDefault()
6900 var elem = $(ev.target);
6901 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
6902 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo');
6903 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
6904 $('#msg-alunoNao_'+i).removeClass('d-none');
6905 $('#msg-alunoSim_'+i).addClass('d-none');
6906 }
6907 }
6908 }
6909
6910 function associaEventoBtnAlunoSim(i){
6911 var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i);
6912
6913 if(btnAlunoSim != null){
6914 btnAlunoSim.onclick = function(ev) {
6915 event.preventDefault()
6916 var elem = $(ev.target);
6917 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
6918 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo');
6919 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
6920 $('#msg-alunoSim_'+i).removeClass('d-none');
6921 $('#msg-alunoNao_'+i).addClass('d-none');
6922
6923 }
6924 }
6925 }
6926
6927 function associaEventoBtnConheca(i){
6928 var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i);
6929
6930 if(btnModalExtConheca != null){
6931 btnModalExtConheca.onclick = function(ev) {
6932 event.preventDefault();
6933 var elem = $(ev.target);
6934 elem.closest('.modal-extensao_content').addClass('d-none');
6935 $('#modalExtAluno_'+i).removeClass('d-none');
6936 $('#msg-alunoSim_'+i).addClass('d-none');
6937 $('#msg-alunoNao_'+i).addClass('d-none');
6938 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
6939 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
6940
6941 }
6942 }
6943 }
6944
6945 function associaEventoBtnLocalRealizacao(i){
6946 var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i);
6947
6948 if(btnLocalRealizacao!=null){
6949 btnLocalRealizacao.onclick = function(ev) {
6950 event.preventDefault();
6951 var elem = $(ev.target);
6952 var _modal = document.getElementById(
6953 'modalLocalRealizacao_'+elem.data('index'));
6954 _modal.style.display = "flex";
6955 }
6956 }
6957 }
6958
6959 function associaEventosFecharModal(i){
6960
6961 var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i);
6962 var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0];
6963 var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0];
6964 var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0];
6965 var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0];
6966 var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i)
6967
6968 if(isEmed){
6969 var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i);
6970 for (const val of closeModalFormaPagamento) {
6971
6972 val.onclick = function() {
6973 $('[id^="myModal_"]').each(function(index,modal){
6974 modal.style.display = "none";
6975 });
6976 }
6977 };
6978 }
6979
6980 //event close modal
6981 for (const val of span) {
6982
6983 val.onclick = function() {
6984 $('[id^="myModal_"]').each(function(index,modal){
6985 modal.style.display = "none";
6986 });
6987 }
6988 };
6989
6990 closeModalLocalRealizacao.onclick = function() {
6991
6992 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
6993 modal.style.display = "none";
6994
6995 });
6996 }
6997
6998 closeModalAntesCompra.onclick = function() {
6999
7000 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7001 modal.style.display = "none";
7002 });
7003 }
7004
7005 closeModalSelecionarOutro.onclick = function() {
7006
7007 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7008 modal.style.display = "none";
7009 });
7010 }
7011
7012 btnEntendiLocalRealizacao.onclick = function() {
7013
7014 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7015 modal.style.display = "none";
7016 });
7017 }
7018
7019 if(closeModalBotaoBolsa != null){
7020 closeModalBotaoBolsa.onclick = function() {
7021
7022 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7023 modal.style.display = "none";
7024 });
7025 }
7026 }
7027
7028 // When the user clicks anywhere outside of the modal, close it
7029 window.onclick = function(event) {
7030
7031 $('[id^="myModal_"]').each(function(index,_modal){
7032 if (event.target == _modal)
7033 _modal.style.display = "none";
7034 });
7035 $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){
7036 if (event.target == _modal)
7037 _modal.style.display = "none";
7038 });
7039
7040 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){
7041 if (event.target == _modal)
7042 _modal.style.display = "none";
7043 });
7044 }
7045 }
7046
7047 function turmasIniciadas(dataInicioCurso){
7048
7049 var hoje = new Date();
7050 var dataInicioPartes = dataInicioCurso.split('/');
7051 var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds());
7052
7053 return dataInicioCursoOferta.getTime() <= hoje.getTime();
7054 }
7055
7056
7057 function concatSTR(str1, str2, separador){
7058
7059 if(str2){
7060
7061 return str1+separador+str2;
7062 }
7063 return str1;
7064 }
7065
7066 //Formata exibicao de datas conforme especificacao GCR
7067 function formataPeriodo(dataInicio, dataFim){
7068
7069 // Se as datas são iguais, retornar apenas a data final
7070 if (dataInicio === dataFim) {
7071 return dataFim;
7072 }
7073
7074 var dtInicioPartes = dataInicio.split('/');
7075 var dtFimPartes = dataFim.split('/');
7076
7077 //Não exibir o número zero antes dos números e o dia 1 como 1º
7078 var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim();
7079 var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim();
7080
7081 //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020
7082 if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){
7083
7084 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim());
7085
7086 //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020
7087 if(dtInicioPartes[1].trim() == dtFimPartes[1].trim())
7088 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()));
7089 }
7090
7091 return dInicioFormatada + ' a ' + dFimFormatada;
7092 }
7093
7094 //Decrementa os contadores de abertudas de bolsa
7095 function atualizaTempoAberturasBolsas() {
7096
7097 var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]');
7098
7099 btnsContador.each(function() {
7100
7101 var index = $(this).data('index');
7102 var elId = $(this).attr('id');
7103 var btnContent = $(this).parent('.ssp-btn-group__content');
7104
7105 if(isEmed){
7106 //EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas
7107 var dadosAberturaBolsa = calculaTempoAberturaBolsa((elId.indexOf('btnContadorBolsa') >= 0) ? ofertasMap.get('' +index).dataAberturaBolsaOferta : ofertasMap.get('' +index).dataAberturaMatricula, ofertasMap.get('' + index).horaAberturaBolsaOferta);
7108 }else{
7109 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7110 var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta);
7111 }
7112
7113 $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds);
7114
7115 //Se esgotou o contador
7116 if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){
7117
7118 //remove o contador
7119 $(this).remove();
7120
7121 //Habilitar inscrição EMED
7122 if(isEmed){
7123 var ofertaEmed = ofertasMap.get('' +index);
7124 var btnIndex = elId.slice(elId.indexOf('_')+1);
7125 var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
7126
7127 if(elId.indexOf('btnContadorBolsa') >= 0){
7128 if($('#manutencao-bolsa').val())
7129 criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao');
7130 else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true")
7131 criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', '');
7132 else
7133 criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled');
7134 }else if(elId.indexOf('btnContadorComprar') >= 0){
7135
7136 var textoBotao, classeBotao;
7137
7138 textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula';
7139 classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : '';
7140
7141 //Garante a ordenação dos botoes (matricula depois bolsa)
7142 const botaoBolsa = document.getElementById('btnBolsa_' + btnIndex) || document.getElementById('btnContadorBolsa_' + btnIndex);
7143
7144 botaoBolsa?.remove(); // Remove se existir
7145
7146 criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai);
7147
7148 if (botaoBolsa) {
7149 elementoPai.append(botaoBolsa);
7150 }
7151
7152 //Altera o botao do modal de pagamento
7153 var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento');
7154 var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex);
7155 if(btnModal){
7156 btnModal.remove();
7157 criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex);
7158 preencheDadosEmedModal(ofertaEmed,modal);
7159 }
7160
7161
7162 }
7163
7164 }else{
7165
7166 //Checa as condições das vagas do botão de bolsa
7167 var btnBolsaHTML = null;
7168 if($('#manutencao-bolsa').val())
7169 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao');
7170 else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true")
7171 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo');
7172 else
7173 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled');
7174
7175 $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML);
7176
7177
7178 }
7179 }
7180
7181 });
7182
7183 }
7184
7185 // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos
7186 function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){
7187
7188 var dadosAberturaBolsa = {
7189 days : '',
7190 hours : '',
7191 minutes : '',
7192 seconds : '',
7193 bolsaJaAberta: false,
7194 exibirContador: false,
7195 textoContador: ''
7196 };
7197
7198 if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0)
7199 return dadosAberturaBolsa;
7200
7201 var now = todayG;
7202 var dia = now.getDate();
7203 var horarioDia = now.getHours();
7204
7205 var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa);
7206
7207 //console.log('tempo restante '+tempoRestante);
7208
7209 var diaAberturaBolsa = dataAberturaBolsa.split('-')[2];
7210
7211 var delta = tempoRestante / 1000;
7212
7213 var days = Math.floor(delta / 86400);
7214
7215 delta -= days * 86400;
7216
7217 var hours = Math.floor(delta / 3600) % 24;
7218 delta -= hours * 3600;
7219
7220 var minutes = Math.floor(delta / 60) % 60;
7221 delta -= minutes * 60;
7222
7223 var seconds = Math.floor(delta % 60);
7224
7225 //Zerar contador para data que ja passou
7226 if(days < 0){
7227 dadosAberturaBolsa.days = 0;
7228 dadosAberturaBolsa.hours = '00';
7229 dadosAberturaBolsa.minutes = '00';
7230 dadosAberturaBolsa.seconds = '00';
7231 }else{
7232 dadosAberturaBolsa.days = days;
7233 dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours;
7234 dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes;
7235 dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds;
7236 }
7237
7238 dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0;
7239 var horaExibeContador = 8;
7240 if(!isEmed && botaoBolsa == false){
7241 dadosAberturaBolsa.exibirContador = false;
7242 }else{
7243 dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia);
7244 dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds;
7245 }
7246 dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0;
7247
7248 return dadosAberturaBolsa;
7249
7250 }
7251
7252 // Verifica se uma oferrta já chegou sua data de abertura
7253 function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
7254 // console.log(dataAberturaBolsa);
7255 // console.log(horaAberturaBolsa);
7256
7257 //var today = new Date();
7258
7259
7260 //console.log( "TodayG "+ todayG);
7261
7262 //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30
7263 var partesHora = horaAberturaBolsa.split('h');
7264
7265 var partesHora = partesHora.filter(function (el) {
7266 return el != "";
7267 });
7268
7269 //formato 9h
7270 if(partesHora.length == 1)
7271 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00");
7272
7273 else{
7274
7275 //format 9h3
7276 if(partesHora[1].length == 1)
7277 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0');
7278
7279 //formato 9h30
7280 else
7281 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]);
7282 }
7283
7284 // console.log(aberturaBolsa);
7285 return aberturaBolsa - todayG;
7286 }
7287
7288 function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
7289 var dataPartes = dataAberturaBolsa.split('-');
7290
7291 return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas';
7292
7293 }
7294
7295 function formataValor(valor){
7296
7297 if(!valor.toString().includes(".")){
7298 valor = parseFloat(valor).toLocaleString('pt-BR')+",00";
7299 }else{
7300 valor = parseFloat(valor).toLocaleString('pt-BR');
7301
7302 if(valor.split(",").length == 2){
7303
7304 if(valor.split(",")[1].length == 1)
7305 valor += "0";
7306
7307 }else
7308 valor += ",00";
7309 }
7310
7311 return valor;
7312 }
7313
7314 function ajustarCasasDecimaisSemArredondar(numero, casas) {
7315 const str = numero + ''
7316 const arr = str.split('.')
7317 return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0'))
7318 }
7319
7320 function possuiCriteriosDesconto2022(dt) {
7321 return dt.substring(dt.lastIndexOf('/') + 1) >= 2022
7322 && (
7323 $('[name="tipoCurso"]').val() == 'livre'
7324 || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
7325 || $('[name="tipoCurso"]').val() == 'extensao'
7326 )
7327 }
7328
7329 function strToFloat(str) {
7330 const separator = str.includes(',') ? ',' : '.'
7331
7332 const numArr = str.split(separator)
7333 const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.')
7334 const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : ''
7335 return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0'))
7336 }
7337
7338 /**
7339 * Compare date formatted as "YYYY-MM-DD" with the current date
7340 * Return:
7341 * -1 if dateStr < today
7342 * 0 if dateStr == today
7343 * 1 if dateStr > today
7344 */
7345 function compareDates(dateStr1, dateStr2) {
7346
7347 const convertDate = (dateStr) => {
7348 if (typeof dateStr !== 'string') throw new TypeError('dateStr must be a string with format YYYY-MM-DD');
7349 const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
7350 if (!match) throw new Error('invalid format. Use YYYY-MM-DD');
7351 const [, yy, mm, dd] = match;
7352 return Date.UTC(Number(yy), Number(mm) - 1, Number(dd));
7353 }
7354
7355 const date1 = convertDate(dateStr1);
7356 const date2 = convertDate(dateStr2);
7357 if (date1 < date2) return -1;
7358 if (date1 > date2) return 1;
7359 return 0;
7360 }
7361
7362
7363 function possuiMensalidadeCampanha(oferta) {
7364
7365 const dataInicio = oferta.dataInicio.split('/').reverse().join('-');
7366 const precoParcelaCartoes = parseFloat(oferta.precoParcelaCartoes.replace(',','.'));
7367 const precoParcelaBoleto = parseFloat(oferta.precoParcelaBoleto.replace(',','.'));
7368
7369 if(!oferta.precoVendaMaxParcelaOferta
7370 || (oferta.precoVendaMaxParcelaOferta != 99 && precoParcelaCartoes != 99 && precoParcelaBoleto != 99 && compareDates(dataInicio, '2025-12-31') <= 0)
7371 || (oferta.precoVendaMaxParcelaOferta != 109 && precoParcelaCartoes != 109 && precoParcelaBoleto != 109 && compareDates(dataInicio, '2026-01-01') >= 0)
7372 )
7373 return false
7374
7375 if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio')
7376 return true
7377
7378 if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
7379 return true
7380
7381 if($('[name="modalidades"]').val() == 'qualificacao-profissional')
7382 return true
7383
7384 return false
7385 }
7386
7387 function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) {
7388 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
7389 temDesconto = temDesconto && !possuiMensalidadeCampanha(oferta)
7390
7391 // Define o texto singular ou plural
7392 var textoHorario = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ?
7393 "Horário e dia da aula:" :
7394 "Horário e dias das aulas:";
7395
7396 const btnLocalReal = function(oferta){
7397
7398 // NOVA LÓGICA: Define o texto (Singular/Plural)
7399 var textoOndeAcontece = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ?
7400 "Onde a aula irá acontecer?" :
7401 "Onde as aulas vão acontecer?";
7402
7403 var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido)) ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`;
7404
7405 btn += (localLivreOnline(oferta.localEspacoExterno)) ?
7406 `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#">
7407 <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>`
7408 : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#">
7409 <i class="fas fa-user"></i>` + textoOndeAcontece + `</a>`;
7410
7411 btn += `</div>`;
7412
7413 return btn;
7414
7415 }
7416
7417 // Card Oferta
7418
7419 let result = `
7420 <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
7421
7422 <div class="ssp-card-oferta-curso">
7423
7424 <div class="content-data-dias">
7425
7426 <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none">
7427 <h6 style="color:white;background-color:#ff7157;border-radius: 5px;padding: 8px 0px;width: 60%;font-size: 12px;margin-top: 0;"><strong>Turma iniciada, comece já!</strong></h6>
7428 </div>
7429
7430
7431 <div>
7432 <small class="ssp-card-oferta-curso__title-item">Período:</small>
7433 <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6>
7434 </div>
7435
7436 <div class="content-horario-dias-semana">
7437
7438 <div class="horario">
7439 <small class="ssp-card-oferta-curso__title-item">` + textoHorario + `</small>
7440 </div> ` +
7441
7442 `<div class="ssp-card-oferta-curso__dia-hora_content">
7443 ` + diasSemanaHTML + `
7444 </div>
7445
7446 </div>
7447
7448 ` + btnLocalReal(oferta);
7449
7450 result = result + `
7451 </div>
7452 `
7453
7454 if(excecaoCursoGratuito(oferta)){
7455 result += montaRestanteHTMLexcecaoCursoGratuito(index,oferta);
7456 return result;
7457 }
7458
7459 //Regra adicionada em 04/01/22 devido aos cursos de Garçon e Cozinheiro. Definimos como regra geral que caso botaoCompra seja falso, não faz sentido mostrar os valores
7460 //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498
7461 const estaSemValorOferta = oferta.botaoCompraOferta == ''
7462 || oferta.botaoCompraOferta == 'false'
7463 || !oferta.precoVendaOferta
7464 || !oferta.precoCheioOferta
7465 || !oferta.precoVendaMaxParcelaOferta
7466 || strToFloat(oferta.precoVendaOferta) == 0
7467 || strToFloat(oferta.precoCheioOferta) == 0
7468 || strToFloat(oferta.precoVendaMaxParcelaOferta) == 0
7469
7470 //Trecho inicial do Bolsa de estudo
7471 result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `">
7472 <div class="ssp-card-oferta__info-turma-content">
7473 <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6>
7474 </div>
7475 <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>
7476 </div>
7477 `
7478
7479 if(estaSemValorOferta) {
7480 result = result + `
7481 <div class="content-buttons hide">
7482 </div>
7483 `
7484 return result;
7485 }
7486
7487
7488 //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra"
7489 result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `">
7490 <div class="ou-separator-desconto">Ou</div>
7491 <button type="button" class="btn-show-price">
7492 <p>Saiba mais sobre:</p>
7493 <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')">
7494 <i class="fas fa-money-bill"></i>
7495 <span>Valores para compra</span>
7496 </div>
7497 </button>
7498 </div>
7499 `
7500
7501 result = result + `
7502 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
7503 `
7504
7505 if( temDesconto && !ehCursoTrampolim ) {
7506 result = result + `
7507 <div class="ssp-card-oferta__info-turma-content">
7508 <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6>
7509 </div>
7510
7511 <div class="block-valor-desconto">
7512
7513 <div class="tag-label-desconto">
7514 <small class="ssp-card-oferta-curso__title-item">Valor com </small>
7515 <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span>
7516 </div>
7517
7518 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar((strToFloat(oferta.precoVendaOferta)/strToFloat(oferta.numeroMaxParcelasOferta))/2, 2)) + `</h6>
7519
7520 <div class="ssp-card-oferta-curso__desconto-content">
7521 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p>
7522 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p>
7523 </div>
7524 `
7525
7526 if($('[name="tipoCurso"]').val() == 'extensao') {
7527 result = result + `<p class="modal-extensao_txteconomiza my-2">* Válido para quem trabalha ou tem sua própria empresa no setor de comércio e serviços, estudantes ou ex-estudantes de cursos técnicos no Senac ou para quem já finalizou o Ensino Médio Técnico no Senac.</p></div>`
7528 } else {
7529 result = result + `<p class="modal-extensao_txteconomiza my-2">*Válido para quem trabalha ou tem sua própria empresa no setor de comércio e serviços.</p></div>`
7530 }
7531
7532 result = result + `
7533 <div class="ou-separator-desconto">Ou</div>
7534
7535 <div class="block-valor-total">
7536
7537 <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small>
7538
7539 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
7540
7541 <div class="ssp-card-oferta-curso__desconto-content">
7542 <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p>
7543 </div>
7544
7545 </div>
7546 `
7547 }else{
7548
7549 // itens que são diferentes entre técnico e livres comprado a extensão
7550 if($('[name="tipoCurso"]').val() == 'extensao'){
7551 result = result + `
7552
7553 <div class="block-valor-total">
7554
7555 <div class="investimento" id="container_investimento_` + index + `">
7556
7557 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
7558
7559 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6>
7560
7561 <div class="ssp-card-oferta-curso__desconto-content">
7562 <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p>
7563 </div>
7564
7565 </div>
7566
7567 </div>
7568 `
7569 } else {
7570 result = result + `
7571 <div class="block-valor-total">
7572 <div class="investimento" id="container_investimento_` + index + `">
7573 `
7574
7575 // Não mostrar mensagem de 30% de desconto em casos especificos
7576 if(temDesconto){
7577 result = result + `
7578 <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small>
7579 `
7580 }
7581
7582 if(oferta.precoCheioOferta == oferta.precoVendaOferta) {
7583 result = result + `
7584 <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small>
7585 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
7586
7587 <div class="ssp-card-oferta-curso__desconto-content">
7588 <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
7589 </div>
7590 </div>
7591 </div>
7592 `
7593 } else {
7594 result = result + `
7595 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
7596 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
7597
7598 <div class="ssp-card-oferta-curso__desconto-content">
7599 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p>
7600 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
7601 </div>
7602 </div>
7603 </div>
7604 `
7605 }
7606 }
7607 }
7608
7609 let dataBtnComprar = getObjBtnComprar(oferta);
7610
7611 // itens que são diferentes entre técnico e livres comprado a extensão
7612 result = result + `
7613
7614 <div class="ssp-card-oferta-curso__formas-pagamento-content" id="container_forma_pgto_` + index + `">
7615
7616 <span>Saiba mais sobre:</span>
7617
7618 <div>
7619 <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i>
7620 <a id="myBtn_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__formas-pagamento-content__title" style="font-weight: 600;" href="#">` + (temDesconto ? 'Descontos e pagamento' : 'Descontos e parcelamento') + `</a>
7621 </div>
7622
7623 </div>
7624
7625 <div class="content-buttons">
7626
7627 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
7628
7629 <a href="#a" id="btnComprar_` + index + `" data-espaco-ex="` + dataBtnComprar.dataEspacoEx + `" data-unidade="` + codigoUnidade + `" data-evento="` + oferta.codigoOferta + `" data-destino-compra="` + oferta.destinoCompra + `" data-index="` + index + `" class="btn btn-lg btn-success w-100 mt-3 ` + dataBtnComprar.classeBotao + `" style="font-size:16px;font-weight: 600;">` + dataBtnComprar.textoBotao + `</a>
7630
7631 </div>
7632
7633 </div>
7634
7635 </div>
7636
7637 </div>
7638 `
7639
7640 return result
7641 }
7642
7643 function montaRestanteHTMLexcecaoCursoGratuito(index, oferta){
7644
7645 let dataBtnComprarExcecao = getObjBtnComprar(oferta);
7646 let resultModalidade =
7647 `
7648 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
7649 <div class="ssp-card-oferta__info-turma-content">
7650 <h6 class="ssp-card-oferta__info-turma">Curso gratuito</h6>
7651 </div>
7652 <div class="block-valor-total">
7653 <div class="investimento" id="container_investimento_` + index + `">
7654 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>R$ 0,00</h6>
7655 </div>
7656 </div>
7657 <div class="content-buttons">
7658
7659 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
7660
7661 <a href="#a" id="btnComprar_` + index + `" data-espaco-ex="` + dataBtnComprarExcecao.dataEspacoEx + `" data-unidade="` + codigoUnidade + `" data-evento="` + oferta.codigoOferta + `" data-destino-compra="` + oferta.destinoCompra + `" data-index="` + index + `" class="btn btn-lg btn-success w-100 mt-3 ` + dataBtnComprarExcecao.classeBotao + `" style="font-size:16px;font-weight: 600;">FAZER MATRÍCULA</a>
7662
7663 </div>
7664
7665 </div>
7666 </div>
7667 </div>
7668 `
7669 ;
7670 return resultModalidade;
7671
7672 }
7673
7674
7675 var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">'
7676 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">'
7677 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">'
7678
7679 htmlModalLocalRealizacao += '{tituloLocalRealizacao}'
7680
7681 htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
7682 htmlModalLocalRealizacao += '</div>'
7683 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">'
7684 htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
7685 htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
7686 htmlModalLocalRealizacao += '<address>'
7687 htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
7688 htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
7689 htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
7690 htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
7691 htmlModalLocalRealizacao += '</address>'
7692 htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">'
7693 htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>'
7694 htmlModalLocalRealizacao +='</div>'
7695 htmlModalLocalRealizacao +='</div>'
7696 htmlModalLocalRealizacao +='</div>'
7697 htmlModalLocalRealizacao +='</div>';
7698
7699 var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">'
7700 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">'
7701 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">'
7702 htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>'
7703 htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
7704 htmlModalAntesCompra += '</div>'
7705 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">'
7706 htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
7707 htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
7708 htmlModalAntesCompra += '<address>'
7709 htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
7710 htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
7711 htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
7712 htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
7713 htmlModalAntesCompra += '</address>'
7714 htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">'
7715 htmlModalAntesCompra += '{componentBuyConfirmation}'
7716 htmlModalAntesCompra += '<a id="btnBolsaLocal_{index}" class="btn btn-lg btn-info w-100 mt-3" href="{linkBtnBolsa}" target="_blank" style="display:none;">OK, inscrever para bolsa</a>'
7717 htmlModalAntesCompra += '<a class="ssp-modal-local-realizacao__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_{index}" href="#a" >Selecionar outra turma</a>'
7718 htmlModalAntesCompra +='</div>'
7719 htmlModalAntesCompra +='</div>'
7720 htmlModalAntesCompra +='</div>'
7721 htmlModalAntesCompra +='</div>';
7722
7723 var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">'
7724 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'
7725 htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>'
7726 htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>'
7727 htmlSlickAreaDiasSemana += '</p>'
7728 htmlSlickAreaDiasSemana += '</div>';
7729
7730
7731 //Montar object push - google tag manager - 5
7732 function criaItensEcommerce(ofertas){
7733
7734 let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome
7735
7736 let dadosCurso = {
7737 //Pegar do freemarker
7738 tituloComercial : $('[name="tituloComercial"]').val(),
7739 tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(),
7740 formato : $('[name="formato"]').data("formato")
7741 }
7742
7743 let ecommerceObject = {
7744
7745 item_id: "", //codOferta - oferta,
7746 item_name: "", //Nome do curso - curso,
7747 affiliation: "", //nome da unidade - oferta,
7748 currency: "BRL", //Moeda - "BRL",
7749 discount: "", //desconto - oferta,
7750 index: "", //indice da lista - i,
7751 item_brand: "Senac SP", //"Senac SP",
7752 item_category: "", //categoria do curso - curso,
7753 item_list_id: "", //"60",
7754 item_list_name: "", //"São Carlos" - Oferta,
7755 item_variant: "", //modalidade - curso,
7756 price: "", //preco cheio - oferta,
7757 quantity: 1
7758
7759 }
7760
7761 let itensEcommerce = new Map();
7762
7763 for(var i = 0; i < ofertas.length; i++){
7764
7765 itensEcommerce.set(ofertas[i].codigoOferta, {
7766
7767 item_id: ofertas[i].codigoOferta, //codOferta - oferta,
7768 item_name: dadosCurso.tituloComercial, //Nome do curso - curso,
7769 affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta,
7770 currency: "BRL", //Moeda - "BRL",
7771 discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta,
7772 index: i, //indice da lista - i,
7773 item_brand: "Senac SP", //"Senac SP",
7774 item_category: dadosCurso.tipoCurso, //categoria do curso - curso,
7775 item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60",
7776 item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta,
7777 item_variant: dadosCurso.formato, //modalidade - curso,
7778 price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta,
7779 quantity: 1
7780
7781 }
7782 )
7783 }
7784
7785 return itensEcommerce;
7786 }
7787
7788 //EMED - ELEMENTOS DINAMICOS
7789 const htmlSlickAreaEmed = function(oferta){
7790 var btnid = 'myBtn_' + oferta.indice;
7791 const diasHorarios = function(oferta){
7792 return oferta.diasDaSemanaOferta.join(', ').toLowerCase();
7793
7794 }
7795
7796
7797 return `
7798 <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `">
7799
7800 <div class="ssp-ofertas-emed__card-info-turma">
7801
7802 <div class="item-content">
7803 <i class="fas fa-calendar-alt calendar-icon-turma"></i>
7804 <p class="title-turma">`+ oferta.titulo +`</p>
7805 <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span>
7806 </div>
7807
7808 <div class="content-previsao-inicio-termino">
7809
7810 <div class="item-content">
7811 <span class="text-default">Previsão de início:</span>
7812 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span>
7813 </div>
7814
7815 <div class="item-divisor"></div>
7816
7817 <div class="item-content">
7818 <span class="text-default">Previsão de término:</span>
7819 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span>
7820 </div>
7821
7822 </div>
7823
7824
7825 <div class="item-divisor"></div>
7826
7827 <div class="item-content">
7828 <span class="text-default">Dias e horários das aulas:</span>
7829 <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span>
7830 <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span>
7831 </div>
7832
7833 </div>
7834
7835 <div class="ssp-ofertas-emed__card-info-investimento">
7836 <p class="title-investimento">Investimento anual:</p>
7837
7838 <div class="item-content-investimento">
7839 <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span>
7840 <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span>
7841 </div>
7842
7843 <div class="item-content-investimento">
7844 <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p>
7845 </div>
7846
7847 <div class="item-content-investimento">
7848 <i class="fas fa-credit-card icon-cartao-credito"></i>
7849 <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a>
7850 </div>
7851
7852 </div>
7853
7854 </div>
7855
7856 `;
7857 }
7858
7859
7860 function loadCursosVocePodeGostar(){
7861
7862 if(isEmed){
7863 var url = urlSearchCursosPodeGostarEmed
7864 .replace('\{groupId\}', groupId)
7865 .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val())
7866 .replace('\{limit\}', 12)
7867 .replace('\{articleId\}', $('[name="articleId"]').val());
7868 }else{
7869 var url = urlSearchCursosPodeGostar
7870 .replace('\{companyId\}',themeDisplay.getCompanyId())
7871 .replace('\{groupId\}', groupId)
7872 .replace('\{userId\}',themeDisplay.getUserId())
7873 .replace('\{articleId\}',$('[name="articleId"]').val())
7874 .replace('\{limit\}', 12);
7875 }
7876
7877
7878 $.ajax({
7879 url : url,
7880 type : 'get',
7881 beforeSend: function(){
7882 loading('#slider-curso');
7883 }
7884 })
7885 .done(function(cursos){
7886
7887 if(cursos.length > 0){
7888
7889 cursos = JSON.parse(cursos);
7890
7891 if(isEmed) cursos = cursos['cursos'];
7892
7893 if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none');
7894 else {
7895 $('#section-cursos-voce-pode-gostar').addClass('d-none');
7896 return;
7897 }
7898
7899 var articles = [];
7900
7901 $.each(cursos, function(k, c){
7902 articles.push(c.articleId);
7903 });
7904
7905 //Verifica a situação dos botoes de inscrições e bolsa
7906 $.ajax({
7907 url : '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','),
7908 type : 'get'
7909 })
7910 .done(function(infoBotoes){
7911
7912 if(infoBotoes.length > 0) {
7913
7914 infoBotoes = JSON.parse(infoBotoes);
7915
7916 $('#slider-curso').empty();
7917
7918 $.each(cursos, function(k, c){
7919 $('#slider-curso').append(buildCardCurso(c, infoBotoes));
7920
7921 });
7922
7923 $('#slider-curso').addClass(
7924 'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar');
7925
7926 sliderCurso('.slick-area-cursos-pode-gostar');
7927 }
7928 });
7929 }
7930
7931 })
7932 .fail(function(jqXHR, textStatus, msg){
7933 // alert(msg);
7934 });
7935
7936 }
7937
7938 /*
7939 * Armazena a navegação em cookies, se habilitado
7940 */
7941 $(document).on("click", ".ck-curso", function() {
7942
7943 //Verifica se o cookie está habilitado
7944 if(getCookie('portalSenacCookie') != null){
7945
7946 var articleId = $(this).data('ck');
7947 manageCookieArray('ck-cursos', articleId);
7948
7949 }
7950
7951 });
7952
7953
7954
7955
7956
7957 $(function(){
7958
7959 if($('#unidades-ofertas').find('option').length ==0){
7960
7961 $('.ssp-container-selecione-unidade').addClass('d-none')
7962
7963 }
7964
7965 });
7966
7967 function avisoNovasTurmas(){
7968
7969
7970 window.event.preventDefault()
7971
7972 //var unidadeSelecionada = $('#select-registro-interesse').val();
7973 //este select tem 2 valores separados por @ -> categoryId@codUnidade
7974 // var unidadeSelecionada = $('#unidades-ofertas').val();
7975
7976 //Código fixo quando Senac Ao Vivo
7977 var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
7978
7979 // if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){
7980
7981 //Se ja tiver logado , redireciona para o registro
7982 if (!Liferay.ThemeDisplay.isSignedIn()) {
7983 sspRequireAuthentication('#btn-aviso-novas-turmas');
7984 } else {
7985 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
7986 verificaBtnEnviarRegistroInteresseAtivo();
7987 }
7988
7989 window.onclick = function(event) {
7990 $('[id="modal-registro-interesse"]').each(function(index,_modal){
7991 if (event.target == _modal) {
7992 $('#modal-registro-interesse').addClass('d-none');
7993 $("body").removeClass("overflow-hidden")
7994 }
7995 });
7996 }
7997
7998 // }
7999 }
8000
8001
8002 function registroSelecionaTodosDias(){
8003
8004 if($(this).hasClass('ssp-week-day-active')){
8005 $(this).removeClass('ssp-week-day-active')
8006 $('.ssp-week-day').removeClass('ssp-week-day-active')
8007 }else{
8008 $(this).addClass('ssp-week-day-active')
8009 $('.ssp-week-day').addClass('ssp-week-day-active')
8010 }
8011
8012 verificaBtnEnviarRegistroInteresseAtivo();
8013 }
8014
8015 function registroSelecionaTodosPeriodos(){
8016
8017 if($(this).is(':checked')){
8018 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true);
8019 }else{
8020 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false);
8021 }
8022
8023 verificaBtnEnviarRegistroInteresseAtivo();
8024 }
8025 $('.turmas-registro-interesse input[type=checkbox]').on('click', function() {
8026 var $selecionado = $(this);
8027 if ($selecionado.is(":checked")) {
8028 $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false);
8029 $selecionado.prop("checked", true);
8030 } else {
8031 $selecionado.prop("checked", false);
8032 }
8033});
8034 function enviarRegistroInteresse(){
8035
8036 if (!Liferay.ThemeDisplay.isSignedIn()) {
8037 //Sem o cookie refaz o login
8038 $('#modal-registro-interesse').addClass('d-none');
8039 $('body').removeClass('overflow-hidden');
8040 $('#modal-login').removeClass('d-none');
8041 sspRequireAuthentication('#btn-aviso-novas-turmas');
8042 return;
8043 }
8044
8045 loadingSubmitButton('#enviar-registro-interesse-btn');
8046
8047 sspGetLoggedUser().then(function(user) {
8048
8049 var codigoUsr = (user && user.codPessoa) ? user.codPessoa : null;
8050
8051 if (codigoUsr == null) {
8052 console.log('Campo personalizado codPessoa não encontrado no usuário logado.', user);
8053 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
8054 $('#modal-registro-interesse-erro').removeClass('d-none');
8055 return;
8056 }
8057
8058 var codigoFT = $('[name="codigoFT"]').val();
8059
8060 var unidades = new Set();
8061
8062 var diasSemana = '';
8063
8064 //Senac ao vivo nao tem opçao de dias da semana nem unidades
8065 if(isAoVivo){
8066 unidades.add(codUnidadeSenacAoVivo);
8067 }else{
8068 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
8069 if($(this).hasClass('ssp-week-day-active')){
8070 diasSemana += $(this).text()+',';
8071 }
8072 });
8073
8074 if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1);
8075
8076 $.each($('.ssp-card-registro-interesse__select'), function(k,item){
8077
8078 unidades.add(item.value);
8079 });
8080 }
8081
8082
8083 var periodos = '';
8084
8085 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
8086 if($(this).is(':checked')){
8087 periodos += $(this).val()+',';
8088 }
8089 });
8090
8091 var turmas = '';
8092
8093 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) {
8094 if ($(this).is(':checked')) {
8095 turmas += $(this).val() + ',';
8096 }
8097 });
8098
8099 if (periodos.length > 0) periodos = periodos.slice(0, -1);
8100 if (turmas.length > 0) turmas = turmas.slice(0, -1);
8101
8102 var usuarioNotificado = false;
8103
8104 unidades.forEach(function(codigoUnidade) {
8105 var data = {
8106 codigoFT: codigoFT,
8107 codigo: codigoUsr,
8108 diasSemana: diasSemana,
8109 periodos: periodos,
8110 turmas, turmas,
8111 codigoUnidade: codigoUnidade,
8112 interesseBolsa: 'N',
8113 isEmed: isEmed ? 'S' : 'N'
8114 };
8115
8116 const url = urlRegistroInteresse;
8117
8118 $.ajax({
8119 url: url,
8120 method: 'POST',
8121 data: JSON.stringify(data),
8122 headers: {
8123 'Accept': 'application/json',
8124 'Content-Type': 'application/json'
8125 },
8126 }).done(
8127 function(retornoData) {
8128
8129 var retornoData = JSON.stringify(retornoData);
8130
8131 if (retornoData.length > 0) {
8132
8133 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
8134
8135 var retorno = JSON.parse(retornoData);
8136
8137 if (retorno.status == 200 || retorno.status == 201) {
8138
8139 //Evita que o usuário recebe um email para cada unidade de interesse
8140 if(usuarioNotificado) return;
8141
8142 //Mensagem de sucesso registro interesse
8143 $('#modal-registro-interesse-sucesso').removeClass('d-none');
8144
8145 var prefixUrl = themeDisplay.getLayoutRelativeURL();
8146
8147 if (prefixUrl.indexOf('staging/') > 1)
8148 prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8);
8149 else
8150 prefixUrl = HOST;
8151
8152 $('#btn-voltar-home').attr('href', prefixUrl);
8153
8154 //Busca os dados do nome do usuário logado
8155 var username = user.givenName || (user.name ? user.name.split(' ')[0] : '');
8156
8157 //Prioridade para nomeSocial
8158 if (user.socialName && user.socialName !== 'null' && user.socialName.length > 0) {
8159 username = user.socialName;
8160 }
8161
8162 username = username.replace(/['"]+/g, '');
8163
8164 var unidadesSel = getUnidadesSelecionadasRI();
8165
8166 //Disara um email para o usuário interessado
8167 var data = {
8168 emailInteressado: user.emailAddress,
8169 nomeInteressado: username,
8170 tituloCurso: $('.ssp-card-detalhe-curso__title').text(),
8171 unidades: unidadesSel.unidades,
8172 unidadesPrefix: unidadesSel.unidadesPrefix
8173 };
8174
8175 $.ajax({
8176 url: urlRegistroInteresseEmailInteressado,
8177 method: 'POST',
8178 data: JSON.stringify(data),
8179 headers: {
8180 'Accept': 'application/json',
8181 'Content-Type': 'application/json'
8182 },
8183 }).done(function(retornoData) {});
8184
8185 usuarioNotificado = true;
8186
8187 window.onclick = function(event) {
8188 $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) {
8189 if (event.target == _modal){
8190 $('#modal-registro-interesse-sucesso').addClass('d-none');
8191 $('#modal-registro-interesse').addClass('d-none');
8192 $("body").removeClass("overflow-hidden");
8193 }
8194 });
8195 }
8196
8197 } else {
8198 //Mensagem de erro registro interesse
8199 $('#modal-registro-interesse-erro').removeClass('d-none');
8200 }
8201 } else {
8202 //Mensagem de erro registro interesse
8203 $('#modal-registro-interesse-erro').removeClass('d-none');
8204 }
8205 }).fail(function(){
8206 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
8207 $('#modal-registro-interesse-erro').removeClass('d-none');
8208 });
8209 });
8210 }); // sspGetLoggedUser
8211 }
8212
8213 function verificaBtnEnviarRegistroInteresseAtivo(){
8214 var diasSemanaSelecionado = false;
8215 var periodoSelecionado = false;
8216 var turmaSelecionada = false;
8217 var politicaPrivacidadeSelecionado = false;
8218
8219
8220 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
8221 if($(this).is(':checked'))
8222 periodoSelecionado = true;
8223 });
8224
8225 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
8226 if($(this).is(':checked'))
8227 turmaSelecionada = true;
8228 });
8229
8230 if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true;
8231
8232 var ativo = true
8233
8234 //Caso tenha algum dos selects de unidade sem uma opção válida selecionada
8235 if(!isAoVivo)
8236 ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length
8237
8238 ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado;
8239
8240 if(!isAoVivo && !isEmed){
8241
8242 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
8243 if($(this).hasClass('ssp-week-day-active'))
8244 diasSemanaSelecionado = true;
8245 });
8246 ativo = ativo && diasSemanaSelecionado;
8247
8248 }
8249
8250 if(isEmed)
8251 ativo = ativo && turmaSelecionada;
8252
8253 if(ativo)
8254 $('#enviar-registro-interesse-btn').attr("disabled", false);
8255 else
8256 $('#enviar-registro-interesse-btn').attr("disabled", true);
8257 }
8258
8259 function loadPlanoCurso(){
8260
8261 const urlGetPlanoCurso = urlPlanoCurso
8262
8263 .replace('\{codigoFT\}', $('[name="codigoFT"]').val())
8264 .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val());
8265
8266 $.ajax({
8267 url:urlGetPlanoCurso,
8268 method:'get',
8269 crossDomain: true,
8270 dataType: 'html',
8271 success: function( data ) {
8272
8273
8274 //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto)
8275 $('#plano-curso').append('<br/>'+data);
8276 },
8277 error: function(data){
8278
8279 console.log('Não existe a URL do plano de curso');
8280
8281 }
8282
8283 });
8284 }
8285
8286 function checkCursoTrampolim(){
8287 return $('[name="codigoFT"]').val() == "24493";
8288 }
8289
8290 /*function verificaOfertaValida(oferta){
8291
8292 if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta'] == '')
8293 return false;
8294
8295 var atual = new Date();
8296
8297 var dataOfertaPartes = oferta['dataInicio'].split('/');
8298
8299 var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]);
8300
8301 var dataLimiteMatriculaOfertaPartes = "";
8302 var dataLimiteMatriculaOferta = "";
8303
8304 if(oferta['dtLimiteMatricula'] != ""){
8305 dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-');
8306 dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());
8307
8308 }
8309
8310
8311 //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje
8312 if(dataOferta <= atual)
8313 if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" && atual.getTime() > dataLimiteMatriculaOferta.getTime()))
8314 return false;
8315
8316 return true;
8317 }*/
8318
8319
8320 function loadServerDate(){
8321
8322 $.ajax({
8323 url:urlGetServerT,
8324 method:'get',
8325 dataType: 'json',
8326 cache: 'false',
8327 headers: {
8328 'Cache-Control': 'no-store, no-cache, max-age=0',
8329 'Expires': '0',
8330 'Pragma': 'no-cache'
8331 },
8332 success: function( data ) {
8333 todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds);
8334 startTimer();
8335 }
8336 });
8337
8338 }
8339
8340 function handleVisibilityChange() {
8341
8342 if (!document[hidden] ){
8343 restartTimer();
8344 }
8345
8346 }
8347
8348 function restartTimer(){
8349
8350 if(restartTimeout == null){
8351 loadServerDate();
8352 restartTimeout = setTimeout(function(){
8353 restartTimeout = null;
8354 }, 5000);
8355 }
8356
8357 }
8358
8359 function startTimer(){
8360
8361 var mSeconds = todayG.getTime();
8362 if(interval01 != null){
8363 clearInterval(interval01);
8364 }
8365 interval01 = setInterval(function(){
8366 todayG.setTime(todayG.getTime() + 1000);
8367 }, 1000);
8368
8369 if(interval15 != null){
8370 clearInterval(interval15);
8371 }
8372 interval15 = setInterval(function(){
8373 mSeconds = mSeconds + 15000;
8374 todayG.setTime(mSeconds);
8375 }, 15000);
8376
8377 }
8378
8379 function checkIsAoVivo(){
8380 isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp;
8381 }
8382
8383
8384 //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta
8385 function buscaProximaOferta(){
8386 //Zera variável que controla existência de ofertas com bolsa
8387 //ofertasComBolsa = false;
8388
8389 //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas
8390 if(carregouUltimaOferta)
8391 return;
8392
8393 //Fazemos o cálculo do que está sendo exibido, para verificar se existe apenas um card 'escondido'. Caso tenha apenas um, a busca deve ser executada, caso contrário não.
8394 var totalOfertasSlick = $('#turmas-container .slick-area__item').length;
8395 //Pegamos o índice da oferta do meio (central)
8396 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
8397
8398 var totalOfertasADireita = totalOfertasSlick - currentSliderIndex;
8399
8400 //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca
8401 if(totalOfertasADireita > 2)
8402 return;
8403
8404 startOfertaParam = endOfertaParam;
8405 endOfertaParam += 16;
8406
8407 const codigoFT = $('[name="codigoFT"]').val();
8408 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
8409
8410 var unidadeCategoryId = '';
8411 var unidadeCodigoSelect = '';
8412
8413 if(isAoVivo){
8414
8415 $.each(objsTela.unidades, function(k,unidade){
8416 unidadeCategoryId += unidade['categoryId']+',';
8417 });
8418
8419 //tirando ultima virgula
8420 unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1);
8421
8422 }else{
8423 var splitted = $('#unidades-ofertas').val().split("@");
8424 unidadeCategoryId = splitted[0];
8425 unidadeCodigoSelect = splitted[1];
8426 }
8427
8428 var params = new URLSearchParams();
8429 params.set('codigoFTOferta',codigoFT)
8430 params.set('dataEfetivaOferta',dataEfetivaOferta)
8431 params.set('categoryIds',unidadeCategoryId)
8432 params.set('start',startOfertaParam)
8433 params.set('end',endOfertaParam)
8434 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
8435 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
8436 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
8437
8438 if($('#chkBolsa').prop('checked')){
8439 params.set('considerarDataBolsaFutura', true)
8440 }
8441
8442 const url = urlSearchOferta + '?' + params.toString()
8443
8444 $.ajax({
8445 url:url,
8446 method:'get',
8447 dataType:'json'
8448 }).done(
8449 function(data){
8450
8451 if(data.length > 0){
8452 var indiceOferta = startOfertaParam;
8453
8454 for (var index = 0; index < data.length; index++) {
8455
8456 var ofertaJSON = data[index];
8457 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
8458
8459 //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta)
8460 if($('.codigoOferta_'+oferta.codigoOferta).length > 0){
8461 console.log('Ja tem a oferta '+oferta.codigoOferta);
8462 carregouUltimaOferta = true;
8463 break;
8464 }
8465
8466 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
8467 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
8468
8469 ofertasMap.set(oferta.codigoOferta, oferta);
8470
8471 if(isAoVivo)
8472 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
8473
8474 //O indice é igual ao ultimo elemento buscado - 1
8475 var i = indiceOferta;
8476 oferta['indice'] = i;
8477
8478 if(isAoVivo)
8479 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
8480 else codigoUnidade = unidadeCodigoSelect;
8481
8482
8483 montaHTMLOferta(oferta, i, codigoUnidade, true);
8484 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
8485
8486 montaHTMLModalLocalRealizacao(oferta, i);
8487 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
8488 verificaBotaoBolsaSS(oferta);
8489 verificaCursoAprendizagem(i, oferta.codigoOferta);
8490 verificaCursoTrampolim(i);
8491
8492 associaEventoBtnFormaPagamento(i);
8493 associaEventoBtnComprar(i);
8494 associaEventoBtnComprarDentroFormaPgto(i);
8495 associaEventoBtnLocalRealizacao(i);
8496 associaEventosFecharModal(i);
8497
8498 if($('[name="tipoCurso"]').val() == 'extensao'){
8499 associaEventoBtnConheca(i);
8500 associaEventoBtnComprarConhecaDescontoOk(i);
8501 associaEventoBtnComprarConhecaDescontoNot(i);
8502 associaEventoBtnAlunoNao(i);
8503 associaEventoBtnAlunoSim(i);
8504
8505 }
8506
8507 indiceOferta++;
8508 }
8509
8510 controlaPaginaBolsa();
8511 }
8512 }
8513 );
8514
8515 }
8516
8517 function setUrlParam(key, value) {
8518 const url = new URL(window.location.href)
8519
8520 if(value)
8521 url.searchParams.set(key, value);
8522 else
8523 url.searchParams.delete(key);
8524
8525 window.history.pushState({}, '', url.toString())
8526 }
8527
8528 function selectFilter(paramkey, el) {
8529 setUrlParam(paramkey, el.prop("checked"))
8530 const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url')
8531 loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val())
8532
8533 if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show()
8534 else $('#msgFiltroAplicado').hide()
8535 }
8536
8537 function defineCurrentUrl(ev) {
8538 const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url')
8539
8540 const hasPathWeb = window.location.pathname.includes('/web')
8541 const hasPathGuest = window.location.pathname.includes('/guest')
8542
8543 let currentPath = window.location.pathname
8544 currentPath = hasPathWeb ? currentPath.substring(4) : currentPath
8545 currentPath = hasPathGuest ? currentPath.substring(6) : currentPath
8546
8547 objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, ''))
8548
8549 currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath
8550 currentPath = hasPathGuest ? '/guest' + currentPath : currentPath
8551 currentPath = hasPathWeb ? '/web' + currentPath : currentPath
8552
8553 if(keepURL())
8554 window.history.replaceState(window.history.state, '', currentPath + window.location.search)
8555 }
8556
8557 let isKeepURL = true
8558 /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */
8559 function keepURL() {
8560 const aux = isKeepURL
8561 isKeepURL = false
8562 return !aux
8563 }
8564
8565 loadServerDate();
8566 $(document).ready(function(){
8567
8568 if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){
8569 document.location.href = '/erro-404'
8570 }
8571
8572 ehCursoTrampolim = checkCursoTrampolim();
8573 checkIsAoVivo();
8574 loadPlanoCurso();
8575 loadCursosVocePodeGostar();
8576 loadPoliticaPrivacidade();
8577
8578 if(!isAoVivo) {
8579 $('#unidades-ofertas').change(ev => {
8580 mudarUnidade(ev)
8581 defineCurrentUrl(ev)
8582 });
8583 }
8584
8585 const urlParams = new URLSearchParams(window.location.search)
8586 $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true')
8587 $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) )
8588
8589 if($('#chkBolsa').length) {
8590 $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true')
8591 $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) )
8592 loadUnidades(!isAoVivo);
8593 } else {
8594 selectFilter('bolsa', $('#chkBolsa'))
8595 }
8596
8597 //Função para Montar breadcrumb Mobile
8598
8599 function breadcrumbMobile(){
8600
8601 const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');
8602
8603 if ( $.trim(linkEl.html()) === 'Técnico'){
8604
8605 linkEl.attr("href", "/cursos-tecnicos");
8606
8607 } else if ( $.trim(linkEl.html()) === 'Livre'){
8608
8609 if(isAoVivo){
8610 linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo')
8611 linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo");
8612 }else{
8613 linkEl.attr("href", "/cursos-livres");
8614 }
8615 } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){
8616
8617 linkEl.attr("href", "/jovem-aprendiz");
8618
8619 }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){
8620
8621 linkEl.attr("href", "/extensao-universitaria");
8622
8623 }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){
8624
8625 linkEl.attr("href", "/ensino-medio-tecnico");
8626 }
8627
8628 }
8629
8630 breadcrumbMobile()
8631
8632 //Esconde elementos quando o curso é aprendizagem
8633 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
8634 $('.ssp-section-novas-turmas').remove();
8635 $("div[class^='botoes-oferta-container_']").remove();
8636 }
8637
8638 //retira os itens de dentro do container
8639 $('.bg-').css('background-color','#e4e4e4')
8640 $('.container.py-3').removeClass('container py-3')
8641 //ajuste para versao 7.4
8642 $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass()
8643
8644
8645 //Fecha modal registro de interesse
8646
8647 $('#btn-close-Modal-registro-interesse').click(function(){
8648
8649 $('#modal-registro-interesse').addClass('d-none')
8650 $("body").removeClass("overflow-hidden")
8651
8652 })
8653
8654 $( "#modal-registro-interesse" ).click( function(event) {
8655
8656 if(event.target.id==$('#modal-registro-interesse')[0].id){
8657 $(this).addClass('d-none')
8658 }
8659
8660 });
8661
8662
8663 //Aviso sobre interesse em turmas
8664 $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse);
8665 if(!isEmed){
8666 $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas);
8667 $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias);
8668 } else {
8669 $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas)
8670 }
8671 $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos);
8672
8673 $('#btnLogin').click(function(){
8674
8675 login()
8676
8677 });
8678
8679 $('#btn-close-loginModal').click(function(){
8680 $('#modal-login').addClass('d-none')
8681 });
8682
8683 $('.ssp-week-day').not('#todosDias').click(function(){
8684
8685 $(this).toggleClass('ssp-week-day-active');
8686 verificaBtnEnviarRegistroInteresseAtivo();
8687
8688 });
8689
8690 $('#add-unidade-regsitro-interesse').click(function(e){
8691 var element = $('.ssp-card-registro-interesse__select.unidades').first().clone();
8692 element.empty();
8693 element.append('<option value="" disabled selected>Selecione uma unidade</option>')
8694 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8695
8696 if(!unidade['selecionado']){
8697 element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
8698 }
8699
8700 });
8701 element.change(changeSelectUnidades)
8702
8703
8704 element.css('margin-top', '10px');
8705
8706 if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
8707 element.attr("id", "select_" + cntSelectUnidades++)
8708 $('#select-unidades-registro-interesse').append(element);
8709 }
8710
8711 if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){
8712 $('#add-unidade-regsitro-interesse').addClass("d-none")
8713 }
8714
8715 verificaBtnEnviarRegistroInteresseAtivo();
8716 });
8717
8718 $('#remove-unidade-regsitro-interesse').click(function(e){
8719
8720 if($('.ssp-card-registro-interesse__select').length > 1){
8721
8722 var element = $('.ssp-card-registro-interesse__select').last();
8723
8724 var valueSelecionado = element.val();
8725
8726 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8727
8728 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
8729 unidade['selecionado'] = false;
8730 unidade['selectSelecionado'] = "";
8731 }
8732
8733 });
8734 element.val("");
8735 cntSelectUnidades--;
8736 element.change()
8737
8738 element.remove();
8739 }
8740
8741 if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
8742 $('#add-unidade-regsitro-interesse').removeClass("d-none")
8743 }
8744
8745 verificaBtnEnviarRegistroInteresseAtivo();
8746 })
8747
8748 $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){
8749 verificaBtnEnviarRegistroInteresseAtivo();
8750 });
8751
8752 //Contador em ofertas de bolsas proximas
8753 var cancel = setInterval(atualizaTempoAberturasBolsas, 1000);
8754
8755 // Manipua o breadcrumb para as regras do Senac
8756
8757 if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai")
8758 $('ol.breadcrumb').find('li:first').remove();
8759
8760 var li = $('ol.breadcrumb').find('li:first');
8761
8762 if(li.text().trim() == 'Cursos'){
8763
8764 var primeiro = li.clone();
8765 primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home'));
8766 li.parent().prepend(primeiro);
8767
8768 var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim();
8769 var tipoBreadcrumb = '';
8770
8771 const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead"))
8772
8773 if(tipoCurso.includes("Cursos Livres")){
8774 if(isPresencialEad) {
8775 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso);
8776 } else {
8777 tipoBreadcrumb = htmlBreadcrumb(
8778 isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',
8779 isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso);
8780 }
8781 }else if(tipoCurso.includes("Extensão")){
8782 if(isPresencialEad) {
8783 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso);
8784 } else {
8785 tipoBreadcrumb = htmlBreadcrumb('/extensao-universitaria', tipoCurso);
8786 }
8787 }else if(tipoCurso.includes("Ensino Médio Técnico")){
8788 if(isPresencialEad) {
8789 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso);
8790 } else {
8791 tipoBreadcrumb = htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso);
8792 }
8793 }else if(tipoCurso.includes("Jovem Aprendiz")){
8794 if(isPresencialEad) {
8795 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso);
8796 } else {
8797 tipoBreadcrumb = htmlBreadcrumb('/jovem-aprendiz', tipoCurso);
8798 }
8799 }else{
8800 if(isPresencialEad) {
8801 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso);
8802 } else {
8803 tipoBreadcrumb = htmlBreadcrumb('/cursos-tecnicos', tipoCurso);
8804 }
8805 }
8806
8807 li.html(tipoBreadcrumb);
8808
8809 if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove();
8810
8811 }
8812
8813 $('#turmas-container').on('click', 'a.slick-next', function(e){
8814
8815 e.preventDefault();
8816 buscaProximaOferta();
8817
8818 });
8819
8820 $('#turmas-container').on('click', 'button.slick-dots', function(){
8821
8822
8823
8824 });
8825
8826 $(".next-mobile").on("click",function(e){
8827 e.preventDefault();
8828
8829 acoesMobileSliderOfertas("left");
8830 });
8831
8832 $(".prev-mobile").on("click",function(e){
8833 e.preventDefault();
8834
8835 acoesMobileSliderOfertas("right");
8836 });
8837
8838 //ação de drag do card de ofertas no mobile
8839 $('.oferta-slick-area').on('swipe', function(event, slick, direction){
8840 acoesMobileSliderOfertas(direction);
8841 });
8842
8843 loadAlternadores()
8844 let modalFormAprendizagem = document.querySelector('#modal-form');
8845 if(modalFormAprendizagem){
8846 // Create dinamic close buttom form
8847 let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]');
8848 btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem);
8849
8850 }
8851
8852 $(".oferta-slick-area").on("click", ".btnModalAprendizagem",openModalFormAprendizagem);
8853
8854 });
8855
8856 function htmlBreadcrumb(link, title, display){
8857
8858 return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>';
8859
8860 }
8861
8862 function acoesMobileSliderOfertas(direcao){
8863
8864 if(direcao == "right"){
8865 $("a.slick-prev").click();
8866
8867 if($('.slick-current').attr('data-slick-index') == "0")
8868 $('.prev-mobile').addClass('nextPrevOpacity');
8869
8870 if($(".next-mobile").hasClass('nextPrevOpacity'))
8871 $('.next-mobile').removeClass('nextPrevOpacity');
8872 }
8873
8874
8875 if(direcao == "left"){
8876 $("a.slick-next").click();
8877
8878 if($(".prev-mobile").hasClass('nextPrevOpacity'))
8879 $('.prev-mobile').removeClass('nextPrevOpacity');
8880
8881 if(carregouUltimaOferta){
8882 var totalCardOfertas = $('#turmas-container .slick-area__item').length;
8883 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
8884
8885 //o card do meio é o último
8886 if(totalCardOfertas == (currentSliderIndex + 1))
8887 $('.next-mobile').addClass('nextPrevOpacity');
8888 }
8889 }
8890 }
8891
8892 //habilitar/desabilitar registro de interesse
8893 function habilitarRegistroInteresse(habilitar){
8894 var sectionRI = $('#section-registro-interesse')
8895
8896 if(isEmed) {
8897 sectionRI.hide()
8898 return;
8899 }
8900
8901 //Redmine #9309 - sempre irá mostrar
8902 habilitar = true
8903
8904 if(habilitar) sectionRI.show()
8905 else sectionRI.hide()
8906 }
8907
8908 function abrirModalRegistroInteresse(codUnidadeSelect){
8909 $('#modal-registro-interesse').removeClass('d-none');
8910 $("body").addClass("overflow-hidden")
8911 if(!isEmed){
8912 $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text());
8913 } else {
8914 $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar")
8915 $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text());
8916 }
8917
8918 $('.ssp-card-registro-interesse__select:not(#select_0)').remove();
8919 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8920 if(unidade['codigoUnidade'] == codUnidadeSelect){
8921 unidade['selecionado'] = true;
8922 unidade['selectSelecionado'] = 'select_0';
8923 } else {
8924 unidade['selecionado'] = false;
8925 unidade['selectSelecionado'] = "";
8926 }
8927
8928 });
8929 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
8930 return ordenar(a, b, 'nome');
8931 });
8932
8933 $('#select_0').empty();
8934 $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>')
8935 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8936
8937 $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
8938
8939 });
8940 $('#select_0').val(codUnidadeSelect);
8941
8942 if(isAoVivo){
8943 $('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none');
8944 }
8945 if(objsTela.unidadesRegistroInteresse.length > 1) {
8946 $('#add-unidade-regsitro-interesse').removeClass("d-none")
8947 $('#add-unidade-regsitro-interesse').show()
8948 $('#remove-unidade-regsitro-interesse').show()
8949 } else {
8950 $('#add-unidade-regsitro-interesse').hide()
8951 $('#remove-unidade-regsitro-interesse').hide()
8952 }
8953 }
8954
8955 $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades)
8956
8957 function changeSelectUnidades() {
8958 var codUnidadeSelecionada = $(this).val();
8959 var idSelectSelecionado = $(this).attr('id')
8960 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8961 if(unidade['codigoUnidade'] == codUnidadeSelecionada){
8962 unidade['selecionado'] = true;
8963 unidade['selectSelecionado'] = idSelectSelecionado;
8964 } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){
8965 unidade['selecionado'] = false;
8966 unidade['selectSelecionado'] = "";
8967 }
8968
8969 });
8970
8971 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
8972 return ordenar(a, b, 'nome');
8973 });
8974
8975 $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() {
8976 var valueSelecionado = $(this).val();
8977 var idActualSelect = $(this).attr('id');
8978 $(this).empty();
8979 $(this).append('<option value="" disabled>Selecione uma unidade</option>')
8980 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
8981
8982 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
8983 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
8984 }else if(!unidade['selecionado']){
8985 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
8986 }
8987
8988 });
8989 $(this).val(valueSelecionado)
8990 });
8991
8992 verificaBtnEnviarRegistroInteresseAtivo();
8993 }
8994
8995
8996 function ordenar(objA, objB, nomeAtributo){
8997 let a = (nomeAtributo) ? objA[nomeAtributo] : objA;
8998 let b = (nomeAtributo) ? objB[nomeAtributo] : objB;
8999
9000 return a.toString().localeCompare(b.toString());
9001 }
9002
9003 function paramOrdem(xml){
9004 if(isEmed){
9005 var ordemPeriodo = ['MA', 'TA', 'NO'];
9006 return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo);
9007 }else{
9008 return xml.find('[name="dataInicioOferta"]').text();
9009 }
9010 }
9011
9012 function getEtapaSelecionadaEmed(){
9013 var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo');
9014 if(!btnEtapa) return '';
9015 return btnEtapa.val();
9016 }
9017
9018 function filtraOfertasEtapa(etapa, ofertas){
9019 if(!etapa) return [];
9020 var ofertasEtapa = [];
9021 var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
9022 var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'};
9023 var ultimoPeriodo = null, indexPeriodo;
9024 ofertas = ofertas.sort(function(a, b){
9025 return ordenar(a, b, 'periodoDiaOferta');
9026 });
9027
9028 $.each(ofertas, async (index, oferta)=> {
9029 if(oferta['etapa'] == etapa){
9030 if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0;
9031 ultimoPeriodo = oferta['periodoDiaOferta'];
9032 oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || '');
9033 ofertasEtapa.push(oferta);
9034 }
9035 });
9036
9037 return ofertasEtapa;
9038 }
9039
9040 function formatarDataEmed(data, etapa, isDataFim){
9041
9042 try{
9043
9044 var splitdata = data.split('/');
9045 var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
9046 var mes = meses[parseInt(splitdata[1])-1];
9047
9048 var ano = splitdata[2];
9049
9050 if(isDataFim){
9051 ano = parseInt(splitdata[2]);
9052 }
9053
9054 return mes + '/' + ano;
9055 }catch(err){
9056 return data;
9057 }
9058
9059 }
9060
9061 //EMED Mobile
9062 function sliderOfertasEmed(){
9063
9064 var tamScreen = $(window).width();
9065 if(tamScreen < 1024){
9066 $('.ssp-slick-ofertas-emed').slick({
9067 slidesToShow: 1,
9068 slidesToScroll: 1,
9069 dots: false,
9070 infinite: false,
9071 adaptiveHeight: true,
9072 prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>',
9073 nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>',
9074 responsive: [
9075
9076 {
9077 breakpoint: 1200,
9078 settings: {
9079 slidesToShow: 1,
9080 slidesToScroll: 1,
9081 prevArrow: '<button class="btn slick-prev ssp-slider-control-mobile__item-prev"><i class="fal fa-chevron-left mr-1"></i><span>Anterior</span></button>',
9082 nextArrow: '<button class="btn slick-next ssp-slider-control-mobile__item-next"><span>Próximo</span><i class="fal fa-chevron-right ml-1"></i></button>',
9083
9084 }
9085 },
9086 {
9087 breakpoint: 768,
9088 settings: {
9089 slidesToShow: 1,
9090 slidesToScroll: 1,
9091 prevArrow: '<button class="btn slick-prev ssp-slider-control-mobile__item-prev"><i class="fal fa-chevron-left mr-1"></i><span>Anterior</span></button>',
9092 nextArrow: '<button class="btn slick-next ssp-slider-control-mobile__item-next"><span>Próximo</span><i class="fal fa-chevron-right ml-1"></i></button>',
9093 }
9094 }
9095
9096 ]
9097
9098 });
9099
9100 }
9101
9102 }
9103
9104function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){
9105
9106 let backpackPostRequest = {};
9107 backpackPostRequest.codOferta = codOferta;
9108 backpackPostRequest.codUnidade = codUnidade;
9109 backpackPostRequest.dt_efetiva = dataEfetiva;
9110
9111
9112 mochila.requestAccess(function(backpackPostRequest){
9113
9114 let urlMochila = '/o/senac-backpack-services/backpack';
9115
9116 if(getCookie("codMochila") != null){
9117 backpackPostRequest.codMochila = getCookie("codMochila");
9118 urlMochila = '/o/senac-backpack-services/updateBackpack';
9119 }
9120 $.ajax({
9121 type: 'POST',
9122 url: urlMochila,
9123 headers: {
9124 "Content-Type":"application/json"
9125 },
9126 beforeSend: function(xhr){
9127 xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila"));
9128 loadingSubmitButton(originElemSelector);
9129 $(originElemSelector + ' .loading-icon-button').css('height', 'unset');
9130 if($(window).width() < 1024){
9131 $(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%');
9132 }
9133 },
9134 data : JSON.stringify(backpackPostRequest)
9135 }).done(function(data) {
9136
9137 let domain = '';
9138 if(getAmbiente() == 'hom' || getAmbiente() == 'prod')
9139 domain = '.sp.senac.br';
9140
9141 writeCookie(
9142 'codMochila',
9143 (getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,
9144 24,
9145 domain
9146 );
9147 addItemSuccessMochila();
9148
9149 }).fail(function(xhr, status, error) {
9150
9151 $('#modal-backpack-error').removeClass('d-none');
9152
9153 }).always(function(){
9154
9155 cleanLoadingSubmitButton(
9156 originElemSelector,
9157 originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR'
9158 );
9159 $('[id^="modalAntesCompra_"]').each(function(index, modal) {
9160 modal.style.display = "none";
9161 });
9162
9163 });
9164
9165 }, backpackPostRequest);
9166
9167}
9168
9169function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){
9170
9171 var comp = null;
9172
9173 if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2" && !excecaoCursoGratuito(oferta)){
9174
9175 comp = $("<button>")
9176 .addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack")
9177 .attr("offerCode",oferta.codigoOferta)
9178 .attr("unitCode",codigoUnidade)
9179 .attr("effectiveDate",dataEfetiva)
9180 .text("OK, desejo comprar");
9181
9182 }else {
9183 var textoBotaoConfirmacao = "OK, desejo comprar";
9184
9185 if(excecaoCursoGratuito(oferta))
9186 textoBotaoConfirmacao = "Ok, desejo fazer a matrícula";
9187
9188 comp = $("<a>")
9189 .addClass("btn btn-lg btn-success w-100 mt-3")
9190 .text(textoBotaoConfirmacao)
9191 .attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta))
9192 .attr("target","_blank");
9193 }
9194
9195 comp.attr('id', 'btnCompraLocal_' + oferta.indice);
9196
9197 return comp[0].outerHTML;
9198
9199}
9200
9201function getUnidadesSelecionadasRI(){
9202 var unidadesRI = [];
9203
9204 try{
9205
9206 $('#select-unidades-registro-interesse').find('select').each((i,select) =>{
9207 var unidadeSel = select.selectedOptions[0].innerText;
9208 if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel);
9209 });
9210
9211 var unidadesExt = unidadesRI.join(', ');
9212
9213 const lastIndex = unidadesExt.lastIndexOf(',');
9214
9215 if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1);
9216
9217 return {
9218 'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')),
9219 'unidades' : unidadesExt
9220 };
9221
9222 }catch(err){
9223
9224 return {
9225 'unidadesPrefix' : '',
9226 'unidades' : ''
9227 };
9228
9229 }
9230
9231 }
9232
9233
9234
9235
9236function addItemSuccessMochila(){
9237
9238 mochila.check();
9239 $('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text());
9240 $('#modal-backpack-success').removeClass('d-none');
9241
9242}
9243
9244$(document).on('click', '.btn-backpack', function(e){
9245
9246 addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate"));
9247
9248});
9249
9250$('#btn-voltar-modal-backpack-error').click(function () {
9251 $('#modal-backpack-error').addClass('d-none');
9252});
9253
9254$('#btn-voltar-modal-backpack-error').click(function () {
9255 $('#modal-backpack-error').addClass('d-none');
9256});
9257
9258$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () {
9259 $('#modal-backpack-success').addClass('d-none');
9260});
9261
9262$('.btn-mochila-finalizar-compra-success').click(function () {
9263 // Montar object push - google tag manager - 6
9264 sendEventEcommerce("begin_checkout", ofertaSelecionada);
9265
9266 mochila.verificaLogin();
9267 $('#modal-backpack-success').addClass('d-none');
9268 $('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none");
9269});
9270
9271 function closeModalFormAprendizagem(){
9272 let modal = document.querySelector('#modal-form');
9273 modal.close();
9274 }
9275
9276
9277 function openModalFormAprendizagem(ev){
9278
9279 const $container = document.getElementById('modal-form');
9280 if(!$container || !$container.nodeName == 'DIALOG') return;
9281
9282 const ofertaSel = ofertasMap.get(ev.target.getAttribute('data-codigo-oferta'));
9283
9284 function getUnidadeSelecionada() {
9285 const categoryUnidade = $('#unidades-ofertas').val().split('@')[0];
9286 return objsTela.unidades.find(u => u.categoryId == categoryUnidade) || {};
9287 }
9288
9289 async function request(url, { method = 'GET', headers = {}, body, beforeSend } = {}) {
9290 const init = { method, headers, body, credentials: 'same-origin' };
9291 const resp = await fetch(url, init);
9292 if (!resp.ok) throw new Error('Erro status ' + resp.status);
9293 return resp.text();
9294 }
9295
9296 async function loadHTMLForm () {
9297
9298 if($container.querySelectorAll('form').length) {
9299 FormControl.changeCursoInfo(ofertaSel, getUnidadeSelecionada());
9300 return;
9301 }
9302
9303 const url = Liferay.ThemeDisplay.getPortalURL().concat('/documents/d/global/html-formulario-aprendizagem');
9304
9305 const formHTML = await request(url);
9306
9307 $container.innerHTML += formHTML;
9308
9309 let script = document.createElement('script');
9310 script.src = '/documents/d/global/js-aprendizagem-formulario';
9311 script.async = true;
9312
9313 script.onload = () => {
9314 console.log(`script loaded successfully.`);
9315 init(ofertaSel, getUnidadeSelecionada());
9316 };
9317
9318 script.onerror = () => {
9319 console.error(`Error loading script`);
9320 };
9321
9322 document.head.appendChild(script);
9323
9324 }
9325
9326 loadHTMLForm();
9327
9328 $container.showModal();
9329
9330 }
9331
9332 function addEventBolsa() {
9333 // Mostra o preco
9334 const btnShowPrices = document.querySelectorAll('.btn-show-price')
9335
9336 btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard))
9337
9338 if(!$('#chkBolsa').prop('checked'))
9339 togglePriceCard()
9340 }
9341
9342 function togglePriceCard(selector){
9343 if(selector instanceof PointerEvent) return
9344
9345 if(!selector) selector = ''
9346 else selector = '.' + selector
9347
9348 const btnPrices = document.querySelectorAll('.show-price-content'+selector)
9349 const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector)
9350 const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector)
9351
9352 btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide'))
9353 contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show'))
9354 contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))
9355 }
9356
9357 function getRegiaoName(key) {
9358 switch (key) {
9359 case "C":
9360 return "Capital";
9361 case "I":
9362 return "Interior";
9363 case "GS":
9364 return "Grande São Paulo e Litoral";
9365 default:
9366 return "Sem Região";
9367 }
9368 }
9369
9370 function criarOptionUnidadesPorRegiao(unidades) {
9371 let regioes = {}
9372 let unidadeFounded
9373
9374 unidades.forEach(unidade => {
9375 if(!regioes[unidade.codRegiaoUnidade || 'N'])
9376 regioes[unidade.codRegiaoUnidade || 'N'] = []
9377
9378 regioes[unidade.codRegiaoUnidade || 'N'].push(unidade)
9379 })
9380
9381 Array.from(['C', 'I', 'GS', 'N'])
9382 .filter(key => Object.keys(regioes).includes(key))
9383 .forEach(key => {
9384 const unidadesDaRegiao = regioes[key]
9385
9386 const optionDisabled = $('<option>')
9387 optionDisabled.attr('label', getRegiaoName(key))
9388 optionDisabled.text(getRegiaoName(key));
9389 optionDisabled.attr('disabled', true)
9390 optionDisabled.addClass('ssp-option-group')
9391 $('#unidades-ofertas').append(optionDisabled)
9392
9393 $.each(unidadesDaRegiao, function(k,unidade){
9394 if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){
9395 var option = $('<option>');
9396 option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']);
9397 option.text(unidade['nome']);
9398 option.attr('data-unidade-friendly-url', unidade.friendlyURL)
9399 option.addClass('ssp-option')
9400
9401 $('#unidades-ofertas').append(option);
9402
9403 unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded
9404 }
9405 })
9406 })
9407
9408 return unidadeFounded
9409 }
9410
9411 function getURLData() {
9412 return URLGeral.replace(HOST, '')
9413 }
9414
9415 /**
9416 * Copia um objeto JSON
9417 */
9418 function cloneObj(original) {
9419 return JSON.parse(JSON.stringify(original));
9420 }
9421
9422 function getUrlConsultaBolsa(oferta){
9423
9424 let url = '';
9425 if (isAmbienteTeste()) {
9426 if(oferta.destinoBolsa=='1') {
9427 url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
9428 } else {
9429 url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
9430 }
9431 } else {
9432 if(oferta.destinoBolsa=='1') {
9433 url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
9434 } else {
9435 url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
9436 }
9437
9438 }
9439
9440 return url;
9441 }
9442
9443 function execCompraEmed(oferta){
9444 let linkInscricaoEmed = '', linkInscricaoEmedHml = '';
9445 if(oferta.etapa == '0010'){
9446 linkInscricaoEmed = 'https://autenticacao.sp.senac.br/auth/realms/institucional/protocol/openid-connect/auth?response_type=code&client_id=inscricao-educacional-ms&redirect_uri=https%3A%2F%2Finscricao-educacional-ms.sp.senac.br%2F%3Foferta%3D{codOferta}&scope=openid&grant_type=authorization_code';
9447 linkInscricaoEmedHml = 'https://hautenticacao.sp.senac.br/auth/realms/institucional/protocol/openid-connect/auth?response_type=code&client_id=hinscricao-educacional-backend&redirect_uri=https%3A%2F%2Fhinscricao-educacional-backend.sp.senac.br%2F%3Foferta%3D{codOferta}&scope=openid&grant_type=authorization_code';
9448 }
9449
9450 var ambTeste = ['localhost', 'hom', 'dev'];
9451 var link = linkInscricaoEmed;
9452 $.each(ambTeste, function(i, a){
9453 if(location.hostname.indexOf(a) >= 0){
9454 link = linkInscricaoEmedHml;
9455 return false;
9456 }
9457 });
9458
9459 // Montar object push - google tag manager - 3
9460 ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta)
9461 sendEventEcommerce("select_item", ofertaSelecionada);
9462 sendEventEcommerce("view_item", ofertaSelecionada);
9463 sendEventEcommerce("add_to_cart", ofertaSelecionada);
9464 sendEventEcommerce("begin_checkout", ofertaSelecionada);
9465
9466 var urlCompra = link.replace('\{codOferta\}', oferta.codigoOferta);
9467 window.open(urlCompra, '_blank');
9468 }
9469
9470 function formataDataComBarra(dataInvertidaComTraco){
9471 return dataInvertidaComTraco.split('-').reverse().join('/');
9472 }
9473
9474
9475 let ctrlPressed = false;
9476 $(window).keydown(function (ev) {
9477 if(ev.which == 17){
9478 ctrlPressed = true;
9479 return false;
9480 }
9481 if(ev.which == 82 && ctrlPressed){
9482 return false;
9483 }
9484 return (ev.which != 116); // F5
9485 }).keyup(function(ev) {
9486 if (ev.which == 17){
9487 ctrlPressed = false;
9488 }
9489 return true;
9490 });
9491
9492
9493 </script>
9494
9495</#if>