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