Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> isEMED [in template "20102#20129#438394" at line 4068, 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 4068, 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.ssp-card-modal-forma-pagamento__icon-boleto-e-cartao{
1916 font-size: 18px!important;
1917 margin-right: 15px!important;
1918}
1919
1920
1921.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{
1922 color:#454F63;
1923 font-size: 14px;
1924 font-weight: 400;
1925}
1926
1927.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content {
1928 padding-bottom: 0;
1929}
1930
1931 /* local realizacao */
1932
1933 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title {
1934 font-size: 13px;
1935 color: #00488C;
1936 font-weight: 600;
1937 text-decoration: none!important;
1938 border: 1px solid #00488C;
1939 padding: 11px 14px;
1940 transition:.3s;
1941 border-radius: 4px;
1942 display: flex;
1943 gap: 5px;
1944 align-items: center;
1945 }
1946
1947 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover {
1948 color: white;
1949 font-weight: 600!important;
1950 background: #08488C;
1951 }
1952
1953 .container-local-realizacao {
1954 padding:0;
1955 border:0;
1956 border-radius: unset;
1957 width: 100%;
1958 margin: 10px 0 0 0;
1959 box-shadow: none;
1960 display: flex;
1961 justify-content:center;
1962 align-items: flex-end;
1963 }
1964
1965 .icon-local-realizacao{
1966 color: #00488C;
1967 font-size: 13px;
1968 }
1969
1970
1971 @media only screen and (max-width: 768px){
1972
1973 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1974 font-size: 16px;
1975 }
1976
1977 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item {
1978 font-size: 14px!important;
1979 }
1980
1981 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{
1982 font-size: 15px;
1983 }
1984
1985 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento {
1986 font-size: 33px;
1987 }
1988
1989 .icon-local-realizacao {
1990 font-size: 12px;
1991 }
1992
1993 .modal-extensao_txteconomiza {
1994 font-size: 12px;
1995 }
1996
1997 .content-valores-descontos {
1998 padding-bottom: 8px!important;
1999 }
2000
2001 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
2002 font-size: 14px!important;
2003 }
2004
2005
2006 }
2007
2008
2009
2010
2011/* final ajustes no card existente */
2012
2013
2014/* Novos elementos */
2015
2016.content-data-dias{
2017 padding:20px;
2018 padding-top:0;
2019 border-bottom: none !important;
2020}
2021
2022.content-valores-descontos{
2023 padding:20px 0 0 0;
2024 opacity: 1;
2025 height:auto;
2026 transition: 0.3s;
2027 overflow: hidden;
2028 border-top: 1px #E4E8F0 solid;
2029}
2030
2031.content-valores-descontos.hide-price{
2032
2033 padding:0;
2034 opacity: 0;
2035 height:0;
2036
2037}
2038
2039.content-btn-bolsa{
2040
2041 border-top: 1px #E4E8F0 solid;
2042 padding-top:20px;
2043
2044}
2045
2046.content-btn-bolsa.modifier-content-show{
2047
2048 padding-bottom: 20px;
2049
2050}
2051
2052.content-btn-bolsa.modifier-content-show .ou-separator-desconto{
2053 display:none;
2054}
2055
2056.content-btn-bolsa.modifier-content-show .btn-show-price{
2057 display:none;
2058}
2059
2060.content-buttons{
2061
2062 padding:20px 0 0 0;
2063
2064}
2065
2066.block-valor-desconto{
2067
2068 background-color:#F2F6FF;
2069 padding: 30px 10px 15px 10px;
2070 border-radius:12px;
2071 position: relative;
2072
2073}
2074
2075.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2076 font-size: 18px;
2077}
2078
2079.block-valor-total{
2080
2081 background-color:#F2F6FF;
2082 padding:15px 10px;
2083 border-radius:12px;
2084 position: relative;
2085
2086}
2087
2088.block-valor-total .ssp-card-oferta-curso__title-item{
2089 font-size: 16px!important;
2090 color: #454F63!important;
2091 font-weight:500!important;
2092}
2093
2094.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{
2095 font-size:22px;
2096}
2097
2098.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{
2099 font-size:11px;
2100}
2101
2102.block-valor-total .ssp-card-oferta-curso__desconto-content p{
2103 font-size:14px;
2104 font-weight: 500;
2105}
2106
2107.tag-label-desconto{
2108
2109background-color:#B6FDCF;
2110border-radius: 15px;
2111padding:5px;
2112margin: -50px 20px 10px 20px;
2113
2114}
2115
2116.tag-label-desconto span, .tag-label-desconto small{
2117font-size: 16px!important;
2118font-weight: bold!important;
2119color: #454F63!important;
2120}
2121
2122
2123
2124.ou-separator-desconto{
2125 font-size: 16px;
2126 color: #454F63;
2127 font-weight: bold;
2128 display:flex;
2129 flex-wrap: nowrap;
2130 align-items: center;
2131 justify-content:space-between;
2132 gap: 15px;
2133 padding:20px 0;
2134}
2135
2136.ou-separator-desconto::after{
2137 content: "";
2138 height:2px;
2139 background-color:#E4E8F0;
2140 width: 100%;
2141 display: block;
2142}
2143
2144.ou-separator-desconto::before{
2145 content: "";
2146 height:2px;
2147 background-color:#E4E8F0;
2148 width: 100%;
2149 display: block;
2150}
2151
2152.btn-show-price{
2153
2154 background: unset;
2155 border: 0;
2156 font-size: 14px!important;
2157 color: #454F63!important;
2158
2159}
2160
2161.btn-show-price p{
2162 margin: 0 !important;
2163}
2164
2165.btn-show-price span{
2166 text-decoration: underline;
2167 font-weight: bold;
2168}
2169
2170@media only screen and (max-width: 768px){
2171
2172 .content-data-dias{
2173
2174 padding:20px 0;
2175
2176 }
2177
2178 .ssp-card-oferta-curso__local-realizacao-content__title {
2179
2180 font-size: 14px;
2181 display:flex;
2182 align-items: center;
2183 gap: 5px;
2184 padding: 10px 13px;
2185 }
2186
2187 .ssp-card-oferta-curso__local-realizacao-content__title i{
2188
2189 font-size: 11px;
2190 }
2191
2192 .tag-label-desconto span, .tag-label-desconto small {
2193 font-size: 13px!important;
2194 }
2195
2196 .tag-label-desconto {
2197 padding: 5px;
2198 margin: -50px 12px 10px 12px;
2199 }
2200
2201 .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2202 font-size: 18px;
2203 }
2204
2205 .content-buttons {
2206 padding: 10px 0 0 0;
2207 }
2208
2209
2210}
2211
2212/*final Novo card de ofertas*/
2213
2214/* form aprendizagem */
2215
2216[data-modal="modal"]{
2217 background-color: rgba(0,0,0,0.7);
2218 backdrop-filter: blur(10px);
2219 display:none;
2220}
2221
2222[data-modal="close-form-modal"]{
2223
2224 font-size: 22px;
2225 background: unset!important;
2226 color: white!important;
2227 display: flex;
2228 align-items: center;
2229 margin: 0;
2230 padding: 0;
2231 position:absolute;
2232 right:0;
2233 border:0;
2234 gap:5px;
2235 right: 2%;
2236 top: -2%;
2237
2238}
2239
2240[data-modal="close-form-modal"] i{
2241
2242 font-size:43px;
2243 height:fit-content;
2244
2245}
2246
2247.open-modal-form{
2248 position: fixed;
2249 top: 0;
2250 width: 100%;
2251 height: 100%;
2252 z-index: 100;
2253 display: flex;
2254 justify-content: center;
2255 align-items: center;
2256 overflow:auto;
2257
2258}
2259
2260.open-modal-form .ssp_ct_form_programe{
2261 animation-name: animatetop;
2262 animation-duration: .4s;
2263 position:relative;
2264}
2265
2266label .reference-mark {
2267color:#78849e;
2268}
2269.lexicon-icon-asterisk {
2270 color:#78849e;
2271}
2272.lexicon-icon-reload {
2273 margin-left:10px;
2274}
2275.ssp_title_form_programe{
2276 font-size: 42px!important;
2277 color: #ffffff!important;
2278 font-family: "Montserrat",sans-serif;
2279 font-weight:600;
2280 text-align:left;
2281}
2282.ssp_subtitle_form_programe {
2283 margin-top:0px!important;
2284
2285}
2286.ssp_subtitle_form_programe{
2287 font-size: 20px!important;
2288 color: #ffffff!important;
2289 font-family: "Montserrat",sans-serif;
2290 font-weight:600;
2291 text-align:left;
2292}
2293.lfr-ddm-form-page {
2294background-color: #fff;
2295border-radius: 12px 12px 0px 0px;
2296padding: 35px 15px!important;
2297}
2298.ssp:not(.liferay-instance) .form-group label {
2299 color: #78849E;
2300 font: normal normal 600 16px/19px Montserrat;
2301 padding-bottom: 10px;
2302}
2303.lfr-ddm-form-page-description {
2304display: none!important;
2305}
2306.lfr-ddm-form-page-title {
2307display: none!important;
2308}
2309.lfr-ddm-form-submit {
2310background-color: #0380F0;
2311 text-align: center;
2312 float: none!important;
2313 border: 1px solid #0380F0;
2314 border-radius: 6px;
2315 font-size: 16px;
2316 width: 245px;
2317 height: 50px;
2318}
2319.lfr-ddm-form-pagination-controls {
2320background-color: #fff;
2321 text-align: center;
2322 border-radius: 0px 0px 12px 12px;
2323 padding-bottom: 25px;
2324}
2325.ddm-form-name {
2326display: none!important;
2327}
2328.ddm-form-description {
2329display: none!important;
2330}
2331.ddm-form-builder-app {
2332margin-top:35px;
2333}
2334.taglib-captcha {
2335 display: flex;
2336}
2337.input-text-wrapper {
2338 left: 20px;
2339}
2340.lfr-ddm-form-pagination-controls {
2341 padding-top:0px!important;
2342 display:flex;
2343 justify-content:center;
2344 align-items: center;
2345 flex-flow:column;
2346}
2347@media only screen and (max-width: 1024px) {
2348
2349.open-modal-form{
2350
2351 align-items: flex-start;
2352
2353}
2354
2355.ddm-form-builder-app {
2356 margin-top: 15px;
2357}
2358
2359.ssp_title_form_programe{
2360font-size: 34px!important;
2361line-height: 1.2!important;
2362}
2363.ssp_subtitle_form_programe{
2364font-size:18px!important;
2365}
2366.taglib-captcha {
2367 display:block;
2368}
2369.input-text-wrapper {
2370 left:0;
2371}
2372.ssp_ct_form_programe {
2373 padding:0px;
2374 max-width:100%;
2375 padding:40px 20px;
2376}
2377
2378[data-modal="close-form-modal"]{
2379
2380 right: 20px;
2381 top: 0;
2382
2383}
2384
2385}
2386
2387.ssp:not(.liferay-instance) a.btn.btn-success.disabled{
2388 pointer-events: none;
2389 opacity: 0.5 !important;
2390 color: #FFF !important;
2391 background-color: #4CBF69 !important;
2392 cursor: not-allowed;
2393 border: none !important;
2394 font-size: 0.9rem !important;
2395}
2396
2397.slick-list.draggable {
2398 height: auto !important;
2399}
2400
2401.ssp:not(.liferay-instance) .ssp-image-opacity {
2402
2403 opacity: 1;
2404 object-fit: cover;
2405 object-position: center;
2406
2407}
2408
2409.ssp-option-group {
2410 text-align: left;
2411 font: normal normal 600 15px/19px Montserrat;
2412 letter-spacing: 0px;
2413 color: #004A8C;
2414}
2415.ssp-option {
2416 text-align: left;
2417 font: normal normal normal 15px/19px Montserrat;
2418 letter-spacing: 0px;
2419 color: #656565;
2420}
2421@media only screen and (max-width: 768px){
2422 .ssp-option-group {
2423 font: normal normal 600 15px/19px Montserrat;
2424 }
2425 .ssp-option {
2426 font: normal normal normal 15px/19px Montserrat;
2427 }
2428}
2429
2430.open-modal-form.lfr-ddm__default-page-header{
2431 display:none;
2432}
2433
2434/* css para funcionalidade de híbrido */
2435
2436.ssp-emed__vantagens-content.livre span{
2437 color: #FF9057!important;
2438}
2439.ssp-emed__vantagens-content.livre a:hover {
2440 color: white;
2441 background-color: #FF9057!important;;
2442 border: 1px solid #FF9057!important;;
2443}
2444.ssp-emed__vantagens-content.tecnico span{
2445 color: #F7BD23!important;
2446}
2447.ssp-emed__vantagens-content.tecnico a:hover {
2448 color: white;
2449 background-color: #F7BD23!important;;
2450 border: 1px solid #F7BD23!important;;
2451}
2452.ssp-emed__vantagens-content.ensino-medio-tecnico span{
2453 color: #C761CB!important;
2454}
2455.ssp-emed__vantagens-content.ensino-medio-tecnico a:hover{
2456 color: white;
2457 background-color: #C761CB!important;;
2458 border: 1px solid #C761CB!important;;
2459}
2460.ssp-emed__vantagens-content.extensao span{
2461 color: #3ECCA6!important;
2462}
2463.ssp-emed__vantagens-content.extensao a:hover{
2464 color: white;
2465 background-color: #3ECCA6!important;
2466 border: 1px solid #3ECCA6!important;
2467}
2468
2469/* Transferencias EMED */
2470
2471.emed-transferencias-space{
2472 max-width: 772px;
2473}
2474
2475.card-transferencias-emed {
2476 text-align: left;
2477}
2478
2479.card-transferencias-emed .ssp-emed__card-slider-body{
2480 padding: 30px;
2481}
2482
2483.card-pre-inscricao {
2484 text-align: center;
2485}
2486
2487.card-pre-inscricao .ssp-emed__card-slider-body{
2488 justify-content: space-evenly;
2489}
2490
2491.footer-card-card-pre-inscricao{
2492 margin-top: 48px;
2493 }
2494
2495.card-transferencias-emed, .card-pre-inscricao{
2496 span, strong{
2497 font-size: 24px;
2498 }
2499 span{
2500 font-weight: 500;
2501 }
2502 strong{
2503 font-weight: 700;
2504 }
2505 .transferencias-emed-rodape{
2506 margin-top:25px;
2507 span{
2508 font-size:0.9rem;
2509 font-weight: 400;
2510 }
2511 }
2512}
2513
2514@media only screen and (max-width: 768px){
2515 .card-pre-inscricao {
2516 text-align: left;
2517 }
2518
2519 .footer-card-card-pre-inscricao{
2520 margin-top: 24px;
2521 }
2522
2523 .footer-card-card-pre-inscricao strong{
2524 margin-top: 24px;
2525 font-size: 24px!important;
2526 }
2527
2528 .card-pre-inscricao .ssp-emed__card-slider {
2529 width: 100%;
2530 max-width: 329px;
2531 min-height: 390px;
2532 margin: 0;
2533 }
2534
2535 .card-pre-inscricao .ssp-emed__card-slider:nth-child(n+2){
2536 margin: 12px;
2537 }
2538
2539 .card-transferencias-emed, .card-pre-inscricao{
2540 span, strong{
2541 font-size: 16px;
2542 }
2543 .ssp-emed__section__titleCard{
2544 flex-basis: 0;
2545 margin-bottom: 24px!important;
2546 align-items: center!important;
2547 }
2548
2549 .ssp-emed__section__titleCard i{
2550 font-size: 24px!important;
2551 }
2552
2553 .ssp-emed__section__titleCard div{
2554 font-size: 20px !important;
2555 }
2556 }
2557
2558 .slick-area__item.card-pre-inscricao{
2559 min-height: 390px!important;
2560 }
2561
2562 .card-transferencias-emed .ssp-emed__card-slider{
2563 margin: 0;
2564 }
2565
2566 .card-transferencias-emed .ssp-emed__card-slider{
2567 margin: 0;
2568 min-height: 300px;
2569 }
2570
2571 .card-transferencias-emed .col-md-12{
2572 padding: 0;
2573 }
2574
2575 .card-transferencias-emed .transferencias-emed-rodape span{
2576 font-size: 12px;
2577 }
2578
2579 .ssp-ofertas-emed__filtro-content .btn-filtro{
2580 width:156px !important;
2581 font-size:14px !important;
2582 }
2583
2584 #titulo-emed{
2585 text-transform: uppercase;
2586 }
2587
2588 .emed-transferencias-space div:nth-child(n+2){
2589 padding-left:0;
2590 }
2591
2592 .emed-transferencias-space .slick-area-emed--md-bleed{
2593 position: inherit;
2594 }
2595
2596}
2597
2598</style>
2599
2600
2601 <#assign
2602
2603 prefix = "ssp"
2604 nomeVocabularioTipoCurso = 'tipo-de-curso'
2605
2606
2607 nomeVocabularioUnidades = 'unidades'
2608
2609 nomeVocabularioFormato = 'formato'
2610
2611 nomeFormato = ""
2612 nomeVocabularioModalidade = 'modalidade'
2613
2614 nomeModalidade = ""
2615
2616 normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer")
2617
2618 journalArticle = getJournalArticle()
2619 />
2620
2621 <#if journalArticle?contains("#erro#")>
2622 erro
2623 <#else>
2624
2625 <#assign
2626
2627 categories = getCategorias(journalArticle.getResourcePrimKey())
2628
2629 document = saxReaderUtil.read(journalArticle.getContent()).getRootElement()
2630
2631 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataEfetivaFTFieldSet']")
2632 dataEfetivaFTFieldSet = xPathSelector.selectSingleNode(document)
2633
2634 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='dataEfetivaFT']")
2635 dataEfetiva = xPathSelector.selectSingleNode(document)
2636
2637 dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string
2638
2639 articleId = journalArticle.getArticleId()
2640
2641 codigoFT = getStringValue(document,'codigoFT')
2642
2643 tituloComercial = journalArticle.getTitle()
2644
2645 objetivo = getStringValue(dataEfetivaFTFieldSet, 'objetivoComercial')
2646
2647 cargaHoraria = getStringValue(dataEfetivaFTFieldSet, 'cargaHorariaTotalFT')
2648
2649 oQueVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueVouAprenderComercial')
2650
2651 comoVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'comoVouAprenderComercial')
2652
2653 possoFazerEsteCursoComercial = getStringValue(dataEfetivaFTFieldSet, 'possoFazerEsteCursoComercial')
2654
2655 tereiCertificadoComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiCertificadoComercial')
2656
2657 tereiDiplomaComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiDiplomaComercial')
2658
2659 precisoEstagiarComercial = getStringValue(dataEfetivaFTFieldSet, 'precisoEstagiarComercial')
2660
2661 comoMeMatricularComercial = getStringValue(dataEfetivaFTFieldSet, 'comoMeMatricularComercial')
2662
2663 oQueMaisPrecisoSaberComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueMaisPrecisoSaberComercial')
2664
2665 normalizedModalidadeName = ""
2666
2667 />
2668
2669 <div style="display: none;">ElasticSearchNaoRetornarFiltro </div>
2670 <input type="hidden" name="codigoFT" value="${codigoFT}" />
2671 <input type="hidden" name="articleId" value="${articleId}" />
2672
2673 <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" />
2674
2675 <input type="hidden" name="codUnidadeSelecionada" value="" />
2676
2677 <#list categories as category>
2678
2679 <#assign
2680 vocabulary = getVocabulary(category.getVocabularyId())
2681 />
2682
2683 <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso>
2684
2685 <#assign
2686 categoriaTipoCurso = category
2687 normalizedCategoryName = normalizer.normalize(category.getName())
2688 />
2689
2690 <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" />
2691
2692 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades>
2693
2694 <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" />
2695
2696 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade>
2697
2698 <#assign
2699 categoriaModalidade = category
2700 normalizedModalidadeName = normalizer.normalize(category.getName())
2701
2702 />
2703
2704 <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" />
2705
2706 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato>
2707 <#assign
2708 nomeFormato = category.getName()
2709 />
2710
2711
2712 <#assign idFormato = category.getCategoryId() />
2713 <#if nomeFormato == "Presencial + EAD" >
2714 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="Presencial + EAD" />
2715 <#else>
2716 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" />
2717 </#if>
2718 </#if>
2719 </#list>
2720
2721 <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='imagemComercial']")>
2722
2723 <#if xPathSelector.selectSingleNode(dataEfetivaFTFieldSet)?? >
2724
2725 <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()>
2726 <#if imagemStr?contains("{") >
2727 <#attempt>
2728 <#assign
2729 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
2730 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
2731 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
2732 dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
2733 fileEntry = dl.getFileEntry(imagemId)
2734 imagemAlt = imagemJson.get('alt')
2735 imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null)
2736 />
2737 <#recover>
2738 <#assign
2739 imagemAlt = ""
2740 imagemUrl = ""
2741 />
2742 </#attempt>
2743 <#else>
2744 <#assign imagemUrl = "">
2745 </#if>
2746
2747 <#else>
2748 <#assign imagemUrl = "">
2749 </#if>
2750
2751
2752 <#assign
2753
2754 URLCodec = staticUtil["com.liferay.portal.kernel.util.URLCodec"]
2755 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]
2756 StringPool = staticUtil["com.liferay.petra.string.StringPool"]
2757 dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
2758
2759 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='quaisMateriaisComercial']")
2760 quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()
2761 />
2762
2763 <#if quaisMateriaisComercialPDFStr?contains('classPK') >
2764
2765 <#assign
2766
2767 PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr)
2768 classPKNumber = PDFJson.classPK?number
2769 fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber)
2770 folderId = fileEntry.getFolderId()
2771 title = fileEntry.getTitle()
2772
2773 quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId + StringPool.SLASH + URLCodec.encodeURL(HtmlUtil.unescape(title))
2774 />
2775
2776 <#else>
2777 <#assign quaisMateriaisComercialPDFUrl = "">
2778 </#if>
2779
2780 <#function getFirstArticleStructure categoryId structureName>
2781 <#attempt>
2782 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search")>
2783 <#assign companyId = themeDisplay.getCompanyId()>
2784 <#assign groupId = themeDisplay.getScopeGroupId()>
2785 <#assign articles = searchImpl.findArticlesByCategoryIds(companyId, groupId, structureName, (categoryId gt 0)?then([categoryId],[]), true, 0, 1)>
2786 <#if articles?size gt 0>
2787 <#return articles?first>
2788 </#if>
2789 <#return ''>
2790 <#recover>
2791 <#return ''>
2792 </#attempt>
2793 </#function>
2794
2795
2796 <#assign
2797 nomeTipoCurso = categoriaTipoCurso.getName()
2798 nomeCategoriaTipoCurso = categoriaTipoCurso.getName()
2799 idTipoCurso = categoriaTipoCurso.getCategoryId()
2800 />
2801 <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" />
2802
2803 <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2804
2805 <#assign
2806 nomeTipoCurso = categoriaTipoCurso.getName()
2807 />
2808
2809 <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" />
2810
2811 <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") >
2812
2813 <#assign
2814 nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s"
2815 />
2816
2817 <#else>
2818 <#assign
2819 nomeTipoCurso = categoriaTipoCurso.getName()
2820 />
2821 <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>
2822
2823 </#if>
2824
2825 <#-- Caso o curso seja do formato hibrido, busca o webcontent da pasta Onde as aulas vão acontecer - hibrido -->
2826 <#if nomeFormato == "Presencial + EAD">
2827 <#assign
2828 hibridoStructure = getFirstArticleStructure(idFormato,"formato-hibrido")
2829 documentHibrido = saxReaderUtil.read(hibridoStructure.getContent())
2830 rootElement = documentHibrido.getRootElement()
2831 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoFormatoHibrido']")
2832 />
2833 <#if xPathSelector.selectSingleNode(rootElement)?? >
2834 <#assign txtHibrido = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2835 <input type="hidden" name="textoFormatoHibrido" value="${txtHibrido}"/>
2836 </#if>
2837 </#if>
2838
2839
2840 <#-- dados de compartilhamento -->
2841 <@liferay_util["html-top"]>
2842 <meta name="image" property="og:image" content="${imagemUrl}">
2843 <meta property="og:image:width" content="1024">
2844 </@>
2845 <#-- dados de compartilhamento -->
2846
2847
2848 <#assign
2849 webContentServiceUtil = serviceLocator.findService("br.senac.services.service.WebContentServiceUtil")
2850
2851 temasMercadologicos = webContentServiceUtil.getTemasPorArticleId(themeDisplay.getScopeGroupId(), journalArticle)
2852 categoriesIdiomas = temasMercadologicos?filter(c -> c.getName()?lower_case?contains("idioma"))
2853 hasIdiomas = categoriesIdiomas?has_content
2854 hasEMED = normalizedModalidadeName?contains("ensino-medio")
2855 />
2856
2857 <#function getManutencao>
2858
2859 <#assign manutencaoStructure = getFirstArticleStructure(idTipoCurso,"manutencoes") />
2860 <#if manutencaoStructure == "">
2861 <#return {"bolsa":"", "compra":"", "rodape":""} />
2862 </#if>
2863 <#assign
2864 txtBolsa = ""
2865 txtCompra = ""
2866 txtRodape = ""
2867 content = saxReaderUtil.read(manutencaoStructure.getContent())
2868 rootElement = content.getRootElement()
2869 />
2870 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoBolsa']") />
2871 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2872 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoBolsa']") />
2873 <#assign txtBolsa = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2874 </#if>
2875 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoCompra']") />
2876 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2877 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoCompra']") />
2878 <#assign txtCompra = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2879 </#if>
2880 <#if txtCompra != "" || txtBolsa != "">
2881 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoRodape']") />
2882 <#assign txtRodape = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2883 </#if>
2884
2885 <#return {"bolsa": txtBolsa, "compra": txtCompra, "rodape": txtRodape} />
2886
2887 </#function>
2888
2889 <#assign manutencao = getManutencao() />
2890 <input type="hidden" id="manutencao-compra" value="${manutencao.compra}" />
2891 <input type="hidden" id="manutencao-bolsa" value="${manutencao.bolsa}" />
2892
2893 <div class="${prefix}-header-curso__image">
2894 <#if imagemUrl?contains(".webp")>
2895 <#-- Remove midias adaptaveis -->
2896 <picture>
2897 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2898 </picture>
2899 <#else>
2900 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2901 </#if>
2902 <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}">
2903 <#if hasIdiomas>
2904 <span>${nomeTipoCurso}</span>
2905 <#else>
2906 <span>${nomeTipoCurso} | ${nomeFormato}</span>
2907 </#if>
2908 </div>
2909 </div>
2910
2911 <section id="curso-info">
2912 <div class="ssp-card-detalhe-curso__container">
2913
2914 <div class="ssp-card-detalhe-curso">
2915
2916 <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div>
2917
2918 <div class="container">
2919
2920 <#if nomeFormato?contains("ao-vivo") >
2921 <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>
2922
2923 </#if>
2924
2925 <div class="ssp-card-detalhe-curso__content">
2926 <div>
2927
2928 <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2929
2930 <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p>
2931
2932 </#if> -->
2933
2934 <!-- rever a lógica da chama de inscricoes abertas -->
2935
2936 <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1>
2937 <input type="hidden" name="tituloComercial" value="${tituloComercial}" />
2938
2939 <div class="ssp-card-detalhe-curso__description">${objetivo}</div>
2940 </div>
2941 <div class="ssp-card-detalhe-curso__secunday-info-content">
2942
2943 <#if nomeFormato?contains("ao-vivo") >
2944 <span class="d-md-none">
2945 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a>
2946 <#if !hasIdiomas>
2947 <span> | ${nomeFormato}</span>
2948 </#if>
2949 </span>
2950
2951 <#else>
2952 <span class="d-md-none">
2953 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#">${categoriaTipoCurso.getName()}</a>
2954 <#if !hasIdiomas>
2955 <span> | ${nomeFormato}</span>
2956 </#if>
2957 </span>
2958
2959 </#if>
2960
2961 <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p>
2962 </div>
2963 </div>
2964 <div class="ssp-saiba-mais-curso-accordion">
2965
2966 <#if (possoFazerEsteCursoComercial?length > 0)>
2967 <div class="ssp-saiba-mais-curso-accordion__body">
2968 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div>
2969 <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div>
2970 </div>
2971
2972 </#if>
2973
2974 <#if (oQueVouAprenderComercial?length > 0) >
2975 <div class="ssp-saiba-mais-curso-accordion__body">
2976 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div>
2977 <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div>
2978 </div>
2979 </#if>
2980
2981 <#if (comoVouAprenderComercial?length > 0)>
2982 <div class="ssp-saiba-mais-curso-accordion__body">
2983 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div>
2984 <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div>
2985 </div>
2986 </#if>
2987
2988
2989 <div class="ssp-saiba-mais-curso-accordion__body">
2990 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div>
2991 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
2992 <div class="ssp-saiba-mais-curso-accordion__contents">
2993 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.
2994 </div>
2995 <#else>
2996 <#if (quaisMateriaisComercialPDFUrl?length > 0)>
2997 <div class="ssp-saiba-mais-curso-accordion__contents">
2998 <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a>
2999 </div>
3000 <#else>
3001 <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>
3002 </#if>
3003 </#if>
3004 </div>
3005
3006 <#if (tereiDiplomaComercial?length > 0)>
3007 <div class="ssp-saiba-mais-curso-accordion__body">
3008 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div>
3009 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div>
3010 </div>
3011 </#if>
3012
3013 <#if (tereiCertificadoComercial?length > 0)>
3014 <div class="ssp-saiba-mais-curso-accordion__body">
3015 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div>
3016 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div>
3017 </div>
3018 </#if>
3019
3020 <#if (comoMeMatricularComercial?length > 0)>
3021 <div class="ssp-saiba-mais-curso-accordion__body">
3022 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div>
3023 <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div>
3024 </div>
3025 </#if>
3026
3027 <#if (precisoEstagiarComercial?length > 0)>
3028 <div class="ssp-saiba-mais-curso-accordion__body">
3029 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div>
3030 <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div>
3031 </div>
3032 </#if>
3033
3034
3035 <#if (oQueMaisPrecisoSaberComercial?length > 0)>
3036 <div class="ssp-saiba-mais-curso-accordion__body">
3037 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3038 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div>
3039 <#else>
3040 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div>
3041 </#if>
3042 <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div>
3043 </div>
3044 </#if>
3045
3046 <!-- Info para EMED -->
3047
3048 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3049
3050 <div class="ssp-emed__vantagens-content">
3051
3052 <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p>
3053 <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a>
3054
3055 </div>
3056
3057 <#elseif nomeFormato?contains("Presencial") && nomeFormato?contains("EAD") && !nomeTipoCurso?contains("Idioma")>
3058
3059 <!-- Info para híbrido -->
3060
3061 <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3062
3063 <p>Quer saber mais sobre nossos <span>cursos com aulas presenciais e a distância</span>?</p>
3064 <a href="/presencial-ead" class="btn">Saiba mais</a>
3065
3066 </div>
3067
3068 <#else>
3069
3070 <!-- <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3071
3072 <p>Conheça <span>mais vantagens</span>?</p>
3073 <a href="#" class="btn">Saiba mais</a>
3074
3075 </div> -->
3076
3077 </#if>
3078
3079
3080 <!-- Slider para cursos de Cozinheiro e Garçom -->
3081
3082 <#if codigoFT=="14125">
3083
3084 <div>
3085
3086 <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>
3087
3088
3089 <div class="slider-passo-passo__cursos-cozinha">
3090
3091 <div class="ssp-passo-passo-cozinheiro_card">
3092
3093 <div>
3094
3095 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3096
3097 <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>
3098
3099 </div>
3100
3101
3102 </div>
3103
3104 <div class="ssp-passo-passo-cozinheiro_card">
3105
3106 <div>
3107
3108 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3109
3110 <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>
3111
3112 </div>
3113
3114 </div>
3115
3116 <div class="ssp-passo-passo-cozinheiro_card">
3117
3118 <div>
3119
3120 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3121
3122 <p class="ssp-passo-passo-cozinheiro_card-txt">
3123 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.
3124 </p>
3125
3126
3127 </div>
3128
3129 </div>
3130
3131 <div class="ssp-passo-passo-cozinheiro_card">
3132
3133 <div>
3134
3135 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3136
3137 <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.
3138 </p>
3139
3140
3141 </div>
3142
3143 </div>
3144
3145 <div class="ssp-passo-passo-cozinheiro_card">
3146
3147 <div>
3148
3149 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3150
3151 <p class="ssp-passo-passo-cozinheiro_card-txt">
3152 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3153 </p>
3154
3155 </div>
3156
3157 </div>
3158
3159 <div class="ssp-passo-passo-cozinheiro_card">
3160
3161 <div>
3162
3163 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3164
3165 <p class="ssp-passo-passo-cozinheiro_card-txt">
3166 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.
3167 </p>
3168
3169 </div>
3170
3171 </div>
3172
3173 <div class="ssp-passo-passo-cozinheiro_card">
3174
3175 <div>
3176
3177 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3178
3179 <p class="ssp-passo-passo-cozinheiro_card-txt">
3180 Teve aprovação em todas as etapas? Parabéns!
3181
3182 Sua jornada de transformação profissional
3183
3184 começará com o início das aulas. Mas se não
3185
3186 conseguiu dessa vez, não desanime. Sempre estamos com
3187
3188 vagas abertas para diversos cursos.
3189 </p>
3190
3191 </div>
3192
3193 </div>
3194
3195
3196 </div>
3197
3198 </div>
3199
3200 <#elseif codigoFT=="15390" >
3201
3202 <div>
3203
3204 <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>
3205
3206 <div class="slider-passo-passo__cursos-cozinha">
3207
3208 <div class="ssp-passo-passo-cozinheiro_card">
3209
3210 <div>
3211
3212 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3213
3214 <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>
3215
3216 </div>
3217
3218
3219 </div>
3220
3221 <div class="ssp-passo-passo-cozinheiro_card">
3222
3223 <div>
3224
3225 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3226
3227 <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>
3228
3229 </div>
3230
3231 </div>
3232
3233 <div class="ssp-passo-passo-cozinheiro_card">
3234
3235 <div>
3236
3237 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3238
3239 <p class="ssp-passo-passo-cozinheiro_card-txt">
3240 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.
3241 </p>
3242
3243
3244 </div>
3245
3246 </div>
3247
3248 <div class="ssp-passo-passo-cozinheiro_card">
3249
3250 <div>
3251
3252 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3253
3254 <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.
3255 </p>
3256
3257
3258 </div>
3259
3260 </div>
3261
3262 <div class="ssp-passo-passo-cozinheiro_card">
3263
3264 <div>
3265
3266 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3267
3268 <p class="ssp-passo-passo-cozinheiro_card-txt">
3269 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3270 </p>
3271
3272 </div>
3273
3274 </div>
3275
3276 <div class="ssp-passo-passo-cozinheiro_card">
3277
3278 <div>
3279
3280 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3281
3282 <p class="ssp-passo-passo-cozinheiro_card-txt">
3283 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.
3284 </p>
3285
3286 </div>
3287
3288 </div>
3289
3290 <div class="ssp-passo-passo-cozinheiro_card">
3291
3292 <div>
3293
3294 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3295
3296 <p class="ssp-passo-passo-cozinheiro_card-txt">
3297 Teve aprovação em todas as etapas? Parabéns!
3298
3299 Sua jornada de transformação profissional
3300
3301 começará com o início das aulas. Mas se não
3302
3303 conseguiu dessa vez, não desanime. Sempre estamos com
3304
3305 vagas abertas para diversos cursos.
3306 </p>
3307
3308 </div>
3309
3310 </div>
3311
3312
3313 </div>
3314
3315 </div>
3316
3317 </#if>
3318
3319 <!-- Final Slider para cursos de Cozinheiro e Garçom -->
3320
3321 </div>
3322 </div>
3323 </div>
3324 </div>
3325 </section>
3326 <#assign
3327 dNoneSelectUnidade = ''
3328 mostrarUnidades = !nomeFormato?contains("ao-vivo")
3329 isEMED = normalizedCategoryName?contains("ensino-medio-tecnico")
3330 isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz")
3331 />
3332
3333 <#if nomeFormato?contains("ao-vivo") >
3334 <#assign dNoneSelectUnidade = 'd-none' />
3335 </#if>
3336
3337 <#-- Obter data matricula emed -->
3338 <#if isEMED>
3339 <#function getMatriculaEMED >
3340 <#assign emedTags = getFirstArticleStructure(0,"emed-tags")
3341 document = saxReaderUtil.read(emedTags.getContent())
3342 rootElement = document.getRootElement()
3343 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataInicioPeriodoMatricula']") />
3344 <#if xPathSelector.selectSingleNode(rootElement)?? >
3345 <#assign dataInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3346 </#if>
3347 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='horaInicioMatricula']") />
3348 <#if xPathSelector.selectSingleNode(rootElement)?? >
3349 <#assign horaInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3350 </#if>
3351
3352 <#setting time_zone="America/Sao_Paulo">
3353 <#assign today = .now?datetime />
3354 <#assign emeddatetime = (dataInicio + " " + horaInicio)?datetime["yyyy-MM-dd HH:mm"] />
3355 <#assign matriculaAberta = today gt emeddatetime />
3356
3357 <#return {"dataInicio" : dataInicio, "horaInicio" : horaInicio, "aberta" : matriculaAberta}>
3358 </#function>
3359
3360 <#assign matriculaEMED = getMatriculaEMED() />
3361
3362 </#if>
3363
3364 <#if isEMED || isAprendizagem>
3365 <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41">
3366 <div class="container">
3367
3368 <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;">
3369 <div class="ssp-container_ofertas__title">
3370 <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom">
3371
3372 Selecione uma unidade para conhecer as próximas turmas:
3373
3374 </h3>
3375 </div>
3376
3377 <div class="ssp-container__form-select">
3378 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas">
3379 <option value="">Selecione uma unidade</option>
3380 </select>
3381 </div>
3382
3383 </div>
3384
3385 <div class="ssp-ofertas__box-endereco-unidade">
3386 <i class="icon-map-adress"></i>
3387 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3388 </div>
3389
3390 </div>
3391
3392 </section>
3393 <#else>
3394 <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41">
3395 <div class="container">
3396 <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8">
3397 <div class="ssp-container_ofertas__title">
3398 <h2 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom ssp-detalhe-curso-titulo-filter">Escolha a unidade e conheça as turmas disponíveis:</h2>
3399 </div>
3400 </div>
3401 <div class="row ssp-filters-px justify-content-center">
3402 <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1">
3403 <div class="ssp-container-selecione-unidade row no-gutters">
3404 <div class="col-12">
3405 <div class="ssp-container__form-select mx-auto">
3406 <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>
3407 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select>
3408 </div>
3409 </div>
3410 </div>
3411 </div>
3412
3413 <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;">
3414 <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div>
3415 <div class="row no-gutters mt-4">
3416 <#assign
3417 mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão")
3418 mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre")
3419 />
3420
3421
3422 <#if mostrarFiltroInscricao && mostrarFiltroBolsa>
3423 <div class="ssp-switch-divider d-md-none my-4"></div>
3424 </#if>
3425
3426 <#if mostrarFiltroInscricao>
3427 <div class="col-12 col-lg">
3428 <div class="d-flex justify-content-between justify-content-lg-start">
3429 <label class="ssp-switch order-2 order-lg-1">
3430 <input type="checkbox" id="chkInscricao">
3431 <span class="ssp-switch-slider round"></span>
3432 </label>
3433 <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">Comprar agora</label>
3434 </div>
3435 </div>
3436 </#if>
3437
3438
3439 <#if mostrarFiltroBolsa>
3440 <div class="col-12 col-lg">
3441 <div class="d-flex justify-content-between justify-content-lg-start">
3442 <label class="ssp-switch order-2 order-lg-1">
3443 <input type="checkbox" id="chkBolsa">
3444 <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span>
3445 </label>
3446 <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label>
3447 </div>
3448 </div>
3449 </#if>
3450 </div>
3451 </div>
3452
3453 <div class="col-12 order-2 order-lg-3">
3454 <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}">
3455 <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;">
3456 <div class="row no-gutters">
3457 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso. </span>
3458 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span>
3459 </div>
3460 </div>
3461 </div>
3462 </div>
3463 </div>
3464
3465 <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}">
3466 <i class="icon-map-adress"></i>
3467 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3468 </div>
3469
3470 </div>
3471
3472 </section>
3473 </#if>
3474
3475
3476 <!-- EMED -->
3477 <section class="ssp-ofertas-emed__section d-none">
3478
3479 <h2 class="title-section-white" id="titulo-emed"></h2>
3480
3481 <div class="ssp-ofertas-emed__filtro-content container">
3482
3483 <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button>
3484
3485 <button type="button" value="0" class="btn btn-filtro">Transferências</button>
3486
3487 </div>
3488
3489 <div class="ssp-ofertas-emed__card-container">
3490
3491 <div class="ssp-slick-ofertas-emed">
3492
3493 </div>
3494
3495 </div>
3496
3497 </section>
3498
3499 <!-- FIM EMED -->
3500
3501 <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;">
3502
3503 <div id="turmas-container" class="container">
3504
3505 <div id="informe-novas-turmas">
3506 <div style="display: flex; flex-wrap: nowrap;">
3507
3508 <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" >
3509 <i class="fas fa-chevron-left"></i>
3510 </a>
3511
3512 <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>
3513
3514 <a href="#" class="next-mobile d-lg-none d-xl-none" >
3515 <i class="fas fa-chevron-right"></i>
3516 </a>
3517
3518 </div>
3519
3520
3521 <div class="oferta-slick-area oferta-slick-area--md-bleed slider-container">
3522
3523 </div>
3524 </div>
3525
3526 <#if !isEMED>
3527 <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;">
3528
3529 <h2 class="ssp-card-oferta-curso__sem-vaga-title">
3530 Estude com a gente na próxima turma!
3531 </h2>
3532
3533 <p class="ssp-card-oferta-curso__sem-vaga-description">
3534 Registre seu interesse e avisaremos você quando surgirem novas vagas.
3535 </p>
3536 </div>
3537 <#else>
3538
3539 <div class="card-transferencias-emed container p-0 d-none emed-transferencias-space">
3540 <div>
3541 <div class="col-md-12 col-xs-12 pb-10">
3542 <div>
3543 <div class="slick-area__item">
3544
3545 <div class="ssp-emed__card-slider">
3546
3547 <div class="ssp-emed__card-slider-body">
3548 <h2 class="ssp-emed__section__titleCard">
3549 <i class="fal fa-users-class"></i>
3550 <div>Turmas</div>
3551 </h2>
3552 <div style="display:grid;gap:20px;">
3553 <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>
3554 <span></span>
3555 </div>
3556 </div>
3557
3558 </div>
3559
3560 </div>
3561 </div>
3562 </div>
3563 </div>
3564 </div>
3565
3566 <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none">
3567 <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space">
3568 </#if>
3569 <div>
3570 <div class="col-md-12 col-xs-12 pb-10">
3571
3572 <!--slick slider-->
3573 <div class="slick-area-emed slick-area-emed--md-bleed">
3574
3575 <#if matriculaEMED.aberta>
3576 <div class="slick-area__item">
3577
3578 <div class="ssp-emed__card-slider">
3579
3580 <div class="ssp-emed__card-slider-body">
3581 <h2 class="ssp-emed__section__titleCard">
3582 <i class="fal fa-users-class"></i>
3583 <div><lfr-editable type="rich-text">Turmas</lfr-editable></div>
3584 </h2>
3585 <lfr-editable type="rich-text">
3586 <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div>
3587 <div class="ssp-emed__section__textCard">
3588 <span class="texto">
3589 Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano.
3590 </span>
3591 <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i
3592 class="fas fa-chevron-right"></i></span>
3593 </div>
3594 </lfr-editable>
3595 </a>
3596 </div>
3597
3598 </div>
3599
3600 </div>
3601
3602 <div class="slick-area__item">
3603
3604 <div class="ssp-emed__card-slider">
3605 <div class="ssp-emed__card-slider-body">
3606
3607 <h2 class="ssp-emed__section__titleCard">
3608 <i class="far fa-envelope"></i>
3609 <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div>
3610 </h2>
3611 <lfr-editable id="txt_emed_boleto" type="rich-text">
3612 <div class="ssp-emed__section__introCardCTA">
3613 Quer receber um aviso sobre as turmas do próximo ano?
3614 </div>
3615 </lfr-editable>
3616 </a>
3617 <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10"
3618 id="btnOptin" href="javascript:;">Sim, me avise.</a>
3619 </div>
3620 </div>
3621 </div>
3622 <#else>
3623 <#-- pre inscricao emed -->
3624 <div class="slick-area__item card-pre-inscricao">
3625
3626 <div class="ssp-emed__card-slider">
3627
3628 <div class="ssp-emed__card-slider-body">
3629 <h2 class="ssp-emed__section__titleCard">
3630 <i class="fal fa-users-class"></i>
3631 <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div>
3632 </h2>
3633 <lfr-editable id="txt_emed_aulas" type="rich-text">
3634 <div>
3635 <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/>
3636 <span style="font-weight: 400;">
3637 a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas
3638 <#if matriculaEMED.horaInicio?split(":")?last != "00">
3639 e ${matriculaEMED.horaInicio?split(":")?last} minutos
3640 </#if>
3641 </span>
3642 </div>
3643
3644 <div class="footer-card-card-pre-inscricao">
3645 <strong>
3646 Estude com a gente na próxima turma!<br/>
3647 Esperamos por você!
3648 </strong>
3649 </div>
3650 </lfr-editable>
3651 </a>
3652 </div>
3653
3654 </div>
3655
3656 </div>
3657
3658 </#if>
3659
3660 </div>
3661 <!--/slick slider-->
3662
3663 </div>
3664 </div>
3665 </div>
3666 </#if>
3667 <div class="oferta-slick-area_modal">
3668 </div>
3669
3670 <#if manutencao.rodape != "">
3671 <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p>
3672 <#else>
3673 <#if isEMED>
3674 <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>
3675 <#else>
3676 <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>
3677 </#if>
3678 </#if>
3679
3680 </div>
3681
3682 <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;">
3683
3684 <p>Tem dúvidas sobre bolsas de estudo?</p>
3685 <a href="/bolsas-de-estudo">Saiba como funciona</a>
3686
3687 </div>
3688
3689
3690 </section>
3691
3692 <section id="section-registro-interesse" class="ssp-section-novas-turmas">
3693
3694 <div class="container">
3695
3696 <div class="ssp-aviso-novas-turmas__content">
3697
3698 <!-- <div class="pb-sm-5 pb-md-5" > -->
3699 <div>
3700
3701 <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p>
3702 <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p -->
3703
3704 </div>
3705
3706 <!--
3707 <div class="ssp-container__form-select">
3708
3709 <select class="form-control select-large select-registro-interesse" id="select-registro-interesse">
3710 <option value="">Selecione uma unidade</option>
3711 </select>
3712
3713 </div>
3714 -->
3715 <div class="ssp-btn-group__content-teste">
3716
3717 <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button>
3718
3719 </div>
3720
3721
3722
3723 </div>
3724
3725
3726 </div>
3727
3728
3729 </section>
3730
3731 <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none">
3732
3733 <div class="ssp-card-msg-erro">
3734
3735 <div class="ssp-card-msg-sucesso__content">
3736 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
3737 <p>Houve um erro ao inserir curso na mochila!</p>
3738 <p>Por favor, tente novamente!</p>
3739 </div>
3740
3741 <div>
3742 <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button>
3743 </div>
3744
3745 </div>
3746
3747 </section>
3748
3749 <section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none">
3750
3751 <div class="ssp-modal-mochila-curso">
3752
3753 <div class="ssp-modal-mochila-curso__header">
3754
3755 <button class="modal-btn-close" type="button">
3756
3757 <i class="fal fa-times"></i>
3758
3759 </button>
3760
3761 <h2 class="modal-title">Curso adicionado à mochila!</h2>
3762 <p class="modal-subtitle">Você incluiu na sua mochila de compras o curso
3763 <span id="modal-backpack-success__nome-curso"></span>
3764 </p>
3765
3766 </div>
3767
3768 <div class="ssp-modal-mochila-curso__body">
3769
3770 <p>A sua vaga só é garantida nesta turma quando você finaliza a
3771 compra. Deseja concluir agora?</p>
3772
3773 </div>
3774
3775 <div class="ssp-modal-mochila-curso__block-btn-items block-btn-items">
3776
3777 <a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#">
3778 Finalizar compra
3779 </a>
3780
3781 <button class="btn-continuar-site btn-mochila-continuar-site-success">
3782 Continuar no site
3783 </button>
3784
3785 </div>
3786
3787
3788 </div>
3789
3790 </section>
3791
3792</#if>
3793
3794<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") >
3795 <!-- Agende a sua visita -->
3796 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") />
3797 <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) />
3798
3799 <section id="ssp-emed-visita-sector">
3800 <div class="container py-5 pt-lg-0" style="display:none;">
3801 <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper">
3802 <#list articles![] as article>
3803 <#assign document = saxReaderUtil.read(article.getContent()) />
3804 <#assign rootElement = document.getRootElement() />
3805
3806 <#assign
3807 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']")
3808 textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3809
3810 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']")
3811 linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3812
3813 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']")
3814 ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3815 />
3816
3817 <#if ativarBotao?trim == "true">
3818 <script>$('#ssp-emed-visita-sector').children().show()</script>
3819 <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text">
3820
3821 <a href="${linkBotao}">${textoDoBotao}</a>
3822
3823 </div>
3824 <div class="ssp-emed-visita-icon">
3825 <i class="fas fa-route"></i>
3826 </div>
3827 </#if>
3828 </#list>
3829 </div>
3830 </div>
3831 </section>
3832
3833
3834 <!-- Como me matricular EMED -->
3835
3836 <section class="ssp-como-me-matricular__section">
3837
3838 <h2 class="title-section-white">Como me matricular?</h2>
3839
3840 <div class="container">
3841
3842 <div class="ssp-como-me-matricular__passo-passo-card">
3843
3844 <div class="item-passo">
3845 <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt="">
3846 <p class="item-passo-title">Escolha o curso</p>
3847 <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span>
3848 </div>
3849
3850 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3851
3852 <div class="item-passo">
3853 <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt="">
3854 <p class="item-passo-title">Adicione à Mochila</p>
3855 <span>Faça login ou crie uma conta em nosso site e continue a compra.</span>
3856 </div>
3857
3858 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3859
3860 <div class="item-passo">
3861 <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt="">
3862 <p class="item-passo-title">Faça a matrícula</p>
3863 <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span>
3864 </div>
3865
3866 </div>
3867
3868
3869 </div>
3870
3871 </section>
3872
3873 </#if>
3874
3875
3876 <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2">
3877 <div class="container">
3878 <h2 class="ssp-section-title">
3879 <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text">
3880 Cursos que você pode gostar
3881 </lfr-editable>
3882 </h2>
3883
3884 <div id="slider-curso">
3885
3886 </div>
3887
3888 </div>
3889 </div>
3890
3891
3892
3893
3894 <#-- Section para o item de curso-->
3895 <div id="curso-item-template" class="d-none slick-area__item">
3896
3897 <div class="ssp-card-curso" style="height: 288px;">
3898
3899 <a class="ssp-absolute-link ck-curso" href="#a"></a>
3900
3901 <div class="ssp-card-curso__image">
3902
3903 <div class="ssp-image-container">
3904 <img src="" />
3905
3906 </div>
3907
3908 </div>
3909
3910 <div class="ssp-card-curso__body">
3911
3912 <div class="ssp-card-curso__color-tag-modalidade"></div>
3913
3914 <div class="ssp-card-curso__tags">
3915
3916 <span class="ssp-card-curso__tag-formato-title"></span>
3917
3918 <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span>
3919
3920 </div>
3921
3922 <h6 class="ssp-card-curso__title">
3923
3924 </h6>
3925
3926 <div class="ssp-card-curso__info">
3927
3928 <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span>
3929 <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span>
3930
3931 </div>
3932
3933 </div>
3934
3935 </div>
3936
3937 </div>
3938
3939 <#function getJournalArticle>
3940
3941
3942 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3943 <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first>
3944 <#assign groupId = themeDisplay.getSiteGroupId()>
3945 <#attempt>
3946
3947 <#if !friendlyURL?contains("fragment_collections") >
3948
3949 <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)>
3950 <#else>
3951
3952 <#return '#erro#'>
3953 </#if>
3954
3955 <#recover>
3956
3957 <#return '#erro#'>
3958 </#attempt>
3959 </#function>
3960
3961 <#function getCategorias primaryKey>
3962
3963 <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
3964 <#attempt>
3965
3966 <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)>
3967
3968 <#recover>
3969
3970 <#return '#erro#'>
3971 </#attempt>
3972 </#function>
3973
3974 <#function getVocabulary vocabularyId>
3975
3976 <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
3977 <#attempt>
3978
3979 <#return vocabularyService.getVocabulary(vocabularyId)>
3980
3981 <#recover>
3982
3983 <#return '#erro#'>
3984 </#attempt>
3985 </#function>
3986
3987 <#function getStringValue dom name>
3988 <#assign
3989 seletorSTR = "dynamic-element[@field-reference='"+name+"']"
3990 xPathSelector = saxReaderUtil.createXPath(seletorSTR)
3991 />
3992 <#if xPathSelector.selectSingleNode(dom)?? >
3993 <#assign
3994 valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim
3995 />
3996 <#return valueSTR>
3997 </#if>
3998 <#return ''>
3999 </#function>
4000
4001 <!--Modal de Login -->
4002
4003 <section id="modal-login" class="ssp-modal-registro-interesse d-none">
4004
4005 <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;">
4006
4007 <div class="px-5">
4008 <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i>
4009 <div class="text-darker-gray py-3">Faça login na sua conta</div>
4010 </div>
4011
4012 <div class="dropdown-divider"></div>
4013
4014 <div class="dropdown-menu-arrow"></div>
4015
4016 <form id="login_form" class="px-5 py-4" method="post">
4017
4018 <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div>
4019
4020 <div class="form-group">
4021
4022 <label for="login-email">E-mail</label>
4023 <div class="input-group mb-2">
4024 <div class="input-group-prepend">
4025 <span class="input-group-text"><i class="icon-envelope"></i></span>
4026 </div>
4027 <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">
4028 </div>
4029
4030 </div>
4031
4032 <div class="form-group">
4033
4034 <label for="login-password">Senha</label>
4035 <div class="input-group mb-2">
4036 <div class="input-group-prepend">
4037 <span class="input-group-text"><i class="icon-key"></i></span>
4038 </div>
4039 <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">
4040 </div>
4041
4042 </div>
4043
4044 <div class="pt-1 pb-3">
4045 <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small>
4046 </div>
4047
4048 <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button>
4049 </form>
4050
4051 <div class="dropdown-divider"></div>
4052
4053 <div class="px-5 pb-4">
4054 <div class="text-darker-gray py-3">Não tem cadastro?</div>
4055 <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>
4056 </div>
4057
4058
4059 </div>
4060
4061 </section>
4062
4063 <!-- modal registro interesse -->
4064
4065
4066 <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none">
4067
4068 <#if !isEMED>
4069 <div class="ssp-card-registro-interesse">
4070
4071 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4072
4073 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4074 <h3 class="ssp-card-registro-interesse__nome-curso"></h3>
4075
4076 <div id="unidades-registro-interesse">
4077
4078 <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4>
4079
4080 <div id="select-unidades-registro-interesse">
4081 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4082 </div>
4083
4084 <div class="ssp-card-registro-interesse__add-mais">
4085 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4086
4087
4088
4089 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4090 </div>
4091
4092 </div>
4093
4094 <div id="dias-registro-interesse">
4095 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4>
4096
4097 <div class="ssp-card-registro-interesse__week-content">
4098 <span id="todosDias" class="ssp-week-day">Todos</span>
4099 <span class="ssp-week-day">Seg</span>
4100 <span class="ssp-week-day">Ter</span>
4101 <span class="ssp-week-day">Qua</span>
4102 <span class="ssp-week-day">Qui</span>
4103 <span class="ssp-week-day">Sex</span>
4104 <span class="ssp-week-day">Sab</span>
4105 </div>
4106
4107 </div>
4108
4109 <div id="periodo-registro-interesse">
4110
4111 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4>
4112
4113 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4114
4115 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4116 <input type="checkbox" name="" value="" id="check-todos-periodos">
4117 <label for="check-todos-periodos">Todos</label>
4118 </div>
4119
4120 <div class="ssp-card-registro-interesse__check-item">
4121 <input type="checkbox" name="" value="M" id="periodo-m">
4122 <label for="periodo-m">Manhã</label>
4123 </div>
4124
4125 <div class="ssp-card-registro-interesse__check-item">
4126 <input type="checkbox" name="" value="T" id="periodo-t">
4127 <label for="periodo-t">Tarde</label>
4128 </div>
4129
4130 <div class="ssp-card-registro-interesse__check-item">
4131 <input type="checkbox" name="" value="N" id="periodo-n">
4132 <label for="periodo-n" "="">Noite</label>
4133 </div>
4134
4135
4136 </div>
4137
4138 </div>
4139
4140 <div class="ssp-card-registro-interesse__card-politica">
4141
4142
4143 <p class="ssp-card-registro-interesse__card-politica-title">
4144 <strong>Política de Privacidade do Senac São Paulo </strong>
4145 </p>
4146
4147 <p>Data de publicação 06/08/2024</p>
4148
4149 <p class="ssp-card-registro-interesse__card-politica-text">
4150 O Serviço Nacional de Aprendizagem Comercial - Senac,
4151 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4152 com quem se relaciona.
4153 </p>
4154
4155 <p class="ssp-card-registro-interesse__card-politica-text">
4156
4157 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4158 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4159 medidas de segurança que adotamos; e quais os direitos que você tem.
4160 <br><br>
4161 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4162 alterações no que diz respeito ao tratamento de seus dados pessoais.
4163 <br><br>
4164 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4165 <br><br>
4166 <b>1. Quem somos nós?</b><br>
4167 O Senac SP é a Administração Regional do Senac no Estado de São Paulo. O Senac SP está inscrito no CNPJ sob o nº
4168 03.709.814/0001-98 e tem sede à Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo. Para
4169 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4170 controlador dos dados pessoais.
4171 <br><br>
4172 <b>2. O que você precisa saber antes de ler esta política?</b>
4173 <br>
4174 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4175 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4176 pessoais sensíveis, conforme definição a seguir:
4177 <br><br>
4178 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4179 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4180 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4181 <br><br>
4182 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4183 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4184 nós, é ele quem vai ajudar.
4185 <br><br>
4186 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4187 <br><br>
4188 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4189 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4190 outros.
4191 <br><br>
4192 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4193 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4194 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4195 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4196 <br><br>
4197 <b>3. Quais dados pessoais são tratados e por quê?</b>
4198 <br>
4199 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4200 atendimento às finalidades ora descritas, conforme aplicável:
4201 <br><br>
4202 <b>Visitante / Interessado</b>
4203 <br>
4204 <b>Atividade: Navegação</b>
4205 <br>
4206 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4207 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4208 do tráfego.
4209 <br><br>
4210 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4211 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4212 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4213 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4214 <br><br>
4215 </p>
4216
4217 <hr>
4218
4219 <p class="ssp-card-registro-interesse__card-politica-text">
4220 <br>
4221 <b>Atividade: Cadastro</b><br>
4222 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4223 telefone.
4224 <br><br>
4225 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4226 cadastro por duplo fator de autenticação.
4227 <br>
4228 </p>
4229
4230 <hr>
4231
4232 <p class="ssp-card-registro-interesse__card-politica-text">
4233 <br>
4234 <b>Atividade: Inscrição em eventos</b><br>
4235 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4236 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4237 <br><br>
4238 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4239 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4240 <br>
4241 </p>
4242
4243 <hr>
4244
4245 <p class="ssp-card-registro-interesse__card-politica-text">
4246 <br>
4247 <b>Atividade: Comunicação e Marketing</b><br>
4248 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4249 em mensagens nos nossos canais de atendimento e redes sociais.
4250 <br><br>
4251 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4252 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4253 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4254 <br>
4255 </p>
4256
4257 <hr>
4258
4259 <p class="ssp-card-registro-interesse__card-politica-text">
4260 <br>
4261 <b>Candidato a aluno</b><br>
4262 <b>Atividade: Processo seletivo</b><br>
4263 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4264 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4265 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4266 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4267 <br><br>
4268 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4269 menor de idade.
4270 <br><br>
4271 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4272 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4273 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4274 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4275 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4276 cursos, eventos e/ou benefícios de acordo com seus interesses.
4277 <br>
4278 </p>
4279
4280 <hr>
4281
4282 <p class="ssp-card-registro-interesse__card-politica-text">
4283 <br>
4284 <b>Atividade: Bolsas de estudo</b><br>
4285 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4286 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4287 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4288 <br><br>
4289 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4290 particular do Programa Senac de Gratuidade (PSG).
4291 <br>
4292 </p>
4293
4294 <hr>
4295
4296 <p class="ssp-card-registro-interesse__card-politica-text">
4297 <br>
4298 <b>Aluno</b><br>
4299 <b>Atividade: Matrícula</b><br>
4300 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4301 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4302 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4303 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4304 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4305 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4306 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4307 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4308 <br><br>
4309 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4310 responsáveis legais do aluno se menor de idade.
4311 <br><br>
4312 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4313 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4314 contrato conosco; e outras finalidades relacionadas.
4315 <br>
4316 </p>
4317
4318 <hr>
4319
4320 <p class="ssp-card-registro-interesse__card-politica-text">
4321 <br>
4322
4323 <b>Atividade: Jornada Acadêmica</b><br>
4324 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4325 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4326 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4327 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4328 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4329 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4330 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4331 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4332 <br><br>
4333 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4334 responsáveis legais do aluno se menor de idade.
4335 <br><br>
4336 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
4337 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
4338 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
4339 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
4340 realização de intercâmbio acadêmico.
4341 <br>
4342 </p>
4343
4344 <hr>
4345
4346 <p class="ssp-card-registro-interesse__card-politica-text">
4347 <br>
4348 <b>Atividade: Bolsas de estudo</b><br>
4349 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4350 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4351 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4352 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4353 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4354 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4355 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4356 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4357 <br><br>
4358 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4359 responsáveis legais do aluno se menor de idade.
4360 <br><br>
4361 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
4362 fornecimento de bolsas de estudo.
4363 <br>
4364 </p>
4365
4366 <hr>
4367
4368 <p class="ssp-card-registro-interesse__card-politica-text">
4369 <br>
4370
4371
4372 <b>Atividade: Benefícios</b><br>
4373 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4374 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4375 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4376 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4377 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4378 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4379 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4380 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4381 <br><br>
4382 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4383 responsáveis legais do aluno se menor de idade.
4384 <br><br>
4385 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
4386 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
4387 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
4388 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
4389 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
4390 inclusive para aperfeiçoamento das nossas parcerias comerciais.
4391 <br>
4392 </p>
4393
4394 <hr>
4395
4396 <p class="ssp-card-registro-interesse__card-politica-text">
4397 <br>
4398 <b>Atividade: Procedimentos internos</b><br>
4399 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
4400 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
4401 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
4402 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
4403 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
4404 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
4405 pesquisa.
4406 <br>
4407 </p>
4408
4409 <hr>
4410
4411 <p class="ssp-card-registro-interesse__card-politica-text">
4412 <br>
4413
4414
4415 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
4416 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
4417 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
4418 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
4419 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
4420 judicial, de autoridade competente ou de órgão fiscalizador.
4421 <br>
4422 </p>
4423
4424 <hr>
4425
4426 <p class="ssp-card-registro-interesse__card-politica-text">
4427 <br>
4428
4429 <b>Atividade: Pesquisas e desenvolvimento</b><br>
4430 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
4431 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
4432 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
4433 Senac SP está sujeito.
4434 <br>
4435 </p>
4436
4437 <hr>
4438
4439 <p class="ssp-card-registro-interesse__card-politica-text">
4440 <br>
4441
4442 <b>Atividade: Monitoramento</b><br>
4443 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
4444 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
4445 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
4446 <br>
4447 </p>
4448
4449 <hr>
4450
4451 <p class="ssp-card-registro-interesse__card-politica-text">
4452 <br>
4453
4454 <b>Ex-aluno</b><br>
4455 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
4456 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
4457 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
4458 <br><br>
4459 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
4460 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
4461 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
4462 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
4463 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
4464 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
4465 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
4466 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
4467 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
4468 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
4469 <br>
4470 </p>
4471
4472 <hr>
4473
4474 <p class="ssp-card-registro-interesse__card-politica-text">
4475 <br>
4476 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
4477 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
4478 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
4479 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
4480 <br><br>
4481 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
4482 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
4483 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
4484 Senac SP.
4485 <br>
4486 </p>
4487
4488 <hr>
4489
4490 <p class="ssp-card-registro-interesse__card-politica-text">
4491 <br><br>
4492 <b>Usuário Wi-Fi</b><br>
4493 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
4494 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
4495 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
4496 <br><br>
4497 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
4498 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
4499 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
4500 outras informações relevantes; proteger você, terceiros e o Senac.
4501 <br><br>
4502
4503
4504 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
4505 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
4506 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
4507 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
4508 <br><br>
4509 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
4510 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
4511 interesse do Senac SP ou de terceiros. Para os casos em que a lei exija a obtenção de seu consentimento e/ou de seu
4512 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
4513 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
4514 <br><br>
4515 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
4516 que entender haver base legal para o tratamento posterior nos termos da LGPD.
4517 <br><br>
4518
4519
4520 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
4521 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
4522 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
4523 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
4524 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
4525 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
4526 compartilhados para finalidades legítimas da seguinte maneira:
4527 <br><br>
4528 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
4529 relacionamento e contrato de prestação de serviços conosco;
4530 <br><br>
4531 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
4532 conforme aplicável;
4533 <br><br>
4534 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
4535 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
4536 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
4537 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
4538 contratos, órgãos judiciais e governamentais;
4539 <br><br>
4540 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
4541 ameaça a direito;
4542 <br><br>
4543 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
4544 <br><br>
4545 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
4546 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
4547 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
4548 atingimento da aludida finalidade;
4549 <br><br>
4550 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
4551 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
4552 <br><br>
4553
4554
4555 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
4556 <br><br>
4557 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
4558 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
4559 <br><br>
4560 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
4561 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
4562 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
4563 <br><br>
4564 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
4565 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
4566 <br><br>
4567
4568
4569 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
4570 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
4571 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
4572 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
4573 <br><br>
4574 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
4575 seguintes critérios:
4576 <br><br>
4577 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
4578 <br><br>
4579 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
4580 judiciais, administrativos ou arbitrais;
4581 <br><br>
4582 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
4583 educacionais.
4584 <br><br>
4585 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
4586 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
4587 <br><br>
4588
4589
4590 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
4591 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
4592 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
4593 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
4594 tratamento inadequado ou ilícito.
4595 <br><br>
4596 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
4597 <br><br>
4598 - Controle restrito de acesso interno;
4599 <br><br>
4600 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
4601 <br><br>
4602 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
4603 acessados.
4604 <br><br>
4605 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
4606 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
4607 adequadamente às autoridades competentes e aos titulares afetados.
4608 <br><br>
4609
4610
4611 <b>7. Quais são os seus direitos?</b><br>
4612 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
4613 <br><br>
4614 <b>Direito X Explicação</b><br>
4615 1. Confirmação da existência de tratamento de seus dados pessoais<br>
4616 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
4617 <br><br>
4618 2. Acesso aos dados pessoais<br>
4619 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
4620 <br><br>
4621 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
4622 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
4623 estão incompletos, inexatos ou desatualizados.
4624 <br><br>
4625 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
4626 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
4627 desnecessários, excessivos ou tratados de forma incorreta.
4628 <br><br>
4629 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
4630 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
4631 por nós atendida.
4632 <br><br>
4633 <br><br>
4634 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
4635 <br><br>
4636 <b>5. Portabilidade dos dados pessoais</b><br>
4637 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
4638 violação da nossa propriedade intelectual.
4639 <br><br>
4640 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
4641 <br><br>
4642 <b>6. Não fornecimento ou revogação do consentimento</b><br>
4643 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
4644 tratamento de dados pessoais anteriormente.
4645 <br><br>
4646 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
4647 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
4648 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
4649 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
4650 (ANPD).
4651 <br><br>
4652 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
4653 <br><br>
4654 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
4655 <br><br>
4656
4657
4658 <b>8. Políticas de terceiros e atualizações desta política</b><br>
4659 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
4660 outro domínio que não o Portal Senac SP e/ou tenha acesso, em decorrência de sua relação conosco, a serviços de
4661 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
4662 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
4663 <br><br>
4664 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
4665 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
4666 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
4667 <br><br>
4668
4669
4670 <b>9. Dúvidas?</b><br>
4671 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
4672 e-mail privacidade@sp.senac.br.
4673 <br><br>
4674 <b>Encarregado de Dados do Senac (DPO):</b><br>
4675 Fernando Sátiro Pereira<br>
4676 Gerente de Tecnologia da Informação do Senac São Paulo<br>
4677 Contato: privacidade@sp.senac.br
4678 <br><br>
4679 <a href="https://www.sp.senac.br/documents/d/guest/politica_de_privacidade_senac_sp_julho2020_site" target="_blank">Confira a versão anterior da nossa política</a>
4680 <br><br>
4681
4682 </p>
4683
4684
4685 </div>
4686
4687 <div class="ssp-card-registro-interesse__check-item">
4688 <input type="checkbox" name="" value="" id="check-politica-privacidade">
4689 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
4690 </div>
4691
4692 <div class="text-center mt-5">
4693
4694 <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>
4695
4696 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
4697
4698 </div>
4699
4700 </div>
4701
4702 <#else>
4703
4704 <div class="ssp-card-registro-interesse emed">
4705
4706 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4707
4708 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4709
4710 <div class="emed-select-group">
4711
4712 <h3 class="ssp-card-registro-interesse__title-modal"></h3>
4713
4714 <div id="unidades-registro-interesse">
4715
4716 <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4>
4717
4718 <div id="select-unidades-registro-interesse">
4719 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4720 </div>
4721
4722 <div class="ssp-card-registro-interesse__add-mais">
4723 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4724
4725
4726
4727 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4728 </div>
4729
4730 </div>
4731
4732 </div>
4733
4734
4735 <div id="periodo-registro-interesse">
4736
4737 <p class="ssp-card-registro-interesse__title-section-itens">Período:</p>
4738
4739 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4740 <div class="ssp-card-registro-interesse__check-item">
4741 <input type="checkbox" name="" value="M" id="periodo-m">
4742 <label for="periodo-m">Manhã</label>
4743 </div>
4744
4745 <div class="ssp-card-registro-interesse__check-item">
4746 <input type="checkbox" name="" value="T" id="periodo-t">
4747 <label for="periodo-t">Tarde</label>
4748 </div>
4749
4750 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4751 <input type="checkbox" name="" value="" id="check-todos-periodos">
4752 <label for="check-todos-periodos">Todos</label>
4753 </div>
4754
4755 </div>
4756
4757 </div>
4758
4759 <div id="turmas-registro-interesse">
4760
4761 <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p>
4762
4763 <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">
4764
4765 <div class="ssp-card-registro-interesse__check-item">
4766 <input type="checkbox" name="" value="1" id="primeiro">
4767 <label for="primeiro">1º ano</label>
4768 </div>
4769
4770 <div class="ssp-card-registro-interesse__check-item">
4771 <input type="checkbox" name="" value="2" id="segundo">
4772 <label for="segundo">2º ano</label>
4773 </div>
4774
4775 <div class="ssp-card-registro-interesse__check-item">
4776 <input type="checkbox" name="" value="3" id="terceiro">
4777 <label for="terceiro">3º ano</label>
4778 </div>
4779
4780 </div>
4781
4782 </div>
4783
4784 <div id="msg-transferencia-emed">
4785
4786 <div class="transferencia-emed-title">
4787 <i class="fas fa-comment-exclamation"></i>
4788 <p>Quer se transferir de escola?</p>
4789 </div>
4790
4791 <div class="transferencia-emed-link">
4792 <a href="#">Fale direto com a unidade de interesse.</a>
4793 </div>
4794
4795 </div>
4796
4797 <div class="ssp-card-registro-interesse__card-politica">
4798
4799 <p class="ssp-card-registro-interesse__card-politica-title">
4800 <strong>Política de Privacidade do Senac São Paulo </strong>
4801 </p>
4802
4803 <p>Data de publicação 06/08/2024</p>
4804
4805 <p class="ssp-card-registro-interesse__card-politica-text">
4806 O Serviço Nacional de Aprendizagem Comercial - Senac,
4807 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4808 com quem se relaciona.
4809 </p>
4810
4811 <p class="ssp-card-registro-interesse__card-politica-text">
4812
4813 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4814 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4815 medidas de segurança que adotamos; e quais os direitos que você tem.
4816 <br><br>
4817 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4818 alterações no que diz respeito ao tratamento de seus dados pessoais.
4819 <br><br>
4820 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4821 <br><br>
4822 <b>1. Quem somos nós?</b><br>
4823 O Senac SP é a Administração Regional do Senac no Estado de São Paulo. O Senac SP está inscrito no CNPJ sob o nº
4824 03.709.814/0001-98 e tem sede à Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo. Para
4825 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4826 controlador dos dados pessoais.
4827 <br><br>
4828 <b>2. O que você precisa saber antes de ler esta política?</b>
4829 <br>
4830 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4831 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4832 pessoais sensíveis, conforme definição a seguir:
4833 <br><br>
4834 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4835 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4836 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4837 <br><br>
4838 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4839 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4840 nós, é ele quem vai ajudar.
4841 <br><br>
4842 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4843 <br><br>
4844 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4845 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4846 outros.
4847 <br><br>
4848 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4849 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4850 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4851 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4852 <br><br>
4853 <b>3. Quais dados pessoais são tratados e por quê?</b>
4854 <br>
4855 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4856 atendimento às finalidades ora descritas, conforme aplicável:
4857 <br><br>
4858 <b>Visitante / Interessado</b>
4859 <br>
4860 <b>Atividade: Navegação</b>
4861 <br>
4862 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4863 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4864 do tráfego.
4865 <br><br>
4866 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4867 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4868 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4869 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4870 <br><br>
4871 </p>
4872
4873 <hr>
4874
4875 <p class="ssp-card-registro-interesse__card-politica-text">
4876 <br>
4877 <b>Atividade: Cadastro</b><br>
4878 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4879 telefone.
4880 <br><br>
4881 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4882 cadastro por duplo fator de autenticação.
4883 <br>
4884 </p>
4885
4886 <hr>
4887
4888 <p class="ssp-card-registro-interesse__card-politica-text">
4889 <br>
4890 <b>Atividade: Inscrição em eventos</b><br>
4891 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4892 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4893 <br><br>
4894 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4895 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4896 <br>
4897 </p>
4898
4899 <hr>
4900
4901 <p class="ssp-card-registro-interesse__card-politica-text">
4902 <br>
4903 <b>Atividade: Comunicação e Marketing</b><br>
4904 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4905 em mensagens nos nossos canais de atendimento e redes sociais.
4906 <br><br>
4907 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4908 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4909 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4910 <br>
4911 </p>
4912
4913 <hr>
4914
4915 <p class="ssp-card-registro-interesse__card-politica-text">
4916 <br>
4917 <b>Candidato a aluno</b><br>
4918 <b>Atividade: Processo seletivo</b><br>
4919 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4920 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4921 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4922 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4923 <br><br>
4924 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4925 menor de idade.
4926 <br><br>
4927 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4928 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4929 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4930 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4931 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4932 cursos, eventos e/ou benefícios de acordo com seus interesses.
4933 <br>
4934 </p>
4935
4936 <hr>
4937
4938 <p class="ssp-card-registro-interesse__card-politica-text">
4939 <br>
4940 <b>Atividade: Bolsas de estudo</b><br>
4941 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4942 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4943 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4944 <br><br>
4945 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4946 particular do Programa Senac de Gratuidade (PSG).
4947 <br>
4948 </p>
4949
4950 <hr>
4951
4952 <p class="ssp-card-registro-interesse__card-politica-text">
4953 <br>
4954 <b>Aluno</b><br>
4955 <b>Atividade: Matrícula</b><br>
4956 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4957 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4958 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4959 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4960 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4961 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4962 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4963 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4964 <br><br>
4965 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4966 responsáveis legais do aluno se menor de idade.
4967 <br><br>
4968 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4969 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4970 contrato conosco; e outras finalidades relacionadas.
4971 <br>
4972 </p>
4973
4974 <hr>
4975
4976 <p class="ssp-card-registro-interesse__card-politica-text">
4977 <br>
4978
4979 <b>Atividade: Jornada Acadêmica</b><br>
4980 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4981 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4982 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4983 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4984 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4985 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4986 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4987 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4988 <br><br>
4989 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4990 responsáveis legais do aluno se menor de idade.
4991 <br><br>
4992 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
4993 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
4994 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
4995 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
4996 realização de intercâmbio acadêmico.
4997 <br>
4998 </p>
4999
5000 <hr>
5001
5002 <p class="ssp-card-registro-interesse__card-politica-text">
5003 <br>
5004 <b>Atividade: Bolsas de estudo</b><br>
5005 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5006 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5007 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5008 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5009 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5010 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5011 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5012 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5013 <br><br>
5014 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5015 responsáveis legais do aluno se menor de idade.
5016 <br><br>
5017 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
5018 fornecimento de bolsas de estudo.
5019 <br>
5020 </p>
5021
5022 <hr>
5023
5024 <p class="ssp-card-registro-interesse__card-politica-text">
5025 <br>
5026
5027
5028 <b>Atividade: Benefícios</b><br>
5029 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5030 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5031 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5032 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5033 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5034 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5035 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5036 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5037 <br><br>
5038 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5039 responsáveis legais do aluno se menor de idade.
5040 <br><br>
5041 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
5042 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
5043 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
5044 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
5045 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
5046 inclusive para aperfeiçoamento das nossas parcerias comerciais.
5047 <br>
5048 </p>
5049
5050 <hr>
5051
5052 <p class="ssp-card-registro-interesse__card-politica-text">
5053 <br>
5054 <b>Atividade: Procedimentos internos</b><br>
5055 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
5056 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
5057 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
5058 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
5059 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
5060 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
5061 pesquisa.
5062 <br>
5063 </p>
5064
5065 <hr>
5066
5067 <p class="ssp-card-registro-interesse__card-politica-text">
5068 <br>
5069
5070
5071 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
5072 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
5073 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
5074 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
5075 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
5076 judicial, de autoridade competente ou de órgão fiscalizador.
5077 <br>
5078 </p>
5079
5080 <hr>
5081
5082 <p class="ssp-card-registro-interesse__card-politica-text">
5083 <br>
5084
5085 <b>Atividade: Pesquisas e desenvolvimento</b><br>
5086 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
5087 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
5088 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
5089 Senac SP está sujeito.
5090 <br>
5091 </p>
5092
5093 <hr>
5094
5095 <p class="ssp-card-registro-interesse__card-politica-text">
5096 <br>
5097
5098 <b>Atividade: Monitoramento</b><br>
5099 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
5100 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
5101 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
5102 <br>
5103 </p>
5104
5105 <hr>
5106
5107 <p class="ssp-card-registro-interesse__card-politica-text">
5108 <br>
5109
5110 <b>Ex-aluno</b><br>
5111 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
5112 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
5113 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
5114 <br><br>
5115 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
5116 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
5117 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
5118 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
5119 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
5120 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
5121 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
5122 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
5123 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
5124 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
5125 <br>
5126 </p>
5127
5128 <hr>
5129
5130 <p class="ssp-card-registro-interesse__card-politica-text">
5131 <br>
5132 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
5133 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
5134 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
5135 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
5136 <br><br>
5137 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
5138 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
5139 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
5140 Senac SP.
5141 <br>
5142 </p>
5143
5144 <hr>
5145
5146 <p class="ssp-card-registro-interesse__card-politica-text">
5147 <br><br>
5148 <b>Usuário Wi-Fi</b><br>
5149 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
5150 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
5151 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
5152 <br><br>
5153 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
5154 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
5155 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
5156 outras informações relevantes; proteger você, terceiros e o Senac.
5157 <br><br>
5158
5159
5160 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
5161 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
5162 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
5163 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
5164 <br><br>
5165 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
5166 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
5167 interesse do Senac SP ou de terceiros. Para os casos em que a lei exija a obtenção de seu consentimento e/ou de seu
5168 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
5169 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
5170 <br><br>
5171 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
5172 que entender haver base legal para o tratamento posterior nos termos da LGPD.
5173 <br><br>
5174
5175
5176 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
5177 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
5178 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
5179 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
5180 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
5181 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
5182 compartilhados para finalidades legítimas da seguinte maneira:
5183 <br><br>
5184 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
5185 relacionamento e contrato de prestação de serviços conosco;
5186 <br><br>
5187 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
5188 conforme aplicável;
5189 <br><br>
5190 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
5191 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
5192 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
5193 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
5194 contratos, órgãos judiciais e governamentais;
5195 <br><br>
5196 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
5197 ameaça a direito;
5198 <br><br>
5199 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
5200 <br><br>
5201 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
5202 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
5203 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
5204 atingimento da aludida finalidade;
5205 <br><br>
5206 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
5207 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
5208 <br><br>
5209
5210
5211 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
5212 <br><br>
5213 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
5214 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
5215 <br><br>
5216 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
5217 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
5218 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
5219 <br><br>
5220 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
5221 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
5222 <br><br>
5223
5224
5225 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
5226 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
5227 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
5228 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
5229 <br><br>
5230 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
5231 seguintes critérios:
5232 <br><br>
5233 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
5234 <br><br>
5235 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
5236 judiciais, administrativos ou arbitrais;
5237 <br><br>
5238 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
5239 educacionais.
5240 <br><br>
5241 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
5242 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
5243 <br><br>
5244
5245
5246 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
5247 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
5248 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
5249 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
5250 tratamento inadequado ou ilícito.
5251 <br><br>
5252 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
5253 <br><br>
5254 - Controle restrito de acesso interno;
5255 <br><br>
5256 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
5257 <br><br>
5258 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
5259 acessados.
5260 <br><br>
5261 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
5262 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
5263 adequadamente às autoridades competentes e aos titulares afetados.
5264 <br><br>
5265
5266
5267 <b>7. Quais são os seus direitos?</b><br>
5268 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
5269 <br><br>
5270 <b>Direito X Explicação</b><br>
5271 1. Confirmação da existência de tratamento de seus dados pessoais<br>
5272 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
5273 <br><br>
5274 2. Acesso aos dados pessoais<br>
5275 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
5276 <br><br>
5277 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
5278 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
5279 estão incompletos, inexatos ou desatualizados.
5280 <br><br>
5281 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
5282 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
5283 desnecessários, excessivos ou tratados de forma incorreta.
5284 <br><br>
5285 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
5286 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
5287 por nós atendida.
5288 <br><br>
5289 <br><br>
5290 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
5291 <br><br>
5292 <b>5. Portabilidade dos dados pessoais</b><br>
5293 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
5294 violação da nossa propriedade intelectual.
5295 <br><br>
5296 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
5297 <br><br>
5298 <b>6. Não fornecimento ou revogação do consentimento</b><br>
5299 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
5300 tratamento de dados pessoais anteriormente.
5301 <br><br>
5302 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
5303 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
5304 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
5305 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
5306 (ANPD).
5307 <br><br>
5308 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
5309 <br><br>
5310 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
5311 <br><br>
5312
5313
5314 <b>8. Políticas de terceiros e atualizações desta política</b><br>
5315 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
5316 outro domínio que não o Portal Senac SP e/ou tenha acesso, em decorrência de sua relação conosco, a serviços de
5317 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
5318 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
5319 <br><br>
5320 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
5321 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
5322 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
5323 <br><br>
5324
5325
5326 <b>9. Dúvidas?</b><br>
5327 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
5328 e-mail privacidade@sp.senac.br.
5329 <br><br>
5330 <b>Encarregado de Dados do Senac (DPO):</b><br>
5331 Fernando Sátiro Pereira<br>
5332 Gerente de Tecnologia da Informação do Senac São Paulo<br>
5333 Contato: privacidade@sp.senac.br
5334 <br><br>
5335 <a href="https://www.sp.senac.br/documents/d/guest/politica_de_privacidade_senac_sp_julho2020_site" target="_blank">Confira a versão anterior da nossa política</a>
5336 <br><br>
5337
5338 </p>
5339
5340 </div>
5341
5342 <div class="ssp-card-registro-interesse__check-item">
5343 <input type="checkbox" name="" value="" id="check-politica-privacidade">
5344 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
5345 </div>
5346
5347 <div class="text-center mt-5">
5348
5349 <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>
5350
5351 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
5352
5353 </div>
5354
5355 </div>
5356
5357 </#if>
5358 </section>
5359
5360 <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none">
5361
5362 <div class="ssp-card-msg-sucesso">
5363
5364 <div class="ssp-card-msg-sucesso__content">
5365 <i class="fas fa-exclamation-circle"></i>
5366 <p>Obrigado por registrar seu interesse!</p>
5367 <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p>
5368 </div>
5369
5370 <div>
5371 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a>
5372 </div>
5373
5374 </div>
5375
5376 </section>
5377
5378 <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none">
5379
5380 <div class="ssp-card-msg-erro">
5381
5382 <div class="ssp-card-msg-sucesso__content">
5383 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
5384 <p>Houve um erro ao registrar seu interesse!</p>
5385 <p>Por favor, tente novamente!</p>
5386 </div>
5387
5388 <div>
5389 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a>
5390 </div>
5391
5392 </div>
5393
5394 </section>
5395
5396 <!-- Aviso para curso de aprendizagem -->
5397
5398 <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;">
5399
5400 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5401
5402 <div class="ssp-bolsa-formulario__card-aviso-texto">
5403 <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p>
5404 </div>
5405
5406 </div>
5407
5408 <!-- modal form de aprendizagem -->
5409
5410 <#if isAprendizagem>
5411
5412 <#assign formId = 48097883 />
5413 <!-- formInstanceId é variável de acordo com o ID do formulário -->
5414 <#assign formPreferences = {"displayDepth": "1", "portletSetupPortletDecoratorId": "barebone", "formInstanceId": "formId"}/>
5415
5416 <section data-lfr-background-image-id="bg-programe-form" class="ssp-section ssp-section-lg-bottom" data-modal="modal">
5417
5418 <div class="container ssp_ct_form_programe">
5419
5420 <button type="button" data-modal="close-form-modal">
5421 fechar
5422 <i class="fas fa-times"></i>
5423 </button>
5424
5425 <@liferay_portlet["runtime"]
5426 portletName="com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet"
5427 defaultPreferences=freeMarkerPortletPreferences.getPreferences(formPreferences)
5428 />
5429
5430 </div>
5431
5432 </section>
5433
5434 </#if>
5435
5436 <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">
5437 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5438 <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>
5439 </div>
5440
5441 </div>
5442
5443
5444 <!--modal forma pagto extensao-->
5445 <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal">
5446 <div class="modal-extensao_content">
5447 <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i>
5448 <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1>
5449 <div class="row">
5450
5451 <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none">
5452 Preço Padrão
5453 <i class="fas fa-chevron-right custom-icon-right"></i>
5454 </button> -->
5455
5456 <div class="col-lg-6 col-sm-12 col-xs-12">
5457
5458 <h2 class="modal-extensao_subtitle">Investimento</h2>
5459
5460 <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span>
5461 <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span>
5462 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5463 <i class="fas fa-barcode" aria-hidden="true"></i>
5464 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5465 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>
5466 <span class="modal-extensao_txtParcela">sem juros</span>
5467 </div>
5468 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5469 <i class="far fa-credit-card" aria-hidden="true"></i>
5470 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5471 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>
5472 <span class="modal-extensao_txtParcela">sem juros</span>
5473 </div>
5474 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5475 </div>
5476
5477 <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> -->
5478
5479 <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none">
5480 Preço para Contribuintes,<br>alunos e ex-alunos*
5481 <i class="fas fa-chevron-right custom-icon-right"></i>
5482 </button> -->
5483
5484 <div class="col-lg-6 col-sm-12 col-xs-12">
5485 <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2>
5486 <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span>
5487 <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span>
5488 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5489 <i class="fas fa-barcode" aria-hidden="true"></i>
5490 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5491 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>
5492 <span class="modal-extensao_txtParcela">sem juros</span>
5493 </div>
5494 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5495 <i class="far fa-credit-card" aria-hidden="true"></i>
5496 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5497 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>
5498 <span class="modal-extensao_txtParcela">sem juros</span>
5499 </div>
5500 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5501 </div>
5502 <div class="col-lg-6 col-sm-12 col-xs-12">
5503 <a target="_blank" href="#">
5504 <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button>
5505 </a>
5506 </div>
5507 <div class="col-lg-6 col-sm-12 col-xs-12">
5508 <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button>
5509 </div>
5510 </div>
5511 </div>
5512
5513 <div class="modal-extensao_content modal-pergunta-aluno-ext d-none">
5514
5515 <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i>
5516 <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1>
5517 <div class="row">
5518 <div class="col-6 text-right">
5519
5520 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button>
5521
5522 </div>
5523 <div class="col-6 text-left">
5524
5525 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button>
5526
5527 </div>
5528 </div>
5529 <div class="row d-none msg-alunoSim">
5530 <div class="col-12 text-center mt-10">
5531 <i class="fas fa-check-circle modal-extensao-ico-check"></i>
5532 <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2>
5533 <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p>
5534 <p class="mb-0">
5535 <a target="_blank" href="#">
5536 <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button>
5537 </a>
5538 </p>
5539 <p class="mt-0">
5540 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5541 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5542 </a>
5543 </p>
5544 </div>
5545 </div>
5546 <div class="row d-none msg-alunoNao">
5547 <div class="col-12 text-center mt-10">
5548 <i class="fas fa-percentage modal-extensao-ico-percent"></i>
5549 <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2>
5550 <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>
5551 <p class="mb-0">
5552 <a target="_blank" href="#">
5553 <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button>
5554 </a>
5555 </p>
5556 <p class="mt-0">
5557 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5558 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5559 </a>
5560 </p>
5561 </div>
5562 </div>
5563 </div>
5564 </section>
5565
5566
5567 <!-- Modal Descontos e Parcelamento EMED -->
5568 <div id="modalPagtoEmed" class="ssp-modal">
5569
5570 <div class="ssp-card-modal-forma-pagamento">
5571
5572 <div class="ssp-card-modal-forma-pagamento__header">
5573 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6>
5574 <div class="ssp-modal-emed-btfechar">
5575 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i>
5576 <span>Fechar</span>
5577 </div>
5578 </div>
5579
5580 <div class="ssp-card-modal-forma-pagamento__body">
5581
5582 <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>
5583
5584 <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>
5585 <span class="ssp-card-modal-emed-ano">/ano</span></p>
5586
5587 <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>
5588 <div class="ssp-card-modal-emed-lineou"><span>ou</span></div>
5589
5590 <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>
5591
5592 <div class="ssp-card-modal-forma-pagamento__tipos">
5593
5594 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5595 <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i>
5596 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5597 <p><strong>Cartão de Crédito +</strong></p>
5598 <p><strong>Boleto Bancário</strong></p>
5599 <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> -->
5600 <p>1ª parcela no cartão</p>
5601 <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>
5602 </div>
5603 </div>
5604
5605
5606 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5607 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5608 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5609 <p><strong>Cartão de Crédito</strong></p>
5610 <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p>
5611 <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p>
5612 </div>
5613 </div>
5614
5615 <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">
5616 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5617 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5618 <p><strong>Boleto Bancário</strong></p>
5619 <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p>
5620 </div>
5621 </div>
5622
5623 <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>
5624
5625 <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>
5626 - Estuda ou estudou no Senac<br>
5627 - É dependente de quem trabalha em empresa contribuinte do Senac<br>
5628 - Estuda ou estudou na rede pública de ensino
5629 </p>
5630
5631 </div>
5632
5633 </div>
5634
5635
5636 <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>
5637
5638
5639
5640 </div>
5641 </div>
5642
5643 <#if isEMED>
5644 <div id="modalAntesCompraEmed" class="ssp-modal">
5645 <div class="ssp-modal-local-realizacao">
5646 <div class="ssp-modal-local-realizacao__title-content">
5647 <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6>
5648 <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i>
5649 </div>
5650 <div class="ssp-modal-local-realizacao__texto">
5651 <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none">
5652
5653 Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/>
5654
5655 </p>
5656 <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none">
5657
5658 Saiba como funciona a inscrição para a lista de espera:<br/><br/>
5659 - É válida somente para a <b>compra do curso</b><br/>
5660 - Não garante vaga para o estudante<br/>
5661 - É válida apenas para o curso, horário e escola selecionados<br/>
5662 - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/>
5663
5664 </p>
5665 <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none">
5666
5667 - 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/>
5668 - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/>
5669 - 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
5670
5671 </p>
5672 <div class="btn ssp-modal-local-realizacao__btn-content">
5673 <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button>
5674 <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>
5675 </div>
5676 </div>
5677 </div>
5678 </div>
5679
5680 </#if>
5681
5682
5683
5684
5685 <script>
5686 let showedFilters = false
5687 var groupId = themeDisplay.getScopeGroupId();
5688
5689 var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}';
5690
5691 var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId
5692
5693 var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}';
5694 var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}';
5695 var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}';
5696 var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}';
5697 var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/';
5698 var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/';
5699 var cntSelectUnidades = 1;
5700 var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html';
5701 var urlGetServerT = '/o/senac-content-services/getServerTime';
5702 var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}';
5703 var todayG = '';
5704 var codigoFTCursoAprendizagem = 18984;
5705 var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId();
5706 var isAoVivo = 0;
5707 var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo';
5708 var ofertaUnidadeMap = new Map();
5709 var ultimaUnidade = 0;
5710 var regIndex = new RegExp('\{index\}', 'g');
5711 var linkBotaoCompra = 'http://www.sp.senac.br/login/Login?destino=/ecommerceFrontEnd/?vcw_unidade={codigoUnidade}&vcw_evento={codigoOferta}';
5712 var carregouUltimaOferta = false;
5713 var ofertasMap = new Map();
5714 var codUnidadeSenacAoVivo = '108';
5715 var ofertasComBolsa = false;
5716
5717 //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546
5718 function getServiceEnvironmentHost(){
5719 if(!isAmbienteTeste())
5720 return window.location.origin
5721 else
5722 return 'https://gesportal.sp.senac.br'
5723 }
5724
5725 var hostBolsa = getServiceEnvironmentHost()
5726
5727 // Montar object push - google tag manager - 1
5728 let itensEcommerce = null;
5729 let ofertaSelecionada = null;
5730
5731 const today = new Date;
5732
5733 //categoryId -> cod unidade
5734 var mapUnidadesIds = new Map();
5735 var objsTela = {
5736 unidades: [],
5737 unidadesRegistroInteresse: [],
5738 categoriesIds:[],
5739 ofertasAoVivoTodasUnidades: [],
5740 primeiroChange: true
5741 };
5742 var startOfertaParam = 0;
5743 var endOfertaParam = 25;
5744
5745 var ehCursoTrampolim = false;
5746
5747 const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD';
5748
5749 var textoFormatoHibrido = "";
5750 var temTextoParaFormatoHibrido = false;
5751
5752 //Validar se o campo textoFormatoHibrido existe e se não está vazio
5753 if(isHibrido){
5754 textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val();
5755 if(typeof textoFormatoHibrido !== 'undefined'){
5756 if (textoFormatoHibrido.trim() !== '' ) {
5757 temTextoParaFormatoHibrido = true;
5758 textoFormatoHibrido += '<br>';
5759 }
5760 }
5761 }
5762
5763 const HOST = window.location.origin;
5764 const URLGeral = window.location.href;
5765
5766 //EMED
5767 const anoTurmaEmed = '2025';
5768
5769 const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); }
5770
5771 const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1);
5772
5773 const statusEmed = Object.freeze({
5774 NAO_ENCONTRADA: 0,
5775 INSCRICAO: 1,
5776 ESPERA: 2,
5777 ESGOTADO: 3
5778 });
5779
5780 let unidadesToURL = []
5781
5782 const localLivreOnline = function(textoLocal){
5783 textoLocal = textoLocal || ''
5784 textoLocal = textoLocal.replaceAll('online', 'on-line')
5785
5786 const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams';
5787
5788 return textoLocal.toUpperCase().includes(textoOnline.toUpperCase());
5789 }
5790
5791 const linkBolsa = function(oferta){
5792
5793 let tiposCurso = new Map();
5794 tiposCurso.set('livre', 'L');
5795 tiposCurso.set('tecnico', 'T');
5796 tiposCurso.set('aprendizagem', 'A');
5797 let letraTipoCurso = tiposCurso.get($('[name="tipoCurso"]').val()) || '';
5798
5799 // verifica o campo destinoBolsa da oferta - 9546
5800 var destinoBolsa = ""
5801 if(oferta.destinoBolsa){
5802 destinoBolsa = parseInt(oferta.destinoBolsa,10)
5803 }
5804
5805 return hostBolsa+'/login/Login?origem=bolsas&destino=/jsp/default.jsp?template=2464.dwt&testeira=1540&idcourse='+
5806 $('[name="codigoFT"]').val()+
5807 '&cod_evento='+
5808 oferta.codigoOferta+
5809 '&cod_u='+
5810 codigoUnidade+
5811 '&nvg='+
5812 oferta.qtdeTotalVagasPSG+
5813 '&type='+
5814 letraTipoCurso+
5815 '&sel_unit=&ft=y'+
5816 (destinoBolsa ? '&destino='+destinoBolsa : '');
5817 }
5818
5819
5820 $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){
5821
5822 var classAtivo = 'btn--filtro-ativo';
5823
5824 if(!$(this).hasClass(classAtivo)){
5825
5826 $(this).siblings().removeClass(classAtivo);
5827
5828 $(this).addClass(classAtivo);
5829
5830 const $cardTransferencias = $('.card-transferencias-emed');
5831
5832 if($(this).val() == '0'){
5833 hideCardSemTurmas(true);
5834 $('.ssp-slick-ofertas-emed').empty();
5835 if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none');
5836 $('.prev-mobile, .next-mobile').addClass('d-none');
5837 $cardTransferencias.removeClass('d-none');
5838 } else{
5839 if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none');
5840 $('.ssp-slick-ofertas-emed').removeClass('d-none');
5841 populaOfertas(objsTela.ofertas);
5842 }
5843
5844 }
5845
5846 });
5847
5848 //Cronometro
5849 var hidden, visibilityChange;
5850 var restartTimeout = null;
5851 var interval01, interval15;
5852
5853 if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
5854 hidden = "hidden";
5855 visibilityChange = "visibilitychange";
5856 } else if (typeof document.msHidden !== "undefined") {
5857 hidden = "msHidden";
5858 visibilityChange = "msvisibilitychange";
5859 } else if (typeof document.webkitHidden !== "undefined") {
5860 hidden = "webkitHidden";
5861 visibilityChange = "webkitvisibilitychange";
5862 }
5863
5864 // Verifica suporte a Visibility API
5865 if (typeof document.addEventListener === "undefined" || hidden === undefined) {
5866 console.log("Navegador incompativel com page visibility api");
5867 } else {
5868 // Evento para quando a visibilidade da pagina mudar
5869 document.addEventListener(visibilityChange, handleVisibilityChange, false);
5870 }
5871
5872 $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() {
5873
5874 $(this).toggleClass("active").next().slideToggle();
5875
5876 $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300);
5877
5878 $(this).siblings().removeClass("active");
5879 });
5880
5881 function loadUnidadesRegistroInteresse(urlCursoInfo) {
5882 if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length)
5883 return
5884
5885 let urlUnidades = new URL(window.location.origin + urlCursoInfo)
5886 let paramsUnidades = new URLSearchParams(urlUnidades.search)
5887 paramsUnidades.delete('inscricaoAberta')
5888 paramsUnidades.delete('bolsaAberta')
5889 paramsUnidades.delete('buscarUnidadesComOferta')
5890 urlUnidades.search = '?' + paramsUnidades.toString()
5891 urlUnidades = urlUnidades.href
5892
5893 $.ajax({
5894 url: urlUnidades,
5895 method:'get',
5896 async: false
5897 }).done(function(data){
5898 if(data.length > 0){
5899 const cursoInfo = JSON.parse(data);
5900 const unidadesOfertantes = cursoInfo.unidadesOfertantes;
5901
5902 $.each(unidadesOfertantes, function(k,item){
5903 var unidade = {};
5904 unidade['categoryId'] = item['categoryId'];
5905 unidade['codigoUnidade'] = item['codigoUnidade'];
5906 unidade['nome'] = item['nomeUnidade'];
5907 unidade['enderecoUnidade'] =item['enderecoUnidade'];
5908 unidade['numero'] =item['numEnderecoUnidade'];
5909 unidade['complemento'] = item['complementoEnderecoUnidade'];
5910 unidade['bairro'] = item['bairroUnidade'];
5911 unidade['googlemapsUnidade'] = item['googlemapsUnidade'];
5912 unidade['friendlyURL'] = item['friendlyURL'];
5913 unidade['selecionado'] = false;
5914 unidade['selectSelecionado'] = "";
5915 unidade['ofertas'] = [];
5916
5917 if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length)
5918 objsTela.unidadesRegistroInteresse.push(unidade)
5919 });
5920 }
5921 });
5922 }
5923
5924 function loadUnidades(showOptions, unidadeValue){
5925 //Busca as unidades do curso
5926 let buscarUnidadesComOferta = false;
5927
5928 if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')))
5929 buscarUnidadesComOferta = true;
5930
5931 const urlCursoInfo = urlSearchCursoInfo
5932 .replace('\{groupId\}', groupId)
5933 .replace('\{cursosInfo\}', $('[name="articleId"]').val())
5934 .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked'))
5935 .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked'))
5936 .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta);
5937
5938 loadUnidadesRegistroInteresse(urlCursoInfo)
5939
5940 $.ajax({
5941 url:urlCursoInfo,
5942 method:'get',
5943 async: false,
5944 beforeSend: function () {
5945 loading('.oferta-slick-area');
5946 }
5947 }).done(
5948 function(data){
5949
5950 if(data.length > 0){
5951
5952 const cursoInfo = JSON.parse(data);
5953
5954 const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes;
5955
5956 if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0))
5957 $('.ssp-container-selecione-unidade').removeClass('d-none')
5958
5959 objsTela.unidades = []
5960 mapUnidadesIds = new Map();
5961
5962 $.each(unidades, function(k,item){
5963
5964 var unidade = cloneObj(item)
5965 unidade['nome'] = item['nomeUnidade'];
5966 unidade['numero'] =item['numEnderecoUnidade'];
5967 unidade['complemento'] = item['complementoEnderecoUnidade'];
5968 unidade['bairro'] = item['bairroUnidade'];
5969 unidade['ofertas'] = [];
5970
5971 objsTela.unidades.push(unidade);
5972
5973 mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']);
5974
5975 objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade))
5976 });
5977
5978
5979 populaSelectUnidades(undefined, showOptions, unidadeValue);
5980
5981 }
5982 });
5983
5984 }
5985
5986function getOfertaObjectFromJson(ofertaJSON,index){
5987
5988
5989 var oferta = {};
5990 var xml = $($.parseXML(ofertaJSON.content));
5991 oferta['ordenar'] = paramOrdem(xml);
5992 oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim();
5993 var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-');
5994 var dataFim =xml.find('[name="dataFimOferta"]').text().split('-');
5995 oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim();
5996 oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim();
5997 oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text();
5998 oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim();
5999 var dias = [];
6000 oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim();
6001 xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){
6002 dias.push($(dia).text());
6003 });
6004 oferta['diasDaSemanaOferta'] = dias;
6005 oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim();
6006 oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim();
6007 oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim();
6008 oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim();
6009
6010 oferta['textoCartoesAceitos'] = pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6011 oferta['numParcelaCartoes'] = pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6012 oferta['precoParcelaCartoes'] = pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6013 oferta['numParcelaBoleto'] = pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6014 oferta['precoParcelaBoleto'] = pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6015
6016 oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim();
6017 oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim();
6018 oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim();
6019 oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim();
6020 oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim();
6021 oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim();
6022 oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim();
6023 oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim();
6024 oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim();
6025 oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim();
6026 oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim();
6027 oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim();
6028 oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim();
6029 oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim();
6030 oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim();
6031 oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim();
6032 oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim();
6033 oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim();
6034 oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim();
6035 oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim();
6036 oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim();
6037 oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim();
6038 oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim();
6039 oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim();
6040 oferta['etapa'] = xml.find('[name="etapa"]').text().trim();
6041 oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();
6042 //adicao do destinoBolsa na oferta - 9546 - 11/07/2022
6043 oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim();
6044
6045 if(isEmed){
6046 //EMED utilizar data matricula para bolsa
6047 oferta['dataAberturaBolsaOferta'] = oferta['dataAberturaMatricula'];
6048
6049 }
6050
6051 return oferta;
6052 }
6053
6054 const getStatusEmed = (oferta) => {
6055
6056 const urlStatusEsperaEmed = () => {
6057 let url = (isAmbienteTeste()) ?
6058 'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/'
6059 : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/';
6060
6061 return url + oferta.codigoOferta;
6062 }
6063
6064 const callTl = async () => {
6065 if(getCookie('tl') == null){
6066 return await $.ajax({
6067 url: '/o/senac-content-services/geraTokenServicosSenac',
6068 method: 'GET'
6069 });
6070 }
6071 return getCookie('tl');
6072 }
6073
6074 const callListaEspera = async () => {
6075 var tl = '';
6076 try{
6077 tl = await callTl();
6078 if(getCookie('tl') == null){
6079 tl = JSON.parse(tl).token;
6080 writeCookie('tl', tl, 6, '');
6081 }
6082 }catch(err){
6083 console.error(err);
6084 return {};
6085 }
6086
6087 return $.ajax({
6088 url: urlStatusEsperaEmed(),
6089 method: 'GET',
6090 beforeSend: function (xhr) {
6091 xhr.setRequestHeader("Authorization", tl);
6092 }
6093 })
6094 }
6095
6096 return new Promise(async function (resolve, reject) {
6097 const resp = await callListaEspera();
6098 if(typeof resp !== 'object') resp = JSON.parse(resp);
6099 let status = resp.STATUS;
6100 resolve(status);
6101 });
6102
6103 }
6104
6105 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){
6106
6107 if(categoryIds && categoryIds.length) {
6108 var params = new URLSearchParams();
6109 params.set('codigoFTOferta',codigoFT)
6110 params.set('dataEfetivaOferta',dataEfetivaOferta)
6111 params.set('categoryIds',categoryIds)
6112 params.set('start',startOfertaParam)
6113 params.set('end',endOfertaParam)
6114 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6115 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6116 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6117
6118 if($('#chkBolsa').prop('checked')){
6119 params.set('considerarDataBolsaFutura', true)
6120 }
6121 const url = urlSearchOferta + '?' + params.toString()
6122
6123 $.ajax({
6124 url:url,
6125 method:'get',
6126 dataType:'json',
6127 async: false
6128 }).done(
6129 function(data){
6130
6131 if(data.length > 0){
6132 $('#ssp-alternadores').show()
6133 showedFilters = true
6134
6135 objsTela.ofertasAoVivoTodasUnidades = []
6136
6137 data.forEach(function(ofertaJSON,index){
6138
6139 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6140
6141 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
6142 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
6143 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
6144
6145 });
6146 } else {
6147 loadAlternadores(data)
6148 }
6149
6150 populaOfertas(objsTela.ofertasAoVivoTodasUnidades);
6151 addEventBolsa()
6152 }
6153 ).fail(function(e) {
6154 console.error(e)
6155 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []);
6156 })
6157 } else {
6158 loadAlternadores([])
6159 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = [])
6160 }
6161
6162 if(isAoVivo) {
6163 if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length)
6164 hideCardSemTurmas(true)
6165 else
6166 hideCardSemTurmas(false)
6167 }
6168 }
6169
6170 function mudouToggleOferta(ofertas) {
6171 const oferta = ofertas && ofertas[0]
6172 if(!oferta)
6173 return true
6174
6175 const selecaoInscricao = $('#chkInscricao').prop('checked')
6176 const selecaoBolsa = $('#chkBolsa').prop('checked')
6177
6178 return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa
6179 }
6180
6181 function loadAlternadores(ofertas) {
6182 if(showedFilters) {
6183 $('#ssp-alternadores').show()
6184 return
6185 }
6186
6187 if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) {
6188 if(isAoVivo) {
6189 if(ofertas && ofertas.length)
6190 $('#ssp-alternadores').show()
6191 else {
6192 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6193 $('#ssp-alternadores').hide()
6194 else
6195 $('#ssp-alternadores').show()
6196 }
6197 } else {
6198 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6199 $('#ssp-alternadores').hide()
6200 else
6201 $('#ssp-alternadores').show()
6202 }
6203 } else
6204 $('#ssp-alternadores').show()
6205
6206 showedFilters = showedFilters || $('#ssp-alternadores').is(":visible")
6207 }
6208
6209 function getOfertas(codigoFT, dataEfetivaOferta, categoryId){
6210
6211 var indiceUnidade = -1;
6212 const selecaoInscricao = $('#chkInscricao').prop('checked')
6213 const selecaoBolsa = $('#chkBolsa').prop('checked')
6214
6215 for(var i = 0; i < objsTela.unidades.length; i++)
6216 if(objsTela.unidades[i].categoryId == categoryId)
6217 indiceUnidade = i;
6218
6219 ultimaUnidade = indiceUnidade;
6220
6221 if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){
6222 objsTela.unidades[indiceUnidade]['ofertas'] = []
6223
6224 var params = new URLSearchParams();
6225 params.set('codigoFTOferta',codigoFT)
6226 params.set('dataEfetivaOferta',dataEfetivaOferta)
6227 params.set('categoryIds',categoryId)
6228 params.set('start',startOfertaParam)
6229 params.set('end',endOfertaParam)
6230 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6231 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6232 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6233
6234 if($('#chkBolsa').prop('checked')){
6235 params.set('considerarDataBolsaFutura', true)
6236 }
6237
6238 const url = urlSearchOferta + '?' + params.toString()
6239
6240 $.ajax({
6241 url:url,
6242 method:'get',
6243 dataType:'json',
6244 async: false
6245 }).done(
6246 function(data){
6247
6248 if(data.length > 0){
6249 $('#ssp-alternadores').show()
6250 showedFilters = true
6251
6252 $('.ssp-container-selecione-unidade').show();
6253
6254 data.forEach(function(ofertaJSON,index){
6255
6256 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6257
6258 //Preenche as ofertas da unidade
6259 objsTela.unidades[indiceUnidade]['ofertas'].push(oferta);
6260 objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => {
6261 o.selecaoInscricao = selecaoInscricao
6262 o.selecaoBolsa = selecaoBolsa
6263 })
6264
6265 });
6266 } else {
6267 loadAlternadores()
6268 }
6269 objsTela.categoriesIds.push(categoryId);
6270 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6271 addEventBolsa()
6272 }
6273 )
6274
6275 //Se estiver na cache, valida as ofertas
6276 }else{
6277
6278 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6279
6280 }
6281 }
6282
6283 function populaSelectUnidades(unidades, showOptions, unidadeValue){
6284 var unidadePreSelecionada = false;
6285 var categoryIdUnidadePreSelecionada = '';
6286
6287 //Oredenacao
6288 objsTela.unidades.sort(function (a, b) {
6289 return ordenar(a, b, 'nome');
6290 });
6291
6292 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
6293 return ordenar(a, b, 'nome');
6294 });
6295
6296 //console.log(objsTela.unidades);
6297
6298 $.each(objsTela.unidades, function(k,item){
6299
6300 if(getURLData().includes('/'+item.friendlyURL+'/')){
6301 unidadePreSelecionada= true;
6302 categoryIdUnidadePreSelecionada = item['categoryId'];
6303 }
6304 });
6305
6306 //console.log('Unidade Pre '+unidadePreSelecionada);
6307
6308 if(objsTela.unidades.length == 0){
6309 if(!showOptions)
6310 $('.ssp-container-selecione-unidade').addClass('d-none');
6311 $('.oferta-slick-area').empty();
6312 $('.prev-mobile').addClass('d-none');
6313 $('.next-mobile').addClass('d-none');
6314 //EMED remove msg registro interesse
6315 //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
6316 }
6317
6318 if(isAoVivo){
6319
6320 const codigoFT = $('[name="codigoFT"]').val();
6321 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6322
6323 var unidadesCategoryAll = '';
6324
6325 $.each(objsTela.unidades, function(k,unidade){
6326 unidadesCategoryAll += unidade['categoryId']+',';
6327 });
6328
6329 //tirando ultima virgula
6330 unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1);
6331
6332 getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);
6333
6334 }else{
6335 $('#unidades-ofertas').empty()
6336
6337 if(objsTela.unidades && objsTela.unidades.length){
6338 if(isEmed)
6339 $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>'))
6340 else
6341 $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>'))
6342
6343 } else
6344 $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>'))
6345
6346 let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades)
6347
6348 //Dispara o evento para primeira unidade ou pela friendlyURl da unidade
6349 if(unidadeValue) {
6350 $('#unidades-ofertas').val(unidadeValue);
6351 $('#unidades-ofertas').change();
6352 } else if(unidadeFounded){
6353 $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']);
6354 $('#unidades-ofertas').change();
6355 } else if(!unidadePreSelecionada) {
6356 $('#unidades-ofertas').change();
6357 }
6358
6359 $('.ssp-card-registro-interesse__select.unidades').empty()
6360 $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>')
6361 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
6362
6363 $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
6364 });
6365 }
6366
6367 }
6368
6369
6370 function mudarUnidade(ev){
6371 startOfertaParam = 0;
6372 endOfertaParam = 25;
6373 carregouUltimaOferta = false;
6374
6375 var elem = $(ev.target);
6376 var unidades = objsTela.unidades;
6377
6378 //verifica se selecionou alguma unidade
6379 if(!elem.val()){
6380 $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none');
6381
6382 if(isEmed)
6383 $('#ssp-section-response').addClass('d-none')
6384
6385 hideCardSemTurmas($('#unidades-ofertas option').length > 1)
6386
6387 elem.val('')
6388 habilitarRegistroInteresse(false)
6389 //Zera variável que controla existência de ofertas com bolsa
6390 ofertasComBolsa = false;
6391 controlaPaginaBolsa();
6392
6393 return;
6394 }
6395
6396 $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none');
6397 hideCardSemTurmas(true)
6398 if(isEmed){
6399 $('.ssp-ofertas-emed__section').removeClass('d-none');
6400 $('#ssp-section-response').removeClass('d-none')
6401 $('.ssp-card-oferta-curso__section-title').addClass('d-none');
6402 $('.prev-mobile, .next-mobile').addClass('d-none');
6403 var nomeUnidade = $('#unidades-ofertas option:selected').text();
6404 let tamScreen = $(window).width();
6405
6406 if(tamScreen < 1024)
6407 $('#titulo-emed').text('Turmas ' + anoTurmaEmed );
6408 else
6409 $('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade);
6410
6411 }
6412
6413 const codigoFT = $('[name="codigoFT"]').val();
6414 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6415
6416 //colocamos dentro do option categoryId@codUnidade
6417 splitted = elem.val().split("@");
6418 var categoryIdUnidade = splitted[0];
6419 var codUnidade = splitted[1];
6420
6421 for(var i = 0; unidades.length > i ; i++){
6422
6423 if(unidades[i].categoryId == categoryIdUnidade){
6424
6425 var unidade = unidades[i];
6426
6427 //Exibe o endereco da unidade
6428 const urlBuscaUnidade = urlUnidadeInfoDetalhe
6429 .replace('\{companyId\}',themeDisplay.getCompanyId())
6430 .replace('\{codigoUnidade\}', unidade.codigoUnidade);
6431
6432 $.ajax({
6433 url : urlBuscaUnidade,
6434 type : 'get',
6435 dataType: 'json',
6436 success: function( unidadeInfo ) {
6437 if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){
6438
6439 var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', ');
6440 endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - ');
6441 endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - ');
6442
6443 $('.ssp-ofertas__endereco-unidade').text(endereco);
6444 $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade);
6445 }
6446 },
6447 error: function(data){
6448 $('.ssp-ofertas__endereco-unidade').text('');
6449 $('.ssp-ofertas__endereco-unidade').attr('href','#a');
6450 console.log('Unidade não encontrada');
6451 }
6452 })
6453
6454 getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId);
6455
6456 habilitarRegistroInteresse(!!(unidades && unidades.length));
6457
6458 }
6459 }
6460 }
6461
6462 function pegarTextoCartoesAceitos(campo){
6463 indice = campo.indexOf(' em até ');
6464 inicio = 0;
6465 fim = indice;
6466
6467 return campo.substring(inicio, fim);
6468 }
6469
6470 function pegaNumParcela(campo){
6471
6472 indice = campo.indexOf('até ');
6473 inicio = indice + 4;
6474 fim = indice + 6;
6475
6476 return campo.substring(inicio, fim);
6477
6478 }
6479
6480 function pegaValorParcela(campo){
6481
6482 indice = campo.indexOf('R$');
6483 inicio = indice+2;
6484 valorAmericano = campo.substring(inicio)
6485
6486 return formataValor(valorAmericano);
6487
6488 }
6489
6490 function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){
6491
6492 var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta);
6493 diasSemanaHTML = "";
6494
6495 for(var diaDaOferta of retornoDiasHorarios){
6496 diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias);
6497 diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario)
6498 }
6499
6500 var ofertaHTML = "";
6501
6502 if(isEmed){
6503
6504 ofertaHTML = htmlSlickAreaEmed(oferta);
6505 $('[name="codUnidadeSelecionada"]').val(codigoUnidade);
6506
6507 if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML)
6508 else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML);
6509 }else{
6510
6511
6512 ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade)
6513
6514 if(!posLoad)
6515 $('.oferta-slick-area').append(ofertaHTML);
6516 else
6517 $('.oferta-slick-area').slick('slickAdd', ofertaHTML);
6518
6519 ajustaTextoDiasHorarioOferta(oferta.codigoOferta);
6520
6521 }
6522
6523 if(turmasIniciadas(oferta.dataInicio))
6524 $("#aviso-turma-iniciada-"+index).show();
6525
6526 //remove os botões/itens de compra/bolsa caso seja preciso
6527 $('.oferta-slick-area').find('.d-none-btn').remove();
6528 }
6529
6530
6531 //RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS
6532 //@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"
6533 function processaDiasHorariosOferta(horariosAllOferta){
6534
6535 var dias = horariosAllOferta.trim().split(',');
6536 let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}]
6537
6538 var arrayDia = [];
6539 if(dias.length >= 1){
6540 for(var k=0; dias.length > k; k++){
6541 var diasSplit = dias[k].trim().split(' ');
6542 var diasSemana = diasSplit.shift()
6543 var ultimaPos = diasSplit.length-1;
6544 var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]
6545 arrayDia.push({horasStr,diasSemana});
6546 }
6547 }
6548
6549 arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana');
6550 arrayDia = orderByArray(arrayDia,arrayDiasSemana);
6551
6552 var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana);
6553 return ret;
6554 }
6555
6556 //cria um array de objetos Agrupando de acordo ao campo informado como chave.
6557 //@arr = Array multidimensional que tenha os campos key e valueAdd
6558 //@key = campo que será chave nesse array
6559 //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key
6560 const groupByArray = (arr, key,valueAdd) => {
6561 const initialValue = [];
6562 const retornoValue = [];
6563 arr.forEach((acc, cval) => {
6564 const myAttribute = cval[key];
6565 acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]];
6566 return acc;
6567 }, initialValue);
6568 return retornoValue;
6569 };
6570
6571
6572 //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.
6573 //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados
6574 //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua
6575 const orderByArray = (arrayOrdena, ordem) => {
6576
6577 let diasSem = [];
6578 const arrayOrdenado = [];
6579 let controle;
6580
6581 //percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado
6582 for(let campo of ordem){
6583 Object.entries(arrayOrdena).forEach(([key, value]) => {
6584 for(let diaOferta of value){
6585 if(diaOferta===Object.keys(campo)[0]){
6586 arrayOrdenado[key]=arrayOrdena[key];
6587 }
6588 }
6589 })
6590 }
6591 return arrayOrdenado;
6592 };
6593
6594 //retorna o valor de um objeto dentro de um array
6595 //@objetoBusca = array de objetos que sera buscado o valor
6596 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6597 function findValueInObject(objetoBusca, keyBusca){
6598 var retorno = "";
6599 Object.entries(objetoBusca).forEach(([horario, dias]) => {
6600 Object.entries(dias).forEach(([key,val]) => {
6601 if(key.trim()==keyBusca.trim()){
6602 retorno = val;
6603 }
6604 });
6605 });
6606 return retorno;
6607 }
6608
6609 //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.
6610 //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex']
6611 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6612 function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){
6613
6614 let arrayValidador = [];
6615
6616 //cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom]
6617 for(let diaOferta of arrayComDiasDaSemana){
6618 for(let i = 0; i < arrayDiasDaSemana.length; i++){
6619 if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){
6620 arrayValidador[i] = true;
6621 }
6622 }
6623 }
6624
6625 let keyCompair = 99;
6626 var sequencial = true;
6627
6628 //verifica quais posições foram criadas no array, e se os valores delas estão em sequencia.
6629 for(let keyValidator of Object.keys(arrayValidador)){
6630 keyValidator = parseInt(keyValidator);
6631 if(keyCompair!==99){
6632 if(keyValidator===keyCompair){
6633 sequencial = true;
6634 }else{
6635 sequencial = false;
6636 break;
6637 }
6638 }
6639 keyCompair = keyValidator+1;
6640 }
6641 return sequencial;
6642 }
6643
6644
6645 //Exibe as informações de dia e horario de oferta de acordo a sua estrutura
6646 //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta
6647 //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula Ex: Segunda, terça, sexta e domingo
6648 //@arrayAgrupadoEOrdenado = array de objetos que sera exibido
6649 //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta)
6650 function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){
6651
6652 var stringAux = "";
6653 var listRetorno = [];
6654
6655 Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {
6656
6657 var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana);
6658 var stringAux = "";
6659 var diaOferta = {};
6660
6661 if(sequencial){
6662 switch (value.length) {
6663 case 1:
6664 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": ";
6665 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6666 diaOferta.horario = key;
6667 break;
6668 case 2:
6669 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6670 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6671 diaOferta.horario = key;
6672 break;
6673 default:
6674 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6675
6676 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6677 diaOferta.horario = key;
6678 break;
6679 }
6680 }else{
6681 switch (value.length) {
6682 case 2:
6683 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6684 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6685 diaOferta.horario = key;
6686 break;
6687 default:
6688 var ct = 0;
6689 var stringDias="";
6690 for(let v of value){
6691 ct++;
6692 ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", ";
6693 }
6694 stringAux = stringAux+stringDias+": ";
6695 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6696 diaOferta.horario = key;
6697 break;
6698 }
6699 }
6700
6701 listRetorno.push(diaOferta);
6702 })
6703 return listRetorno;
6704 };
6705
6706
6707 //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string
6708 function ajustaTextoDiasHorarioOferta(codOferta){
6709
6710 var classOferta = ".codigoOferta_"+codOferta;
6711 let oferta = $(classOferta);
6712
6713 let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]');
6714
6715 let widthDevice = window.screen.width;
6716 let tamLimDesktop = 185;
6717
6718 if(widthDevice <= 1024){
6719 tamLimDesktop = 180;
6720 }
6721
6722 ofertaDiasSemana.each(function(index){
6723
6724
6725 let widthDiaSemana = $(this).width();
6726
6727 let contentDiaHora = $(this).parent().parent().parent();
6728
6729 if(!(widthDiaSemana <= tamLimDesktop)){
6730 $(this).css("display","block");
6731 }
6732
6733 if(ofertaDiasSemana.length == parseInt(index+1)){
6734 contentDiaHora.css("opacity","1");
6735 }
6736
6737 })
6738 }
6739
6740 function getObjBtnComprar(oferta){
6741 let obj = {};
6742 obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false';
6743 if($('#manutencao-compra').val()){
6744 obj['classeBotao'] = 'disabled manutencao';
6745 obj['textoBotao'] = $('#manutencao-compra').val();
6746 }
6747 else{
6748 obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn';
6749 obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra';
6750 }
6751 return obj;
6752 }
6753
6754 function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){
6755
6756 var formaPagtoObj = {};
6757
6758 var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g');
6759 var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g')
6760
6761 formaPagtoObj['regIndex'] = index;
6762 formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta);
6763 formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos;
6764
6765 formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes;
6766 formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes;
6767 formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto;
6768 formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto;
6769 formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta);
6770
6771 formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2));
6772 formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false';
6773 formaPagtoObj['dataUnidade'] = codigoUnidade;
6774 formaPagtoObj['dataEvento'] = oferta.codigoOferta;
6775 formaPagtoObj['destinoCompra '] = oferta.destinoCompra;
6776
6777 //EMED nao restringe o botao
6778 if(isEmed){
6779 let manutencao = $('#manutencao-compra').val();
6780 formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR';
6781 formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : '';
6782 }else{
6783 let btnComprar = getObjBtnComprar(oferta);
6784 formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao;
6785 formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao;
6786 }
6787
6788 formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta;
6789 formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta);
6790
6791 //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
6792 formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta);
6793 var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2);
6794 formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao);
6795 formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao);
6796 formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2));
6797 formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2));
6798 formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2));
6799
6800 return formaPagtoObj;
6801 }
6802
6803 function calculaPrecoAvista(precoVendaOferta){
6804 return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2);
6805 }
6806
6807 function getParcelasEntradaCartao(dataInicioCurso){
6808
6809 const dCurso = new Date(dataInicioCurso.split("/").reverse().join("-"));
6810 const dHoje = new Date();
6811
6812 let diffAnos = dCurso.getUTCFullYear() - dHoje.getUTCFullYear();
6813 let diffMeses = dCurso.getUTCMonth() - dHoje.getUTCMonth();
6814 diffMeses = diffAnos * 12 + diffMeses;
6815
6816 return (diffMeses > 4) ? 4 : ((diffMeses<=0) ? 1 : diffMeses);
6817
6818 }
6819
6820 function createModalFormaPagto(formaPagtoObj, oferta, index) {
6821 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
6822 temDesconto = temDesconto && !possuiMensalidade99(oferta)
6823
6824 result = `
6825 <div id="modalFormaPagto" class="ssp-modal">
6826 <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
6827 <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;">
6828 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6>
6829 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i>
6830 </div>
6831 `
6832 + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') +
6833 `
6834 <div class="ssp-card-modal-forma-pagamento__body">
6835 `
6836 if(temDesconto) {
6837 result = result + `
6838 <div>
6839 <p class="my-0"><strong>Valor com </strong>
6840 <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>
6841 </p>
6842 </div>
6843 <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>`
6844
6845 if($('[name="tipoCurso"]').val() == 'extensao') {
6846 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>`
6847 } else {
6848 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>`
6849 }
6850
6851
6852 result = result + `
6853 <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div>
6854 <p class="my-0"><strong>Valor:</strong></p>
6855 <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
6856 <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p>
6857 <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div>
6858 <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p>
6859 `
6860 } else {
6861 if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) {
6862 result = result + `
6863 <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6864 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6865 <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>
6866 </div>
6867 `
6868 } else {
6869 const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:'
6870
6871 result = result + `
6872 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small>
6873 <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p>
6874 <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6875 <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p>
6876 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6877 <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>
6878 </div>
6879 `
6880 }
6881 }
6882
6883 let textoParcelaCartoes, textoParcelaBoleto, textoParcelaCartaoComBoleto
6884 if(temDesconto) {
6885 const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2))
6886 const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2))
6887
6888 if(formaPagtoObj.numParcelaCartoes)
6889 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>`
6890
6891 if(formaPagtoObj.numParcelaBoleto)
6892 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>`
6893
6894 } else {
6895 if(formaPagtoObj.numParcelaCartoes)
6896 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>`
6897
6898 if(formaPagtoObj.numParcelaBoleto)
6899 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>`
6900
6901 }
6902
6903 if(formaPagtoObj.numParcelaBoleto){
6904 textoParcelaCartaoComBoleto = `<p>1ª parcela em até <span><span class="numParcelaCartoes">` + getParcelasEntradaCartao(oferta.dataInicio) + `</span>x</span> sem juros no cartão + valor </p>`;
6905 textoParcelaCartaoComBoleto += `<p>restante em até <span><span class="numParcelaBoleto">` + (parseInt(formaPagtoObj.numParcelaBoleto) - 1) + `</span>x</span> sem juros no boleto bancário </p>`;
6906 }
6907
6908 if(temDesconto) {
6909 result = result + `
6910 <div class="ssp-card-modal-forma-pagamento__tipos">`
6911
6912 if(textoParcelaBoleto)
6913 result = result + `
6914 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6915 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6916 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6917 <p><strong>Boleto Bancário</strong></p>`
6918 + textoParcelaBoleto +
6919 `</div>
6920 </div>`
6921
6922 if(textoParcelaCartoes)
6923 result = result + `
6924 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6925 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6926 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6927 <p><strong>Cartões</strong></p>
6928 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6929 + textoParcelaCartoes +
6930 `</div>
6931 </div>
6932 </div>
6933 `
6934 if(textoParcelaCartaoComBoleto)
6935 result = result + `
6936 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6937 <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i>
6938 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6939 <p><strong>Cartão + boleto bancário</strong></p>`
6940 + textoParcelaCartaoComBoleto +
6941 `</div>
6942 </div>`
6943 } else {
6944 result = result + `
6945 <div class="ssp-card-modal-forma-pagamento__tipos">`
6946
6947 if(textoParcelaCartoes)
6948 result = result + `
6949 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6950 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6951 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6952 <p><strong>Cartões</strong></p>
6953 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6954 + textoParcelaCartoes +
6955 `</div>
6956 </div>`
6957
6958 if(textoParcelaBoleto)
6959 result = result + `
6960 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6961 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6962 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6963 <p><strong>Boleto Bancário</strong></p>`
6964 + textoParcelaBoleto +
6965 `</div>
6966 </div>
6967 </div>
6968 `
6969
6970 if(textoParcelaCartaoComBoleto)
6971 result = result + `
6972 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6973 <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i>
6974 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6975 <p><strong>Cartão + boleto bancário</strong></p>`
6976 + textoParcelaCartaoComBoleto +
6977 `</div>
6978 </div>`
6979 }
6980
6981 if(temDesconto) {
6982 result = result + `
6983 <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p>
6984 `
6985 }
6986
6987 result = result + `
6988 <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>`
6989
6990 if(temDesconto) {
6991 result = result + `
6992 <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a>
6993 `
6994 }
6995
6996 result = result + `
6997 </div>
6998 </div>
6999 `
7000
7001 return result;
7002 }
7003
7004 function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){
7005
7006 var tipoCurso = $('[name="tipoCurso"]').val();
7007
7008 var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade);
7009
7010 var modalFormaPagto
7011 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) {
7012 modalFormaPagto = $('#modalFormaPagtoExt').clone();
7013
7014 $.each(formaPagtoObj, function(k,v){
7015 if(modalFormaPagto.find('.'+k).length > 0)
7016 modalFormaPagto.find('.'+k).text(v);
7017 })
7018 } else if(isEmed) {
7019 modalFormaPagto = $('#modalPagtoEmed').clone();
7020
7021 $.each(formaPagtoObj, function(k,v){
7022 if(modalFormaPagto.find('.'+k).length > 0)
7023 modalFormaPagto.find('.'+k).text(v);
7024 })
7025 } else
7026 modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index));
7027
7028 modalFormaPagto.removeAttr('id');
7029 modalFormaPagto.removeClass('d-none');
7030 modalFormaPagto.attr('id','myModal_'+index);
7031
7032 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){
7033
7034 var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok');
7035 botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index);
7036
7037 botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7038 botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade);
7039 botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento);
7040 botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7041 botoaoCompraOk.attr('data-index', index);
7042 botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar);
7043
7044 var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not');
7045 botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index);
7046
7047 botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7048 botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade);
7049 botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento);
7050 botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7051 botoaoCompraNot.attr('data-index', index);
7052 botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar);
7053
7054 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index);
7055 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index);
7056
7057 modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7058
7059 modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index);
7060
7061 modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index);
7062
7063 modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index);
7064 modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index);
7065
7066 var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');
7067
7068 }else{
7069
7070 modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index);
7071 modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7072
7073 var botaoCompra = modalFormaPagto.find('.btn.w-100');
7074
7075 }
7076
7077 if(isEmed){
7078
7079 var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento');
7080
7081 //Cria botao inscreva-se ajustado ao modal
7082 var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
7083 if($('#manutencao-compra').val()){
7084 textoBotao = $('#manutencao-compra').val();
7085 classeBotao = 'disabled manutencao';
7086 }else{
7087 if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7088 textoBotao = 'Lista de espera';
7089 classeBotao = 'btn-emed-lista-espera';
7090 }else{
7091 if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == ''){
7092 if(oferta.etapa == '0020' || oferta.etapa == '0030'){
7093 textoBotao = 'Lista de espera';
7094 classeBotao = 'btn-emed-lista-espera';
7095 }else{
7096 textoBotao = 'Fazer matrícula';
7097 classeBotao = '';
7098 }
7099 }else{
7100 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
7101 classeBotao = 'disabled';
7102 }
7103 }
7104 }
7105 criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index);
7106 preencheDadosEmedModal(oferta, modalFormaPagto);
7107
7108 }else{
7109 botaoCompra.attr('id', "btnComprarFormaPgto_"+index);
7110 botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7111 botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade);
7112 botaoCompra.attr('data-evento', formaPagtoObj.dataEvento);
7113 botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7114 botaoCompra.attr('data-index', index);
7115 botaoCompra.addClass(formaPagtoObj.classeBotaoComprar);
7116 }
7117
7118 $('.oferta-slick-area_modal').append(modalFormaPagto);
7119 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7120
7121 //Evita o erro de exibição de Nan
7122 if(oferta.numParcelaBoleto.length == 0){
7123 $('#content_boleto_'+index).remove();
7124 }
7125 }
7126
7127
7128 function montaHTMLModalLocalRealizacao(oferta, index){
7129
7130 var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ?
7131 '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>'
7132 : '<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>';
7133
7134 if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true")
7135 textoFormatoHibrido += '</br>';
7136
7137 var localRealizacaoHTMLModal = htmlModalLocalRealizacao
7138 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7139 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7140 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" )
7141 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7142 .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none")
7143 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7144 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7145 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7146 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7147 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7148 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7149 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7150 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7151 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7152 .replace(regIndex, index)
7153 .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao)
7154 .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : "");
7155
7156 $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal);
7157 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7158
7159 if(oferta.ruaEspacoExterno == "")
7160 $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle');
7161 }
7162
7163 function montaHTMLModalAntesCompra(oferta, index, codigoUnidade){
7164
7165 if(isEmed){
7166
7167 $('#modalAntesCompraEmed_' + oferta.indice).remove();
7168 const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone();
7169 antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice);
7170 antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice);
7171 antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice);
7172 antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed');
7173
7174 if(oferta.etapa == '0010'){
7175 if(oferta.permiteListaEspera == statusEmed.ESPERA){
7176 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none');
7177 antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera');
7178 }else{
7179 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none');
7180 }
7181 }else{
7182 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none');
7183 }
7184
7185 const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed');
7186 btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice);
7187 btnCompra.attr('offercode', oferta.codigoOferta);
7188
7189 btnCompra.on('click', function(ev){
7190 ev.preventDefault();
7191 execCompraEmed(oferta);
7192 });
7193
7194 }else{
7195
7196 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7197
7198
7199 var antesCompraHTMLModal = htmlModalAntesCompra
7200 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7201 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7202 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" )
7203 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7204 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
7205 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7206 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7207 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7208 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7209 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7210 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7211 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7212 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7213 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7214 .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat))
7215 .replace('\{linkBtnBolsa\}', linkBolsa(oferta))
7216 .replace(regIndex, index);
7217
7218 $('.oferta-slick-area_modal').append(antesCompraHTMLModal);
7219 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7220 }
7221 }
7222
7223 async function populaOfertas(ofertas){
7224
7225 //Zera variável que controla existência de ofertas com bolsa
7226 ofertasComBolsa = false;
7227
7228 objsTela.ofertas = ofertas;
7229
7230 if(ofertas && ofertas.length)
7231 $('#ssp-h3-turmas').show()
7232 else
7233 $('#ssp-h3-turmas').hide()
7234
7235 if(ofertas && ofertas.length > 1){
7236 //remove dupl
7237 const ofertasDistintas = [];
7238 ofertas.forEach(oferta => {
7239 if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){
7240 ofertasDistintas.push(oferta);
7241 }
7242 });
7243 ofertas = ofertasDistintas;
7244 }
7245
7246 if(isEmed){
7247
7248 $('.btn-filtro[value="0"]').attr('disabled','');
7249 $('.ssp-slick-ofertas-emed').empty();
7250 // executa a class do slick slider
7251 $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted');
7252 ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas);
7253
7254 }
7255
7256 if(ofertas.length == 0){
7257
7258 if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked'))
7259 hideCardSemTurmas(false)
7260
7261 $('.oferta-slick-area').empty();
7262 $('.prev-mobile, .next-mobile').addClass('d-none');
7263
7264 //Mostrar section registro interesse quando nao tiver oferta
7265 habilitarRegistroInteresse(true);
7266
7267 controlaPaginaBolsa()
7268 if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled');
7269 return;
7270 }
7271 hideCardSemTurmas(true)
7272 if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none');
7273 habilitarRegistroInteresse(false);
7274
7275 $('.oferta-slick-area').empty();
7276 $('.oferta-slick-area_modal').empty();
7277 ofertas = ofertas.sort(function(a, b){
7278 return ordenar(a, b, 'ordenar');
7279 });
7280 // executa a class do slick slider
7281 $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted');
7282
7283 //busca o codigoUnidade para o link do ecommerce
7284 if(!isAoVivo){
7285 var selectedUnidade = $('#unidades-ofertas').val().split('@')[0];
7286 for(var i=0;objsTela.unidades.length > i ;i++){
7287 if(selectedUnidade == objsTela.unidades[i].categoryId)
7288 codigoUnidade = objsTela.unidades[i].codigoUnidade;
7289 }
7290 }
7291
7292 // Montar object push - google tag manager - 2
7293 itensEcommerce = criaItensEcommerce(ofertas);
7294 sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values()));
7295
7296 for(var i=0;ofertas.length > i ;i++){
7297
7298 var oferta = ofertas[i];
7299
7300 //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real
7301 oferta['indice'] = i;
7302 ofertasMap.set(oferta.codigoOferta, oferta);
7303
7304 if(isAoVivo)
7305 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
7306
7307 if(isEmed && oferta.etapa == '0010'){
7308 try{
7309 let status = await getStatusEmed(oferta);
7310 oferta['permiteListaEspera'] = status;
7311 }catch(err){
7312 console.log(err);
7313 }
7314 }
7315 montaHTMLOferta(oferta, i, codigoUnidade, false);
7316 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
7317 montaHTMLModalLocalRealizacao(oferta, i);
7318 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
7319 verificaBotaoBolsaSS(oferta);
7320 verificaCursoAprendizagem(i);
7321 verificaCursoTrampolim(i, oferta.codigoOferta);
7322
7323 associaEventoBtnFormaPagamento(i);
7324 associaEventoBtnComprar(i);
7325 associaEventoBtnComprarDentroFormaPgto(i);
7326 associaEventoBtnLocalRealizacao(i);
7327 associaEventosFecharModal(i);
7328
7329 if($('[name="tipoCurso"]').val() == 'extensao'){
7330 associaEventoBtnConheca(i);
7331 associaEventoBtnComprarConhecaDescontoOk(i);
7332 associaEventoBtnComprarConhecaDescontoNot(i);
7333 associaEventoBtnAlunoNao(i);
7334 associaEventoBtnAlunoSim(i);
7335 }
7336
7337 }
7338
7339 if(isEmed){
7340 sliderOfertasEmed();
7341 $('.btn-filtro[value="0"]').removeAttr('disabled');
7342 }
7343 else sliderOfertas();
7344
7345 controlaPaginaBolsa()
7346
7347 }
7348
7349 function hideCardSemTurmas(hide){
7350 if(!isEmed){
7351 if(hide)
7352 $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none');
7353 else
7354 $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none');
7355 } else {
7356
7357
7358 if(hide || getEtapaSelecionadaEmed() == "0"){
7359 $('.sem-vaga-emed').addClass('d-none');
7360 }else{
7361 $('.sem-vaga-emed').removeClass('d-none');
7362 if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return;
7363 var tamScreen = $(window).width();
7364 if(tamScreen < 768){
7365 $('.slick-area-emed').slick({
7366 slidesToShow: 2,
7367 slidesToScroll: 2,
7368 autoplay: false,
7369 infinite: false,
7370 dots: false,
7371 arrows: false,
7372 centerPadding: 0,
7373 centerMode: false,
7374 responsive: [
7375 {
7376 breakpoint: 768,
7377 settings: {
7378 slidesToShow: 1,
7379 slidesToScroll: 1,
7380 variableWidth: false,
7381 infinite: false,
7382 centerPadding: 0,
7383 centerMode: false,
7384 dots: true,
7385 }
7386 }
7387 ]
7388 });
7389 }
7390 }
7391 }
7392 }
7393
7394 function verificaCursoAprendizagem(i){
7395
7396 //Esconde elementsos quando o curso é aprendizagem
7397 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
7398 $('#btnComprar_'+i).remove();
7399 $('#container_investimento_'+i).remove();
7400 $('#container_forma_pgto_'+i).remove();
7401
7402 var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone();
7403 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>'
7404 avisoAprendizagem.removeAttr('id');
7405 avisoAprendizagem.removeClass('d-none');
7406 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem);
7407 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem);
7408 }
7409 }
7410
7411 function verificaCursoTrampolim(i, codOferta){
7412 if(ehCursoTrampolim){
7413 $('#btnComprar_'+i).remove();
7414 $('#container_investimento_'+i).remove();
7415 $('#container_forma_pgto_'+i).remove();
7416 $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide();
7417
7418 var avisoTrampolim = $('#avisoTrampolim').clone();
7419 avisoTrampolim.removeAttr('id');
7420 avisoTrampolim.removeClass('d-none');
7421 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim);
7422 }
7423 }
7424
7425 function verificaBotoesEmed(dadosOferta, verificaBolsa){
7426
7427 if(!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
7428 dadosOferta.vagasBolsaOferta = false;
7429 dadosOferta.botaoBolsaOferta = false;
7430 }
7431
7432 var elementoPai = $('.codigoOferta_'+dadosOferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
7433
7434 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7435 var dadosAbertura = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7436 var textoBotao = 'Fazer matrícula';
7437 var textoBotaoBolsa = '';
7438 var classeBotao = '';
7439 var classeBotaoBolsa = '';
7440 var exibirBotaoBolsa = false;
7441 var exibirContador = false;
7442 var htmlBotaoBolsa = '';
7443 var htmlBotao = '';
7444
7445 //verifica se o botão de concorrer a bolsa deve aparecer
7446 //Oferta EMED possui bolsa apenas no 1o ano
7447 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAbertura.exibirContador){
7448 exibirBotaoBolsa = true;
7449 if($('#manutencao-bolsa').val()){
7450 classeBotaoBolsa = 'disabled manutencao';
7451 textoBotaoBolsa = $('#manutencao-bolsa').val();
7452 }else{
7453 if(dadosOferta.vagasBolsaOferta){
7454 classeBotaoBolsa = dadosAbertura.bolsaJaAberta ? '' : 'disabled';
7455 textoBotaoBolsa = dadosAbertura.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7456 }else{
7457 classeBotaoBolsa = 'disabled';
7458 textoBotaoBolsa = 'Bolsas de Estudo Esgotadas';
7459 }
7460 }
7461 }
7462
7463 //Verifica se o botão do cronômetro deve aparecer
7464 if(dadosAbertura.exibirContador){
7465 textoBotao = dadosAbertura.textoContador;
7466 textoBotaoBolsa = dadosAbertura.textoContador;
7467 exibirContador = true;
7468 exibirBotaoBolsa = false;
7469 }else{
7470 if($('#manutencao-compra').val()){
7471 textoBotao = $('#manutencao-compra').val();
7472 classeBotao = 'disabled manutencao';
7473 }else{
7474
7475 if(dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7476 textoBotao = 'Lista de espera';
7477 classeBotao = 'btn-emed-lista-espera';
7478 }else{
7479 classeBotao = '';
7480 if (dadosAbertura.bolsaJaAberta || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
7481 textoBotao = 'Fazer matrícula';
7482
7483 if(dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030'){
7484 textoBotao = 'Lista de espera';
7485 classeBotao = 'btn-emed-lista-espera';
7486 }
7487
7488
7489 }else{
7490 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7491 }
7492 if(!dadosAbertura.bolsaJaAberta)
7493 classeBotao = 'disabled';
7494 }
7495 }
7496
7497 criaBotaoInscreverEmed(dadosOferta, textoBotao, classeBotao, 'btnComprarEmed_' + dadosOferta.indice, elementoPai);
7498 }
7499
7500 if(exibirBotaoBolsa){
7501
7502 if(!ofertasComBolsa) ofertasComBolsa = true;
7503
7504 criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa);
7505
7506 }else if(exibirContador){
7507
7508 if(!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true;
7509
7510 //codigoOferta como index para usar o ofertasMap
7511 htmlBotao = '<button id="btnContadorComprar_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>'+textoBotao+'</span></button>';
7512 elementoPai.append(htmlBotao);
7513
7514 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta){
7515 htmlBotao = '<button id="btnContadorBolsa_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --bolsas">Bolsa em <span>'+textoBotaoBolsa+'</span></button>';
7516 elementoPai.append(htmlBotao);
7517 }
7518
7519 }
7520
7521 }
7522
7523 function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){
7524 criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai);
7525 var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index);
7526 btnInscr.removeClass(btnInscr.classList);
7527 btnInscr.addClass('btn btn-lg btn-success w-100');
7528 btnInscr.attr('style', 'margin-top: 20px;font-weight:600');
7529
7530 //Reposiciona o botao voltar
7531 var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso');
7532 elementoPai.find('.ssp-btn-emed__voltar-curso').remove();
7533 elementoPai.append(btnVoltar);
7534 btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index);
7535 btnVoltar.click(() => {
7536 $('[id^="myModal_"]').each(function(index,modal){
7537 modal.style.display = "none";
7538 })
7539 });
7540 }
7541
7542 function preencheDadosEmedModal(oferta,$modal){
7543 const parcelaEntrada = 1;
7544 $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7545 $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7546 $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7547 $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7548 }
7549
7550
7551 function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){
7552 if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return;
7553 var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>';
7554 elementoPai.append(htmlBotao);
7555
7556 if(!classeBotao.includes('disabled')){
7557
7558 elementoPai.on("click", '#'+ idBotao, function(ev){
7559 ev.preventDefault();
7560 const _modal = $('#modalAntesCompraEmed_'+$(this).data('index'));
7561 _modal.css('display','flex');
7562
7563
7564 });
7565
7566 }
7567
7568 }
7569
7570 function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7571
7572 var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>';
7573 $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao);
7574
7575 if(!classeBotaoBolsa.includes('disabled')){
7576 // Associa o evento de clique no botão de bolsa
7577 $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta));
7578 $('#btnBolsa_'+oferta.indice).attr('target', '_blank');
7579 //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;');
7580
7581 }
7582 }
7583
7584 function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7585
7586 const botao = $('<a>'+ textoBotaoBolsa +'</a>');
7587 botao.attr('id', 'btnBolsa_' + oferta.indice);
7588 botao.attr('data-index', oferta.indice);
7589 botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || ''));
7590 botao.css('font-size', '14px');
7591 botao.css('font-weight', '600');
7592 botao.css('background-color', '#004EFF');
7593 if(!classeBotaoBolsa.includes('disabled')){
7594 if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){
7595 botao.attr('data-espaco-ex', 'true');
7596 botao.click((ev)=>{
7597 ev.preventDefault();
7598 $('#btnCompraLocal_'+oferta.indice).hide();
7599 $('#btnBolsaLocal_'+oferta.indice).show();
7600 const _modal = $('#modalAntesCompra_'+oferta.indice);
7601 _modal.css('display','flex');
7602 });
7603 }else{
7604 botao.attr('href', linkBolsa(oferta));
7605 botao.attr('target', '_blank');
7606 }
7607 }
7608
7609 return botao;
7610
7611 }
7612
7613 function verificaBotaoBolsaSS(oferta, codigoUnidade){
7614
7615
7616 if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return;
7617
7618 if(!ehCursoTrampolim){
7619 $.ajax({
7620 url : getUrlConsultaBolsa(oferta),
7621 type : 'get',
7622 dataType: 'json',
7623 beforeSend: function (xhr) {
7624 xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww==");
7625 },
7626 })
7627 .done(function(infosBolsa){
7628
7629
7630 if(infosBolsa != null && typeof infosBolsa !== 'undefined'){
7631
7632 var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO;
7633 var retornoOfertaBolsaSenac = infosBolsa.DATA[0];
7634
7635 //Sobrescreve as flags de bolsa com o retorno do serviço SS
7636 ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA;
7637 ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA;
7638
7639 var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa);
7640
7641 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7642 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta);
7643 var textoBotaoBolsa = '';
7644 var classeBotaoBolsa = '';
7645 var textoBotaoContadorBolsa = '';
7646 var exibirBotaoBolsa = false;
7647 var exibirContadorBolsa = false;
7648
7649 //EMED
7650 if(isEmed){
7651 verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true);
7652 return;
7653 }
7654
7655 //Verifica o texto do botão de bolsa
7656 if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val();
7657 else{
7658
7659 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){
7660
7661 if(dadosAberturaBolsa.bolsaJaAberta)
7662 textoBotaoBolsa = "Inscrever para bolsa de estudo";
7663
7664 else
7665 textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7666
7667 if(!ofertasComBolsa){ ofertasComBolsa = true;
7668 }
7669 }else
7670 textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo";
7671 }
7672
7673 //verifica se o botão de concorrer a bolsa deve aparecer
7674 if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){
7675
7676 exibirBotaoBolsa = true;
7677
7678 if(!ofertasComBolsa) ofertasComBolsa = true;
7679
7680 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){
7681 classeBotaoBolsa = '';
7682 }else{
7683 classeBotaoBolsa = 'disabled';
7684 }
7685 }
7686
7687 //Verifica se o botão do cronômetro deve aparecer
7688 if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){
7689 textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador;
7690 exibirContadorBolsa = true;
7691 }
7692
7693 if(exibirBotaoBolsa)
7694 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) )
7695 else if(exibirContadorBolsa)
7696 $('.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>')
7697 else {
7698 $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide()
7699 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7700 }
7701
7702 }else{
7703 //EMED
7704 if(isEmed){
7705 verificaBotoesEmed(oferta, false);
7706 }
7707 }
7708
7709 controlaPaginaBolsa()
7710 })
7711 .fail(function(){
7712 $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide()
7713 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7714
7715 //EMED
7716 if(isEmed){
7717 verificaBotoesEmed(oferta, false);
7718 }
7719 });
7720
7721
7722 }
7723
7724 }
7725
7726 function controlaPaginaBolsa(){
7727 if(ofertasComBolsa)
7728 $("#ssp-abrir-pagina-bolsa").removeClass("d-none")
7729 else
7730 $("#ssp-abrir-pagina-bolsa").addClass("d-none")
7731 }
7732
7733 function associaEventoBtnFormaPagamento(i){
7734 var modal = document.getElementById("myModal_"+i);
7735
7736 var btn = document.getElementById("myBtn_"+i);
7737
7738 if(btn!=null){
7739 btn.onclick = function(ev) {
7740 event.preventDefault()
7741
7742 $('#modalExtAluno_'+i).addClass('d-none');
7743
7744 var elem = $(ev.target);
7745 var _modal = document.getElementById(
7746 'myModal_'+elem.data('index'));
7747 _modal.style.display = "block";
7748 $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none');
7749
7750 }
7751 }
7752
7753
7754
7755
7756 }
7757
7758
7759 function actionBtnComprar(elem){
7760
7761 // Montar object push - google tag manager - 3
7762 ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento'))
7763 sendEventEcommerce("select_item", ofertaSelecionada);
7764 sendEventEcommerce("view_item", ofertaSelecionada);
7765
7766 //Verifica se deve exibir o modal com a localização
7767 if(elem.attr('data-espaco-ex') == 'true'){
7768 $('#btnCompraLocal_'+elem.data('index')).show();
7769
7770 //Limpa onclicks para nao repetir execucao
7771 $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index'))
7772 $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () {
7773 // Montar object push - google tag manager - 4
7774 sendEventEcommerce("add_to_cart", ofertaSelecionada);
7775 if( elem.attr('data-destino-compra') != '2' )
7776 sendEventEcommerce("begin_checkout", ofertaSelecionada);
7777 })
7778 $('#btnBolsaLocal_'+elem.data('index')).hide();
7779 const _modal = $('#modalAntesCompra_'+elem.data('index'));
7780 _modal.css('display','flex');
7781 }else{
7782 var urlCompra = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento'));
7783
7784 if( elem.attr('data-destino-compra') == '2' ){
7785 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7786
7787 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);
7788
7789 }else{
7790 window.open(urlCompra, '_blank');
7791 }
7792 }
7793
7794
7795
7796 }
7797
7798 function associaEventoBtnComprar(i){
7799 var btnComprar = document.getElementById("btnComprar_"+i);
7800
7801 if(btnComprar != null && !btnComprar.classList.contains('disabled')){
7802 btnComprar.onclick = function(ev) {
7803
7804 ev.preventDefault()
7805 var elem = $(ev.target);
7806 actionBtnComprar(elem);
7807
7808 }
7809 }
7810 }
7811
7812 function associaEventoBtnComprarDentroFormaPgto(i){
7813 var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i);
7814
7815 if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){
7816 btnComprarFormaPgto.onclick = function(ev) {
7817 event.preventDefault()
7818 var elem = $('#btnComprarFormaPgto_'+i);
7819 actionBtnComprar(elem);
7820 }
7821 }
7822 }
7823
7824 function associaEventoBtnComprarConhecaDescontoOk(i){
7825 var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i);
7826
7827 if(btnComprarConhecaDescontoOk != null){
7828 btnComprarConhecaDescontoOk.onclick = function(ev) {
7829 event.preventDefault()
7830 var elem = $(ev.target);
7831 actionBtnComprar(elem);
7832 }
7833 }
7834 }
7835
7836 function associaEventoBtnComprarConhecaDescontoNot(i){
7837 var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i);
7838
7839 if(btnComprarConhecaDescontoNot != null){
7840 btnComprarConhecaDescontoNot.onclick = function(ev) {
7841 event.preventDefault()
7842 var elem = $(ev.target);
7843 actionBtnComprar(elem);
7844 }
7845 }
7846 }
7847
7848 function associaEventoBtnAlunoNao(i){
7849 var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i);
7850
7851 if(btnAlunoNao != null){
7852 btnAlunoNao.onclick = function(ev) {
7853 event.preventDefault()
7854 var elem = $(ev.target);
7855 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7856 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo');
7857 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7858 $('#msg-alunoNao_'+i).removeClass('d-none');
7859 $('#msg-alunoSim_'+i).addClass('d-none');
7860 }
7861 }
7862 }
7863
7864 function associaEventoBtnAlunoSim(i){
7865 var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i);
7866
7867 if(btnAlunoSim != null){
7868 btnAlunoSim.onclick = function(ev) {
7869 event.preventDefault()
7870 var elem = $(ev.target);
7871 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7872 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo');
7873 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7874 $('#msg-alunoSim_'+i).removeClass('d-none');
7875 $('#msg-alunoNao_'+i).addClass('d-none');
7876
7877 }
7878 }
7879 }
7880
7881 function associaEventoBtnConheca(i){
7882 var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i);
7883
7884 if(btnModalExtConheca != null){
7885 btnModalExtConheca.onclick = function(ev) {
7886 event.preventDefault();
7887 var elem = $(ev.target);
7888 elem.closest('.modal-extensao_content').addClass('d-none');
7889 $('#modalExtAluno_'+i).removeClass('d-none');
7890 $('#msg-alunoSim_'+i).addClass('d-none');
7891 $('#msg-alunoNao_'+i).addClass('d-none');
7892 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7893 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7894
7895 }
7896 }
7897 }
7898
7899 function associaEventoBtnLocalRealizacao(i){
7900 var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i);
7901
7902 if(btnLocalRealizacao!=null){
7903 btnLocalRealizacao.onclick = function(ev) {
7904 event.preventDefault();
7905 var elem = $(ev.target);
7906 var _modal = document.getElementById(
7907 'modalLocalRealizacao_'+elem.data('index'));
7908 _modal.style.display = "flex";
7909 }
7910 }
7911 }
7912
7913 function associaEventosFecharModal(i){
7914
7915 var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i);
7916 var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0];
7917 var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0];
7918 var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0];
7919 var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0];
7920 var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i)
7921
7922 if(isEmed){
7923 var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i);
7924 for (const val of closeModalFormaPagamento) {
7925
7926 val.onclick = function() {
7927 $('[id^="myModal_"]').each(function(index,modal){
7928 modal.style.display = "none";
7929 });
7930 }
7931 };
7932 }
7933
7934 //event close modal
7935 for (const val of span) {
7936
7937 val.onclick = function() {
7938 $('[id^="myModal_"]').each(function(index,modal){
7939 modal.style.display = "none";
7940 });
7941 }
7942 };
7943
7944 closeModalLocalRealizacao.onclick = function() {
7945
7946 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7947 modal.style.display = "none";
7948
7949 });
7950 }
7951
7952 closeModalAntesCompra.onclick = function() {
7953
7954 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7955 modal.style.display = "none";
7956 });
7957 }
7958
7959 closeModalSelecionarOutro.onclick = function() {
7960
7961 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7962 modal.style.display = "none";
7963 });
7964 }
7965
7966 btnEntendiLocalRealizacao.onclick = function() {
7967
7968 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7969 modal.style.display = "none";
7970 });
7971 }
7972
7973 if(closeModalBotaoBolsa != null){
7974 closeModalBotaoBolsa.onclick = function() {
7975
7976 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7977 modal.style.display = "none";
7978 });
7979 }
7980 }
7981
7982 // When the user clicks anywhere outside of the modal, close it
7983 window.onclick = function(event) {
7984
7985 $('[id^="myModal_"]').each(function(index,_modal){
7986 if (event.target == _modal)
7987 _modal.style.display = "none";
7988 });
7989 $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){
7990 if (event.target == _modal)
7991 _modal.style.display = "none";
7992 });
7993
7994 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){
7995 if (event.target == _modal)
7996 _modal.style.display = "none";
7997 });
7998 }
7999 }
8000
8001 function turmasIniciadas(dataInicioCurso){
8002
8003 var hoje = new Date();
8004 var dataInicioPartes = dataInicioCurso.split('/');
8005 var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds());
8006
8007 return dataInicioCursoOferta.getTime() <= hoje.getTime();
8008 }
8009
8010
8011 function concatSTR(str1, str2, separador){
8012
8013 if(str2){
8014
8015 return str1+separador+str2;
8016 }
8017 return str1;
8018 }
8019
8020 //Formata exibicao de datas conforme especificacao GCR
8021 function formataPeriodo(dataInicio, dataFim){
8022
8023 var dtInicioPartes = dataInicio.split('/');
8024 var dtFimPartes = dataFim.split('/');
8025
8026 //Não exibir o número zero antes dos números e o dia 1 como 1º
8027 var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim();
8028 var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim();
8029
8030 //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020
8031 if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){
8032
8033 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim());
8034
8035 //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020
8036 if(dtInicioPartes[1].trim() == dtFimPartes[1].trim())
8037 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()));
8038 }
8039
8040 return dInicioFormatada + ' a ' + dFimFormatada;
8041 }
8042
8043 //Decrementa os contadores de abertudas de bolsa
8044 function atualizaTempoAberturasBolsas() {
8045
8046 var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]');
8047
8048 btnsContador.each(function() {
8049
8050 var index = $(this).data('index');
8051 var btnContent = $(this).parent('.ssp-btn-group__content');
8052
8053 if(isEmed){
8054 //EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas
8055 var dadosAberturaBolsa = calculaTempoAberturaBolsa(ofertasMap.get('' +index).dataAberturaBolsaOferta, ofertasMap.get('' + index).horaAberturaBolsaOferta);
8056 }else{
8057 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
8058 var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta);
8059 }
8060
8061 $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds);
8062
8063 //Se esgotou o contador
8064 if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){
8065
8066 var elId = $(this).attr('id');
8067
8068 //remove o contador
8069 $(this).remove();
8070
8071 //Habilitar inscrição EMED
8072 if(isEmed){
8073 var ofertaEmed = ofertasMap.get('' +index);
8074 var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
8075
8076 if(elId.indexOf('btnContadorBolsa') >= 0){
8077 if($('#manutencao-bolsa').val())
8078 criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao');
8079 else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true")
8080 criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', '');
8081 else
8082 criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled');
8083 }else if(elId.indexOf('btnContadorComprar') >= 0){
8084
8085 var textoBotao, classeBotao;
8086
8087 textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula';
8088 classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : '';
8089
8090
8091 criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai);
8092
8093 //Altera o botao do modal de pagamento
8094 var btnIndex = elId.slice(elId.indexOf('_')+1);
8095 var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento');
8096 var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex);
8097 if(btnModal){
8098 btnModal.remove();
8099 criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex);
8100 preencheDadosEmedModal(ofertaEmed,modal);
8101 }
8102
8103
8104 }
8105
8106 }else{
8107
8108 //Checa as condições das vagas do botão de bolsa
8109 var btnBolsaHTML = null;
8110 if($('#manutencao-bolsa').val())
8111 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao');
8112 else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true")
8113 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo');
8114 else
8115 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled');
8116
8117 $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML);
8118
8119
8120 }
8121 }
8122
8123 });
8124
8125 }
8126
8127 // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos
8128 function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){
8129
8130 var dadosAberturaBolsa = {
8131 days : '',
8132 hours : '',
8133 minutes : '',
8134 seconds : '',
8135 bolsaJaAberta: false,
8136 exibirContador: false,
8137 textoContador: ''
8138 };
8139
8140 if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0)
8141 return dadosAberturaBolsa;
8142
8143 var now = todayG;
8144 var dia = now.getDate();
8145 var horarioDia = now.getHours();
8146
8147 var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa);
8148
8149 //console.log('tempo restante '+tempoRestante);
8150
8151 var diaAberturaBolsa = dataAberturaBolsa.split('-')[2];
8152
8153 var delta = tempoRestante / 1000;
8154
8155 var days = Math.floor(delta / 86400);
8156
8157 delta -= days * 86400;
8158
8159 var hours = Math.floor(delta / 3600) % 24;
8160 delta -= hours * 3600;
8161
8162 var minutes = Math.floor(delta / 60) % 60;
8163 delta -= minutes * 60;
8164
8165 var seconds = Math.floor(delta % 60);
8166
8167 //Zerar contador para data que ja passou
8168 if(days < 0){
8169 dadosAberturaBolsa.days = 0;
8170 dadosAberturaBolsa.hours = '00';
8171 dadosAberturaBolsa.minutes = '00';
8172 dadosAberturaBolsa.seconds = '00';
8173 }else{
8174 dadosAberturaBolsa.days = days;
8175 dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours;
8176 dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes;
8177 dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds;
8178 }
8179
8180 dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0;
8181 var horaExibeContador = 8;
8182 if(!isEmed && botaoBolsa == false){
8183 dadosAberturaBolsa.exibirContador = false;
8184 }else{
8185 dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia);
8186 dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds;
8187 }
8188 dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0;
8189
8190 return dadosAberturaBolsa;
8191
8192 }
8193
8194 // Verifica se uma oferrta já chegou sua data de abertura
8195 function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8196 // console.log(dataAberturaBolsa);
8197 // console.log(horaAberturaBolsa);
8198
8199 //var today = new Date();
8200
8201
8202 //console.log( "TodayG "+ todayG);
8203
8204 //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30
8205 var partesHora = horaAberturaBolsa.split('h');
8206
8207 var partesHora = partesHora.filter(function (el) {
8208 return el != "";
8209 });
8210
8211 //formato 9h
8212 if(partesHora.length == 1)
8213 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00");
8214
8215 else{
8216
8217 //format 9h3
8218 if(partesHora[1].length == 1)
8219 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0');
8220
8221 //formato 9h30
8222 else
8223 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]);
8224 }
8225
8226 // console.log(aberturaBolsa);
8227 return aberturaBolsa - todayG;
8228 }
8229
8230 function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8231 var dataPartes = dataAberturaBolsa.split('-');
8232
8233 return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas';
8234
8235 }
8236
8237 function formataValor(valor){
8238
8239 if(!valor.toString().includes(".")){
8240 valor = parseFloat(valor).toLocaleString('pt-BR')+",00";
8241 }else{
8242 valor = parseFloat(valor).toLocaleString('pt-BR');
8243
8244 if(valor.split(",").length == 2){
8245
8246 if(valor.split(",")[1].length == 1)
8247 valor += "0";
8248
8249 }else
8250 valor += ",00";
8251 }
8252
8253 return valor;
8254 }
8255
8256 function ajustarCasasDecimaisSemArredondar(numero, casas) {
8257 const str = numero + ''
8258 const arr = str.split('.')
8259 return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0'))
8260 }
8261
8262 function possuiCriteriosDesconto2022(dt) {
8263 return dt.substring(dt.lastIndexOf('/') + 1) >= 2022
8264 && (
8265 $('[name="tipoCurso"]').val() == 'livre'
8266 || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8267 || $('[name="tipoCurso"]').val() == 'extensao'
8268 )
8269 }
8270
8271 function strToFloat(str) {
8272 const separator = str.includes(',') ? ',' : '.'
8273
8274 const numArr = str.split(separator)
8275 const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.')
8276 const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : ''
8277 return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0'))
8278 }
8279
8280 function possuiMensalidade99(oferta) {
8281 if(!oferta.precoVendaMaxParcelaOferta
8282 || (oferta.precoVendaMaxParcelaOferta != 99
8283 && parseFloat(oferta.precoParcelaCartoes.replace(',','.')) != 99
8284 && parseFloat(oferta.precoParcelaBoleto.replace(',','.')) != 99))
8285 return false
8286
8287 if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio')
8288 return true
8289
8290 if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8291 return true
8292
8293 if($('[name="modalidades"]').val() == 'qualificacao-profissional')
8294 return true
8295
8296 return false
8297 }
8298
8299 function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) {
8300 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
8301 temDesconto = temDesconto && !possuiMensalidade99(oferta)
8302
8303 const btnLocalReal = function(oferta){
8304
8305 var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido)) ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`;
8306
8307 btn += (localLivreOnline(oferta.localEspacoExterno)) ?
8308 `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#">
8309 <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>`
8310 : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#">
8311 <i class="fas fa-user"></i>Onde as aulas vão acontecer?</a>`;
8312
8313 btn += `</div>`;
8314
8315 return btn;
8316
8317 }
8318
8319 // Card Oferta
8320
8321 let result = `
8322 <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
8323
8324 <div class="ssp-card-oferta-curso">
8325
8326 <div class="content-data-dias">
8327
8328 <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none">
8329 <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>
8330 </div>
8331
8332
8333 <div>
8334 <small class="ssp-card-oferta-curso__title-item">Período:</small>
8335 <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6>
8336 </div>
8337
8338 <div class="content-horario-dias-semana">
8339
8340 <div class="horario">
8341 <small class="ssp-card-oferta-curso__title-item">Horário e dias das aulas:</small>
8342 </div> ` +
8343
8344 `<div class="ssp-card-oferta-curso__dia-hora_content">
8345 ` + diasSemanaHTML + `
8346 </div>
8347
8348 </div>
8349
8350 ` + btnLocalReal(oferta);
8351
8352 result = result + `
8353 </div>
8354 `
8355
8356 //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
8357 //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498
8358 const estaSemValorOferta = oferta.botaoCompraOferta == ''
8359 || oferta.botaoCompraOferta == 'false'
8360 || !oferta.precoVendaOferta
8361 || !oferta.precoCheioOferta
8362 || !oferta.precoVendaMaxParcelaOferta
8363 || strToFloat(oferta.precoVendaOferta) == 0
8364 || strToFloat(oferta.precoCheioOferta) == 0
8365 || strToFloat(oferta.precoVendaMaxParcelaOferta) == 0
8366
8367 //Trecho inicial do Bolsa de estudo
8368 result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `">
8369 <div class="ssp-card-oferta__info-turma-content">
8370 <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6>
8371 </div>
8372 <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>
8373 </div>
8374 `
8375
8376 if(estaSemValorOferta) {
8377 result = result + `
8378 <div class="content-buttons hide">
8379 </div>
8380 `
8381 return result;
8382 }
8383
8384
8385 //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra"
8386 result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `">
8387 <div class="ou-separator-desconto">Ou</div>
8388 <button type="button" class="btn-show-price">
8389 <p>Saiba mais sobre:</p>
8390 <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')">
8391 <i class="fas fa-money-bill"></i>
8392 <span>Valores para compra</span>
8393 </div>
8394 </button>
8395 </div>
8396 `
8397
8398 result = result + `
8399 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
8400 `
8401
8402 if( temDesconto && !ehCursoTrampolim ) {
8403 result = result + `
8404 <div class="ssp-card-oferta__info-turma-content">
8405 <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6>
8406 </div>
8407
8408 <div class="block-valor-desconto">
8409
8410 <div class="tag-label-desconto">
8411 <small class="ssp-card-oferta-curso__title-item">Valor com </small>
8412 <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span>
8413 </div>
8414
8415 <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>
8416
8417 <div class="ssp-card-oferta-curso__desconto-content">
8418 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p>
8419 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p>
8420 </div>
8421 `
8422
8423 if($('[name="tipoCurso"]').val() == 'extensao') {
8424 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>`
8425 } else {
8426 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>`
8427 }
8428
8429 result = result + `
8430 <div class="ou-separator-desconto">Ou</div>
8431
8432 <div class="block-valor-total">
8433
8434 <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small>
8435
8436 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8437
8438 <div class="ssp-card-oferta-curso__desconto-content">
8439 <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p>
8440 </div>
8441
8442 </div>
8443 `
8444 }else{
8445
8446 // itens que são diferentes entre técnico e livres comprado a extensão
8447 if($('[name="tipoCurso"]').val() == 'extensao'){
8448 result = result + `
8449
8450 <div class="block-valor-total">
8451
8452 <div class="investimento" id="container_investimento_` + index + `">
8453
8454 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8455
8456 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6>
8457
8458 <div class="ssp-card-oferta-curso__desconto-content">
8459 <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p>
8460 </div>
8461
8462 </div>
8463
8464 </div>
8465 `
8466 } else {
8467 result = result + `
8468 <div class="block-valor-total">
8469 <div class="investimento" id="container_investimento_` + index + `">
8470 `
8471
8472 // Não mostrar mensagem de 30% de desconto em casos especificos
8473 if(temDesconto){
8474 result = result + `
8475 <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small>
8476 `
8477 }
8478
8479 if(oferta.precoCheioOferta == oferta.precoVendaOferta) {
8480 result = result + `
8481 <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small>
8482 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8483
8484 <div class="ssp-card-oferta-curso__desconto-content">
8485 <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8486 </div>
8487 </div>
8488 </div>
8489 `
8490 } else {
8491 result = result + `
8492 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8493 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8494
8495 <div class="ssp-card-oferta-curso__desconto-content">
8496 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p>
8497 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8498 </div>
8499 </div>
8500 </div>
8501 `
8502 }
8503 }
8504 }
8505
8506 let dataBtnComprar = getObjBtnComprar(oferta);
8507
8508 // itens que são diferentes entre técnico e livres comprado a extensão
8509 result = result + `
8510
8511 <div class="ssp-card-oferta-curso__formas-pagamento-content" id="container_forma_pgto_` + index + `">
8512
8513 <span>Saiba mais sobre:</span>
8514
8515 <div>
8516 <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i>
8517 <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>
8518 </div>
8519
8520 </div>
8521
8522 <div class="content-buttons">
8523
8524 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
8525
8526 <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>
8527
8528 </div>
8529
8530 </div>
8531
8532 </div>
8533
8534 </div>
8535 `
8536
8537 return result
8538 }
8539
8540 var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">'
8541 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">'
8542 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">'
8543
8544 htmlModalLocalRealizacao += '{tituloLocalRealizacao}'
8545
8546 htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8547 htmlModalLocalRealizacao += '</div>'
8548 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">'
8549 htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8550 htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8551 htmlModalLocalRealizacao += '<address>'
8552 htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8553 htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8554 htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8555 htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8556 htmlModalLocalRealizacao += '</address>'
8557 htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8558 htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>'
8559 htmlModalLocalRealizacao +='</div>'
8560 htmlModalLocalRealizacao +='</div>'
8561 htmlModalLocalRealizacao +='</div>'
8562 htmlModalLocalRealizacao +='</div>';
8563
8564 var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">'
8565 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">'
8566 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">'
8567 htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>'
8568 htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8569 htmlModalAntesCompra += '</div>'
8570 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">'
8571 htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8572 htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8573 htmlModalAntesCompra += '<address>'
8574 htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8575 htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8576 htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8577 htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8578 htmlModalAntesCompra += '</address>'
8579 htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8580 htmlModalAntesCompra += '{componentBuyConfirmation}'
8581 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>'
8582 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>'
8583 htmlModalAntesCompra +='</div>'
8584 htmlModalAntesCompra +='</div>'
8585 htmlModalAntesCompra +='</div>'
8586 htmlModalAntesCompra +='</div>';
8587
8588 var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">'
8589 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'
8590 htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>'
8591 htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>'
8592 htmlSlickAreaDiasSemana += '</p>'
8593 htmlSlickAreaDiasSemana += '</div>';
8594
8595
8596 //Montar object push - google tag manager - 5
8597 function criaItensEcommerce(ofertas){
8598
8599 let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome
8600
8601 let dadosCurso = {
8602 //Pegar do freemarker
8603 tituloComercial : $('[name="tituloComercial"]').val(),
8604 tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(),
8605 formato : $('[name="formato"]').data("formato")
8606 }
8607
8608 let ecommerceObject = {
8609
8610 item_id: "", //codOferta - oferta,
8611 item_name: "", //Nome do curso - curso,
8612 affiliation: "", //nome da unidade - oferta,
8613 currency: "BRL", //Moeda - "BRL",
8614 discount: "", //desconto - oferta,
8615 index: "", //indice da lista - i,
8616 item_brand: "Senac SP", //"Senac SP",
8617 item_category: "", //categoria do curso - curso,
8618 item_list_id: "", //"60",
8619 item_list_name: "", //"São Carlos" - Oferta,
8620 item_variant: "", //modalidade - curso,
8621 price: "", //preco cheio - oferta,
8622 quantity: 1
8623
8624 }
8625
8626 let itensEcommerce = new Map();
8627
8628 for(var i = 0; i < ofertas.length; i++){
8629
8630 itensEcommerce.set(ofertas[i].codigoOferta, {
8631
8632 item_id: ofertas[i].codigoOferta, //codOferta - oferta,
8633 item_name: dadosCurso.tituloComercial, //Nome do curso - curso,
8634 affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta,
8635 currency: "BRL", //Moeda - "BRL",
8636 discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta,
8637 index: i, //indice da lista - i,
8638 item_brand: "Senac SP", //"Senac SP",
8639 item_category: dadosCurso.tipoCurso, //categoria do curso - curso,
8640 item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60",
8641 item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta,
8642 item_variant: dadosCurso.formato, //modalidade - curso,
8643 price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta,
8644 quantity: 1
8645
8646 }
8647 )
8648 }
8649
8650 return itensEcommerce;
8651 }
8652
8653 //EMED - ELEMENTOS DINAMICOS
8654 const htmlSlickAreaEmed = function(oferta){
8655 var btnid = 'myBtn_' + oferta.indice;
8656 const diasHorarios = function(oferta){
8657 return oferta.diasDaSemanaOferta.join(', ').toLowerCase();
8658
8659 }
8660
8661
8662 return `
8663 <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `">
8664
8665 <div class="ssp-ofertas-emed__card-info-turma">
8666
8667 <div class="item-content">
8668 <i class="fas fa-calendar-alt calendar-icon-turma"></i>
8669 <p class="title-turma">`+ oferta.titulo +`</p>
8670 <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span>
8671 </div>
8672
8673 <div class="content-previsao-inicio-termino">
8674
8675 <div class="item-content">
8676 <span class="text-default">Previsão de início:</span>
8677 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span>
8678 </div>
8679
8680 <div class="item-divisor"></div>
8681
8682 <div class="item-content">
8683 <span class="text-default">Previsão de término:</span>
8684 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span>
8685 </div>
8686
8687 </div>
8688
8689
8690 <div class="item-divisor"></div>
8691
8692 <div class="item-content">
8693 <span class="text-default">Dias e horários das aulas:</span>
8694 <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span>
8695 <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span>
8696 </div>
8697
8698 </div>
8699
8700 <div class="ssp-ofertas-emed__card-info-investimento">
8701 <p class="title-investimento">Investimento anual:</p>
8702
8703 <div class="item-content-investimento">
8704 <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span>
8705 <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span>
8706 </div>
8707
8708 <div class="item-content-investimento">
8709 <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p>
8710 </div>
8711
8712 <div class="item-content-investimento">
8713 <i class="fas fa-credit-card icon-cartao-credito"></i>
8714 <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a>
8715 </div>
8716
8717 </div>
8718
8719 </div>
8720
8721 `;
8722 }
8723
8724
8725 function loadCursosVocePodeGostar(){
8726
8727 if(isEmed){
8728 var url = urlSearchCursosPodeGostarEmed
8729 .replace('\{groupId\}', groupId)
8730 .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val())
8731 .replace('\{limit\}', 12)
8732 .replace('\{articleId\}', $('[name="articleId"]').val());
8733 }else{
8734 var url = urlSearchCursosPodeGostar
8735 .replace('\{companyId\}',themeDisplay.getCompanyId())
8736 .replace('\{groupId\}', groupId)
8737 .replace('\{userId\}',themeDisplay.getUserId())
8738 .replace('\{articleId\}',$('[name="articleId"]').val())
8739 .replace('\{limit\}', 12);
8740 }
8741
8742
8743 $.ajax({
8744 url : url,
8745 type : 'get',
8746 beforeSend: function(){
8747 loading('#slider-curso');
8748 }
8749 })
8750 .done(function(cursos){
8751
8752 if(cursos.length > 0){
8753
8754 cursos = JSON.parse(cursos);
8755
8756 if(isEmed) cursos = cursos['cursos'];
8757
8758 if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none');
8759 else {
8760 $('#section-cursos-voce-pode-gostar').addClass('d-none');
8761 return;
8762 }
8763
8764 var articles = [];
8765
8766 $.each(cursos, function(k, c){
8767 articles.push(c.articleId);
8768 });
8769
8770 //Verifica a situação dos botoes de inscrições e bolsa
8771 $.ajax({
8772 url : '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','),
8773 type : 'get'
8774 })
8775 .done(function(infoBotoes){
8776
8777 if(infoBotoes.length > 0) {
8778
8779 infoBotoes = JSON.parse(infoBotoes);
8780
8781 $('#slider-curso').empty();
8782
8783 $.each(cursos, function(k, c){
8784 $('#slider-curso').append(buildCardCurso(c, infoBotoes));
8785
8786 });
8787
8788 $('#slider-curso').addClass(
8789 'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar');
8790
8791 sliderCurso('.slick-area-cursos-pode-gostar');
8792 }
8793 });
8794 }
8795
8796 })
8797 .fail(function(jqXHR, textStatus, msg){
8798 // alert(msg);
8799 });
8800
8801 }
8802
8803 /*
8804 * Armazena a navegação em cookies, se habilitado
8805 */
8806 $(document).on("click", ".ck-curso", function() {
8807
8808 //Verifica se o cookie está habilitado
8809 if(getCookie('portalSenacCookie') != null){
8810
8811 var articleId = $(this).data('ck');
8812 manageCookieArray('ck-cursos', articleId);
8813
8814 }
8815
8816 });
8817
8818
8819
8820
8821
8822 $(function(){
8823
8824 if($('#unidades-ofertas').find('option').length ==0){
8825
8826 $('.ssp-container-selecione-unidade').addClass('d-none')
8827
8828 }
8829
8830 });
8831
8832 function avisoNovasTurmas(){
8833
8834
8835 window.event.preventDefault()
8836
8837 //var unidadeSelecionada = $('#select-registro-interesse').val();
8838 //este select tem 2 valores separados por @ -> categoryId@codUnidade
8839 // var unidadeSelecionada = $('#unidades-ofertas').val();
8840
8841 //Código fixo quando Senac Ao Vivo
8842 var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8843
8844 // if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){
8845
8846 //Se ja tiver logado , redireciona para o registro
8847 if(getCookie('ticket') == null){
8848
8849 //Abre modal login
8850 $('#modal-login').removeClass('d-none');
8851
8852 }else{
8853
8854 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8855
8856 verificaBtnEnviarRegistroInteresseAtivo();
8857 }
8858
8859 window.onclick = function(event) {
8860 $('[id="modal-registro-interesse"]').each(function(index,_modal){
8861 if (event.target == _modal) {
8862 $('#modal-registro-interesse').addClass('d-none');
8863 $("body").removeClass("overflow-hidden")
8864 }
8865 });
8866 }
8867
8868 // }
8869 }
8870 function login(){
8871 var unidadeSelecionada
8872 var codUnidadeSelectRegInt
8873 doLogin({
8874 user: $('#login-email-modal').val(),
8875 pass: $('#login-password-modal').val(),
8876 btnLoadingSelector: '#btnLogin',
8877 before: () => {
8878 $('#mensagem-erro-login').addClass('d-none')
8879
8880 unidadeSelecionada = $('#unidades-ofertas').val();
8881 codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8882 },
8883 done: (data) => {
8884 var loginData = JSON.parse(data);
8885
8886 if(loginData.status == 200 || loginData.status == 201){
8887 //Após logar-se, exibe o modal p/registro de interesse
8888 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8889 verificaBtnEnviarRegistroInteresseAtivo();
8890 //esconde o modal de login
8891 $('#modal-login').addClass('d-none');
8892 }
8893 },
8894 errorMessageSelector: '#mensagem-erro-login',
8895 error: (err) => console.error(err)
8896 })
8897 }
8898
8899 function registroSelecionaTodosDias(){
8900
8901 if($(this).hasClass('ssp-week-day-active')){
8902 $(this).removeClass('ssp-week-day-active')
8903 $('.ssp-week-day').removeClass('ssp-week-day-active')
8904 }else{
8905 $(this).addClass('ssp-week-day-active')
8906 $('.ssp-week-day').addClass('ssp-week-day-active')
8907 }
8908
8909 verificaBtnEnviarRegistroInteresseAtivo();
8910 }
8911
8912 function registroSelecionaTodosPeriodos(){
8913
8914 if($(this).is(':checked')){
8915 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true);
8916 }else{
8917 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false);
8918 }
8919
8920 verificaBtnEnviarRegistroInteresseAtivo();
8921 }
8922 $('.turmas-registro-interesse input[type=checkbox]').on('click', function() {
8923 var $selecionado = $(this);
8924 if ($selecionado.is(":checked")) {
8925 $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false);
8926 $selecionado.prop("checked", true);
8927 } else {
8928 $selecionado.prop("checked", false);
8929 }
8930});
8931 function enviarRegistroInteresse(){
8932
8933 const codigoUsr = getCookie('codigo');
8934
8935 if(codigoUsr == null){
8936 //Sem o cookie refaz o login
8937 $('#modal-registro-interesse').addClass('d-none');
8938 $('body').removeClass('overflow-hidden');
8939 $('#modal-login').removeClass('d-none');
8940 return;
8941 }
8942
8943 var codigoFT = $('[name="codigoFT"]').val();
8944
8945 var unidades = new Set();
8946
8947 var diasSemana = '';
8948
8949 //Senac ao vivo nao tem opçao de dias da semana nem unidades
8950 if(isAoVivo){
8951 unidades.add(codUnidadeSenacAoVivo);
8952 }else{
8953 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
8954 if($(this).hasClass('ssp-week-day-active')){
8955 diasSemana += $(this).text()+',';
8956 }
8957 });
8958
8959 if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1);
8960
8961 $.each($('.ssp-card-registro-interesse__select'), function(k,item){
8962
8963 unidades.add(item.value);
8964 });
8965 }
8966
8967
8968 var periodos = '';
8969
8970 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
8971 if($(this).is(':checked')){
8972 periodos += $(this).val()+',';
8973 }
8974 });
8975
8976 var turmas = '';
8977
8978 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) {
8979 if ($(this).is(':checked')) {
8980 turmas += $(this).val() + ',';
8981 }
8982 });
8983
8984 if (periodos.length > 0) periodos = periodos.slice(0, -1);
8985 if (turmas.length > 0) turmas = turmas.slice(0, -1);
8986
8987 var usuarioNotificado = false;
8988
8989 loadingSubmitButton('#enviar-registro-interesse-btn');
8990
8991 unidades.forEach(function(codigoUnidade) {
8992 var data = {
8993 codigoFT: codigoFT,
8994 codigo: codigoUsr,
8995 diasSemana: diasSemana,
8996 periodos: periodos,
8997 turmas, turmas,
8998 codigoUnidade: codigoUnidade,
8999 interesseBolsa: 'N',
9000 isEmed: isEmed ? 'S' : 'N'
9001 };
9002
9003 const url = urlRegistroInteresse;
9004
9005 $.ajax({
9006 url: url,
9007 method: 'POST',
9008 data: JSON.stringify(data),
9009 headers: {
9010 'Accept': 'application/json',
9011 'Content-Type': 'application/json'
9012 },
9013 }).done(
9014 function(retornoData) {
9015
9016 var retornoData = JSON.stringify(retornoData);
9017
9018 if (retornoData.length > 0) {
9019
9020 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9021
9022 var retorno = JSON.parse(retornoData);
9023
9024 if (retorno.status == 200 || retorno.status == 201) {
9025
9026 //Evita que o usuário recebe um email para cada unidade de interesse
9027 if(usuarioNotificado) return;
9028
9029 //Mensagem de sucesso registro interesse
9030 $('#modal-registro-interesse-sucesso').removeClass('d-none');
9031
9032 var prefixUrl = themeDisplay.getLayoutRelativeURL();
9033
9034 if (prefixUrl.indexOf('staging/') > 1)
9035 prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8);
9036 else
9037 prefixUrl = HOST;
9038
9039 $('#btn-voltar-home').attr('href', prefixUrl);
9040
9041 //Busca os dados do nome do usuário logado
9042 var username = getCookie('name').split(' ')[0];
9043
9044 //Prioridade para nomeSocial
9045 if (getCookie('nome_social') != null) {
9046 var nomeSocial = getCookie('nome_social').replace(/['"]+/g, '');
9047
9048 if (nomeSocial.length > 0) username = getCookie('nome_social');
9049
9050 }
9051
9052 username = username.replace(/['"]+/g, '');
9053
9054 var unidadesSel = getUnidadesSelecionadasRI();
9055
9056 //Disara um email para o usuário interessado
9057 var data = {
9058 emailInteressado: getCookie('email'),
9059 nomeInteressado: username,
9060 tituloCurso: $('.ssp-card-detalhe-curso__title').text(),
9061 unidades: unidadesSel.unidades,
9062 unidadesPrefix: unidadesSel.unidadesPrefix
9063 };
9064
9065 $.ajax({
9066 url: urlRegistroInteresseEmailInteressado,
9067 method: 'POST',
9068 data: JSON.stringify(data),
9069 headers: {
9070 'Accept': 'application/json',
9071 'Content-Type': 'application/json'
9072 },
9073 }).done(function(retornoData) {});
9074
9075 usuarioNotificado = true;
9076
9077 window.onclick = function(event) {
9078 $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) {
9079 if (event.target == _modal){
9080 $('#modal-registro-interesse-sucesso').addClass('d-none');
9081 $('#modal-registro-interesse').addClass('d-none');
9082 $("body").removeClass("overflow-hidden");
9083 }
9084 });
9085 }
9086
9087 } else {
9088 //Mensagem de erro registro interesse
9089 $('#modal-registro-interesse-erro').removeClass('d-none');
9090 }
9091 } else {
9092 //Mensagem de erro registro interesse
9093 $('#modal-registro-interesse-erro').removeClass('d-none');
9094 }
9095 }).fail(function(){
9096 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9097 $('#modal-registro-interesse-erro').removeClass('d-none');
9098 });
9099 });
9100 }
9101
9102 function verificaBtnEnviarRegistroInteresseAtivo(){
9103
9104 var diasSemanaSelecionado = false;
9105 var periodoSelecionado = false;
9106 var turmaSelecionada = false;
9107 var politicaPrivacidadeSelecionado = false;
9108
9109
9110 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9111 if($(this).is(':checked'))
9112 periodoSelecionado = true;
9113 });
9114
9115 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9116 if($(this).is(':checked'))
9117 turmaSelecionada = true;
9118 });
9119
9120 if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true;
9121
9122 var ativo = true
9123
9124 //Caso tenha algum dos selects de unidade sem uma opção válida selecionada
9125 if(!isAoVivo)
9126 ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length
9127
9128 ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado;
9129
9130 if(!isAoVivo && !isEmed){
9131
9132 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
9133 if($(this).hasClass('ssp-week-day-active'))
9134 diasSemanaSelecionado = true;
9135 });
9136 ativo = ativo && diasSemanaSelecionado;
9137
9138 }
9139
9140 if(isEmed)
9141 ativo = ativo && turmaSelecionada;
9142
9143 if(ativo)
9144 $('#enviar-registro-interesse-btn').attr("disabled", false);
9145 else
9146 $('#enviar-registro-interesse-btn').attr("disabled", true);
9147 }
9148
9149 function loadPlanoCurso(){
9150
9151 const urlGetPlanoCurso = urlPlanoCurso
9152
9153 .replace('\{codigoFT\}', $('[name="codigoFT"]').val())
9154 .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val());
9155
9156 $.ajax({
9157 url:urlGetPlanoCurso,
9158 method:'get',
9159 crossDomain: true,
9160 dataType: 'html',
9161 success: function( data ) {
9162
9163
9164 //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto)
9165 $('#plano-curso').append('<br/>'+data);
9166 },
9167 error: function(data){
9168
9169 console.log('Não existe a URL do plano de curso');
9170
9171 }
9172
9173 });
9174 }
9175
9176 function checkCursoTrampolim(){
9177 return $('[name="codigoFT"]').val() == "24493";
9178 }
9179
9180 /*function verificaOfertaValida(oferta){
9181
9182 if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta'] == '')
9183 return false;
9184
9185 var atual = new Date();
9186
9187 var dataOfertaPartes = oferta['dataInicio'].split('/');
9188
9189 var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]);
9190
9191 var dataLimiteMatriculaOfertaPartes = "";
9192 var dataLimiteMatriculaOferta = "";
9193
9194 if(oferta['dtLimiteMatricula'] != ""){
9195 dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-');
9196 dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());
9197
9198 }
9199
9200
9201 //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje
9202 if(dataOferta <= atual)
9203 if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" && atual.getTime() > dataLimiteMatriculaOferta.getTime()))
9204 return false;
9205
9206 return true;
9207 }*/
9208
9209
9210 function loadServerDate(){
9211
9212 $.ajax({
9213 url:urlGetServerT,
9214 method:'get',
9215 dataType: 'json',
9216 cache: 'false',
9217 headers: {
9218 'Cache-Control': 'no-store, no-cache, max-age=0',
9219 'Expires': '0',
9220 'Pragma': 'no-cache'
9221 },
9222 success: function( data ) {
9223 todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds);
9224 startTimer();
9225 }
9226 });
9227
9228 }
9229
9230 function handleVisibilityChange() {
9231
9232 if (!document[hidden] ){
9233 restartTimer();
9234 }
9235
9236 }
9237
9238 function restartTimer(){
9239
9240 if(restartTimeout == null){
9241 loadServerDate();
9242 restartTimeout = setTimeout(function(){
9243 restartTimeout = null;
9244 }, 5000);
9245 }
9246
9247 }
9248
9249 function startTimer(){
9250
9251 var mSeconds = todayG.getTime();
9252 if(interval01 != null){
9253 clearInterval(interval01);
9254 }
9255 interval01 = setInterval(function(){
9256 todayG.setTime(todayG.getTime() + 1000);
9257 }, 1000);
9258
9259 if(interval15 != null){
9260 clearInterval(interval15);
9261 }
9262 interval15 = setInterval(function(){
9263 mSeconds = mSeconds + 15000;
9264 todayG.setTime(mSeconds);
9265 }, 15000);
9266
9267 }
9268
9269 function checkIsAoVivo(){
9270 isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp;
9271 }
9272
9273
9274 //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta
9275 function buscaProximaOferta(){
9276 //Zera variável que controla existência de ofertas com bolsa
9277 //ofertasComBolsa = false;
9278
9279 //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas
9280 if(carregouUltimaOferta)
9281 return;
9282
9283 //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.
9284 var totalOfertasSlick = $('#turmas-container .slick-area__item').length;
9285 //Pegamos o índice da oferta do meio (central)
9286 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9287
9288 var totalOfertasADireita = totalOfertasSlick - currentSliderIndex;
9289
9290 //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca
9291 if(totalOfertasADireita > 2)
9292 return;
9293
9294 startOfertaParam = endOfertaParam;
9295 endOfertaParam += 16;
9296
9297 const codigoFT = $('[name="codigoFT"]').val();
9298 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
9299
9300 var unidadeCategoryId = '';
9301 var unidadeCodigoSelect = '';
9302
9303 if(isAoVivo){
9304
9305 $.each(objsTela.unidades, function(k,unidade){
9306 unidadeCategoryId += unidade['categoryId']+',';
9307 });
9308
9309 //tirando ultima virgula
9310 unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1);
9311
9312 }else{
9313 var splitted = $('#unidades-ofertas').val().split("@");
9314 unidadeCategoryId = splitted[0];
9315 unidadeCodigoSelect = splitted[1];
9316 }
9317
9318 var params = new URLSearchParams();
9319 params.set('codigoFTOferta',codigoFT)
9320 params.set('dataEfetivaOferta',dataEfetivaOferta)
9321 params.set('categoryIds',unidadeCategoryId)
9322 params.set('start',startOfertaParam)
9323 params.set('end',endOfertaParam)
9324 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
9325 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
9326 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
9327
9328 if($('#chkBolsa').prop('checked')){
9329 params.set('considerarDataBolsaFutura', true)
9330 }
9331
9332 const url = urlSearchOferta + '?' + params.toString()
9333
9334 $.ajax({
9335 url:url,
9336 method:'get',
9337 dataType:'json'
9338 }).done(
9339 function(data){
9340
9341 if(data.length > 0){
9342 var indiceOferta = startOfertaParam;
9343
9344 for (var index = 0; index < data.length; index++) {
9345
9346 var ofertaJSON = data[index];
9347 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
9348
9349 //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta)
9350 if($('.codigoOferta_'+oferta.codigoOferta).length > 0){
9351 console.log('Ja tem a oferta '+oferta.codigoOferta);
9352 carregouUltimaOferta = true;
9353 break;
9354 }
9355
9356 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
9357 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
9358
9359 ofertasMap.set(oferta.codigoOferta, oferta);
9360
9361 if(isAoVivo)
9362 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
9363
9364 //O indice é igual ao ultimo elemento buscado - 1
9365 var i = indiceOferta;
9366 oferta['indice'] = i;
9367
9368 if(isAoVivo)
9369 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
9370 else codigoUnidade = unidadeCodigoSelect;
9371
9372
9373 montaHTMLOferta(oferta, i, codigoUnidade, true);
9374 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
9375
9376 montaHTMLModalLocalRealizacao(oferta, i);
9377 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
9378 verificaBotaoBolsaSS(oferta);
9379 verificaCursoAprendizagem(i);
9380 verificaCursoTrampolim(i);
9381
9382 associaEventoBtnFormaPagamento(i);
9383 associaEventoBtnComprar(i);
9384 associaEventoBtnComprarDentroFormaPgto(i);
9385 associaEventoBtnLocalRealizacao(i);
9386 associaEventosFecharModal(i);
9387
9388 if($('[name="tipoCurso"]').val() == 'extensao'){
9389 associaEventoBtnConheca(i);
9390 associaEventoBtnComprarConhecaDescontoOk(i);
9391 associaEventoBtnComprarConhecaDescontoNot(i);
9392 associaEventoBtnAlunoNao(i);
9393 associaEventoBtnAlunoSim(i);
9394
9395 }
9396
9397 indiceOferta++;
9398 }
9399
9400 controlaPaginaBolsa();
9401 }
9402 }
9403 );
9404
9405 }
9406
9407 function setUrlParam(key, value) {
9408 const url = new URL(window.location.href)
9409
9410 if(value)
9411 url.searchParams.set(key, value);
9412 else
9413 url.searchParams.delete(key);
9414
9415 window.history.pushState({}, '', url.toString())
9416 }
9417
9418 function selectFilter(paramkey, el) {
9419 setUrlParam(paramkey, el.prop("checked"))
9420 const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url')
9421 loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val())
9422
9423 if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show()
9424 else $('#msgFiltroAplicado').hide()
9425 }
9426
9427 function defineCurrentUrl(ev) {
9428 const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url')
9429
9430 const hasPathWeb = window.location.pathname.includes('/web')
9431 const hasPathGuest = window.location.pathname.includes('/guest')
9432
9433 let currentPath = window.location.pathname
9434 currentPath = hasPathWeb ? currentPath.substring(4) : currentPath
9435 currentPath = hasPathGuest ? currentPath.substring(6) : currentPath
9436
9437 objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, ''))
9438
9439 currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath
9440 currentPath = hasPathGuest ? '/guest' + currentPath : currentPath
9441 currentPath = hasPathWeb ? '/web' + currentPath : currentPath
9442
9443 if(keepURL())
9444 window.history.replaceState(window.history.state, '', currentPath + window.location.search)
9445 }
9446
9447 let isKeepURL = true
9448 /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */
9449 function keepURL() {
9450 const aux = isKeepURL
9451 isKeepURL = false
9452 return !aux
9453 }
9454
9455 loadServerDate();
9456 $(document).ready(function(){
9457
9458 if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){
9459 document.location.href = '/erro-404'
9460 }
9461
9462 ehCursoTrampolim = checkCursoTrampolim();
9463 checkIsAoVivo();
9464 loadPlanoCurso();
9465 loadCursosVocePodeGostar();
9466
9467 if(!isAoVivo) {
9468 $('#unidades-ofertas').change(ev => {
9469 mudarUnidade(ev)
9470 defineCurrentUrl(ev)
9471 });
9472 }
9473
9474 const urlParams = new URLSearchParams(window.location.search)
9475 $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true')
9476 $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) )
9477
9478 if($('#chkBolsa').length) {
9479 $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true')
9480 $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) )
9481 loadUnidades(!isAoVivo);
9482 } else {
9483 selectFilter('bolsa', $('#chkBolsa'))
9484 }
9485
9486 //Função para Montar breadcrumb Mobile
9487
9488 function breadcrumbMobile(){
9489
9490 const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');
9491
9492 if ( $.trim(linkEl.html()) === 'Técnico'){
9493
9494 linkEl.attr("href", "/cursos-tecnicos");
9495
9496 } else if ( $.trim(linkEl.html()) === 'Livre'){
9497
9498 if(isAoVivo){
9499 linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo')
9500 linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo");
9501 }else{
9502 linkEl.attr("href", "/cursos-livres");
9503 }
9504 } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){
9505
9506 linkEl.attr("href", "/jovem-aprendiz");
9507
9508 }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){
9509
9510 linkEl.attr("href", "/extensao-universitaria");
9511
9512 }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){
9513
9514 linkEl.attr("href", "/ensino-medio-tecnico");
9515 }
9516
9517 }
9518
9519 breadcrumbMobile()
9520
9521 //Esconde elementos quando o curso é aprendizagem
9522 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
9523 $('.ssp-section-novas-turmas').remove();
9524 $("div[class^='botoes-oferta-container_']").remove();
9525 }
9526
9527 //retira os itens de dentro do container
9528 $('.bg-').css('background-color','#e4e4e4')
9529 $('.container.py-3').removeClass('container py-3')
9530 //ajuste para versao 7.4
9531 $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass()
9532
9533
9534 //Fecha modal registro de interesse
9535
9536 $('#btn-close-Modal-registro-interesse').click(function(){
9537
9538 $('#modal-registro-interesse').addClass('d-none')
9539 $("body").removeClass("overflow-hidden")
9540
9541 })
9542
9543 $( "#modal-registro-interesse" ).click( function(event) {
9544
9545 if(event.target.id==$('#modal-registro-interesse')[0].id){
9546 $(this).addClass('d-none')
9547 }
9548
9549 });
9550
9551
9552 //Aviso sobre interesse em turmas
9553 $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse);
9554 if(!isEmed){
9555 $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas);
9556 $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias);
9557 } else {
9558 $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas)
9559 }
9560 $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos);
9561
9562 $('#btnLogin').click(function(){
9563
9564 login()
9565
9566 });
9567
9568 $('#btn-close-loginModal').click(function(){
9569 $('#modal-login').addClass('d-none')
9570 });
9571
9572 $('.ssp-week-day').not('#todosDias').click(function(){
9573
9574 $(this).toggleClass('ssp-week-day-active');
9575 verificaBtnEnviarRegistroInteresseAtivo();
9576
9577 });
9578
9579 $('#add-unidade-regsitro-interesse').click(function(e){
9580 var element = $('.ssp-card-registro-interesse__select.unidades').first().clone();
9581 element.empty();
9582 element.append('<option value="" disabled selected>Selecione uma unidade</option>')
9583 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9584
9585 if(!unidade['selecionado']){
9586 element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9587 }
9588
9589 });
9590 element.change(changeSelectUnidades)
9591
9592
9593 element.css('margin-top', '10px');
9594
9595 if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9596 element.attr("id", "select_" + cntSelectUnidades++)
9597 $('#select-unidades-registro-interesse').append(element);
9598 }
9599
9600 if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){
9601 $('#add-unidade-regsitro-interesse').addClass("d-none")
9602 }
9603
9604 verificaBtnEnviarRegistroInteresseAtivo();
9605 });
9606
9607 $('#remove-unidade-regsitro-interesse').click(function(e){
9608
9609 if($('.ssp-card-registro-interesse__select').length > 1){
9610
9611 var element = $('.ssp-card-registro-interesse__select').last();
9612
9613 var valueSelecionado = element.val();
9614
9615 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9616
9617 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9618 unidade['selecionado'] = false;
9619 unidade['selectSelecionado'] = "";
9620 }
9621
9622 });
9623 element.val("");
9624 cntSelectUnidades--;
9625 element.change()
9626
9627 element.remove();
9628 }
9629
9630 if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9631 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9632 }
9633
9634 verificaBtnEnviarRegistroInteresseAtivo();
9635 })
9636
9637 $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){
9638 verificaBtnEnviarRegistroInteresseAtivo();
9639 });
9640
9641 //Contador em ofertas de bolsas proximas
9642 var cancel = setInterval(atualizaTempoAberturasBolsas, 1000);
9643
9644 // Manipua o breadcrumb para as regras do Senac
9645
9646 if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai")
9647 $('ol.breadcrumb').find('li:first').remove();
9648
9649 var li = $('ol.breadcrumb').find('li:first');
9650
9651 if(li.text().trim() == 'Cursos'){
9652
9653 var primeiro = li.clone();
9654 primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home'));
9655 li.parent().prepend(primeiro);
9656
9657 var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim();
9658 var tipoBreadcrumb = '';
9659
9660 const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead"))
9661
9662 if(tipoCurso.includes("Cursos Livres")){
9663 if(isPresencialEad) {
9664 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso);
9665 } else {
9666 tipoBreadcrumb = htmlBreadcrumb(
9667 isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',
9668 isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso);
9669 }
9670 }else if(tipoCurso.includes("Extensão")){
9671 if(isPresencialEad) {
9672 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso);
9673 } else {
9674 tipoBreadcrumb = htmlBreadcrumb('/extensao-universitaria', tipoCurso);
9675 }
9676 }else if(tipoCurso.includes("Ensino Médio Técnico")){
9677 if(isPresencialEad) {
9678 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso);
9679 } else {
9680 tipoBreadcrumb = htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso);
9681 }
9682 }else if(tipoCurso.includes("Jovem Aprendiz")){
9683 if(isPresencialEad) {
9684 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso);
9685 } else {
9686 tipoBreadcrumb = htmlBreadcrumb('/jovem-aprendiz', tipoCurso);
9687 }
9688 }else{
9689 if(isPresencialEad) {
9690 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso);
9691 } else {
9692 tipoBreadcrumb = htmlBreadcrumb('/cursos-tecnicos', tipoCurso);
9693 }
9694 }
9695
9696 li.html(tipoBreadcrumb);
9697
9698 if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove();
9699
9700 }
9701
9702 $('#turmas-container').on('click', 'a.slick-next', function(e){
9703
9704 e.preventDefault();
9705 buscaProximaOferta();
9706
9707 });
9708
9709 $('#turmas-container').on('click', 'button.slick-dots', function(){
9710
9711
9712
9713 });
9714
9715 $(".next-mobile").on("click",function(e){
9716 e.preventDefault();
9717
9718 acoesMobileSliderOfertas("left");
9719 });
9720
9721 $(".prev-mobile").on("click",function(e){
9722 e.preventDefault();
9723
9724 acoesMobileSliderOfertas("right");
9725 });
9726
9727 //ação de drag do card de ofertas no mobile
9728 $('.oferta-slick-area').on('swipe', function(event, slick, direction){
9729 acoesMobileSliderOfertas(direction);
9730 });
9731
9732 loadAlternadores()
9733 let modalFormAprendizagem = document.querySelector('[data-modal="modal"]')
9734 if(modalFormAprendizagem){
9735 // Create dinamic close buttom form
9736 let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]')
9737
9738 btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem)
9739
9740 }
9741
9742 $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){
9743 openModalFormAprendizagem();
9744 })
9745
9746 });
9747
9748 function htmlBreadcrumb(link, title, display){
9749
9750 return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>';
9751
9752 }
9753
9754 function acoesMobileSliderOfertas(direcao){
9755
9756 if(direcao == "right"){
9757 $("a.slick-prev").click();
9758
9759 if($('.slick-current').attr('data-slick-index') == "0")
9760 $('.prev-mobile').addClass('nextPrevOpacity');
9761
9762 if($(".next-mobile").hasClass('nextPrevOpacity'))
9763 $('.next-mobile').removeClass('nextPrevOpacity');
9764 }
9765
9766
9767 if(direcao == "left"){
9768 $("a.slick-next").click();
9769
9770 if($(".prev-mobile").hasClass('nextPrevOpacity'))
9771 $('.prev-mobile').removeClass('nextPrevOpacity');
9772
9773 if(carregouUltimaOferta){
9774 var totalCardOfertas = $('#turmas-container .slick-area__item').length;
9775 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9776
9777 //o card do meio é o último
9778 if(totalCardOfertas == (currentSliderIndex + 1))
9779 $('.next-mobile').addClass('nextPrevOpacity');
9780 }
9781 }
9782 }
9783
9784 //habilitar/desabilitar registro de interesse
9785 function habilitarRegistroInteresse(habilitar){
9786 var sectionRI = $('#section-registro-interesse')
9787
9788 if(isEmed) {
9789 sectionRI.hide()
9790 return;
9791 }
9792
9793 //Redmine #9309 - sempre irá mostrar
9794 habilitar = true
9795
9796 if(habilitar) sectionRI.show()
9797 else sectionRI.hide()
9798 }
9799
9800 function abrirModalRegistroInteresse(codUnidadeSelect){
9801 $('#modal-registro-interesse').removeClass('d-none');
9802 $("body").addClass("overflow-hidden")
9803 if(!isEmed){
9804 $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text());
9805 } else {
9806 $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar")
9807 $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text());
9808 }
9809
9810 $('.ssp-card-registro-interesse__select:not(#select_0)').remove();
9811 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9812 if(unidade['codigoUnidade'] == codUnidadeSelect){
9813 unidade['selecionado'] = true;
9814 unidade['selectSelecionado'] = 'select_0';
9815 } else {
9816 unidade['selecionado'] = false;
9817 unidade['selectSelecionado'] = "";
9818 }
9819
9820 });
9821 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9822 return ordenar(a, b, 'nome');
9823 });
9824
9825 $('#select_0').empty();
9826 $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>')
9827 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9828
9829 $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9830
9831 });
9832 $('#select_0').val(codUnidadeSelect);
9833
9834 if(isAoVivo){
9835 $('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none');
9836 }
9837 if(objsTela.unidadesRegistroInteresse.length > 1) {
9838 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9839 $('#add-unidade-regsitro-interesse').show()
9840 $('#remove-unidade-regsitro-interesse').show()
9841 } else {
9842 $('#add-unidade-regsitro-interesse').hide()
9843 $('#remove-unidade-regsitro-interesse').hide()
9844 }
9845 }
9846
9847 $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades)
9848
9849 function changeSelectUnidades() {
9850 var codUnidadeSelecionada = $(this).val();
9851 var idSelectSelecionado = $(this).attr('id')
9852 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9853 if(unidade['codigoUnidade'] == codUnidadeSelecionada){
9854 unidade['selecionado'] = true;
9855 unidade['selectSelecionado'] = idSelectSelecionado;
9856 } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){
9857 unidade['selecionado'] = false;
9858 unidade['selectSelecionado'] = "";
9859 }
9860
9861 });
9862
9863 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9864 return ordenar(a, b, 'nome');
9865 });
9866
9867 $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() {
9868 var valueSelecionado = $(this).val();
9869 var idActualSelect = $(this).attr('id');
9870 $(this).empty();
9871 $(this).append('<option value="" disabled>Selecione uma unidade</option>')
9872 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9873
9874 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9875 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9876 }else if(!unidade['selecionado']){
9877 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9878 }
9879
9880 });
9881 $(this).val(valueSelecionado)
9882 });
9883
9884 verificaBtnEnviarRegistroInteresseAtivo();
9885 }
9886
9887
9888 function ordenar(objA, objB, nomeAtributo){
9889 let a = (nomeAtributo) ? objA[nomeAtributo] : objA;
9890 let b = (nomeAtributo) ? objB[nomeAtributo] : objB;
9891
9892 return a.toString().localeCompare(b.toString());
9893 }
9894
9895 function paramOrdem(xml){
9896 if(isEmed){
9897 var ordemPeriodo = ['MA', 'TA', 'NO'];
9898 return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo);
9899 }else{
9900 return xml.find('[name="dataInicioOferta"]').text();
9901 }
9902 }
9903
9904 function getEtapaSelecionadaEmed(){
9905 var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo');
9906 if(!btnEtapa) return '';
9907 return btnEtapa.val();
9908 }
9909
9910 function filtraOfertasEtapa(etapa, ofertas){
9911 if(!etapa) return [];
9912 var ofertasEtapa = [];
9913 var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
9914 var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'};
9915 var ultimoPeriodo = null, indexPeriodo;
9916 ofertas = ofertas.sort(function(a, b){
9917 return ordenar(a, b, 'periodoDiaOferta');
9918 });
9919
9920 $.each(ofertas, async (index, oferta)=> {
9921 if(oferta['etapa'] == etapa){
9922 if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0;
9923 ultimoPeriodo = oferta['periodoDiaOferta'];
9924 oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || '');
9925 ofertasEtapa.push(oferta);
9926 }
9927 });
9928
9929 return ofertasEtapa;
9930 }
9931
9932 function formatarDataEmed(data, etapa, isDataFim){
9933
9934 try{
9935
9936 var splitdata = data.split('/');
9937 var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
9938 var mes = meses[parseInt(splitdata[1])-1];
9939
9940 var ano = splitdata[2];
9941
9942 if(isDataFim){
9943 ano = parseInt(splitdata[2]);
9944 }
9945
9946 return mes + '/' + ano;
9947 }catch(err){
9948 return data;
9949 }
9950
9951 }
9952
9953 //EMED Mobile
9954 function sliderOfertasEmed(){
9955
9956 var tamScreen = $(window).width();
9957 if(tamScreen < 1024){
9958 $('.ssp-slick-ofertas-emed').slick({
9959 slidesToShow: 1,
9960 slidesToScroll: 1,
9961 dots: false,
9962 infinite: false,
9963 adaptiveHeight: true,
9964 prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>',
9965 nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>',
9966 responsive: [
9967
9968 {
9969 breakpoint: 1200,
9970 settings: {
9971 slidesToShow: 1,
9972 slidesToScroll: 1,
9973 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>',
9974 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>',
9975
9976 }
9977 },
9978 {
9979 breakpoint: 768,
9980 settings: {
9981 slidesToShow: 1,
9982 slidesToScroll: 1,
9983 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>',
9984 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>',
9985 }
9986 }
9987
9988 ]
9989
9990 });
9991
9992 }
9993
9994 }
9995
9996function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){
9997
9998 let backpackPostRequest = {};
9999 backpackPostRequest.codOferta = codOferta;
10000 backpackPostRequest.codUnidade = codUnidade;
10001 backpackPostRequest.dt_efetiva = dataEfetiva;
10002
10003
10004 mochila.requestAccess(function(backpackPostRequest){
10005
10006 let urlMochila = '/o/senac-backpack-services/backpack';
10007
10008 if(getCookie("codMochila") != null){
10009 backpackPostRequest.codMochila = getCookie("codMochila");
10010 urlMochila = '/o/senac-backpack-services/updateBackpack';
10011 }
10012 $.ajax({
10013 type: 'POST',
10014 url: urlMochila,
10015 headers: {
10016 "Content-Type":"application/json"
10017 },
10018 beforeSend: function(xhr){
10019 xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila"));
10020 loadingSubmitButton(originElemSelector);
10021 $(originElemSelector + ' .loading-icon-button').css('height', 'unset');
10022 if($(window).width() < 1024){
10023 $(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%');
10024 }
10025 },
10026 data : JSON.stringify(backpackPostRequest)
10027 }).done(function(data) {
10028
10029 let domain = '';
10030 if(getAmbiente() == 'hom' || getAmbiente() == 'prod')
10031 domain = '.sp.senac.br';
10032
10033 writeCookie(
10034 'codMochila',
10035 (getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,
10036 24,
10037 domain
10038 );
10039 addItemSuccessMochila();
10040
10041 }).fail(function(xhr, status, error) {
10042
10043 $('#modal-backpack-error').removeClass('d-none');
10044
10045 }).always(function(){
10046
10047 cleanLoadingSubmitButton(
10048 originElemSelector,
10049 originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR'
10050 );
10051 $('[id^="modalAntesCompra_"]').each(function(index, modal) {
10052 modal.style.display = "none";
10053 });
10054
10055 });
10056
10057 }, backpackPostRequest);
10058
10059}
10060
10061function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){
10062
10063 var comp = null;
10064
10065 if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2"){
10066
10067 comp = $("<button>")
10068 .addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack")
10069 .attr("offerCode",oferta.codigoOferta)
10070 .attr("unitCode",codigoUnidade)
10071 .attr("effectiveDate",dataEfetiva)
10072 .text("OK, desejo comprar");
10073
10074 }else {
10075
10076 comp = $("<a>")
10077 .addClass("btn btn-lg btn-success w-100 mt-3")
10078 .text("OK, desejo comprar")
10079 .attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta))
10080 .attr("target","_blank");
10081 }
10082
10083 comp.attr('id', 'btnCompraLocal_' + oferta.indice);
10084
10085 return comp[0].outerHTML;
10086
10087}
10088
10089function getUnidadesSelecionadasRI(){
10090 var unidadesRI = [];
10091
10092 try{
10093
10094 $('#select-unidades-registro-interesse').find('select').each((i,select) =>{
10095 var unidadeSel = select.selectedOptions[0].innerText;
10096 if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel);
10097 });
10098
10099 var unidadesExt = unidadesRI.join(', ');
10100
10101 const lastIndex = unidadesExt.lastIndexOf(',');
10102
10103 if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1);
10104
10105 return {
10106 'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')),
10107 'unidades' : unidadesExt
10108 };
10109
10110 }catch(err){
10111
10112 return {
10113 'unidadesPrefix' : '',
10114 'unidades' : ''
10115 };
10116
10117 }
10118
10119 }
10120
10121
10122
10123
10124function addItemSuccessMochila(){
10125
10126 mochila.check();
10127 $('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text());
10128 $('#modal-backpack-success').removeClass('d-none');
10129
10130}
10131
10132$(document).on('click', '.btn-backpack', function(e){
10133
10134 addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate"));
10135
10136});
10137
10138$('#btn-voltar-modal-backpack-error').click(function () {
10139 $('#modal-backpack-error').addClass('d-none');
10140});
10141
10142$('#btn-voltar-modal-backpack-error').click(function () {
10143 $('#modal-backpack-error').addClass('d-none');
10144});
10145
10146$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () {
10147 $('#modal-backpack-success').addClass('d-none');
10148});
10149
10150$('.btn-mochila-finalizar-compra-success').click(function () {
10151 // Montar object push - google tag manager - 6
10152 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10153
10154 mochila.verificaLogin();
10155 $('#modal-backpack-success').addClass('d-none');
10156 $('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none");
10157});
10158
10159 function closeModalFormAprendizagem(){
10160 let modal = document.querySelector('[data-modal="modal"]')
10161
10162 modal.classList.remove('open-modal-form')
10163
10164 }
10165
10166
10167 function openModalFormAprendizagem(){
10168 let modal = document.querySelector('[data-modal="modal"]')
10169
10170 modal.classList.add('open-modal-form')
10171
10172 }
10173
10174 function addEventBolsa() {
10175 // Mostra o preco
10176 const btnShowPrices = document.querySelectorAll('.btn-show-price')
10177
10178 btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard))
10179
10180 if(!$('#chkBolsa').prop('checked'))
10181 togglePriceCard()
10182 }
10183
10184 function togglePriceCard(selector){
10185 if(selector instanceof PointerEvent) return
10186
10187 if(!selector) selector = ''
10188 else selector = '.' + selector
10189
10190 const btnPrices = document.querySelectorAll('.show-price-content'+selector)
10191 const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector)
10192 const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector)
10193
10194 btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide'))
10195 contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show'))
10196 contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))
10197 }
10198
10199 function getRegiaoName(key) {
10200 switch (key) {
10201 case "C":
10202 return "Capital";
10203 case "I":
10204 return "Interior";
10205 case "GS":
10206 return "Grande São Paulo e Litoral";
10207 default:
10208 return "Sem Região";
10209 }
10210 }
10211
10212 function criarOptionUnidadesPorRegiao(unidades) {
10213 let regioes = {}
10214 let unidadeFounded
10215
10216 unidades.forEach(unidade => {
10217 if(!regioes[unidade.codRegiaoUnidade || 'N'])
10218 regioes[unidade.codRegiaoUnidade || 'N'] = []
10219
10220 regioes[unidade.codRegiaoUnidade || 'N'].push(unidade)
10221 })
10222
10223 Array.from(['C', 'I', 'GS', 'N'])
10224 .filter(key => Object.keys(regioes).includes(key))
10225 .forEach(key => {
10226 const unidadesDaRegiao = regioes[key]
10227
10228 const optionDisabled = $('<option>')
10229 optionDisabled.attr('label', getRegiaoName(key))
10230 optionDisabled.text(getRegiaoName(key));
10231 optionDisabled.attr('disabled', true)
10232 optionDisabled.addClass('ssp-option-group')
10233 $('#unidades-ofertas').append(optionDisabled)
10234
10235 $.each(unidadesDaRegiao, function(k,unidade){
10236 if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){
10237 var option = $('<option>');
10238 option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']);
10239 option.text(unidade['nome']);
10240 option.attr('data-unidade-friendly-url', unidade.friendlyURL)
10241 option.addClass('ssp-option')
10242
10243 $('#unidades-ofertas').append(option);
10244
10245 unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded
10246 }
10247 })
10248 })
10249
10250 return unidadeFounded
10251 }
10252
10253 function getURLData() {
10254 return URLGeral.replace(HOST, '')
10255 }
10256
10257 /**
10258 * Copia um objeto JSON
10259 */
10260 function cloneObj(original) {
10261 return JSON.parse(JSON.stringify(original));
10262 }
10263
10264 function getUrlConsultaBolsa(oferta){
10265
10266 let url = '';
10267 if (isAmbienteTeste()) {
10268 if(oferta.destinoBolsa=='1') {
10269 url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10270 } else {
10271 url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10272 }
10273 } else {
10274 if(oferta.destinoBolsa=='1') {
10275 url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10276 } else {
10277 url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10278 }
10279
10280 }
10281
10282 return url;
10283 }
10284
10285 function execCompraEmed(oferta){
10286
10287 let linkInscricaoEmed, linkInscricaoEmedHml, acadProg;
10288 if(oferta.etapa == '0010'){
10289 linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-educacional-ms.sp.senac.br/?oferta={codOferta}';
10290 linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-educacional-backend.sp.senac.br/?oferta={codOferta}';
10291 acadProg = null;
10292 }else{
10293 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}';
10294 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}';
10295 acadProg = ()=>{
10296 //Codigo FT + Data Efetiva(ymd) : AcadProg
10297 const acadProgMap = {
10298 ['2478820220101'] : '08202',
10299 ['2363020210101'] : '07325',
10300 ['2362920210101'] : '07326',
10301 ['2097420210101'] : '05918'
10302 }
10303 var key = $('[name="codigoFT"]').val() + $('[name="dataEfetivaSTR"]').val().replace(/-/g, '');
10304 return acadProgMap[key] || '';
10305 }
10306 }
10307
10308 var ambTeste = ['localhost', 'hom', 'dev'];
10309 var link = linkInscricaoEmed;
10310 $.each(ambTeste, function(i, a){
10311 if(location.hostname.indexOf(a) >= 0){
10312 link = linkInscricaoEmedHml;
10313 return false;
10314 }
10315 });
10316
10317 // Montar object push - google tag manager - 3
10318 ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta)
10319 sendEventEcommerce("select_item", ofertaSelecionada);
10320 sendEventEcommerce("view_item", ofertaSelecionada);
10321 sendEventEcommerce("add_to_cart", ofertaSelecionada);
10322 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10323
10324 var urlCompra = link.replace('\{acad_prog\}', acadProg)
10325 .replace('\{codUnidade\}', $('[name="codUnidadeSelecionada"]').val())
10326 .replace('\{periodo\}', (oferta.periodoDiaOferta == 'TA') ? 'V' : oferta.periodoDiaOferta.slice(0, 1))
10327 .replace('\{etapa\}', oferta.etapa)
10328 .replace('\{codOferta\}', oferta.codigoOferta);
10329 window.open(urlCompra, '_blank');
10330
10331 }
10332
10333 function formataDataComBarra(dataInvertidaComTraco){
10334 return dataInvertidaComTraco.split('-').reverse().join('/');
10335 }
10336
10337
10338 let ctrlPressed = false;
10339 $(window).keydown(function (ev) {
10340 if(ev.which == 17){
10341 ctrlPressed = true;
10342 return false;
10343 }
10344 if(ev.which == 82 && ctrlPressed){
10345 return false;
10346 }
10347 return (ev.which != 116); // F5
10348 }).keyup(function(ev) {
10349 if (ev.which == 17){
10350 ctrlPressed = false;
10351 }
10352 return true;
10353 });
10354
10355
10356 </script>
10357
10358</#if>