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