Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> isEMED [in template "20102#20129#438394" at line 4063, column 15] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if !isEMED [in template "20102#20129#438394" at line 4063, column 9] ----
1<#assign
2 isEditMode = themeDisplay.getURLCurrent()?contains('p_l_mode=edit')
3/>
4<!-- Essa verificação é necessária para que não encaminhe erros de freemarker ao KIBANA ao acessar a página de edição dos componentes -->
5<#if isEditMode >
6 <h3>Modo de edição identificado</h3>
7<#else>
8
9<style>
10
11 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card {
12 background: white;
13 width: 100%;
14 padding: 32px 52px;
15 box-shadow: 2px 5px 12px #00000040;
16 border-radius: 20px;
17 display: flex;
18 flex-wrap: nowrap;
19 justify-content: space-between;
20 align-items: center;
21 }
22
23 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-icone {
24 max-width: 100%;
25 height: 72px;
26 margin-bottom: 10px;
27 }
28
29 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section {
30 background: #472247;
31 border-top: 18px solid #792F7A;
32 text-align: center;
33 padding-bottom: 60px;
34 }
35
36 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white::after {
37
38
39 display: none;
40
41
42 }
43
44 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white {
45 color: white;
46 font-size: 44px !important;
47 margin-bottom: 32px !important;
48 text-align:unset;
49 }
50
51 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-title {
52 font-size: 28px;
53 color: #B767C2;
54 font-weight: bold;
55 line-height: 28px;
56 margin: 0;
57 margin-bottom:.5rem;
58 }
59
60
61.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-credit-card::after {
62
63 font-size: 18px;
64
65}
66
67.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto::after {
68
69 font-size: 18px;
70
71}
72
73.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__header {
74 align-items:center;
75 color:#454F63;
76}
77
78.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__btn-close::after {
79 font-family: "Font Awesome 6 Pro";
80 font-weight: normal;
81 content: "\f00d";
82 font-style: normal;
83 font-size:30px;
84 cursor: pointer;
85}
86
87.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__body {
88
89 padding:0 15px;
90}
91
92.ssp-card-modal-forma-pagamento__tipos-content p {
93
94 color: #454F63!important;
95 font-size: 14px!important;
96}
97
98.ssp-card-modal-forma-pagamento__tipos-content strong {
99
100 font-weight: bold!important;
101}
102
103.txt-desconto-oito{
104
105 font-weight: 600!important;
106 border: 1px solid #f2f2f2;
107 border-right: 0;
108 border-left: 0;
109 padding: 10px 0;
110}
111
112.next-mobile{
113 color: white;
114 display: flex;
115 align-items: center;
116 text-decoration: none!important;
117}
118
119.next-mobile:hover{
120 color: white;
121 font-weight: normal!important;
122}
123
124.next-mobile::before{
125 font-family: "Montserrat", sans-serif;
126 content: "Próxima";
127 font-size: 14px;
128 font-weight: 600;
129 display: block;
130 margin-right: 9px;
131 color: white;
132}
133
134.next-mobile.slick-arrow.slick-disabled{
135 opacity: 0.4;
136}
137
138
139/* Prev Mobile button */
140
141
142.prev-mobile{
143 color: white;
144 display: flex;
145 align-items: center;
146 text-decoration: none;
147 text-decoration: none!important;
148}
149
150.prev-mobile:hover{
151 color: white;
152 font-weight: normal!important;
153}
154
155.prev-mobile::after{
156 font-family: "Montserrat", sans-serif;
157 content: "Anterior";
158 font-weight: 600;
159 font-size: 14px;
160 display: block;
161 margin-left: 9px;
162 color: white;
163}
164
165.prev-mobile.slick-arrow.slick-disabled{
166 opacity: 0.4;
167}
168
169
170.icon-ao-vivo{
171 font-size: 15px!important;
172 margin: 0 3px;
173}
174
175.ssp-card-detalhe-curso__tag-ao-vivo{
176 font-family: "Montserrat";
177 font-size: 19px;
178 letter-spacing: 0px;
179 color: #F77A3B;
180}
181
182.selecione-unidade-title-custom{
183
184 width:100%!important;
185
186}
187
188.recalcular{
189 background:#F6921E!important;
190 border: solid 1px #F6921E!important;
191}
192
193.ssp-card-detalhe-curso__description{
194
195 font-family: "Montserrat";
196 max-width: 800px;
197 font-size: 20px;
198 font-weight: 500;
199 font-stretch: normal;
200 font-style: normal;
201 line-height: 1.23;
202 letter-spacing: normal;
203 margin: 10px 0;
204 text-align: left;
205 color: #4f596f;
206
207}
208
209/* nova formatação para registro de interesse */
210.ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
211 display: flex;
212 flex-wrap: nowrap;
213 justify-content: center;
214 align-items: center;
215 padding: 10px 0;
216}
217
218/* Novas tags para formato de curso */
219
220.ssp-card-detalhe-curso__tag-formato{
221
222 font-size:18px;
223 font-weight:600;
224
225}
226
227.icon-formato{
228 margin-right:7px;
229}
230
231.online-aovivo{
232 position:relative;
233
234}
235
236.icon-small-wifi {
237 font-size: 13px;
238 position: absolute;
239 left: -12px;
240 top: -5px;
241}
242
243.ssp-desconto-2022 .modal-extensao_txteconomiza {
244 font-size: 14px !important;
245 font-weight: 100 !important;
246}
247.ssp-desconto-2022 .ssp-card-oferta-curso__desconto-content .ssp-card-oferta-curso__valor-desconto {
248 font-weight: 100 !important;
249}
250.ssp-desconto-2022 .modal-extensao-btn-conheca {
251 border: 1px solid #474F61 !important;
252 border-radius: 4px;
253 color: #474F61 !important;
254 font-size: 15px;
255 height: 50px;
256 margin-left: 0;
257 display: flex;
258 align-items: center;
259 justify-content: center;
260}
261
262.ssp-card-modal-forma-pagamento.ssp-desconto-2022 {
263 color: #454F63;
264}
265.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 {
266 font-size: 22px !important;
267}
268.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 span {
269 font-size: 13px !important;
270}
271.ssp-desconto-2022 span {
272 padding: 0 !important;
273}
274
275.ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
276 appearance: none !important;
277 -webkit-appearance: none !important;
278 -moz-appearance: none !important;
279
280 background-size: 25px 25px !important;
281 background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0xODcuOCAyNjQuNUw0MSA0MTIuNWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDQuMiAzOTIuN2MtNC43LTQuNy00LjctMTIuMyAwLTE3TDEyMi43IDI1NiA0LjIgMTM2LjNjLTQuNy00LjctNC43LTEyLjMgMC0xN0wyNCA5OS41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwxNDYuOCAxNDhjNC43IDQuNyA0LjcgMTIuMyAwIDE3eiIvPjwvc3ZnPg==);
282 background-repeat: no-repeat !important;
283 background-position-x: 99% !important;
284 background-position-y: 50% !important;
285}
286
287@media only screen and (max-width: 768px){
288
289 .ssp-card-detalhe-curso__tag-ao-vivo{
290 font-size: 14px;
291 display: none;
292 }
293 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
294
295 flex-wrap: wrap!important;
296
297}
298.ssp-card-modal-forma-pagamento__tipos-content p {
299
300 font-size: 12px!important;
301}
302
303
304 .ssp:not(.liferay-instance) .ssp-section-selecione-unidade {
305 padding: 30px 0!important;
306 padding-bottom: 30px !important;
307 background-color: #2a2e43;
308 }
309
310 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__title {
311 padding-bottom: 1.25rem !important;
312 }
313
314 .selecione-unidade-title-custom{
315 width:100%!important;
316
317 }
318
319 .ssp-card-detalhe-curso__description{
320 width: 100%;
321 font-size: 15px;
322
323 }
324 .ssp-como-me-matricular__passo-passo-card {
325 padding: 30px 24px!important;
326
327 }
328
329 .emed-select-group {
330 box-shadow: none!important;
331 border: none !important;
332 border-bottom: 1px solid #6E6E6E!important;
333 border-radius: 0 !important;
334 padding: 0 !important;
335 margin: 1rem 0 !important;
336 }
337
338 .emed .ssp-card-registro-interesse__title-modal{
339 font-size: 20px!important;
340 }
341 .emed .ssp-card-registro-interesse__title-section-itens {
342 font-size: 15px!important;
343 margin-top: 0px!important;
344 margin-bottom: 0px!important;
345 color: #2a2e43;
346 }
347 .ssp-card-registro-interesse.emed [type="checkbox"] {
348 transform: scale(0.6);
349 margin-left: 2px;
350 }
351
352 .ssp-card-registro-interesse.emed label {
353 margin-left: 0px;
354 margin-right: 3px;
355 }
356}
357
358.ssp-card-oferta-curso__local-realizacao-content__title {
359 font-family: "Open Sans", sans-serif;
360 font-size: 10pt;
361 font-weight: normal;
362 color: #00488c;
363 font-weight: bold;
364 text-decoration: none!important;
365 padding-left: 10px;
366}
367
368 @media screen and (min-width: 767px){
369
370 .ssp-modal-local-realizacao{
371 width: 480px!important;
372 }
373 .ssp-card-modal-forma-pagamento__header {
374 margin-bottom: 20px;
375 }
376
377 .ssp-modal-local-realizacao__title{
378 color:#01488C !important;
379 text-align: center!important;
380 margin-left: -23px!important;
381 }
382
383 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
384 font-size: 14pt;
385 }
386 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
387 font-size: 14px !important;
388 text-align: left;
389 }
390 .ssp-modal-emed-txt-desconto-oito {
391 padding: 10px 0 0px!important;
392 }
393 .ssp:not(.liferay-instance) .ssp-modal-emed-info-valor-matricula {
394 color: #4F596F;
395 font-size: 15px!important;
396 text-align: center;
397 font-weight: 500!important;
398 }
399}
400
401@media screen and (max-width: 767px){
402 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao {
403 width: 347px;
404 padding: 22px;
405 }
406 .ssp-modal {
407 padding-top: 72px!important;
408 }
409 .ssp-card-modal-forma-pagamento {
410 max-width: 335px!important;
411 }
412 .ssp-card-modal-forma-pagamento__body {
413 padding: 0px!important;
414 }
415 .ssp-modal-emed-txt-desconto-oito {
416 font-size: 12px !important;
417 }
418 .ssp-card-modal-forma-pagamento__header {
419 margin-bottom: 20px!important;
420 }
421 .txt-desconto-oito i {
422 font-size: 12px!important;
423 padding-top: 3px;
424 }
425 .txt-pague-vista {
426 font-size: 12px!important;
427 }
428 .txt-ganhe-mais {
429 font-size: 12px!important;
430 }
431 .ssp-modal-emed-info-valor-matricula {
432 color: #2A2E43!important;
433 font-size: 12px!important;
434 font-weight: 500!important;
435 }
436 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
437 font-size: 12px !important;
438 line-height: 1.5;
439 text-align: left;
440 }
441
442 .ssp-desconto-2022 .txt-desconto-oito {
443 font-size: 14px !important;
444 }
445}
446
447@media screen and (max-width: 767px){
448 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
449 font-size: 16pt;
450 }
451}
452
453.container-local-realizacao{
454 padding: 6px;
455 border: 0.5pt solid #cdd0d8;
456 border-radius: 5px;
457 width: 260px;
458 margin: 10px auto;
459 box-shadow: 1px 1px 1px #0000000F;
460}
461
462.idioma-online{
463 border:0!important;
464 box-shadow:none!important;
465}
466
467.btn-idiomas__aula-online .fa-wifi{
468 margin-right: 7px
469}
470
471.ssp-modal-local-realizacao__title{
472 color:#01488C !important;
473 text-align: center!important;
474}
475
476h6.ssp-modal-local-realizacao__title::after {
477 content: "";
478 display: block;
479 width: 20%;
480 padding-top: 10px;
481 border-bottom: 1px solid #01488C;
482 transition: .5s;
483 margin:auto;
484}
485
486.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-wifi::after {
487 font-family: "Font Awesome 5 Free";
488 content: '\f1eb';
489 font-weight: 600;
490 color: #00488c;
491 font-size: 8px;
492 font-style: normal;
493 margin-left: 2px;
494}
495
496.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-chalkboard-teacher::after {
497 font-family: "Font Awesome 5 Free";
498 content: '\f51c';
499 font-weight: 600;
500 color: #00488c;
501 font-size: 13px;
502 font-style: normal;
503}
504
505.ssp-card-oferta-curso__local-realizacao-content__icon-wifi{
506 display: flex;
507 margin-top: 0px;
508 margin-bottom: -10px;
509}
510
511.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-wifi::after {
512 font-family: "Font Awesome 5 Free";
513 content: '\f1eb';
514 font-weight: 600;
515 color: #00488c;
516 font-size: 9pt;
517 font-style: normal;
518 margin-right: 10px;
519}
520
521.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-chalkboard-teacher::after {
522 font-family: "Font Awesome 5 Free";
523 content: '\f51c';
524 font-weight: 600;
525 color: #00488c;
526 font-size: 16pt;
527 font-style: normal;
528 margin-left: -16px;
529}
530
531.ssp-modal__local-realizacao-content__icon-wifi{
532 display: flex;
533 margin-right: 2px
534}
535
536.ssp-modal-local-realizacao__texto{
537 text-align:center!important;
538}
539
540.texto-modal-emed{
541 text-align:left;
542}
543
544.nextPrevOpacity{
545 opacity: 0.3;
546}
547
548
549 .modal-extensao {
550 display: block;
551 position: fixed;
552 z-index: 2000;
553 padding-top: 100px;
554 left: 0;
555 top: 0;
556 width: 100%;
557 height: 100%;
558 overflow: auto;
559 background-color: black;
560 background-color: rgba(0, 0, 0, 0.6);
561 font-family: Montserrat;
562 }
563 .modal-extensao_content {
564 max-width: 700px;
565 width: 100%;
566 background: white;
567 border-radius: 12px;
568 padding: 30px 60px;
569 position: relative;
570 text-align: center;
571 margin: auto;
572 -webkit-animation-name: animatetop;
573 -webkit-animation-duration: 0.4s;
574 animation-name: animatetop;
575 animation-duration: 0.4s;
576 }
577 .modal-extensao-condicoes__title {
578 color: #000!important;
579 text-transform: uppercase!important;
580 font-size: 18px!important;
581
582 }
583 .modal-extensao-condicoes__subtitle {
584 color: #000!important;
585 font-size: 18px!important;
586 margin-bottom: 0px!important;
587
588 }
589 .modal-extensao__btn {
590 background-color: #5ACC75!important;
591 font-size: 14px;
592 float: right;
593 color: #ffffff;
594 min-width: 165px;
595 }
596 .modal-extensao__btn:hover {
597 background-color: #3fb25c!important;
598 border-color: transparent;
599 color: #ffffff;
600 }
601 .modal-extensao_subtitle {
602 font-size: 13.7px!important;
603 color: #2A2E43!important;
604 font-family: Montserrat, semi-bold!important;
605 font-weight: 600!important;
606 }
607 .modal-extensao_subtitle::after {
608 content: " ";
609 display: block;
610 width: 126px;
611 height: 2px;
612 background: #707070;
613 margin: 0 auto;
614 margin-top: 5px;
615 }
616 .modal-extensao_preco {
617 color: #454F63;
618 font-size: 25px;
619 font-family: Montserrat;
620 font-weight: bold;
621 }
622 .modal-extensao_ctboleto {
623 width: 50%;
624 float: left;
625 border-color: #D7D7DB;
626 border-style: solid;
627 border-width: 1px;
628 border-left: none;
629 font-size: 21px;
630 color: #454F63
631
632 }
633 .modal-extensao_ctcard {
634 width: 50%;
635 float: left;
636 border-color: #D7D7DB;
637 border-style: solid;
638 border-width: 1px;
639 border-right: none;
640 border-left: none;
641 font-size: 21px;
642 color: #454F63;
643 }
644
645 .modal-extensao_txtPag {
646 color:#2A2E43;
647 font-size: 9px;
648 font-family: Montserrat;
649 font-weight: 600;
650 display: block;
651 }
652 .modal-extensao_txteconomiza {
653 display: block;
654 font-size: 12px;
655 }
656 .modal-extensao_txtverde {
657 color: #5ACC75;
658 }
659 .modal-extensao_txtParcela {
660 color:#2A2E43;
661 font-size: 12px;
662 font-family: Montserrat;
663 font-weight: normal;
664 display: block;
665 }
666 .modal-extensao_txtporcent{
667 font-size: 9px;
668 color: #5ACC75;
669 font-weight: 600;
670 }
671 .modal-extensao-btn-conheca {
672 color: #2967F4 !important;
673 background-color: transparent;
674 border-color: #2967F4 !important;
675 box-shadow: none !important;
676 font-size: 14px !important;
677 margin-left: 10px;
678 transition: 0.3s;
679 float: left;
680 }
681 .modal-extensao-btn-conferir {
682 color: #2967F4 !important;
683 background-color: transparent;
684 border-color: #2967F4 !important;
685 box-shadow: none !important;
686 font-size: 14px !important;
687 margin-left: 10px;
688 transition: 0.3s;
689 min-width: 330px;
690 min-height: 50px;
691 }
692 .modal-extensao-btn-conferir:hover {
693 color: #ffffff!important;
694 }
695
696 .modal-extensao-btn-conheca:hover, .modal-extensao-btn-conheca:focus {
697 color: #ffffff!important;
698 }
699 .modal-extensao-btn-aluno-sim-nao {
700 color: #000000;
701 background-color: transparent;
702 border-color: #000000 !important;
703 box-shadow: none !important;
704 font-size: 14px !important;
705 margin-left: 10px;
706 transition: 0.3s;
707 min-width: 95px;
708 }
709 .modal-extensao-btn-aluno-sim-ativo {
710 color: #ffffff!important;
711 background-color: #3969EB!important;
712 border-color: #3969EB !important;
713 }
714 .modal-extensao-btn-aluno-sim-nao:hover {
715 background-color: transparent;
716 border-color: #3969EB !important;
717 color: #3969EB!important; }
718 .modal-extensao-voltar-icon,.modal-extensao-fechar {
719 font-size: 13px;
720 position: absolute;
721 top: 30px;
722 right: 20px;
723 cursor: pointer;
724 color: #000;
725 }
726
727 .modal-extensao-voltar-txticon {
728 color: #000;
729 font-size: 9px;
730 font-family: Montserrat;
731 font-weight: 600;
732 padding-left: 5px;
733 }
734 .modal-extensao-ico-check {
735 color: #5ACC75;
736 font-size: 65px;
737 }
738 .modal-extensao-aluno_txtcontent {
739 font-size: 18px!important;
740 color: #000;
741 }
742 .modal-extensao-aluno__btn {
743 background-color: #5ACC75!important;
744 font-size: 14px;
745 color: #ffffff;
746 min-width: 330px;
747 text-transform: uppercase;
748 min-height: 50px;
749 }
750 .modal-extensao-aluno__btn:hover {
751 color: #fff;
752 background-color: #3fb25c!important;
753 border-color: transparent;
754 color: #ffffff;
755 }
756 .modal-extensao-ico-percent {
757 background-color: blue;
758 color: #fff;
759 font-size: 48px;
760 border-radius: 50%;
761 padding: 10px 18px;
762 }
763
764 .btn-preco-ex-aluno,.btn-preco-padrao{
765
766 background:none;
767 border: none;
768 width: 100%;
769 display: flex;
770 align-items: center;
771 justify-content: space-between;
772 text-align: left;
773 font-size: 14px;
774 }
775
776 .custom-icon-right{
777 transform: rotate(0);
778 transition: all 0.5s;
779 }
780
781 .custom-icon-right-active{
782 transform: rotate(90deg);
783 }
784
785 .ssp-divisor{
786 width: 100%;
787 color: #D7D7DB;
788 margin: 15px 0;
789 }
790
791
792 @media only screen and (max-width: 768px){
793
794 .modal-extensao_content{
795 width:336px;
796 padding: 60px 20px 20px 20px;
797 }
798
799 .modal-extensao__btn{
800 width: 100%;
801 }
802
803 .modal-extensao-modal-extensao__btn {
804 float: initial;
805 width: 234px;
806 }
807 .modal-extensao-btn-conheca {
808 float: initial;
809 width: 100%;
810 margin-left: 0px;
811 }
812 .modal-extensao-aluno__btn {
813 min-width: 234px;
814 }
815 .modal-extensao-btn-conferir{
816 min-width: 234px;
817 margin-left: 0px;
818 }
819 }
820
821
822/* Emed */
823.ssp-btn-emed__voltar-curso {
824 border: 1px solid #474F61;
825 color: #474F61;
826 max-width: 372px;
827 margin-left: 60px;
828 height: 50px;
829 padding: 12px!important;
830}
831
832@media (max-width: 768px) {
833 .ssp-btn-emed__voltar-curso {
834 font-size: 14px;
835 margin-left: 0px!important;
836 }
837}
838
839@media only screen and (max-width: 767px){
840 .ssp:not(.liferay-instance) .ssp-emed-visita-text {
841 margin: 0;
842 transform: none;
843 margin-left: 10px;
844 }
845}
846
847.ssp:not(.liferay-instance) .icon-map-adress::after {
848 padding: 0 8px 0 0;
849}
850
851.ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
852 margin: 5px 0;
853}
854
855.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento {
856 width: 100%;
857 color: white !important;
858 font-size: 15px;
859 font-weight: 600;
860 margin: 10px 0;
861}
862
863.ssp-modal-emed-info-txt-matricula {
864 display: inline-block;
865}
866.ssp:not(.liferay-instance) .btn-card-investimento.--inscreva-se.disabled, .ssp:not(.liferay-instance) a.btn.btn-success.disabled.manutencao {
867 background: #BFC3C9 !important;
868 color: #454F63!important;
869 opacity: 1!important;
870 font-size: 14px;
871 border:none;
872}
873
874.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--bolsas.disabled {
875 background: #E5E8ED;
876 color: #454F63!important;
877 opacity: 1;
878 font-size: 14px;
879}
880
881.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--inscreva-se {
882 background-color: #5acc75;
883 text-transform: none;
884}
885
886.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .link-descontos-parcelamentos {
887 font-weight: 600;
888}
889
890.ssp:not(.liferay-instance) .ssp-card-oferta-curso__sem-vaga-title {
891 margin: 0;
892}
893
894.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-container {
895
896 padding: 0;
897
898}
899
900.ssp:not(.liferay-instance) .ssp-ofertas-emed__filtro-content {
901 padding: 40px 0;
902}
903
904.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .txt-boleto-cartao {
905 text-align: center;
906}
907.ssp-card-modal-emed-lineou {
908height: 1px;
909 background-color: #FC7834;
910 text-align: center;
911 width: 50%;
912 margin: 0px auto;
913 margin-bottom: 15px;
914}
915.ssp-card-modal-emed-lineou span {
916background-color: white;
917 position: relative;
918 top: -0.8em;
919 padding: 0 19px;
920 font-weight: bold;
921 color: #2A2E43;
922 font-size: 15px;
923}
924.ssp-modal-emed-txtValor {
925 font-size: 16px;
926 color: #04488C;
927 font-weight: bold;
928}
929.ssp-card-modal-emed-centralizaPagtos{
930max-width: 285px;margin:0 auto; margin-top: 18px!important;
931}
932.ssp-card-modal-forma-pagamento__tipos-content p {
933 font-weight: 500!important;
934}
935.textoCartoesAceitos {
936 font-weight: 500!important;
937}
938.ssp-card-modal-emed-valorObs {
939 color: #004A8C;
940 display: flex;
941 justify-content: center;
942 font-weight: 500;
943 padding-top: 11px;
944 font-size: 14px;
945}
946.ssp-card-modal-emed-boxDesconto{
947 border: 0!important;
948 font-weight: 500!important;
949 background-color: #F7F7F7;
950 border-radius: 13px;
951 padding: 20px 40px!important;
952 margin-bottom: 0!important;
953}
954.ssp-modal-emed-boxoito {
955 padding: 5px 45px!important;
956 text-align: center;
957 border-bottom: 0px!important;
958}
959.ssp-modal-emed-btfechar {
960 position: absolute;
961 right: 0;
962 display: flex;
963 flex-direction: column;
964 text-align: center;
965 line-height: 0.9;
966 top: -48px;
967 color: #E4E8F0;
968 font-weight: 500;
969 font-size: 14px;
970}
971.ssp-card-modal-forma-pagamento__btn-close:hover {
972 opacity: .6;
973}
974.ssp-card-modal-emed-ano {
975 font-weight: 500;
976 font-size: 22px;
977 color: #454F63;
978}
979.ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
980 font-weight: 500!important;
981
982}
983.ssp-card-modal-emed-valorObs i {
984 padding-top: 2px;
985 padding-right: 3px;
986}
987button[id^="btnComprarEmedModal_"] {
988 height: 50px;
989 font-weight: 600;
990 max-width: 372px;
991 width: 100%;
992 margin: 0 auto;
993 /* margin-left: 60px; */
994 display: block;
995 height: 50px;
996 padding: 12px !important;
997
998}
999.obsspan {
1000 justify-content: left;
1001 padding-bottom: 10px;
1002}
1003
1004.emed_transferencia_texto{
1005 font-size:20px!important;;
1006}
1007
1008
1009@media only screen and (max-width: 767px){
1010
1011 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
1012 width: 100%;
1013 }
1014
1015 .ssp-card-modal-emed-valorObs {
1016 font-size: 12px;
1017 }
1018 .obsspan {
1019 justify-content: left;
1020 margin-left: -14px!important;
1021 }
1022 .ssp-modal-emed-boxoito {
1023 padding: 5px 0px!important;
1024 }
1025 .ssp-modal-emed-info-txt-matricula {
1026 display: inherit;
1027 }
1028 .ssp-card-modal-emed-boxDesconto{
1029 padding: 20px 20px!important;
1030 font-size: 12px!important;
1031 }
1032 .ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
1033 font-size: 12px !important;
1034 font-weight: 500!important;
1035 }
1036 .ssp-modal-emed-btfechar {
1037 font-size: 12px;
1038
1039 }
1040 button[id^="btnComprarEmedModal_"] {
1041 height: 50px;
1042 padding: 10px;
1043 border-radius: 4px;
1044 margin-left: 0px!important
1045 }
1046 button[id^="btnComprarEmedModal_"] span {
1047 font-size: 15px;
1048 font-weight: 600;
1049 }
1050 .ssp-btn-emed__voltar-curso_0 {
1051 font-weight: 600!important;
1052 height: 50px;
1053 border-radius: 4px!important;
1054 padding: 14px!important;
1055 }
1056
1057 .emed_transferencia_texto{
1058 font-size:16px!important;
1059 }
1060
1061}
1062
1063@media screen and (min-width: 1200px){
1064 .ssp-col-lg-without {
1065 flex: unset;
1066 width: unset;
1067 }
1068}
1069@media screen and (max-width: 1199px){
1070 .ssp-desconto-2022 .modal-extensao_txteconomiza {
1071 font-size: 12px !important;
1072 }
1073 .ssp-filters-px {
1074 padding: 0 !important;
1075 }
1076 .ssp-switch-label {
1077 margin: auto 0 !important;
1078 }
1079 .ssp-switch-label-message {
1080 margin-top: 10px;
1081 margin-bottom: 10px;
1082 padding-right: 0 !important;
1083 padding-left: 0 !important;
1084 }
1085 .ssp-container-selecione-unidade [name="unidades-ofertas"] {
1086 max-width: 316px!important;
1087 }
1088 .ssp-detalhe-curso-titulo-filter {
1089 font-size: 16px !important;
1090 }
1091}
1092
1093
1094.ssp-filters-px {
1095 padding: 0 80px;
1096}
1097/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1098/* !!!!!!! CSS Destinado ao switch(toggle) !!!!!!! */
1099/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1100.ssp-switch {
1101 position: relative;
1102 display: inline-block;
1103 width: 63px;
1104 height: 32px;
1105}
1106
1107.ssp-switch input {
1108 opacity: 0;
1109 width: 0;
1110 height: 0;
1111}
1112
1113.ssp-switch-label {
1114 margin: auto 15px;
1115 font: normal normal 600 16px/19px Montserrat;
1116 letter-spacing: 0px;
1117 color: #FFFFFF;
1118 white-space: nowrap;
1119}
1120
1121.ssp-switch-label-section {
1122 font: normal normal 600 18px/22px Montserrat;
1123 margin-bottom: 11px;
1124}
1125
1126.ssp-switch-label-message {
1127 font: normal normal medium 16px/19px Montserrat !important;
1128 letter-spacing: 0px;
1129 color: #FFFFFF;
1130 margin-top: 16px;
1131 padding-left: 25px;
1132 padding-right: 25px;
1133}
1134
1135.ssp-switch-divider {
1136 border-bottom: 1px solid #4a4d5f;
1137 width: 100%;
1138}
1139
1140.ssp:not(.liferay-instance) .ssp-detalhe-curso-titulo-filter.ssp-detalhe-curso-titulo-filter {
1141 font-size: 21px;
1142}
1143
1144.ssp-switch-slider {
1145 position: absolute;
1146 cursor: pointer;
1147 top: 0;
1148 left: 0;
1149 right: 0;
1150 bottom: 0;
1151 background-color: #00000000;
1152 border: 1px solid #FFFFFF;
1153 -webkit-transition: .4s;
1154 transition: .4s;
1155}
1156
1157.ssp-switch-slider:before {
1158 position: absolute;
1159 content: "";
1160 height: 21px;
1161 width: 21px;
1162 left: 4px;
1163 bottom: 4px;
1164 background-color: white;
1165 -webkit-transition: .4s;
1166 transition: .4s;
1167}
1168
1169input:checked + .ssp-switch-slider {
1170 background-color: #5ACC75;
1171 border: 1px solid #5ACC75;
1172}
1173input:checked + .ssp-switch-slider-secondary {
1174 background-color: #2967F4;
1175 border: 1px solid #2967F4;
1176}
1177
1178input:focus + .ssp-switch-slider {
1179 box-shadow: 0 0 1px #5ACC75;
1180}
1181input:focus + .ssp-switch-slider-secondary {
1182 box-shadow: 0 0 1px #2967F4;
1183}
1184
1185input:checked + .ssp-switch-slider:before {
1186 -webkit-transform: translateX(33px);
1187 -ms-transform: translateX(33px);
1188 transform: translateX(33px);
1189}
1190
1191/* Rounded sliders */
1192.ssp-switch-slider.round {
1193 border-radius: 34px;
1194}
1195
1196.ssp-switch-slider.round:before {
1197 border-radius: 50%;
1198}
1199
1200/*Utilizado no modal de registro de interesse #9309*/
1201option[value=""][disabled] {
1202 display: none;
1203}
1204/* Css para botao de idiomas online */
1205
1206.btn-idiomas__aula-online{
1207 background:#5382FF;
1208 color:white!important;
1209 text-decoration:none!important;
1210 padding:11px 14px;
1211 border-radius:4px;
1212 font-size:13px;
1213 font-weight:600;
1214 transition:.3s;
1215}
1216
1217.btn-idiomas__aula-online:hover{
1218 background:#5275D1;
1219 font-weight:600!important;
1220}
1221
1222.title-idioma-online__modal,.icon-wifi-title__modal{
1223 color:#5382FF!important;
1224 font-size:25px!important;
1225 margin:0!important;
1226 margin-right:5px!important;
1227}
1228
1229.btn-modal-entendi__idioma-online{
1230 font-size:16px!important;
1231 font-weight:600!important;
1232 color:#5382FF!important;
1233 border:#5382FF 1px solid!important;
1234 padding:15px 142px;
1235 width:auto!important;
1236}
1237
1238.btn-modal-entendi__idioma-online:hover{
1239 font-size:16px!important;
1240 font-weight:600!important;
1241 color:#5382FF!important;
1242 border:#5382FF 1px solid!important;
1243 background:white!important;
1244}
1245
1246@media only screen and (max-width: 768px){
1247
1248 .title-idioma-online__modal,.icon-wifi-title__modal{
1249 color:#5382FF!important;
1250 font-size:21px!important;
1251 margin:0!important;
1252 margin-right:5px!important;
1253 }
1254
1255 .btn-modal-entendi__idioma-online{
1256 font-size:16px!important;
1257 font-weight:600!important;
1258 color:#5382FF!important;
1259 border:#5382FF 1px solid!important;
1260 padding:12px 30%;
1261 width:auto!important;
1262 }
1263
1264}
1265
1266.btn-emed-lista-espera{
1267 background-color:#C560C7!important;
1268}
1269
1270.ssp:not(.liferay-instance) .ssp-container__form-select {
1271 max-width: 430px;
1272 width:100%;
1273}
1274
1275
1276@media (max-width: 768px){
1277 .ssp:not(.liferay-instance) .ssp-ofertas-emed__card {
1278 margin: 10px 20px;
1279 max-width: 335px;
1280 }
1281}
1282
1283/* css EMED Registro de interesse */
1284
1285.emed #periodo-registro-interesse,.emed #turmas-registro-interesse{
1286
1287 display: flex;
1288 align-items: center;
1289 padding: 0.625rem 0;
1290 width: 85%;
1291 justify-content: space-between;
1292 margin: 0 auto;
1293
1294}
1295
1296.ssp-card-registro-interesse__title-section-itens{
1297 margin: 10px 0 11.5px 0 !important;
1298 font-size: 20px;
1299 flex-basis: 120px;
1300}
1301
1302.ssp-card-registro-interesse__check-itens-content {
1303 display: flex!important;
1304 justify-content: center!important;
1305 flex: 0 1 90%!important;
1306}
1307.ssp-card-registro-interesse__check-item {
1308 display: flex;
1309 align-items: center;
1310 flex-basis: 100px;
1311}
1312
1313.ssp-card-registro-interesse label {
1314 margin-right: 0!important;
1315}
1316
1317.ssp-card-registro-interesse [type="checkbox"] {
1318box-shadow: 0px 0px 6px #00000029;
1319}
1320
1321#cursos-registro-interesse,#unidades-registro-interesse{
1322padding: 10px 0;
1323}
1324
1325.emed-select-group{
1326
1327box-shadow: 0px 0px 12px #00000010;
1328border: 1px solid #6E6E6E;
1329border-radius: 4px;
1330padding: 1.0rem 1.125rem;
1331margin: 1rem 0;
1332
1333}
1334
1335.ssp:not(.liferay-instance) .ssp-card-registro-interesse__add-mais > a {
1336 color: #457eff !important;
1337 }
1338
1339.emed .ssp-card-registro-interesse__btn-enviar {
1340background-color: #C560C7 !important;
1341}
1342
1343.ssp-card-registro-interesse__title-modal{
1344color:#C560C7 !important;
1345font-size: 35px !important;
1346font-weight: bold !important;
1347margin: 0 !important;
1348}
1349
1350#msg-transferencia-emed{
1351display: flex;
1352justify-content: center;
1353flex: wrap;
1354flex-direction: column;
1355align-items: center;
1356padding: 1rem 0;
1357}
1358
1359.transferencia-emed-title {
1360 color: #d266d4;
1361 display: flex;
1362 gap: 10px;
1363 font-size: 16px;
1364 font-weight: bold;
1365 align-items:center;
1366}
1367
1368.transferencia-emed-title p {
1369 margin: 0 !important;
1370 font-weight: bold !important;
1371 font-size: 16px!important;
1372}
1373
1374.transferencia-emed-link a{
1375 font-size: 15px;
1376 font-weight: 500!important;
1377 color: #792F7A;
1378 display: block;
1379 text-align: center;
1380}
1381
1382.transferencia-emed-link a:hover {
1383 font-weight: 500!important;
1384 color: #792F7A;
1385}
1386
1387.emed .ssp-card-registro-interesse__label-curso-selecionado{
1388color:#2A2E43!important;
1389font-weight: bold!important;
1390font-size: 28px;
1391}
1392
1393
1394/* css para registro de interesse atual */
1395
1396#periodo-registro-interesse,#dias-registro-interesse{
1397padding: .625rem 0;
1398}
1399
1400/* css card sem turma e registro de interesse emed*/
1401
1402.slick-area-emed {
1403 display: -webkit-box !important;
1404 display: -ms-flexbox !important;
1405 display: flex !important;
1406 -webkit-box-align: center;
1407 -ms-flex-align: center;
1408 align-items: center;
1409 -webkit-box-pack: center;
1410 -ms-flex-pack: center;
1411 justify-content: center;
1412 font-size: 0;
1413 -ms-flex-wrap: nowrap;
1414 flex-wrap: nowrap;
1415 }
1416
1417 .slick-area-emed .slick-track, .slick-area-emed .slick-list {
1418 width: 100%;
1419 }
1420
1421 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1422 .slick-area-emed--md-bleed {
1423 width: 100vw;
1424 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1425 }
1426 .slick-area-emed--md-bleed .slick-list {
1427 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1428 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1429 }
1430 .slick-area-emed--md-bleed .slick-arrow {
1431 display: none !important;
1432 }
1433 }
1434
1435 @media only screen and (min-width: 376px) and (max-width: 1024px) {
1436 .slick-area-emed--md-bleed {
1437 width: 100vw;
1438 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1439 }
1440 .slick-area-emed--md-bleed .slick-list {
1441 padding-left: 2px;
1442 }
1443 .slick-area-emed--md-bleed .slick-arrow {
1444 display: none !important;
1445 }
1446 }
1447
1448 @media only screen and (max-width: 375px) {
1449
1450 .ssp-emed__card-slider-body {
1451 padding: 25px 30px;
1452 }
1453
1454
1455 .slick-area-emed--md-bleed {
1456 width: 100vw;
1457 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1458 }
1459 /* .slick-area-emed--md-bleed .slick-list {
1460 padding-left: 20px;
1461
1462 } */
1463 .slick-area-emed--md-bleed .slick-arrow {
1464 display: none !important;
1465 }
1466 }
1467
1468 .slick-area__item {
1469 display: flex;
1470 flex-basis: auto;
1471 }
1472
1473 .ssp-emed__section__textCard {
1474 margin: 20px 0 0 0;
1475}
1476
1477 .ssp-emed__card-slider-body {
1478 padding: 25px 50px;
1479 min-height: 350px;
1480 display: flex;
1481 flex-direction: column;
1482 }
1483
1484 .slick-area__item {
1485 display: flex;
1486 flex-basis: auto;
1487 }
1488
1489 .ssp-emed__card-slider-body a {
1490 text-decoration: none!important;
1491 font-weight: normal;
1492 color: #78849E
1493 }
1494
1495 .ssp-emed__card-slider-body a:hover {
1496 font-weight: bold!important;
1497 color: #2a2e43
1498 }
1499
1500 .ssp-emed__card-slider {
1501 border-radius: 12px;
1502 background: transparent;
1503 -webkit-box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1504 box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1505 margin: 12px;
1506 position: relative;
1507 overflow: hidden;
1508 color: #ffffff!important;
1509 border: 1px solid #fff;
1510 min-height: 350px;
1511 }
1512
1513 .slick-initialized .slick-track {
1514 display: flex;
1515 }
1516
1517 .slick-initialized .slick-slide {
1518 height: inherit!important;
1519 display: flex;
1520 }
1521
1522 .ssp-emed__section__titleCard {
1523 font-size: 28px !important;
1524 color: #ffffff !important;
1525 margin: 0 !important;
1526 display: flex !important;
1527 justify-content: flex-start !important;
1528 flex-direction: row !important;
1529 align-items: start !important;
1530 flex-basis: 60px;
1531}
1532
1533.ssp-emed__section__titleCard i {
1534 font-size: 28px;
1535 color: #ffffff;
1536 margin: 0 0.85rem 0 0;
1537 line-height: 30px;
1538}
1539
1540.ssp-emed__section__titleCard i.fa-envelope {
1541 margin-top: 0px;
1542}
1543
1544.ssp-emed__section__titleCard i.fa-users-class {
1545 margin-top:2px;
1546}
1547
1548.ssp-emed__section__titleCard div {
1549 text-decoration: underline;
1550 font-size: 28px !important;
1551 font-weight: bold;
1552 margin: 0!important;
1553 transform:translateY(-2px)
1554}
1555
1556 .ssp-emed__section__introCard {
1557 display: block;
1558 font: 28px/30px 'Montserrat';
1559 font-weight: 600;
1560 margin: 20px 0;
1561 color: #ffffff;
1562 }
1563
1564 .ssp-emed__section__introCardCTA {
1565 font: 34px/36px 'Montserrat';
1566 font-weight: bold;
1567 display: block;
1568 margin: 20px 0;
1569 color: #ffffff;
1570 }
1571
1572 .ssp-emed__section__textCard {
1573 font: 22px/30px 'Montserrat';
1574 color: #ffffff;
1575 display: block;
1576 margin: 20px 0 0 0;
1577 position: relative;
1578 }
1579
1580 .ssp-emed__iconWrapper {
1581 display: inline-block;
1582 width: 50px;
1583 color: #B053B2;
1584 position: absolute;
1585 bottom: 0;
1586 right: 0;
1587 }
1588
1589 .ssp-emed__btn {
1590 background-color: #B053B2 ;
1591 color: #fff!important;
1592 font: normal normal 600 18px/22px Montserrat;
1593 box-shadow: 0px 4px 16px #455B6314;
1594 width: 100%;
1595 transition: .3s;
1596 padding:10px!important;
1597 }
1598
1599 .ssp-emed__btn:hover {
1600 opacity: 0.7;
1601 }
1602
1603 /*mobile emed*/
1604 @media only screen and (max-width: 1024px) {
1605 .slick-area-emed .slick-dots li.slick-active button:before {
1606 opacity: .75;
1607 color: #707070;
1608 }
1609
1610 .slick-area-emed .slick-dots li button:before {
1611 color: blue;
1612 }
1613
1614 .ssp-card-detalhe-curso__secundary-info-carga-horaria {
1615 min-width: 35%;
1616 text-align: end;
1617 }
1618 }
1619
1620 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1621 .slick-area-emed--md-bleed {
1622 width: 100vw;
1623 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1624 }
1625 .slick-area-emed--md-bleed .slick-list {
1626 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1627 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1628 }
1629 .slick-area-emed--md-bleed .slick-arrow {
1630 display: none !important;
1631 }
1632 }
1633
1634 @media only screen and (min-width: 375px) and (max-width: 1024px) {
1635 .slick-area-emed--md-bleed {
1636 width: 100vw;
1637 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1638 }
1639 .slick-area-emed--md-bleed .slick-list {
1640 padding-left: 2px;
1641 }
1642 .slick-area-emed--md-bleed .slick-arrow {
1643 display: none !important;
1644 }
1645 .ssp-emed__section__titleCard {
1646 align-items: start !important;
1647 }
1648
1649 .ssp-emed__section__titleCard div {
1650 font-weight: bold !important;
1651 }
1652
1653 .ssp-emed__section__titleCard i {
1654 font-weight: 300 !important;
1655 font-size: 28px !important;
1656 margin: 3px 0.85rem 0 0;
1657 }
1658
1659 .transferencia-emed-title {
1660 font-size: 12px;
1661 }
1662
1663 .ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
1664 background-size: 15px 15px !important;
1665 padding: 0 10px;
1666 }
1667 }
1668
1669 @media only screen and (max-width: 550px) {
1670
1671 .ssp-emed__section__introCardCTA{
1672 font-size: 28px;
1673 }
1674
1675 #msg-transferencia-emed{
1676 gap:12px;
1677 }
1678
1679
1680
1681 .ssp-emed__card-slider {
1682 width:335px;
1683 min-height: 440px;
1684 }
1685
1686 .slick-initialized .slick-track {
1687 display: flex;
1688 }
1689
1690 .slick-initialized .slick-slide {
1691 height: inherit!important;
1692 display: flex;
1693 min-height: 440px;
1694 }
1695
1696 .ssp-emed__card-slider-body {
1697 padding: 25px 30px;
1698 }
1699
1700 .ssp-emed__section__titleCard div {
1701 transform: translateY(-5%);
1702 font-size: 24px!important;
1703 }
1704
1705 .slick-area-emed--md-bleed {
1706 width: 100vw;
1707 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1708 }
1709 .slick-area-emed--md-bleed .slick-list {
1710 padding-left: 20px;
1711 }
1712 .slick-area-emed--md-bleed .slick-arrow {
1713 display: none !important;
1714 }
1715
1716 .ssp-card-registro-interesse__title-section-itens {
1717 flex-basis: 80px;
1718 }
1719
1720 .emed #periodo-registro-interesse, .emed #turmas-registro-interesse {
1721 width: 95%;
1722 }
1723
1724 .emed .ssp:not(.liferay-instance) .ssp-card-registro-interesse label {
1725 margin: 0!important;
1726 }
1727
1728 .emed .ssp-card-registro-interesse.emed [type="checkbox"] {
1729 margin-left: 0!important;
1730 }
1731
1732 .emed .ssp-card-registro-interesse__check-item {
1733 flex-basis: 100px;
1734 }
1735 }
1736
1737 .emed-select-group {
1738 box-shadow: 0px 0px 12px #00000010;
1739 border: 1px solid #6E6E6E;
1740 border-radius: 4px;
1741 margin: 1rem 0;
1742}
1743
1744.emed-select-group h4 {
1745 margin: 15px 0 10px 0;
1746}
1747.ssp-emed__section__textCard {
1748 margin: 20px 0 0 0;
1749}
1750
1751.ssp-card-msg-sucesso__btn{
1752 font-size: 20px;
1753}
1754
1755.ssp:not(.liferay-instance) .ssp-card-oferta-curso {
1756 height:fit-content;
1757}
1758
1759.ssp-card-duvida__bolsa-estudo{
1760
1761background:#DCE8FF;
1762padding: 30px;
1763max-width: 683px;
1764width: 100%;
1765border-radius: 14px;
1766display:flex;
1767justify-content:center;
1768align-items: center;
1769gap: 20px;
1770margin: 1rem auto;
1771
1772}
1773
1774.ssp-card-duvida__bolsa-estudo p{
1775
1776font-size: 16px!important;
1777font-weight: bold!important;
1778color: #2967F4!important;
1779margin: 0!important;;
1780
1781}
1782
1783.ssp-card-duvida__bolsa-estudo a{
1784
1785border:1px solid #2967F4!important;
1786font-size: 14px!important;
1787font-weight: 600;
1788text-decoration: none!important;
1789color: #2967F4!important;
1790padding:14px 27px;
1791border-radius:6px;
1792transition: .3s;
1793
1794}
1795
1796.ssp:not(.liferay-instance) .ssp-card-duvida__bolsa-estudo a:hover{
1797
1798font-size: 14px!important;
1799font-weight: 600!important;
1800background: #2967F4!important;
1801color:white !important;
1802opacity:1!important;
1803
1804}
1805
1806@media only screen and (max-width: 768px){
1807
1808.ssp-card-duvida__bolsa-estudo{
1809
1810 background:#DCE8FF;
1811 padding: 20px;
1812 flex-flow: column;
1813 width:90%;
1814
1815}
1816
1817.ssp-card-duvida__bolsa-estudo p{
1818
1819 max-width:200px;
1820 text-align: center;
1821
1822}
1823
1824.ssp-card-duvida__bolsa-estudo a{
1825
1826 padding:16px 27px;
1827
1828}
1829
1830}
1831
1832/* Novo Card de Oferta */
1833
1834 /* ajustes no card existente */
1835
1836 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma{
1837 margin-bottom: 30px;
1838 }
1839
1840 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma-content {
1841 margin-bottom: 5px;
1842 }
1843
1844 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-data-periodo{
1845 margin: 5px 0 10px 0;
1846 }
1847
1848 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item {
1849 border-radius: 0;
1850 background-color: unset;
1851 padding: 0;
1852 max-width: 100%;
1853 width: 100%;
1854 margin: 0;
1855 }
1856
1857 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora_content{
1858 margin:0;
1859 opacity: 0;
1860 transition: 0.3s;
1861 }
1862
1863 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1864 margin: 0;
1865 font-size: 17px;
1866 font-weight: bold;
1867 font-stretch: normal;
1868 font-style: normal;
1869 line-height: 1.23;
1870 letter-spacing: normal;
1871 text-align: center;
1872 }
1873
1874 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__hora {
1875 margin: 0;
1876 font-size: 17px;
1877 font-weight: bold;
1878 font-stretch: normal;
1879 font-style: normal;
1880 line-height: 1.3;
1881 letter-spacing: normal;
1882 text-align: center;
1883 }
1884
1885 .modal-extensao_txteconomiza{
1886 font-size: 14px;
1887 color: #454F63;
1888 font-weight: 400;
1889 }
1890
1891 .btn.btn-lg {
1892 padding:.7rem;
1893
1894 }
1895
1896 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
1897 font-size: 17px;
1898 }
1899
1900 .ssp-card-oferta-curso__item-valor-investimento{
1901 font-size: 38px;
1902 }
1903
1904 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__title{
1905 color: #454F63;
1906 font-weight: bold!important;
1907 font-size: 14px;
1908}
1909
1910.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card::after{
1911 color: #454F63!important;
1912 font-size: 14px;
1913}
1914
1915
1916.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{
1917 color:#454F63;
1918 font-size: 14px;
1919 font-weight: 400;
1920}
1921
1922.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content {
1923 padding-bottom: 0;
1924}
1925
1926 /* local realizacao */
1927
1928 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title {
1929 font-size: 13px;
1930 color: #00488C;
1931 font-weight: 600;
1932 text-decoration: none!important;
1933 border: 1px solid #00488C;
1934 padding: 11px 14px;
1935 transition:.3s;
1936 border-radius: 4px;
1937 display: flex;
1938 gap: 5px;
1939 align-items: center;
1940 }
1941
1942 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover {
1943 color: white;
1944 font-weight: 600!important;
1945 background: #08488C;
1946 }
1947
1948 .container-local-realizacao {
1949 padding:0;
1950 border:0;
1951 border-radius: unset;
1952 width: 100%;
1953 margin: 10px 0 0 0;
1954 box-shadow: none;
1955 display: flex;
1956 justify-content:center;
1957 align-items: flex-end;
1958 }
1959
1960 .icon-local-realizacao{
1961 color: #00488C;
1962 font-size: 13px;
1963 }
1964
1965
1966 @media only screen and (max-width: 768px){
1967
1968 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1969 font-size: 16px;
1970 }
1971
1972 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item {
1973 font-size: 14px!important;
1974 }
1975
1976 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{
1977 font-size: 15px;
1978 }
1979
1980 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento {
1981 font-size: 33px;
1982 }
1983
1984 .icon-local-realizacao {
1985 font-size: 12px;
1986 }
1987
1988 .modal-extensao_txteconomiza {
1989 font-size: 12px;
1990 }
1991
1992 .content-valores-descontos {
1993 padding-bottom: 8px!important;
1994 }
1995
1996 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
1997 font-size: 14px!important;
1998 }
1999
2000
2001 }
2002
2003
2004
2005
2006/* final ajustes no card existente */
2007
2008
2009/* Novos elementos */
2010
2011.content-data-dias{
2012 padding:20px;
2013 padding-top:0;
2014 border-bottom: none !important;
2015}
2016
2017.content-valores-descontos{
2018 padding:20px 0 0 0;
2019 opacity: 1;
2020 height:auto;
2021 transition: 0.3s;
2022 overflow: hidden;
2023 border-top: 1px #E4E8F0 solid;
2024}
2025
2026.content-valores-descontos.hide-price{
2027
2028 padding:0;
2029 opacity: 0;
2030 height:0;
2031
2032}
2033
2034.content-btn-bolsa{
2035
2036 border-top: 1px #E4E8F0 solid;
2037 padding-top:20px;
2038
2039}
2040
2041.content-btn-bolsa.modifier-content-show{
2042
2043 padding-bottom: 20px;
2044
2045}
2046
2047.content-btn-bolsa.modifier-content-show .ou-separator-desconto{
2048 display:none;
2049}
2050
2051.content-btn-bolsa.modifier-content-show .btn-show-price{
2052 display:none;
2053}
2054
2055.content-buttons{
2056
2057 padding:20px 0 0 0;
2058
2059}
2060
2061.block-valor-desconto{
2062
2063 background-color:#F2F6FF;
2064 padding: 30px 10px 15px 10px;
2065 border-radius:12px;
2066 position: relative;
2067
2068}
2069
2070.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2071 font-size: 18px;
2072}
2073
2074.block-valor-total{
2075
2076 background-color:#F2F6FF;
2077 padding:15px 10px;
2078 border-radius:12px;
2079 position: relative;
2080
2081}
2082
2083.block-valor-total .ssp-card-oferta-curso__title-item{
2084 font-size: 16px!important;
2085 color: #454F63!important;
2086 font-weight:500!important;
2087}
2088
2089.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{
2090 font-size:22px;
2091}
2092
2093.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{
2094 font-size:11px;
2095}
2096
2097.block-valor-total .ssp-card-oferta-curso__desconto-content p{
2098 font-size:14px;
2099 font-weight: 500;
2100}
2101
2102.tag-label-desconto{
2103
2104background-color:#B6FDCF;
2105border-radius: 15px;
2106padding:5px;
2107margin: -50px 20px 10px 20px;
2108
2109}
2110
2111.tag-label-desconto span, .tag-label-desconto small{
2112font-size: 16px!important;
2113font-weight: bold!important;
2114color: #454F63!important;
2115}
2116
2117
2118
2119.ou-separator-desconto{
2120 font-size: 16px;
2121 color: #454F63;
2122 font-weight: bold;
2123 display:flex;
2124 flex-wrap: nowrap;
2125 align-items: center;
2126 justify-content:space-between;
2127 gap: 15px;
2128 padding:20px 0;
2129}
2130
2131.ou-separator-desconto::after{
2132 content: "";
2133 height:2px;
2134 background-color:#E4E8F0;
2135 width: 100%;
2136 display: block;
2137}
2138
2139.ou-separator-desconto::before{
2140 content: "";
2141 height:2px;
2142 background-color:#E4E8F0;
2143 width: 100%;
2144 display: block;
2145}
2146
2147.btn-show-price{
2148
2149 background: unset;
2150 border: 0;
2151 font-size: 14px!important;
2152 color: #454F63!important;
2153
2154}
2155
2156.btn-show-price p{
2157 margin: 0 !important;
2158}
2159
2160.btn-show-price span{
2161 text-decoration: underline;
2162 font-weight: bold;
2163}
2164
2165@media only screen and (max-width: 768px){
2166
2167 .content-data-dias{
2168
2169 padding:20px 0;
2170
2171 }
2172
2173 .ssp-card-oferta-curso__local-realizacao-content__title {
2174
2175 font-size: 14px;
2176 display:flex;
2177 align-items: center;
2178 gap: 5px;
2179 padding: 10px 13px;
2180 }
2181
2182 .ssp-card-oferta-curso__local-realizacao-content__title i{
2183
2184 font-size: 11px;
2185 }
2186
2187 .tag-label-desconto span, .tag-label-desconto small {
2188 font-size: 13px!important;
2189 }
2190
2191 .tag-label-desconto {
2192 padding: 5px;
2193 margin: -50px 12px 10px 12px;
2194 }
2195
2196 .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2197 font-size: 18px;
2198 }
2199
2200 .content-buttons {
2201 padding: 10px 0 0 0;
2202 }
2203
2204
2205}
2206
2207/*final Novo card de ofertas*/
2208
2209/* form aprendizagem */
2210
2211[data-modal="modal"]{
2212 background-color: rgba(0,0,0,0.7);
2213 backdrop-filter: blur(10px);
2214 display:none;
2215}
2216
2217[data-modal="close-form-modal"]{
2218
2219 font-size: 22px;
2220 background: unset!important;
2221 color: white!important;
2222 display: flex;
2223 align-items: center;
2224 margin: 0;
2225 padding: 0;
2226 position:absolute;
2227 right:0;
2228 border:0;
2229 gap:5px;
2230 right: 2%;
2231 top: -2%;
2232
2233}
2234
2235[data-modal="close-form-modal"] i{
2236
2237 font-size:43px;
2238 height:fit-content;
2239
2240}
2241
2242.open-modal-form{
2243 position: fixed;
2244 top: 0;
2245 width: 100%;
2246 height: 100%;
2247 z-index: 100;
2248 display: flex;
2249 justify-content: center;
2250 align-items: center;
2251 overflow:auto;
2252
2253}
2254
2255.open-modal-form .ssp_ct_form_programe{
2256 animation-name: animatetop;
2257 animation-duration: .4s;
2258 position:relative;
2259}
2260
2261label .reference-mark {
2262color:#78849e;
2263}
2264.lexicon-icon-asterisk {
2265 color:#78849e;
2266}
2267.lexicon-icon-reload {
2268 margin-left:10px;
2269}
2270.ssp_title_form_programe{
2271 font-size: 42px!important;
2272 color: #ffffff!important;
2273 font-family: "Montserrat",sans-serif;
2274 font-weight:600;
2275 text-align:left;
2276}
2277.ssp_subtitle_form_programe {
2278 margin-top:0px!important;
2279
2280}
2281.ssp_subtitle_form_programe{
2282 font-size: 20px!important;
2283 color: #ffffff!important;
2284 font-family: "Montserrat",sans-serif;
2285 font-weight:600;
2286 text-align:left;
2287}
2288.lfr-ddm-form-page {
2289background-color: #fff;
2290border-radius: 12px 12px 0px 0px;
2291padding: 35px 15px!important;
2292}
2293.ssp:not(.liferay-instance) .form-group label {
2294 color: #78849E;
2295 font: normal normal 600 16px/19px Montserrat;
2296 padding-bottom: 10px;
2297}
2298.lfr-ddm-form-page-description {
2299display: none!important;
2300}
2301.lfr-ddm-form-page-title {
2302display: none!important;
2303}
2304.lfr-ddm-form-submit {
2305background-color: #0380F0;
2306 text-align: center;
2307 float: none!important;
2308 border: 1px solid #0380F0;
2309 border-radius: 6px;
2310 font-size: 16px;
2311 width: 245px;
2312 height: 50px;
2313}
2314.lfr-ddm-form-pagination-controls {
2315background-color: #fff;
2316 text-align: center;
2317 border-radius: 0px 0px 12px 12px;
2318 padding-bottom: 25px;
2319}
2320.ddm-form-name {
2321display: none!important;
2322}
2323.ddm-form-description {
2324display: none!important;
2325}
2326.ddm-form-builder-app {
2327margin-top:35px;
2328}
2329.taglib-captcha {
2330 display: flex;
2331}
2332.input-text-wrapper {
2333 left: 20px;
2334}
2335.lfr-ddm-form-pagination-controls {
2336 padding-top:0px!important;
2337 display:flex;
2338 justify-content:center;
2339 align-items: center;
2340 flex-flow:column;
2341}
2342@media only screen and (max-width: 1024px) {
2343
2344.open-modal-form{
2345
2346 align-items: flex-start;
2347
2348}
2349
2350.ddm-form-builder-app {
2351 margin-top: 15px;
2352}
2353
2354.ssp_title_form_programe{
2355font-size: 34px!important;
2356line-height: 1.2!important;
2357}
2358.ssp_subtitle_form_programe{
2359font-size:18px!important;
2360}
2361.taglib-captcha {
2362 display:block;
2363}
2364.input-text-wrapper {
2365 left:0;
2366}
2367.ssp_ct_form_programe {
2368 padding:0px;
2369 max-width:100%;
2370 padding:40px 20px;
2371}
2372
2373[data-modal="close-form-modal"]{
2374
2375 right: 20px;
2376 top: 0;
2377
2378}
2379
2380}
2381
2382.ssp:not(.liferay-instance) a.btn.btn-success.disabled{
2383 pointer-events: none;
2384 opacity: 0.5 !important;
2385 color: #FFF !important;
2386 background-color: #4CBF69 !important;
2387 cursor: not-allowed;
2388 border: none !important;
2389 font-size: 0.9rem !important;
2390}
2391
2392.slick-list.draggable {
2393 height: auto !important;
2394}
2395
2396.ssp:not(.liferay-instance) .ssp-image-opacity {
2397
2398 opacity: 1;
2399 object-fit: cover;
2400 object-position: center;
2401
2402}
2403
2404.ssp-option-group {
2405 text-align: left;
2406 font: normal normal 600 15px/19px Montserrat;
2407 letter-spacing: 0px;
2408 color: #004A8C;
2409}
2410.ssp-option {
2411 text-align: left;
2412 font: normal normal normal 15px/19px Montserrat;
2413 letter-spacing: 0px;
2414 color: #656565;
2415}
2416@media only screen and (max-width: 768px){
2417 .ssp-option-group {
2418 font: normal normal 600 15px/19px Montserrat;
2419 }
2420 .ssp-option {
2421 font: normal normal normal 15px/19px Montserrat;
2422 }
2423}
2424
2425.open-modal-form.lfr-ddm__default-page-header{
2426 display:none;
2427}
2428
2429/* css para funcionalidade de híbrido */
2430
2431.ssp-emed__vantagens-content.livre span{
2432 color: #FF9057!important;
2433}
2434.ssp-emed__vantagens-content.livre a:hover {
2435 color: white;
2436 background-color: #FF9057!important;;
2437 border: 1px solid #FF9057!important;;
2438}
2439.ssp-emed__vantagens-content.tecnico span{
2440 color: #F7BD23!important;
2441}
2442.ssp-emed__vantagens-content.tecnico a:hover {
2443 color: white;
2444 background-color: #F7BD23!important;;
2445 border: 1px solid #F7BD23!important;;
2446}
2447.ssp-emed__vantagens-content.ensino-medio-tecnico span{
2448 color: #C761CB!important;
2449}
2450.ssp-emed__vantagens-content.ensino-medio-tecnico a:hover{
2451 color: white;
2452 background-color: #C761CB!important;;
2453 border: 1px solid #C761CB!important;;
2454}
2455.ssp-emed__vantagens-content.extensao span{
2456 color: #3ECCA6!important;
2457}
2458.ssp-emed__vantagens-content.extensao a:hover{
2459 color: white;
2460 background-color: #3ECCA6!important;
2461 border: 1px solid #3ECCA6!important;
2462}
2463
2464/* Transferencias EMED */
2465
2466.emed-transferencias-space{
2467 max-width: 772px;
2468}
2469
2470.card-transferencias-emed {
2471 text-align: left;
2472}
2473
2474.card-transferencias-emed .ssp-emed__card-slider-body{
2475 padding: 30px;
2476}
2477
2478.card-pre-inscricao {
2479 text-align: center;
2480}
2481
2482.card-pre-inscricao .ssp-emed__card-slider-body{
2483 justify-content: space-evenly;
2484}
2485
2486.footer-card-card-pre-inscricao{
2487 margin-top: 48px;
2488 }
2489
2490.card-transferencias-emed, .card-pre-inscricao{
2491 span, strong{
2492 font-size: 24px;
2493 }
2494 span{
2495 font-weight: 500;
2496 }
2497 strong{
2498 font-weight: 700;
2499 }
2500 .transferencias-emed-rodape{
2501 margin-top:25px;
2502 span{
2503 font-size:0.9rem;
2504 font-weight: 400;
2505 }
2506 }
2507}
2508
2509@media only screen and (max-width: 768px){
2510 .card-pre-inscricao {
2511 text-align: left;
2512 }
2513
2514 .footer-card-card-pre-inscricao{
2515 margin-top: 24px;
2516 }
2517
2518 .footer-card-card-pre-inscricao strong{
2519 margin-top: 24px;
2520 font-size: 24px!important;
2521 }
2522
2523 .card-pre-inscricao .ssp-emed__card-slider {
2524 width: 100%;
2525 max-width: 329px;
2526 min-height: 390px;
2527 margin: 0;
2528 }
2529
2530 .card-pre-inscricao .ssp-emed__card-slider:nth-child(n+2){
2531 margin: 12px;
2532 }
2533
2534 .card-transferencias-emed, .card-pre-inscricao{
2535 span, strong{
2536 font-size: 16px;
2537 }
2538 .ssp-emed__section__titleCard{
2539 flex-basis: 0;
2540 margin-bottom: 24px!important;
2541 align-items: center!important;
2542 }
2543
2544 .ssp-emed__section__titleCard i{
2545 font-size: 24px!important;
2546 }
2547
2548 .ssp-emed__section__titleCard div{
2549 font-size: 20px !important;
2550 }
2551 }
2552
2553 .slick-area__item.card-pre-inscricao{
2554 min-height: 390px!important;
2555 }
2556
2557 .card-transferencias-emed .ssp-emed__card-slider{
2558 margin: 0;
2559 }
2560
2561 .card-transferencias-emed .ssp-emed__card-slider{
2562 margin: 0;
2563 min-height: 300px;
2564 }
2565
2566 .card-transferencias-emed .col-md-12{
2567 padding: 0;
2568 }
2569
2570 .card-transferencias-emed .transferencias-emed-rodape span{
2571 font-size: 12px;
2572 }
2573
2574 .ssp-ofertas-emed__filtro-content .btn-filtro{
2575 width:156px !important;
2576 font-size:14px !important;
2577 }
2578
2579 #titulo-emed{
2580 text-transform: uppercase;
2581 }
2582
2583 .emed-transferencias-space div:nth-child(n+2){
2584 padding-left:0;
2585 }
2586
2587 .emed-transferencias-space .slick-area-emed--md-bleed{
2588 position: inherit;
2589 }
2590
2591}
2592
2593</style>
2594
2595
2596 <#assign
2597
2598 prefix = "ssp"
2599 nomeVocabularioTipoCurso = 'tipo-de-curso'
2600
2601
2602 nomeVocabularioUnidades = 'unidades'
2603
2604 nomeVocabularioFormato = 'formato'
2605
2606 nomeFormato = ""
2607 nomeVocabularioModalidade = 'modalidade'
2608
2609 nomeModalidade = ""
2610
2611 normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer")
2612
2613 journalArticle = getJournalArticle()
2614 />
2615
2616 <#if journalArticle?contains("#erro#")>
2617 erro
2618 <#else>
2619
2620 <#assign
2621
2622 categories = getCategorias(journalArticle.getResourcePrimKey())
2623
2624 document = saxReaderUtil.read(journalArticle.getContent()).getRootElement()
2625
2626 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataEfetivaFTFieldSet']")
2627 dataEfetivaFTFieldSet = xPathSelector.selectSingleNode(document)
2628
2629 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='dataEfetivaFT']")
2630 dataEfetiva = xPathSelector.selectSingleNode(document)
2631
2632 dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string
2633
2634 articleId = journalArticle.getArticleId()
2635
2636 codigoFT = getStringValue(document,'codigoFT')
2637
2638 tituloComercial = journalArticle.getTitle()
2639
2640 objetivo = getStringValue(dataEfetivaFTFieldSet, 'objetivoComercial')
2641
2642 cargaHoraria = getStringValue(dataEfetivaFTFieldSet, 'cargaHorariaTotalFT')
2643
2644 oQueVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueVouAprenderComercial')
2645
2646 comoVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'comoVouAprenderComercial')
2647
2648 possoFazerEsteCursoComercial = getStringValue(dataEfetivaFTFieldSet, 'possoFazerEsteCursoComercial')
2649
2650 tereiCertificadoComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiCertificadoComercial')
2651
2652 tereiDiplomaComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiDiplomaComercial')
2653
2654 precisoEstagiarComercial = getStringValue(dataEfetivaFTFieldSet, 'precisoEstagiarComercial')
2655
2656 comoMeMatricularComercial = getStringValue(dataEfetivaFTFieldSet, 'comoMeMatricularComercial')
2657
2658 oQueMaisPrecisoSaberComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueMaisPrecisoSaberComercial')
2659
2660 normalizedModalidadeName = ""
2661
2662 />
2663
2664 <div style="display: none;">ElasticSearchNaoRetornarFiltro </div>
2665 <input type="hidden" name="codigoFT" value="${codigoFT}" />
2666 <input type="hidden" name="articleId" value="${articleId}" />
2667
2668 <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" />
2669
2670 <input type="hidden" name="codUnidadeSelecionada" value="" />
2671
2672 <#list categories as category>
2673
2674 <#assign
2675 vocabulary = getVocabulary(category.getVocabularyId())
2676 />
2677
2678 <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso>
2679
2680 <#assign
2681 categoriaTipoCurso = category
2682 normalizedCategoryName = normalizer.normalize(category.getName())
2683 />
2684
2685 <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" />
2686
2687 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades>
2688
2689 <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" />
2690
2691 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade>
2692
2693 <#assign
2694 categoriaModalidade = category
2695 normalizedModalidadeName = normalizer.normalize(category.getName())
2696
2697 />
2698
2699 <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" />
2700
2701 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato>
2702 <#assign
2703 nomeFormato = category.getName()
2704 />
2705
2706
2707 <#assign idFormato = category.getCategoryId() />
2708 <#if nomeFormato == "Presencial + EAD" >
2709 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="Presencial + EAD" />
2710 <#else>
2711 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" />
2712 </#if>
2713 </#if>
2714 </#list>
2715
2716 <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='imagemComercial']")>
2717
2718 <#if xPathSelector.selectSingleNode(dataEfetivaFTFieldSet)?? >
2719
2720 <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()>
2721 <#if imagemStr?contains("{") >
2722 <#attempt>
2723 <#assign
2724 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
2725 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
2726 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
2727 dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
2728 fileEntry = dl.getFileEntry(imagemId)
2729 imagemAlt = imagemJson.get('alt')
2730 imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null)
2731 />
2732 <#recover>
2733 <#assign
2734 imagemAlt = ""
2735 imagemUrl = ""
2736 />
2737 </#attempt>
2738 <#else>
2739 <#assign imagemUrl = "">
2740 </#if>
2741
2742 <#else>
2743 <#assign imagemUrl = "">
2744 </#if>
2745
2746
2747 <#assign
2748
2749 URLCodec = staticUtil["com.liferay.portal.kernel.util.URLCodec"]
2750 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]
2751 StringPool = staticUtil["com.liferay.petra.string.StringPool"]
2752 dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
2753
2754 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='quaisMateriaisComercial']")
2755 quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()
2756 />
2757
2758 <#if quaisMateriaisComercialPDFStr?contains('classPK') >
2759
2760 <#assign
2761
2762 PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr)
2763 classPKNumber = PDFJson.classPK?number
2764 fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber)
2765 folderId = fileEntry.getFolderId()
2766 title = fileEntry.getTitle()
2767
2768 quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId + StringPool.SLASH + URLCodec.encodeURL(HtmlUtil.unescape(title))
2769 />
2770
2771 <#else>
2772 <#assign quaisMateriaisComercialPDFUrl = "">
2773 </#if>
2774
2775 <#function getFirstArticleStructure categoryId structureName>
2776 <#attempt>
2777 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search")>
2778 <#assign companyId = themeDisplay.getCompanyId()>
2779 <#assign groupId = themeDisplay.getScopeGroupId()>
2780 <#assign articles = searchImpl.findArticlesByCategoryIds(companyId, groupId, structureName, (categoryId gt 0)?then([categoryId],[]), true, 0, 1)>
2781 <#if articles?size gt 0>
2782 <#return articles?first>
2783 </#if>
2784 <#return ''>
2785 <#recover>
2786 <#return ''>
2787 </#attempt>
2788 </#function>
2789
2790
2791 <#assign
2792 nomeTipoCurso = categoriaTipoCurso.getName()
2793 nomeCategoriaTipoCurso = categoriaTipoCurso.getName()
2794 idTipoCurso = categoriaTipoCurso.getCategoryId()
2795 />
2796 <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" />
2797
2798 <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2799
2800 <#assign
2801 nomeTipoCurso = categoriaTipoCurso.getName()
2802 />
2803
2804 <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" />
2805
2806 <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") >
2807
2808 <#assign
2809 nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s"
2810 />
2811
2812 <#else>
2813 <#assign
2814 nomeTipoCurso = categoriaTipoCurso.getName()
2815 />
2816 <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>
2817
2818 </#if>
2819
2820 <#-- Caso o curso seja do formato hibrido, busca o webcontent da pasta Onde as aulas vão acontecer - hibrido -->
2821 <#if nomeFormato == "Presencial + EAD">
2822 <#assign
2823 hibridoStructure = getFirstArticleStructure(idFormato,"formato-hibrido")
2824 documentHibrido = saxReaderUtil.read(hibridoStructure.getContent())
2825 rootElement = documentHibrido.getRootElement()
2826 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoFormatoHibrido']")
2827 />
2828 <#if xPathSelector.selectSingleNode(rootElement)?? >
2829 <#assign txtHibrido = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2830 <input type="hidden" name="textoFormatoHibrido" value="${txtHibrido}"/>
2831 </#if>
2832 </#if>
2833
2834
2835 <#-- dados de compartilhamento -->
2836 <@liferay_util["html-top"]>
2837 <meta name="image" property="og:image" content="${imagemUrl}">
2838 <meta property="og:image:width" content="1024">
2839 </@>
2840 <#-- dados de compartilhamento -->
2841
2842
2843 <#assign
2844 webContentServiceUtil = serviceLocator.findService("br.senac.services.service.WebContentServiceUtil")
2845
2846 temasMercadologicos = webContentServiceUtil.getTemasPorArticleId(themeDisplay.getScopeGroupId(), journalArticle)
2847 categoriesIdiomas = temasMercadologicos?filter(c -> c.getName()?lower_case?contains("idioma"))
2848 hasIdiomas = categoriesIdiomas?has_content
2849 hasEMED = normalizedModalidadeName?contains("ensino-medio")
2850 />
2851
2852 <#function getManutencao>
2853
2854 <#assign manutencaoStructure = getFirstArticleStructure(idTipoCurso,"manutencoes") />
2855 <#if manutencaoStructure == "">
2856 <#return {"bolsa":"", "compra":"", "rodape":""} />
2857 </#if>
2858 <#assign
2859 txtBolsa = ""
2860 txtCompra = ""
2861 txtRodape = ""
2862 content = saxReaderUtil.read(manutencaoStructure.getContent())
2863 rootElement = content.getRootElement()
2864 />
2865 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoBolsa']") />
2866 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2867 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoBolsa']") />
2868 <#assign txtBolsa = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2869 </#if>
2870 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoCompra']") />
2871 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2872 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoCompra']") />
2873 <#assign txtCompra = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2874 </#if>
2875 <#if txtCompra != "" || txtBolsa != "">
2876 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoRodape']") />
2877 <#assign txtRodape = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2878 </#if>
2879
2880 <#return {"bolsa": txtBolsa, "compra": txtCompra, "rodape": txtRodape} />
2881
2882 </#function>
2883
2884 <#assign manutencao = getManutencao() />
2885 <input type="hidden" id="manutencao-compra" value="${manutencao.compra}" />
2886 <input type="hidden" id="manutencao-bolsa" value="${manutencao.bolsa}" />
2887
2888 <div class="${prefix}-header-curso__image">
2889 <#if imagemUrl?contains(".webp")>
2890 <#-- Remove midias adaptaveis -->
2891 <picture>
2892 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2893 </picture>
2894 <#else>
2895 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2896 </#if>
2897 <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}">
2898 <#if hasIdiomas>
2899 <span>${nomeTipoCurso}</span>
2900 <#else>
2901 <span>${nomeTipoCurso} | ${nomeFormato}</span>
2902 </#if>
2903 </div>
2904 </div>
2905
2906 <section id="curso-info">
2907 <div class="ssp-card-detalhe-curso__container">
2908
2909 <div class="ssp-card-detalhe-curso">
2910
2911 <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div>
2912
2913 <div class="container">
2914
2915 <#if nomeFormato?contains("ao-vivo") >
2916 <span class="ssp-card-detalhe-curso__tag-ao-vivo">Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo</span>
2917
2918 </#if>
2919
2920 <div class="ssp-card-detalhe-curso__content">
2921 <div>
2922
2923 <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2924
2925 <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p>
2926
2927 </#if> -->
2928
2929 <!-- rever a lógica da chama de inscricoes abertas -->
2930
2931 <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1>
2932 <input type="hidden" name="tituloComercial" value="${tituloComercial}" />
2933
2934 <div class="ssp-card-detalhe-curso__description">${objetivo}</div>
2935 </div>
2936 <div class="ssp-card-detalhe-curso__secunday-info-content">
2937
2938 <#if nomeFormato?contains("ao-vivo") >
2939 <span class="d-md-none">
2940 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a>
2941 <#if !hasIdiomas>
2942 <span> | ${nomeFormato}</span>
2943 </#if>
2944 </span>
2945
2946 <#else>
2947 <span class="d-md-none">
2948 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#">${categoriaTipoCurso.getName()}</a>
2949 <#if !hasIdiomas>
2950 <span> | ${nomeFormato}</span>
2951 </#if>
2952 </span>
2953
2954 </#if>
2955
2956 <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p>
2957 </div>
2958 </div>
2959 <div class="ssp-saiba-mais-curso-accordion">
2960
2961 <#if (possoFazerEsteCursoComercial?length > 0)>
2962 <div class="ssp-saiba-mais-curso-accordion__body">
2963 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div>
2964 <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div>
2965 </div>
2966
2967 </#if>
2968
2969 <#if (oQueVouAprenderComercial?length > 0) >
2970 <div class="ssp-saiba-mais-curso-accordion__body">
2971 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div>
2972 <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div>
2973 </div>
2974 </#if>
2975
2976 <#if (comoVouAprenderComercial?length > 0)>
2977 <div class="ssp-saiba-mais-curso-accordion__body">
2978 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div>
2979 <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div>
2980 </div>
2981 </#if>
2982
2983
2984 <div class="ssp-saiba-mais-curso-accordion__body">
2985 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div>
2986 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
2987 <div class="ssp-saiba-mais-curso-accordion__contents">
2988 Desenvolvemos os materiais e disponibilizamos tudo para você!<br/><br/>Também temos bibliotecas físicas e virtuais, além de parceria com a Microsoft, que garante acesso à plataforma Teams para conferir aulas, avisos e materiais da sua turma.
2989 </div>
2990 <#else>
2991 <#if (quaisMateriaisComercialPDFUrl?length > 0)>
2992 <div class="ssp-saiba-mais-curso-accordion__contents">
2993 <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a>
2994 </div>
2995 <#else>
2996 <div class="ssp-saiba-mais-curso-accordion__contents">Inicialmente, não há lista de materiais para este curso. Mas confirme em aula se será necessário comprar algum item.</div>
2997 </#if>
2998 </#if>
2999 </div>
3000
3001 <#if (tereiDiplomaComercial?length > 0)>
3002 <div class="ssp-saiba-mais-curso-accordion__body">
3003 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div>
3004 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div>
3005 </div>
3006 </#if>
3007
3008 <#if (tereiCertificadoComercial?length > 0)>
3009 <div class="ssp-saiba-mais-curso-accordion__body">
3010 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div>
3011 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div>
3012 </div>
3013 </#if>
3014
3015 <#if (comoMeMatricularComercial?length > 0)>
3016 <div class="ssp-saiba-mais-curso-accordion__body">
3017 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div>
3018 <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div>
3019 </div>
3020 </#if>
3021
3022 <#if (precisoEstagiarComercial?length > 0)>
3023 <div class="ssp-saiba-mais-curso-accordion__body">
3024 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div>
3025 <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div>
3026 </div>
3027 </#if>
3028
3029
3030 <#if (oQueMaisPrecisoSaberComercial?length > 0)>
3031 <div class="ssp-saiba-mais-curso-accordion__body">
3032 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3033 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div>
3034 <#else>
3035 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div>
3036 </#if>
3037 <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div>
3038 </div>
3039 </#if>
3040
3041 <!-- Info para EMED -->
3042
3043 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3044
3045 <div class="ssp-emed__vantagens-content">
3046
3047 <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p>
3048 <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a>
3049
3050 </div>
3051
3052 <#elseif nomeFormato?contains("Presencial") && nomeFormato?contains("EAD") && !nomeTipoCurso?contains("Idioma")>
3053
3054 <!-- Info para híbrido -->
3055
3056 <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3057
3058 <p>Quer saber mais sobre nossos <span>cursos com aulas presenciais e a distância</span>?</p>
3059 <a href="/presencial-ead" class="btn">Saiba mais</a>
3060
3061 </div>
3062
3063 <#else>
3064
3065 <!-- <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3066
3067 <p>Conheça <span>mais vantagens</span>?</p>
3068 <a href="#" class="btn">Saiba mais</a>
3069
3070 </div> -->
3071
3072 </#if>
3073
3074
3075 <!-- Slider para cursos de Cozinheiro e Garçom -->
3076
3077 <#if codigoFT=="14125">
3078
3079 <div>
3080
3081 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3082
3083
3084 <div class="slider-passo-passo__cursos-cozinha">
3085
3086 <div class="ssp-passo-passo-cozinheiro_card">
3087
3088 <div>
3089
3090 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3091
3092 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3093
3094 </div>
3095
3096
3097 </div>
3098
3099 <div class="ssp-passo-passo-cozinheiro_card">
3100
3101 <div>
3102
3103 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3104
3105 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p>
3106
3107 </div>
3108
3109 </div>
3110
3111 <div class="ssp-passo-passo-cozinheiro_card">
3112
3113 <div>
3114
3115 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3116
3117 <p class="ssp-passo-passo-cozinheiro_card-txt">
3118 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3119 </p>
3120
3121
3122 </div>
3123
3124 </div>
3125
3126 <div class="ssp-passo-passo-cozinheiro_card">
3127
3128 <div>
3129
3130 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3131
3132 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
3133 </p>
3134
3135
3136 </div>
3137
3138 </div>
3139
3140 <div class="ssp-passo-passo-cozinheiro_card">
3141
3142 <div>
3143
3144 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3145
3146 <p class="ssp-passo-passo-cozinheiro_card-txt">
3147 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3148 </p>
3149
3150 </div>
3151
3152 </div>
3153
3154 <div class="ssp-passo-passo-cozinheiro_card">
3155
3156 <div>
3157
3158 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3159
3160 <p class="ssp-passo-passo-cozinheiro_card-txt">
3161 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3162 </p>
3163
3164 </div>
3165
3166 </div>
3167
3168 <div class="ssp-passo-passo-cozinheiro_card">
3169
3170 <div>
3171
3172 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3173
3174 <p class="ssp-passo-passo-cozinheiro_card-txt">
3175 Teve aprovação em todas as etapas? Parabéns!
3176
3177 Sua jornada de transformação profissional
3178
3179 começará com o início das aulas. Mas se não
3180
3181 conseguiu dessa vez, não desanime. Sempre estamos com
3182
3183 vagas abertas para diversos cursos.
3184 </p>
3185
3186 </div>
3187
3188 </div>
3189
3190
3191 </div>
3192
3193 </div>
3194
3195 <#elseif codigoFT=="15390" >
3196
3197 <div>
3198
3199 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3200
3201 <div class="slider-passo-passo__cursos-cozinha">
3202
3203 <div class="ssp-passo-passo-cozinheiro_card">
3204
3205 <div>
3206
3207 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3208
3209 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3210
3211 </div>
3212
3213
3214 </div>
3215
3216 <div class="ssp-passo-passo-cozinheiro_card">
3217
3218 <div>
3219
3220 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3221
3222 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p>
3223
3224 </div>
3225
3226 </div>
3227
3228 <div class="ssp-passo-passo-cozinheiro_card">
3229
3230 <div>
3231
3232 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3233
3234 <p class="ssp-passo-passo-cozinheiro_card-txt">
3235 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3236 </p>
3237
3238
3239 </div>
3240
3241 </div>
3242
3243 <div class="ssp-passo-passo-cozinheiro_card">
3244
3245 <div>
3246
3247 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3248
3249 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
3250 </p>
3251
3252
3253 </div>
3254
3255 </div>
3256
3257 <div class="ssp-passo-passo-cozinheiro_card">
3258
3259 <div>
3260
3261 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3262
3263 <p class="ssp-passo-passo-cozinheiro_card-txt">
3264 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3265 </p>
3266
3267 </div>
3268
3269 </div>
3270
3271 <div class="ssp-passo-passo-cozinheiro_card">
3272
3273 <div>
3274
3275 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3276
3277 <p class="ssp-passo-passo-cozinheiro_card-txt">
3278 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3279 </p>
3280
3281 </div>
3282
3283 </div>
3284
3285 <div class="ssp-passo-passo-cozinheiro_card">
3286
3287 <div>
3288
3289 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3290
3291 <p class="ssp-passo-passo-cozinheiro_card-txt">
3292 Teve aprovação em todas as etapas? Parabéns!
3293
3294 Sua jornada de transformação profissional
3295
3296 começará com o início das aulas. Mas se não
3297
3298 conseguiu dessa vez, não desanime. Sempre estamos com
3299
3300 vagas abertas para diversos cursos.
3301 </p>
3302
3303 </div>
3304
3305 </div>
3306
3307
3308 </div>
3309
3310 </div>
3311
3312 </#if>
3313
3314 <!-- Final Slider para cursos de Cozinheiro e Garçom -->
3315
3316 </div>
3317 </div>
3318 </div>
3319 </div>
3320 </section>
3321 <#assign
3322 dNoneSelectUnidade = ''
3323 mostrarUnidades = !nomeFormato?contains("ao-vivo")
3324 isEMED = normalizedCategoryName?contains("ensino-medio-tecnico")
3325 isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz")
3326 />
3327
3328 <#if nomeFormato?contains("ao-vivo") >
3329 <#assign dNoneSelectUnidade = 'd-none' />
3330 </#if>
3331
3332 <#-- Obter data matricula emed -->
3333 <#if isEMED>
3334 <#function getMatriculaEMED >
3335 <#assign emedTags = getFirstArticleStructure(0,"emed-tags")
3336 document = saxReaderUtil.read(emedTags.getContent())
3337 rootElement = document.getRootElement()
3338 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataInicioPeriodoMatricula']") />
3339 <#if xPathSelector.selectSingleNode(rootElement)?? >
3340 <#assign dataInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3341 </#if>
3342 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='horaInicioMatricula']") />
3343 <#if xPathSelector.selectSingleNode(rootElement)?? >
3344 <#assign horaInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3345 </#if>
3346
3347 <#setting time_zone="America/Sao_Paulo">
3348 <#assign today = .now?datetime />
3349 <#assign emeddatetime = (dataInicio + " " + horaInicio)?datetime["yyyy-MM-dd HH:mm"] />
3350 <#assign matriculaAberta = today gt emeddatetime />
3351
3352 <#return {"dataInicio" : dataInicio, "horaInicio" : horaInicio, "aberta" : matriculaAberta}>
3353 </#function>
3354
3355 <#assign matriculaEMED = getMatriculaEMED() />
3356
3357 </#if>
3358
3359 <#if isEMED || isAprendizagem>
3360 <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41">
3361 <div class="container">
3362
3363 <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;">
3364 <div class="ssp-container_ofertas__title">
3365 <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom">
3366
3367 Selecione uma unidade para conhecer as próximas turmas:
3368
3369 </h3>
3370 </div>
3371
3372 <div class="ssp-container__form-select">
3373 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas">
3374 <option value="">Selecione uma unidade</option>
3375 </select>
3376 </div>
3377
3378 </div>
3379
3380 <div class="ssp-ofertas__box-endereco-unidade">
3381 <i class="icon-map-adress"></i>
3382 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3383 </div>
3384
3385 </div>
3386
3387 </section>
3388 <#else>
3389 <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41">
3390 <div class="container">
3391 <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8">
3392 <div class="ssp-container_ofertas__title">
3393 <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>
3394 </div>
3395 </div>
3396 <div class="row ssp-filters-px justify-content-center">
3397 <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1">
3398 <div class="ssp-container-selecione-unidade row no-gutters">
3399 <div class="col-12">
3400 <div class="ssp-container__form-select mx-auto">
3401 <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>
3402 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select>
3403 </div>
3404 </div>
3405 </div>
3406 </div>
3407
3408 <div id="ssp-alternadores" class="col mt-5 mt-lg-0 ${(isEMED || isAprendizagem)?then('d-none', '')} px-md-0 order-3 order-lg-2" style="max-width: 480px; display: none;">
3409 <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div>
3410 <div class="row no-gutters mt-4">
3411 <#assign
3412 mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão")
3413 mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre")
3414 />
3415
3416
3417 <#if mostrarFiltroInscricao && mostrarFiltroBolsa>
3418 <div class="ssp-switch-divider d-md-none my-4"></div>
3419 </#if>
3420
3421 <#if mostrarFiltroInscricao>
3422 <div class="col-12 col-lg">
3423 <div class="d-flex justify-content-between justify-content-lg-start">
3424 <label class="ssp-switch order-2 order-lg-1">
3425 <input type="checkbox" id="chkInscricao">
3426 <span class="ssp-switch-slider round"></span>
3427 </label>
3428 <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">Comprar agora</label>
3429 </div>
3430 </div>
3431 </#if>
3432
3433
3434 <#if mostrarFiltroBolsa>
3435 <div class="col-12 col-lg">
3436 <div class="d-flex justify-content-between justify-content-lg-start">
3437 <label class="ssp-switch order-2 order-lg-1">
3438 <input type="checkbox" id="chkBolsa">
3439 <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span>
3440 </label>
3441 <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label>
3442 </div>
3443 </div>
3444 </#if>
3445 </div>
3446 </div>
3447
3448 <div class="col-12 order-2 order-lg-3">
3449 <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}">
3450 <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;">
3451 <div class="row no-gutters">
3452 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso. </span>
3453 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span>
3454 </div>
3455 </div>
3456 </div>
3457 </div>
3458 </div>
3459
3460 <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}">
3461 <i class="icon-map-adress"></i>
3462 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3463 </div>
3464
3465 </div>
3466
3467 </section>
3468 </#if>
3469
3470
3471 <!-- EMED -->
3472 <section class="ssp-ofertas-emed__section d-none">
3473
3474 <h2 class="title-section-white" id="titulo-emed"></h2>
3475
3476 <div class="ssp-ofertas-emed__filtro-content container">
3477
3478 <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button>
3479
3480 <button type="button" value="0" class="btn btn-filtro">Transferências</button>
3481
3482 </div>
3483
3484 <div class="ssp-ofertas-emed__card-container">
3485
3486 <div class="ssp-slick-ofertas-emed">
3487
3488 </div>
3489
3490 </div>
3491
3492 </section>
3493
3494 <!-- FIM EMED -->
3495
3496 <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;">
3497
3498 <div id="turmas-container" class="container">
3499
3500 <div id="informe-novas-turmas">
3501 <div style="display: flex; flex-wrap: nowrap;">
3502
3503 <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" >
3504 <i class="fas fa-chevron-left"></i>
3505 </a>
3506
3507 <h2 id="ssp-h3-turmas" class="ssp-section-title ssp-card-oferta-curso__section-title text-capitalize" style="font-weight: bold;text-transform: uppercase; display: none;">Turmas</h2>
3508
3509 <a href="#" class="next-mobile d-lg-none d-xl-none" >
3510 <i class="fas fa-chevron-right"></i>
3511 </a>
3512
3513 </div>
3514
3515
3516 <div class="oferta-slick-area oferta-slick-area--md-bleed slider-container">
3517
3518 </div>
3519 </div>
3520
3521 <#if !isEMED>
3522 <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;">
3523
3524 <h2 class="ssp-card-oferta-curso__sem-vaga-title">
3525 Estude com a gente na próxima turma!
3526 </h2>
3527
3528 <p class="ssp-card-oferta-curso__sem-vaga-description">
3529 Registre seu interesse e avisaremos você quando surgirem novas vagas.
3530 </p>
3531 </div>
3532 <#else>
3533
3534 <div class="card-transferencias-emed container p-0 d-none emed-transferencias-space">
3535 <div>
3536 <div class="col-md-12 col-xs-12 pb-10">
3537 <div>
3538 <div class="slick-area__item">
3539
3540 <div class="ssp-emed__card-slider">
3541
3542 <div class="ssp-emed__card-slider-body">
3543 <h2 class="ssp-emed__section__titleCard">
3544 <i class="fal fa-users-class"></i>
3545 <div>Turmas</div>
3546 </h2>
3547 <div style="display:grid;gap:20px;">
3548 <span class="emed_transferencia_texto">Para saber mais sobre vagas de transferências para 1º e 2º ano para estudantes do Senac e de outras escolas, entre em contato com a unidade de interesse para checar a disponibilidade.</span>
3549 <span></span>
3550 </div>
3551 </div>
3552
3553 </div>
3554
3555 </div>
3556 </div>
3557 </div>
3558 </div>
3559 </div>
3560
3561 <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none">
3562 <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space">
3563 </#if>
3564 <div>
3565 <div class="col-md-12 col-xs-12 pb-10">
3566
3567 <!--slick slider-->
3568 <div class="slick-area-emed slick-area-emed--md-bleed">
3569
3570 <#if matriculaEMED.aberta>
3571 <div class="slick-area__item">
3572
3573 <div class="ssp-emed__card-slider">
3574
3575 <div class="ssp-emed__card-slider-body">
3576 <h2 class="ssp-emed__section__titleCard">
3577 <i class="fal fa-users-class"></i>
3578 <div><lfr-editable type="rich-text">Turmas</lfr-editable></div>
3579 </h2>
3580 <lfr-editable type="rich-text">
3581 <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div>
3582 <div class="ssp-emed__section__textCard">
3583 <span class="texto">
3584 Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano.
3585 </span>
3586 <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i
3587 class="fas fa-chevron-right"></i></span>
3588 </div>
3589 </lfr-editable>
3590 </a>
3591 </div>
3592
3593 </div>
3594
3595 </div>
3596
3597 <div class="slick-area__item">
3598
3599 <div class="ssp-emed__card-slider">
3600 <div class="ssp-emed__card-slider-body">
3601
3602 <h2 class="ssp-emed__section__titleCard">
3603 <i class="far fa-envelope"></i>
3604 <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div>
3605 </h2>
3606 <lfr-editable id="txt_emed_boleto" type="rich-text">
3607 <div class="ssp-emed__section__introCardCTA">
3608 Quer receber um aviso sobre as turmas do próximo ano?
3609 </div>
3610 </lfr-editable>
3611 </a>
3612 <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10"
3613 id="btnOptin" href="javascript:;">Sim, me avise.</a>
3614 </div>
3615 </div>
3616 </div>
3617 <#else>
3618 <#-- pre inscricao emed -->
3619 <div class="slick-area__item card-pre-inscricao">
3620
3621 <div class="ssp-emed__card-slider">
3622
3623 <div class="ssp-emed__card-slider-body">
3624 <h2 class="ssp-emed__section__titleCard">
3625 <i class="fal fa-users-class"></i>
3626 <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div>
3627 </h2>
3628 <lfr-editable id="txt_emed_aulas" type="rich-text">
3629 <div>
3630 <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/>
3631 <span style="font-weight: 400;">
3632 a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas
3633 <#if matriculaEMED.horaInicio?split(":")?last != "00">
3634 e ${matriculaEMED.horaInicio?split(":")?last} minutos
3635 </#if>
3636 </span>
3637 </div>
3638
3639 <div class="footer-card-card-pre-inscricao">
3640 <strong>
3641 Estude com a gente na próxima turma!<br/>
3642 Esperamos por você!
3643 </strong>
3644 </div>
3645 </lfr-editable>
3646 </a>
3647 </div>
3648
3649 </div>
3650
3651 </div>
3652
3653 </#if>
3654
3655 </div>
3656 <!--/slick slider-->
3657
3658 </div>
3659 </div>
3660 </div>
3661 </#if>
3662 <div class="oferta-slick-area_modal">
3663 </div>
3664
3665 <#if manutencao.rodape != "">
3666 <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p>
3667 <#else>
3668 <#if isEMED>
3669 <p class="ssp-card-oferta-curso__mensagem-legal">O Senac reserva-se o direito de alterar o número de vagas, datas, horários ou cancelar o programa.</p>
3670 <#else>
3671 <p class="ssp-card-oferta-curso__mensagem-legal">A turma pode ser cancelada ou ter alterações do número de vagas, datas e horários.</p>
3672 </#if>
3673 </#if>
3674
3675 </div>
3676
3677 <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;">
3678
3679 <p>Tem dúvidas sobre bolsas de estudo?</p>
3680 <a href="/bolsas-de-estudo">Saiba como funciona</a>
3681
3682 </div>
3683
3684
3685 </section>
3686
3687 <section id="section-registro-interesse" class="ssp-section-novas-turmas">
3688
3689 <div class="container">
3690
3691 <div class="ssp-aviso-novas-turmas__content">
3692
3693 <!-- <div class="pb-sm-5 pb-md-5" > -->
3694 <div>
3695
3696 <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p>
3697 <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p -->
3698
3699 </div>
3700
3701 <!--
3702 <div class="ssp-container__form-select">
3703
3704 <select class="form-control select-large select-registro-interesse" id="select-registro-interesse">
3705 <option value="">Selecione uma unidade</option>
3706 </select>
3707
3708 </div>
3709 -->
3710 <div class="ssp-btn-group__content-teste">
3711
3712 <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button>
3713
3714 </div>
3715
3716
3717
3718 </div>
3719
3720
3721 </div>
3722
3723
3724 </section>
3725
3726 <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none">
3727
3728 <div class="ssp-card-msg-erro">
3729
3730 <div class="ssp-card-msg-sucesso__content">
3731 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
3732 <p>Houve um erro ao inserir curso na mochila!</p>
3733 <p>Por favor, tente novamente!</p>
3734 </div>
3735
3736 <div>
3737 <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button>
3738 </div>
3739
3740 </div>
3741
3742 </section>
3743
3744 <section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none">
3745
3746 <div class="ssp-modal-mochila-curso">
3747
3748 <div class="ssp-modal-mochila-curso__header">
3749
3750 <button class="modal-btn-close" type="button">
3751
3752 <i class="fal fa-times"></i>
3753
3754 </button>
3755
3756 <h2 class="modal-title">Curso adicionado à mochila!</h2>
3757 <p class="modal-subtitle">Você incluiu na sua mochila de compras o curso
3758 <span id="modal-backpack-success__nome-curso"></span>
3759 </p>
3760
3761 </div>
3762
3763 <div class="ssp-modal-mochila-curso__body">
3764
3765 <p>A sua vaga só é garantida nesta turma quando você finaliza a
3766 compra. Deseja concluir agora?</p>
3767
3768 </div>
3769
3770 <div class="ssp-modal-mochila-curso__block-btn-items block-btn-items">
3771
3772 <a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#">
3773 Finalizar compra
3774 </a>
3775
3776 <button class="btn-continuar-site btn-mochila-continuar-site-success">
3777 Continuar no site
3778 </button>
3779
3780 </div>
3781
3782
3783 </div>
3784
3785 </section>
3786
3787</#if>
3788
3789<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") >
3790 <!-- Agende a sua visita -->
3791 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") />
3792 <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) />
3793
3794 <section id="ssp-emed-visita-sector">
3795 <div class="container py-5 pt-lg-0" style="display:none;">
3796 <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper">
3797 <#list articles![] as article>
3798 <#assign document = saxReaderUtil.read(article.getContent()) />
3799 <#assign rootElement = document.getRootElement() />
3800
3801 <#assign
3802 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']")
3803 textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3804
3805 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']")
3806 linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3807
3808 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']")
3809 ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3810 />
3811
3812 <#if ativarBotao?trim == "true">
3813 <script>$('#ssp-emed-visita-sector').children().show()</script>
3814 <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text">
3815
3816 <a href="${linkBotao}">${textoDoBotao}</a>
3817
3818 </div>
3819 <div class="ssp-emed-visita-icon">
3820 <i class="fas fa-route"></i>
3821 </div>
3822 </#if>
3823 </#list>
3824 </div>
3825 </div>
3826 </section>
3827
3828
3829 <!-- Como me matricular EMED -->
3830
3831 <section class="ssp-como-me-matricular__section">
3832
3833 <h2 class="title-section-white">Como me matricular?</h2>
3834
3835 <div class="container">
3836
3837 <div class="ssp-como-me-matricular__passo-passo-card">
3838
3839 <div class="item-passo">
3840 <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt="">
3841 <p class="item-passo-title">Escolha o curso</p>
3842 <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span>
3843 </div>
3844
3845 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3846
3847 <div class="item-passo">
3848 <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt="">
3849 <p class="item-passo-title">Adicione à Mochila</p>
3850 <span>Faça login ou crie uma conta em nosso site e continue a compra.</span>
3851 </div>
3852
3853 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3854
3855 <div class="item-passo">
3856 <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt="">
3857 <p class="item-passo-title">Faça a matrícula</p>
3858 <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span>
3859 </div>
3860
3861 </div>
3862
3863
3864 </div>
3865
3866 </section>
3867
3868 </#if>
3869
3870
3871 <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2">
3872 <div class="container">
3873 <h2 class="ssp-section-title">
3874 <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text">
3875 Cursos que você pode gostar
3876 </lfr-editable>
3877 </h2>
3878
3879 <div id="slider-curso">
3880
3881 </div>
3882
3883 </div>
3884 </div>
3885
3886
3887
3888
3889 <#-- Section para o item de curso-->
3890 <div id="curso-item-template" class="d-none slick-area__item">
3891
3892 <div class="ssp-card-curso" style="height: 288px;">
3893
3894 <a class="ssp-absolute-link ck-curso" href="#a"></a>
3895
3896 <div class="ssp-card-curso__image">
3897
3898 <div class="ssp-image-container">
3899 <img src="" />
3900
3901 </div>
3902
3903 </div>
3904
3905 <div class="ssp-card-curso__body">
3906
3907 <div class="ssp-card-curso__color-tag-modalidade"></div>
3908
3909 <div class="ssp-card-curso__tags">
3910
3911 <span class="ssp-card-curso__tag-formato-title"></span>
3912
3913 <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span>
3914
3915 </div>
3916
3917 <h6 class="ssp-card-curso__title">
3918
3919 </h6>
3920
3921 <div class="ssp-card-curso__info">
3922
3923 <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span>
3924 <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span>
3925
3926 </div>
3927
3928 </div>
3929
3930 </div>
3931
3932 </div>
3933
3934 <#function getJournalArticle>
3935
3936
3937 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3938 <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first>
3939 <#assign groupId = themeDisplay.getSiteGroupId()>
3940 <#attempt>
3941
3942 <#if !friendlyURL?contains("fragment_collections") >
3943
3944 <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)>
3945 <#else>
3946
3947 <#return '#erro#'>
3948 </#if>
3949
3950 <#recover>
3951
3952 <#return '#erro#'>
3953 </#attempt>
3954 </#function>
3955
3956 <#function getCategorias primaryKey>
3957
3958 <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
3959 <#attempt>
3960
3961 <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)>
3962
3963 <#recover>
3964
3965 <#return '#erro#'>
3966 </#attempt>
3967 </#function>
3968
3969 <#function getVocabulary vocabularyId>
3970
3971 <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
3972 <#attempt>
3973
3974 <#return vocabularyService.getVocabulary(vocabularyId)>
3975
3976 <#recover>
3977
3978 <#return '#erro#'>
3979 </#attempt>
3980 </#function>
3981
3982 <#function getStringValue dom name>
3983 <#assign
3984 seletorSTR = "dynamic-element[@field-reference='"+name+"']"
3985 xPathSelector = saxReaderUtil.createXPath(seletorSTR)
3986 />
3987 <#if xPathSelector.selectSingleNode(dom)?? >
3988 <#assign
3989 valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim
3990 />
3991 <#return valueSTR>
3992 </#if>
3993 <#return ''>
3994 </#function>
3995
3996 <!--Modal de Login -->
3997
3998 <section id="modal-login" class="ssp-modal-registro-interesse d-none">
3999
4000 <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;">
4001
4002 <div class="px-5">
4003 <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i>
4004 <div class="text-darker-gray py-3">Faça login na sua conta</div>
4005 </div>
4006
4007 <div class="dropdown-divider"></div>
4008
4009 <div class="dropdown-menu-arrow"></div>
4010
4011 <form id="login_form" class="px-5 py-4" method="post">
4012
4013 <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div>
4014
4015 <div class="form-group">
4016
4017 <label for="login-email">E-mail</label>
4018 <div class="input-group mb-2">
4019 <div class="input-group-prepend">
4020 <span class="input-group-text"><i class="icon-envelope"></i></span>
4021 </div>
4022 <input type="text" class="form-control" id="login-email-modal" name="_com_liferay_login_web_portlet_LoginPortlet_login" placeholder="Digite seu e-mail" aria-label="Email" aria-describedby="login-email">
4023 </div>
4024
4025 </div>
4026
4027 <div class="form-group">
4028
4029 <label for="login-password">Senha</label>
4030 <div class="input-group mb-2">
4031 <div class="input-group-prepend">
4032 <span class="input-group-text"><i class="icon-key"></i></span>
4033 </div>
4034 <input type="password" class="form-control" id="login-password-modal" name="_com_liferay_login_web_portlet_LoginPortlet_password" placeholder="Digite sua senha" aria-label="Password" aria-describedby="login-password">
4035 </div>
4036
4037 </div>
4038
4039 <div class="pt-1 pb-3">
4040 <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small>
4041 </div>
4042
4043 <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button>
4044 </form>
4045
4046 <div class="dropdown-divider"></div>
4047
4048 <div class="px-5 pb-4">
4049 <div class="text-darker-gray py-3">Não tem cadastro?</div>
4050 <a href="https://www.sp.senac.br/usuario-unico/InsertUser?destino=${themeDisplay.getPortalURL()+themeDisplay.getURLCurrent()}" target="_blank" class="btn bg-btn-cadastre btn-nivel-livre text-white w-100 ">Cadastre-se</a>
4051 </div>
4052
4053
4054 </div>
4055
4056 </section>
4057
4058 <!-- modal registro interesse -->
4059
4060
4061 <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none">
4062
4063 <#if !isEMED>
4064 <div class="ssp-card-registro-interesse">
4065
4066 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4067
4068 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4069 <h3 class="ssp-card-registro-interesse__nome-curso"></h3>
4070
4071 <div id="unidades-registro-interesse">
4072
4073 <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4>
4074
4075 <div id="select-unidades-registro-interesse">
4076 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4077 </div>
4078
4079 <div class="ssp-card-registro-interesse__add-mais">
4080 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4081
4082
4083
4084 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4085 </div>
4086
4087 </div>
4088
4089 <div id="dias-registro-interesse">
4090 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4>
4091
4092 <div class="ssp-card-registro-interesse__week-content">
4093 <span id="todosDias" class="ssp-week-day">Todos</span>
4094 <span class="ssp-week-day">Seg</span>
4095 <span class="ssp-week-day">Ter</span>
4096 <span class="ssp-week-day">Qua</span>
4097 <span class="ssp-week-day">Qui</span>
4098 <span class="ssp-week-day">Sex</span>
4099 <span class="ssp-week-day">Sab</span>
4100 </div>
4101
4102 </div>
4103
4104 <div id="periodo-registro-interesse">
4105
4106 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4>
4107
4108 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4109
4110 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4111 <input type="checkbox" name="" value="" id="check-todos-periodos">
4112 <label for="check-todos-periodos">Todos</label>
4113 </div>
4114
4115 <div class="ssp-card-registro-interesse__check-item">
4116 <input type="checkbox" name="" value="M" id="periodo-m">
4117 <label for="periodo-m">Manhã</label>
4118 </div>
4119
4120 <div class="ssp-card-registro-interesse__check-item">
4121 <input type="checkbox" name="" value="T" id="periodo-t">
4122 <label for="periodo-t">Tarde</label>
4123 </div>
4124
4125 <div class="ssp-card-registro-interesse__check-item">
4126 <input type="checkbox" name="" value="N" id="periodo-n">
4127 <label for="periodo-n" "="">Noite</label>
4128 </div>
4129
4130
4131 </div>
4132
4133 </div>
4134
4135 <div class="ssp-card-registro-interesse__card-politica">
4136
4137
4138 <p class="ssp-card-registro-interesse__card-politica-title">
4139 <strong>Política de Privacidade do Senac São Paulo </strong>
4140 </p>
4141
4142 <p>Data de publicação 06/08/2024</p>
4143
4144 <p class="ssp-card-registro-interesse__card-politica-text">
4145 O Serviço Nacional de Aprendizagem Comercial - Senac,
4146 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4147 com quem se relaciona.
4148 </p>
4149
4150 <p class="ssp-card-registro-interesse__card-politica-text">
4151
4152 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4153 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4154 medidas de segurança que adotamos; e quais os direitos que você tem.
4155 <br><br>
4156 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4157 alterações no que diz respeito ao tratamento de seus dados pessoais.
4158 <br><br>
4159 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4160 <br><br>
4161 <b>1. Quem somos nós?</b><br>
4162 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º
4163 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
4164 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4165 controlador dos dados pessoais.
4166 <br><br>
4167 <b>2. O que você precisa saber antes de ler esta política?</b>
4168 <br>
4169 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4170 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4171 pessoais sensíveis, conforme definição a seguir:
4172 <br><br>
4173 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4174 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4175 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4176 <br><br>
4177 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4178 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4179 nós, é ele quem vai ajudar.
4180 <br><br>
4181 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4182 <br><br>
4183 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4184 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4185 outros.
4186 <br><br>
4187 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4188 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4189 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4190 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4191 <br><br>
4192 <b>3. Quais dados pessoais são tratados e por quê?</b>
4193 <br>
4194 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4195 atendimento às finalidades ora descritas, conforme aplicável:
4196 <br><br>
4197 <b>Visitante / Interessado</b>
4198 <br>
4199 <b>Atividade: Navegação</b>
4200 <br>
4201 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4202 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4203 do tráfego.
4204 <br><br>
4205 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4206 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4207 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4208 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4209 <br><br>
4210 </p>
4211
4212 <hr>
4213
4214 <p class="ssp-card-registro-interesse__card-politica-text">
4215 <br>
4216 <b>Atividade: Cadastro</b><br>
4217 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4218 telefone.
4219 <br><br>
4220 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4221 cadastro por duplo fator de autenticação.
4222 <br>
4223 </p>
4224
4225 <hr>
4226
4227 <p class="ssp-card-registro-interesse__card-politica-text">
4228 <br>
4229 <b>Atividade: Inscrição em eventos</b><br>
4230 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4231 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4232 <br><br>
4233 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4234 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4235 <br>
4236 </p>
4237
4238 <hr>
4239
4240 <p class="ssp-card-registro-interesse__card-politica-text">
4241 <br>
4242 <b>Atividade: Comunicação e Marketing</b><br>
4243 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4244 em mensagens nos nossos canais de atendimento e redes sociais.
4245 <br><br>
4246 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4247 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4248 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4249 <br>
4250 </p>
4251
4252 <hr>
4253
4254 <p class="ssp-card-registro-interesse__card-politica-text">
4255 <br>
4256 <b>Candidato a aluno</b><br>
4257 <b>Atividade: Processo seletivo</b><br>
4258 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4259 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4260 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4261 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4262 <br><br>
4263 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4264 menor de idade.
4265 <br><br>
4266 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4267 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4268 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4269 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4270 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4271 cursos, eventos e/ou benefícios de acordo com seus interesses.
4272 <br>
4273 </p>
4274
4275 <hr>
4276
4277 <p class="ssp-card-registro-interesse__card-politica-text">
4278 <br>
4279 <b>Atividade: Bolsas de estudo</b><br>
4280 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4281 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4282 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4283 <br><br>
4284 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4285 particular do Programa Senac de Gratuidade (PSG).
4286 <br>
4287 </p>
4288
4289 <hr>
4290
4291 <p class="ssp-card-registro-interesse__card-politica-text">
4292 <br>
4293 <b>Aluno</b><br>
4294 <b>Atividade: Matrícula</b><br>
4295 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4296 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4297 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4298 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4299 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4300 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4301 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4302 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4303 <br><br>
4304 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4305 responsáveis legais do aluno se menor de idade.
4306 <br><br>
4307 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4308 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4309 contrato conosco; e outras finalidades relacionadas.
4310 <br>
4311 </p>
4312
4313 <hr>
4314
4315 <p class="ssp-card-registro-interesse__card-politica-text">
4316 <br>
4317
4318 <b>Atividade: Jornada Acadêmica</b><br>
4319 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4320 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4321 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4322 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4323 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4324 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4325 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4326 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4327 <br><br>
4328 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4329 responsáveis legais do aluno se menor de idade.
4330 <br><br>
4331 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
4332 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
4333 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
4334 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
4335 realização de intercâmbio acadêmico.
4336 <br>
4337 </p>
4338
4339 <hr>
4340
4341 <p class="ssp-card-registro-interesse__card-politica-text">
4342 <br>
4343 <b>Atividade: Bolsas de estudo</b><br>
4344 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4345 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4346 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4347 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4348 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4349 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4350 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4351 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4352 <br><br>
4353 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4354 responsáveis legais do aluno se menor de idade.
4355 <br><br>
4356 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
4357 fornecimento de bolsas de estudo.
4358 <br>
4359 </p>
4360
4361 <hr>
4362
4363 <p class="ssp-card-registro-interesse__card-politica-text">
4364 <br>
4365
4366
4367 <b>Atividade: Benefícios</b><br>
4368 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4369 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4370 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4371 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4372 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4373 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4374 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4375 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4376 <br><br>
4377 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4378 responsáveis legais do aluno se menor de idade.
4379 <br><br>
4380 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
4381 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
4382 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
4383 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
4384 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
4385 inclusive para aperfeiçoamento das nossas parcerias comerciais.
4386 <br>
4387 </p>
4388
4389 <hr>
4390
4391 <p class="ssp-card-registro-interesse__card-politica-text">
4392 <br>
4393 <b>Atividade: Procedimentos internos</b><br>
4394 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
4395 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
4396 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
4397 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
4398 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
4399 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
4400 pesquisa.
4401 <br>
4402 </p>
4403
4404 <hr>
4405
4406 <p class="ssp-card-registro-interesse__card-politica-text">
4407 <br>
4408
4409
4410 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
4411 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
4412 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
4413 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
4414 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
4415 judicial, de autoridade competente ou de órgão fiscalizador.
4416 <br>
4417 </p>
4418
4419 <hr>
4420
4421 <p class="ssp-card-registro-interesse__card-politica-text">
4422 <br>
4423
4424 <b>Atividade: Pesquisas e desenvolvimento</b><br>
4425 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
4426 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
4427 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
4428 Senac SP está sujeito.
4429 <br>
4430 </p>
4431
4432 <hr>
4433
4434 <p class="ssp-card-registro-interesse__card-politica-text">
4435 <br>
4436
4437 <b>Atividade: Monitoramento</b><br>
4438 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
4439 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
4440 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
4441 <br>
4442 </p>
4443
4444 <hr>
4445
4446 <p class="ssp-card-registro-interesse__card-politica-text">
4447 <br>
4448
4449 <b>Ex-aluno</b><br>
4450 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
4451 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
4452 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
4453 <br><br>
4454 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
4455 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
4456 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
4457 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
4458 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
4459 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
4460 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
4461 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
4462 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
4463 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
4464 <br>
4465 </p>
4466
4467 <hr>
4468
4469 <p class="ssp-card-registro-interesse__card-politica-text">
4470 <br>
4471 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
4472 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
4473 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
4474 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
4475 <br><br>
4476 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
4477 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
4478 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
4479 Senac SP.
4480 <br>
4481 </p>
4482
4483 <hr>
4484
4485 <p class="ssp-card-registro-interesse__card-politica-text">
4486 <br><br>
4487 <b>Usuário Wi-Fi</b><br>
4488 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
4489 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
4490 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
4491 <br><br>
4492 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
4493 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
4494 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
4495 outras informações relevantes; proteger você, terceiros e o Senac.
4496 <br><br>
4497
4498
4499 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
4500 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
4501 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
4502 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
4503 <br><br>
4504 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
4505 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
4506 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
4507 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
4508 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
4509 <br><br>
4510 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
4511 que entender haver base legal para o tratamento posterior nos termos da LGPD.
4512 <br><br>
4513
4514
4515 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
4516 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
4517 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
4518 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
4519 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
4520 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
4521 compartilhados para finalidades legítimas da seguinte maneira:
4522 <br><br>
4523 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
4524 relacionamento e contrato de prestação de serviços conosco;
4525 <br><br>
4526 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
4527 conforme aplicável;
4528 <br><br>
4529 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
4530 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
4531 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
4532 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
4533 contratos, órgãos judiciais e governamentais;
4534 <br><br>
4535 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
4536 ameaça a direito;
4537 <br><br>
4538 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
4539 <br><br>
4540 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
4541 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
4542 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
4543 atingimento da aludida finalidade;
4544 <br><br>
4545 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
4546 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
4547 <br><br>
4548
4549
4550 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
4551 <br><br>
4552 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
4553 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
4554 <br><br>
4555 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
4556 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
4557 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
4558 <br><br>
4559 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
4560 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
4561 <br><br>
4562
4563
4564 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
4565 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
4566 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
4567 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
4568 <br><br>
4569 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
4570 seguintes critérios:
4571 <br><br>
4572 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
4573 <br><br>
4574 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
4575 judiciais, administrativos ou arbitrais;
4576 <br><br>
4577 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
4578 educacionais.
4579 <br><br>
4580 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
4581 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
4582 <br><br>
4583
4584
4585 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
4586 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
4587 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
4588 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
4589 tratamento inadequado ou ilícito.
4590 <br><br>
4591 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
4592 <br><br>
4593 - Controle restrito de acesso interno;
4594 <br><br>
4595 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
4596 <br><br>
4597 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
4598 acessados.
4599 <br><br>
4600 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
4601 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
4602 adequadamente às autoridades competentes e aos titulares afetados.
4603 <br><br>
4604
4605
4606 <b>7. Quais são os seus direitos?</b><br>
4607 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
4608 <br><br>
4609 <b>Direito X Explicação</b><br>
4610 1. Confirmação da existência de tratamento de seus dados pessoais<br>
4611 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
4612 <br><br>
4613 2. Acesso aos dados pessoais<br>
4614 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
4615 <br><br>
4616 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
4617 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
4618 estão incompletos, inexatos ou desatualizados.
4619 <br><br>
4620 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
4621 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
4622 desnecessários, excessivos ou tratados de forma incorreta.
4623 <br><br>
4624 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
4625 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
4626 por nós atendida.
4627 <br><br>
4628 <br><br>
4629 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
4630 <br><br>
4631 <b>5. Portabilidade dos dados pessoais</b><br>
4632 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
4633 violação da nossa propriedade intelectual.
4634 <br><br>
4635 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
4636 <br><br>
4637 <b>6. Não fornecimento ou revogação do consentimento</b><br>
4638 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
4639 tratamento de dados pessoais anteriormente.
4640 <br><br>
4641 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
4642 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
4643 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
4644 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
4645 (ANPD).
4646 <br><br>
4647 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
4648 <br><br>
4649 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
4650 <br><br>
4651
4652
4653 <b>8. Políticas de terceiros e atualizações desta política</b><br>
4654 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
4655 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
4656 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
4657 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
4658 <br><br>
4659 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
4660 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
4661 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
4662 <br><br>
4663
4664
4665 <b>9. Dúvidas?</b><br>
4666 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
4667 e-mail privacidade@sp.senac.br.
4668 <br><br>
4669 <b>Encarregado de Dados do Senac (DPO):</b><br>
4670 Fernando Sátiro Pereira<br>
4671 Gerente de Tecnologia da Informação do Senac São Paulo<br>
4672 Contato: privacidade@sp.senac.br
4673 <br><br>
4674 <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>
4675 <br><br>
4676
4677 </p>
4678
4679
4680 </div>
4681
4682 <div class="ssp-card-registro-interesse__check-item">
4683 <input type="checkbox" name="" value="" id="check-politica-privacidade">
4684 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
4685 </div>
4686
4687 <div class="text-center mt-5">
4688
4689 <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>
4690
4691 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
4692
4693 </div>
4694
4695 </div>
4696
4697 <#else>
4698
4699 <div class="ssp-card-registro-interesse emed">
4700
4701 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4702
4703 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4704
4705 <div class="emed-select-group">
4706
4707 <h3 class="ssp-card-registro-interesse__title-modal"></h3>
4708
4709 <div id="unidades-registro-interesse">
4710
4711 <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4>
4712
4713 <div id="select-unidades-registro-interesse">
4714 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4715 </div>
4716
4717 <div class="ssp-card-registro-interesse__add-mais">
4718 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4719
4720
4721
4722 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4723 </div>
4724
4725 </div>
4726
4727 </div>
4728
4729
4730 <div id="periodo-registro-interesse">
4731
4732 <p class="ssp-card-registro-interesse__title-section-itens">Período:</p>
4733
4734 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4735 <div class="ssp-card-registro-interesse__check-item">
4736 <input type="checkbox" name="" value="M" id="periodo-m">
4737 <label for="periodo-m">Manhã</label>
4738 </div>
4739
4740 <div class="ssp-card-registro-interesse__check-item">
4741 <input type="checkbox" name="" value="T" id="periodo-t">
4742 <label for="periodo-t">Tarde</label>
4743 </div>
4744
4745 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4746 <input type="checkbox" name="" value="" id="check-todos-periodos">
4747 <label for="check-todos-periodos">Todos</label>
4748 </div>
4749
4750 </div>
4751
4752 </div>
4753
4754 <div id="turmas-registro-interesse">
4755
4756 <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p>
4757
4758 <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">
4759
4760 <div class="ssp-card-registro-interesse__check-item">
4761 <input type="checkbox" name="" value="1" id="primeiro">
4762 <label for="primeiro">1º ano</label>
4763 </div>
4764
4765 <div class="ssp-card-registro-interesse__check-item">
4766 <input type="checkbox" name="" value="2" id="segundo">
4767 <label for="segundo">2º ano</label>
4768 </div>
4769
4770 <div class="ssp-card-registro-interesse__check-item">
4771 <input type="checkbox" name="" value="3" id="terceiro">
4772 <label for="terceiro">3º ano</label>
4773 </div>
4774
4775 </div>
4776
4777 </div>
4778
4779 <div id="msg-transferencia-emed">
4780
4781 <div class="transferencia-emed-title">
4782 <i class="fas fa-comment-exclamation"></i>
4783 <p>Quer se transferir de escola?</p>
4784 </div>
4785
4786 <div class="transferencia-emed-link">
4787 <a href="#">Fale direto com a unidade de interesse.</a>
4788 </div>
4789
4790 </div>
4791
4792 <div class="ssp-card-registro-interesse__card-politica">
4793
4794 <p class="ssp-card-registro-interesse__card-politica-title">
4795 <strong>Política de Privacidade do Senac São Paulo </strong>
4796 </p>
4797
4798 <p>Data de publicação 06/08/2024</p>
4799
4800 <p class="ssp-card-registro-interesse__card-politica-text">
4801 O Serviço Nacional de Aprendizagem Comercial - Senac,
4802 Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles
4803 com quem se relaciona.
4804 </p>
4805
4806 <p class="ssp-card-registro-interesse__card-politica-text">
4807
4808 A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são
4809 coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as
4810 medidas de segurança que adotamos; e quais os direitos que você tem.
4811 <br><br>
4812 É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis
4813 alterações no que diz respeito ao tratamento de seus dados pessoais.
4814 <br><br>
4815 Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento.
4816 <br><br>
4817 <b>1. Quem somos nós?</b><br>
4818 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º
4819 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
4820 fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é
4821 controlador dos dados pessoais.
4822 <br><br>
4823 <b>2. O que você precisa saber antes de ler esta política?</b>
4824 <br>
4825 Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF,
4826 e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados
4827 pessoais sensíveis, conforme definição a seguir:
4828 <br><br>
4829 Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica,
4830 convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou
4831 político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico.
4832 <br><br>
4833 Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se
4834 você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por
4835 nós, é ele quem vai ajudar.
4836 <br><br>
4837 Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento.
4838 <br><br>
4839 Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação,
4840 utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre
4841 outros.
4842 <br><br>
4843 Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição
4844 descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos
4845 referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada,
4846 candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi.
4847 <br><br>
4848 <b>3. Quais dados pessoais são tratados e por quê?</b>
4849 <br>
4850 O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para
4851 atendimento às finalidades ora descritas, conforme aplicável:
4852 <br><br>
4853 <b>Visitante / Interessado</b>
4854 <br>
4855 <b>Atividade: Navegação</b>
4856 <br>
4857 Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de
4858 navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem
4859 do tráfego.
4860 <br><br>
4861 Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o
4862 envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses;
4863 aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo
4864 ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais.
4865 <br><br>
4866 </p>
4867
4868 <hr>
4869
4870 <p class="ssp-card-registro-interesse__card-politica-text">
4871 <br>
4872 <b>Atividade: Cadastro</b><br>
4873 Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço,
4874 telefone.
4875 <br><br>
4876 Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do
4877 cadastro por duplo fator de autenticação.
4878 <br>
4879 </p>
4880
4881 <hr>
4882
4883 <p class="ssp-card-registro-interesse__card-politica-text">
4884 <br>
4885 <b>Atividade: Inscrição em eventos</b><br>
4886 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento
4887 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional.
4888 <br><br>
4889 Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo
4890 Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos.
4891 <br>
4892 </p>
4893
4894 <hr>
4895
4896 <p class="ssp-card-registro-interesse__card-politica-text">
4897 <br>
4898 <b>Atividade: Comunicação e Marketing</b><br>
4899 Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente
4900 em mensagens nos nossos canais de atendimento e redes sociais.
4901 <br><br>
4902 Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações;
4903 realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de
4904 anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses.
4905 <br>
4906 </p>
4907
4908 <hr>
4909
4910 <p class="ssp-card-registro-interesse__card-politica-text">
4911 <br>
4912 <b>Candidato a aluno</b><br>
4913 <b>Atividade: Processo seletivo</b><br>
4914 Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo,
4915 número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação
4916 sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e
4917 Lattes, dentre outros, conforme exigido a depender do processo seletivo.
4918 <br><br>
4919 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno
4920 menor de idade.
4921 <br><br>
4922 Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de
4923 viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios
4924 previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo
4925 seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação;
4926 responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre
4927 cursos, eventos e/ou benefícios de acordo com seus interesses.
4928 <br>
4929 </p>
4930
4931 <hr>
4932
4933 <p class="ssp-card-registro-interesse__card-politica-text">
4934 <br>
4935 <b>Atividade: Bolsas de estudo</b><br>
4936 Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso
4937 pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo
4938 renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome).
4939 <br><br>
4940 Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em
4941 particular do Programa Senac de Gratuidade (PSG).
4942 <br>
4943 </p>
4944
4945 <hr>
4946
4947 <p class="ssp-card-registro-interesse__card-politica-text">
4948 <br>
4949 <b>Aluno</b><br>
4950 <b>Atividade: Matrícula</b><br>
4951 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4952 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4953 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4954 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4955 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4956 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4957 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4958 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4959 <br><br>
4960 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4961 responsáveis legais do aluno se menor de idade.
4962 <br><br>
4963 Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente,
4964 a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu
4965 contrato conosco; e outras finalidades relacionadas.
4966 <br>
4967 </p>
4968
4969 <hr>
4970
4971 <p class="ssp-card-registro-interesse__card-politica-text">
4972 <br>
4973
4974 <b>Atividade: Jornada Acadêmica</b><br>
4975 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
4976 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
4977 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
4978 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
4979 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
4980 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
4981 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
4982 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
4983 <br><br>
4984 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
4985 responsáveis legais do aluno se menor de idade.
4986 <br><br>
4987 Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional
4988 do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico;
4989 responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por
4990 exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a
4991 realização de intercâmbio acadêmico.
4992 <br>
4993 </p>
4994
4995 <hr>
4996
4997 <p class="ssp-card-registro-interesse__card-politica-text">
4998 <br>
4999 <b>Atividade: Bolsas de estudo</b><br>
5000 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5001 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5002 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5003 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5004 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5005 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5006 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5007 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5008 <br><br>
5009 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5010 responsáveis legais do aluno se menor de idade.
5011 <br><br>
5012 Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o
5013 fornecimento de bolsas de estudo.
5014 <br>
5015 </p>
5016
5017 <hr>
5018
5019 <p class="ssp-card-registro-interesse__card-politica-text">
5020 <br>
5021
5022
5023 <b>Atividade: Benefícios</b><br>
5024 Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades
5025 de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome,
5026 nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF,
5027 número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência,
5028 resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de
5029 cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual
5030 trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros,
5031 constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP.
5032 <br><br>
5033 Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos
5034 responsáveis legais do aluno se menor de idade.
5035 <br><br>
5036 Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato
5037 educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente
5038 licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre
5039 outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus
5040 interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios,
5041 inclusive para aperfeiçoamento das nossas parcerias comerciais.
5042 <br>
5043 </p>
5044
5045 <hr>
5046
5047 <p class="ssp-card-registro-interesse__card-politica-text">
5048 <br>
5049 <b>Atividade: Procedimentos internos</b><br>
5050 Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços
5051 prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e
5052 presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos
5053 nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou
5054 cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o
5055 diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de
5056 pesquisa.
5057 <br>
5058 </p>
5059
5060 <hr>
5061
5062 <p class="ssp-card-registro-interesse__card-politica-text">
5063 <br>
5064
5065
5066 <b>Atividade: Obrigações legais e exercícios de direito</b><br>
5067 Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte
5068 escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse
5069 do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por
5070 exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem
5071 judicial, de autoridade competente ou de órgão fiscalizador.
5072 <br>
5073 </p>
5074
5075 <hr>
5076
5077 <p class="ssp-card-registro-interesse__card-politica-text">
5078 <br>
5079
5080 <b>Atividade: Pesquisas e desenvolvimento</b><br>
5081 Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar
5082 pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do
5083 programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o
5084 Senac SP está sujeito.
5085 <br>
5086 </p>
5087
5088 <hr>
5089
5090 <p class="ssp-card-registro-interesse__card-politica-text">
5091 <br>
5092
5093 <b>Atividade: Monitoramento</b><br>
5094 Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e
5095 aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por
5096 exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014.
5097 <br>
5098 </p>
5099
5100 <hr>
5101
5102 <p class="ssp-card-registro-interesse__card-politica-text">
5103 <br>
5104
5105 <b>Ex-aluno</b><br>
5106 <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br>
5107 Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico,
5108 fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP.
5109 <br><br>
5110 Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros
5111 escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da
5112 formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou
5113 informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir
5114 pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para
5115 conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de
5116 obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais,
5117 administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar
5118 com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de
5119 fornecimento de dados sobre você no caso de, por exemplo, concursos públicos.
5120 <br>
5121 </p>
5122
5123 <hr>
5124
5125 <p class="ssp-card-registro-interesse__card-politica-text">
5126 <br>
5127 <b>Terceiros relacionados a candidatos e/ou alunos</b><br>
5128 <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br>
5129 Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com
5130 aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login).
5131 <br><br>
5132 Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida
5133 escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de
5134 candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo
5135 Senac SP.
5136 <br>
5137 </p>
5138
5139 <hr>
5140
5141 <p class="ssp-card-registro-interesse__card-politica-text">
5142 <br><br>
5143 <b>Usuário Wi-Fi</b><br>
5144 <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br>
5145 Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a
5146 navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo.
5147 <br><br>
5148 Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e
5149 outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar
5150 desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou
5151 outras informações relevantes; proteger você, terceiros e o Senac.
5152 <br><br>
5153
5154
5155 Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você
5156 ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas
5157 de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa
5158 responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas.
5159 <br><br>
5160 Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de
5161 obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo
5162 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
5163 responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da
5164 autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão.
5165 <br><br>
5166 O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre
5167 que entender haver base legal para o tratamento posterior nos termos da LGPD.
5168 <br><br>
5169
5170
5171 <b>4. Com quem compartilhamos os seus dados pessoais?</b><br>
5172 Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional
5173 (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de
5174 relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros
5175 comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de
5176 crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser
5177 compartilhados para finalidades legítimas da seguinte maneira:
5178 <br><br>
5179 - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu
5180 relacionamento e contrato de prestação de serviços conosco;
5181 <br><br>
5182 - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada,
5183 conforme aplicável;
5184 <br><br>
5185 - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou
5186 administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos
5187 legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou
5188 concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em
5189 contratos, órgãos judiciais e governamentais;
5190 <br><br>
5191 - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou
5192 ameaça a direito;
5193 <br><br>
5194 - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros;
5195 <br><br>
5196 - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou
5197 em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou
5198 comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o
5199 atingimento da aludida finalidade;
5200 <br><br>
5201 - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer
5202 consequência adversa de sua decisão que negar ou revogar o seu consentimento.
5203 <br><br>
5204
5205
5206 Informações agregadas e anonimizadas poderão ser livremente compartilhadas.
5207 <br><br>
5208 Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros
5209 que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos.
5210 <br><br>
5211 Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus
5212 dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação
5213 brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável.
5214 <br><br>
5215 Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de
5216 requisição específica, conforme indicado no tópico que trata sobre os seus direitos.
5217 <br><br>
5218
5219
5220 <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br>
5221 Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram
5222 coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver
5223 disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais.
5224 <br><br>
5225 Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos
5226 seguintes critérios:
5227 <br><br>
5228 - Existência de uma obrigação legal ou contratual de reter os dados pessoais;
5229 <br><br>
5230 - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos
5231 judiciais, administrativos ou arbitrais;
5232 <br><br>
5233 - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e
5234 educacionais.
5235 <br><br>
5236 Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente,
5237 para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal.
5238 <br><br>
5239
5240
5241 <b>6. Como mantemos seus dados pessoais seguros?</b><br>
5242 Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços
5243 tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados
5244 e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de
5245 tratamento inadequado ou ilícito.
5246 <br><br>
5247 Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como:
5248 <br><br>
5249 - Controle restrito de acesso interno;
5250 <br><br>
5251 - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves;
5252 <br><br>
5253 - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados
5254 acessados.
5255 <br><br>
5256 Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de
5257 disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas
5258 adequadamente às autoridades competentes e aos titulares afetados.
5259 <br><br>
5260
5261
5262 <b>7. Quais são os seus direitos?</b><br>
5263 Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais:
5264 <br><br>
5265 <b>Direito X Explicação</b><br>
5266 1. Confirmação da existência de tratamento de seus dados pessoais<br>
5267 Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais.
5268 <br><br>
5269 2. Acesso aos dados pessoais<br>
5270 Esse direito permite que você solicite uma cópia dos seus dados pessoais.
5271 <br><br>
5272 3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br>
5273 Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que
5274 estão incompletos, inexatos ou desatualizados.
5275 <br><br>
5276 4. Anonimização, bloqueio ou eliminação de dados pessoais<br>
5277 Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se
5278 desnecessários, excessivos ou tratados de forma incorreta.
5279 <br><br>
5280 É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que
5281 ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser
5282 por nós atendida.
5283 <br><br>
5284 <br><br>
5285 O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido.
5286 <br><br>
5287 <b>5. Portabilidade dos dados pessoais</b><br>
5288 Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja
5289 violação da nossa propriedade intelectual.
5290 <br><br>
5291 A requisição de exercício desse direito não implica na eliminação de dados pessoais.
5292 <br><br>
5293 <b>6. Não fornecimento ou revogação do consentimento</b><br>
5294 Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer
5295 tratamento de dados pessoais anteriormente.
5296 <br><br>
5297 Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as
5298 quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da
5299 legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e;
5300 (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais
5301 (ANPD).
5302 <br><br>
5303 Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui.
5304 <br><br>
5305 Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura.
5306 <br><br>
5307
5308
5309 <b>8. Políticas de terceiros e atualizações desta política</b><br>
5310 Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a
5311 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
5312 terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade,
5313 entrando diretamente em contato com o terceiro responsável em caso de dúvidas.
5314 <br><br>
5315 Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material
5316 significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do
5317 tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações.
5318 <br><br>
5319
5320
5321 <b>9. Dúvidas?</b><br>
5322 Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo
5323 e-mail privacidade@sp.senac.br.
5324 <br><br>
5325 <b>Encarregado de Dados do Senac (DPO):</b><br>
5326 Fernando Sátiro Pereira<br>
5327 Gerente de Tecnologia da Informação do Senac São Paulo<br>
5328 Contato: privacidade@sp.senac.br
5329 <br><br>
5330 <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>
5331 <br><br>
5332
5333 </p>
5334
5335 </div>
5336
5337 <div class="ssp-card-registro-interesse__check-item">
5338 <input type="checkbox" name="" value="" id="check-politica-privacidade">
5339 <label for="check-politica-privacidade">Aceito a Política de Privacidade</label>
5340 </div>
5341
5342 <div class="text-center mt-5">
5343
5344 <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>
5345
5346 <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p>
5347
5348 </div>
5349
5350 </div>
5351
5352 </#if>
5353 </section>
5354
5355 <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none">
5356
5357 <div class="ssp-card-msg-sucesso">
5358
5359 <div class="ssp-card-msg-sucesso__content">
5360 <i class="fas fa-exclamation-circle"></i>
5361 <p>Obrigado por registrar seu interesse!</p>
5362 <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p>
5363 </div>
5364
5365 <div>
5366 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a>
5367 </div>
5368
5369 </div>
5370
5371 </section>
5372
5373 <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none">
5374
5375 <div class="ssp-card-msg-erro">
5376
5377 <div class="ssp-card-msg-sucesso__content">
5378 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
5379 <p>Houve um erro ao registrar seu interesse!</p>
5380 <p>Por favor, tente novamente!</p>
5381 </div>
5382
5383 <div>
5384 <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a>
5385 </div>
5386
5387 </div>
5388
5389 </section>
5390
5391 <!-- Aviso para curso de aprendizagem -->
5392
5393 <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;">
5394
5395 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5396
5397 <div class="ssp-bolsa-formulario__card-aviso-texto">
5398 <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p>
5399 </div>
5400
5401 </div>
5402
5403 <!-- modal form de aprendizagem -->
5404
5405 <#if isAprendizagem>
5406
5407 <#assign formId = 48097883 />
5408 <!-- formInstanceId é variável de acordo com o ID do formulário -->
5409 <#assign formPreferences = {"displayDepth": "1", "portletSetupPortletDecoratorId": "barebone", "formInstanceId": "formId"}/>
5410
5411 <section data-lfr-background-image-id="bg-programe-form" class="ssp-section ssp-section-lg-bottom" data-modal="modal">
5412
5413 <div class="container ssp_ct_form_programe">
5414
5415 <button type="button" data-modal="close-form-modal">
5416 fechar
5417 <i class="fas fa-times"></i>
5418 </button>
5419
5420 <@liferay_portlet["runtime"]
5421 portletName="com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet"
5422 defaultPreferences=freeMarkerPortletPreferences.getPreferences(formPreferences)
5423 />
5424
5425 </div>
5426
5427 </section>
5428
5429 </#if>
5430
5431 <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">
5432 <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>
5433 <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>
5434 </div>
5435
5436 </div>
5437
5438
5439 <!--modal forma pagto extensao-->
5440 <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal">
5441 <div class="modal-extensao_content">
5442 <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i>
5443 <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1>
5444 <div class="row">
5445
5446 <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none">
5447 Preço Padrão
5448 <i class="fas fa-chevron-right custom-icon-right"></i>
5449 </button> -->
5450
5451 <div class="col-lg-6 col-sm-12 col-xs-12">
5452
5453 <h2 class="modal-extensao_subtitle">Investimento</h2>
5454
5455 <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span>
5456 <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span>
5457 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5458 <i class="fas fa-barcode" aria-hidden="true"></i>
5459 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5460 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>
5461 <span class="modal-extensao_txtParcela">sem juros</span>
5462 </div>
5463 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5464 <i class="far fa-credit-card" aria-hidden="true"></i>
5465 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5466 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>
5467 <span class="modal-extensao_txtParcela">sem juros</span>
5468 </div>
5469 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5470 </div>
5471
5472 <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> -->
5473
5474 <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none">
5475 Preço para Contribuintes,<br>alunos e ex-alunos*
5476 <i class="fas fa-chevron-right custom-icon-right"></i>
5477 </button> -->
5478
5479 <div class="col-lg-6 col-sm-12 col-xs-12">
5480 <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2>
5481 <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span>
5482 <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span>
5483 <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3">
5484 <i class="fas fa-barcode" aria-hidden="true"></i>
5485 <span class="modal-extensao_txtPag">Boleto Bancário</span>
5486 <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>
5487 <span class="modal-extensao_txtParcela">sem juros</span>
5488 </div>
5489 <div class="modal-extensao_ctcard pt-2 pb-2 mb-3">
5490 <i class="far fa-credit-card" aria-hidden="true"></i>
5491 <span class="modal-extensao_txtPag">Cartão de Crédito</span>
5492 <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>
5493 <span class="modal-extensao_txtParcela">sem juros</span>
5494 </div>
5495 <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p>
5496 </div>
5497 <div class="col-lg-6 col-sm-12 col-xs-12">
5498 <a target="_blank" href="#">
5499 <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button>
5500 </a>
5501 </div>
5502 <div class="col-lg-6 col-sm-12 col-xs-12">
5503 <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button>
5504 </div>
5505 </div>
5506 </div>
5507
5508 <div class="modal-extensao_content modal-pergunta-aluno-ext d-none">
5509
5510 <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i>
5511 <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1>
5512 <div class="row">
5513 <div class="col-6 text-right">
5514
5515 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button>
5516
5517 </div>
5518 <div class="col-6 text-left">
5519
5520 <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button>
5521
5522 </div>
5523 </div>
5524 <div class="row d-none msg-alunoSim">
5525 <div class="col-12 text-center mt-10">
5526 <i class="fas fa-check-circle modal-extensao-ico-check"></i>
5527 <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2>
5528 <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p>
5529 <p class="mb-0">
5530 <a target="_blank" href="#">
5531 <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button>
5532 </a>
5533 </p>
5534 <p class="mt-0">
5535 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5536 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5537 </a>
5538 </p>
5539 </div>
5540 </div>
5541 <div class="row d-none msg-alunoNao">
5542 <div class="col-12 text-center mt-10">
5543 <i class="fas fa-percentage modal-extensao-ico-percent"></i>
5544 <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2>
5545 <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>
5546 <p class="mb-0">
5547 <a target="_blank" href="#">
5548 <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button>
5549 </a>
5550 </p>
5551 <p class="mt-0">
5552 <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria">
5553 <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button>
5554 </a>
5555 </p>
5556 </div>
5557 </div>
5558 </div>
5559 </section>
5560
5561
5562 <!-- Modal Descontos e Parcelamento EMED -->
5563 <div id="modalPagtoEmed" class="ssp-modal">
5564
5565 <div class="ssp-card-modal-forma-pagamento">
5566
5567 <div class="ssp-card-modal-forma-pagamento__header">
5568 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6>
5569 <div class="ssp-modal-emed-btfechar">
5570 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i>
5571 <span>Fechar</span>
5572 </div>
5573 </div>
5574
5575 <div class="ssp-card-modal-forma-pagamento__body">
5576
5577 <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>
5578
5579 <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>
5580 <span class="ssp-card-modal-emed-ano">/ano</span></p>
5581
5582 <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>
5583 <div class="ssp-card-modal-emed-lineou"><span>ou</span></div>
5584
5585 <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>
5586
5587 <div class="ssp-card-modal-forma-pagamento__tipos">
5588
5589 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5590 <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i>
5591 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5592 <p><strong>Cartão de Crédito +</strong></p>
5593 <p><strong>Boleto Bancário</strong></p>
5594 <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> -->
5595 <p>1ª parcela no cartão</p>
5596 <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>
5597 </div>
5598 </div>
5599
5600
5601 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" >
5602 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
5603 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5604 <p><strong>Cartão de Crédito</strong></p>
5605 <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p>
5606 <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p>
5607 </div>
5608 </div>
5609
5610 <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">
5611 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
5612 <div class="ssp-card-modal-forma-pagamento__info-cartao">
5613 <p><strong>Boleto Bancário</strong></p>
5614 <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p>
5615 </div>
5616 </div>
5617
5618 <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>
5619
5620 <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>
5621 - Estuda ou estudou no Senac<br>
5622 - É dependente de quem trabalha em empresa contribuinte do Senac<br>
5623 - Estuda ou estudou na rede pública de ensino
5624 </p>
5625
5626 </div>
5627
5628 </div>
5629
5630
5631 <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>
5632
5633
5634
5635 </div>
5636 </div>
5637
5638 <#if isEMED>
5639 <div id="modalAntesCompraEmed" class="ssp-modal">
5640 <div class="ssp-modal-local-realizacao">
5641 <div class="ssp-modal-local-realizacao__title-content">
5642 <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6>
5643 <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i>
5644 </div>
5645 <div class="ssp-modal-local-realizacao__texto">
5646 <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none">
5647
5648 Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/>
5649
5650 </p>
5651 <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none">
5652
5653 Saiba como funciona a inscrição para a lista de espera:<br/><br/>
5654 - É válida somente para a <b>compra do curso</b><br/>
5655 - Não garante vaga para o estudante<br/>
5656 - É válida apenas para o curso, horário e escola selecionados<br/>
5657 - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/>
5658
5659 </p>
5660 <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none">
5661
5662 - 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/>
5663 - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/>
5664 - 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
5665
5666 </p>
5667 <div class="btn ssp-modal-local-realizacao__btn-content">
5668 <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button>
5669 <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>
5670 </div>
5671 </div>
5672 </div>
5673 </div>
5674
5675 </#if>
5676
5677
5678
5679
5680 <script>
5681 let showedFilters = false
5682 var groupId = themeDisplay.getScopeGroupId();
5683
5684 var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}';
5685
5686 var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId
5687
5688 var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}';
5689 var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}';
5690 var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}';
5691 var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}';
5692 var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/';
5693 var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/';
5694 var cntSelectUnidades = 1;
5695 var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html';
5696 var urlGetServerT = '/o/senac-content-services/getServerTime';
5697 var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}';
5698 var todayG = '';
5699 var codigoFTCursoAprendizagem = 18984;
5700 var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId();
5701 var isAoVivo = 0;
5702 var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo';
5703 var ofertaUnidadeMap = new Map();
5704 var ultimaUnidade = 0;
5705 var regIndex = new RegExp('\{index\}', 'g');
5706 var linkBotaoCompra = 'http://www.sp.senac.br/login/Login?destino=/ecommerceFrontEnd/?vcw_unidade={codigoUnidade}&vcw_evento={codigoOferta}';
5707 var carregouUltimaOferta = false;
5708 var ofertasMap = new Map();
5709 var codUnidadeSenacAoVivo = '108';
5710 var ofertasComBolsa = false;
5711
5712 //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546
5713 function getServiceEnvironmentHost(){
5714 if(!isAmbienteTeste())
5715 return window.location.origin
5716 else
5717 return 'https://gesportal.sp.senac.br'
5718 }
5719
5720 var hostBolsa = getServiceEnvironmentHost()
5721
5722 // Montar object push - google tag manager - 1
5723 let itensEcommerce = null;
5724 let ofertaSelecionada = null;
5725
5726 const today = new Date;
5727
5728 //categoryId -> cod unidade
5729 var mapUnidadesIds = new Map();
5730 var objsTela = {
5731 unidades: [],
5732 unidadesRegistroInteresse: [],
5733 categoriesIds:[],
5734 ofertasAoVivoTodasUnidades: [],
5735 primeiroChange: true
5736 };
5737 var startOfertaParam = 0;
5738 var endOfertaParam = 25;
5739
5740 var ehCursoTrampolim = false;
5741
5742 const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD';
5743
5744 var textoFormatoHibrido = "";
5745 var temTextoParaFormatoHibrido = false;
5746
5747 //Validar se o campo textoFormatoHibrido existe e se não está vazio
5748 if(isHibrido){
5749 textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val();
5750 if(typeof textoFormatoHibrido !== 'undefined'){
5751 if (textoFormatoHibrido.trim() !== '' ) {
5752 temTextoParaFormatoHibrido = true;
5753 textoFormatoHibrido += '<br>';
5754 }
5755 }
5756 }
5757
5758 const HOST = window.location.origin;
5759 const URLGeral = window.location.href;
5760
5761 //EMED
5762 const anoTurmaEmed = '2025';
5763
5764 const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); }
5765
5766 const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1);
5767
5768 const statusEmed = Object.freeze({
5769 NAO_ENCONTRADA: 0,
5770 INSCRICAO: 1,
5771 ESPERA: 2,
5772 ESGOTADO: 3
5773 });
5774
5775 let unidadesToURL = []
5776
5777 const localLivreOnline = function(textoLocal){
5778 textoLocal = textoLocal || ''
5779 textoLocal = textoLocal.replaceAll('online', 'on-line')
5780
5781 const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams';
5782
5783 return textoLocal.toUpperCase().includes(textoOnline.toUpperCase());
5784 }
5785
5786 const linkBolsa = function(oferta){
5787
5788 let tiposCurso = new Map();
5789 tiposCurso.set('livre', 'L');
5790 tiposCurso.set('tecnico', 'T');
5791 tiposCurso.set('aprendizagem', 'A');
5792 let letraTipoCurso = tiposCurso.get($('[name="tipoCurso"]').val()) || '';
5793
5794 // verifica o campo destinoBolsa da oferta - 9546
5795 var destinoBolsa = ""
5796 if(oferta.destinoBolsa){
5797 destinoBolsa = parseInt(oferta.destinoBolsa,10)
5798 }
5799
5800 return hostBolsa+'/login/Login?origem=bolsas&destino=/jsp/default.jsp?template=2464.dwt&testeira=1540&idcourse='+
5801 $('[name="codigoFT"]').val()+
5802 '&cod_evento='+
5803 oferta.codigoOferta+
5804 '&cod_u='+
5805 codigoUnidade+
5806 '&nvg='+
5807 oferta.qtdeTotalVagasPSG+
5808 '&type='+
5809 letraTipoCurso+
5810 '&sel_unit=&ft=y'+
5811 (destinoBolsa ? '&destino='+destinoBolsa : '');
5812 }
5813
5814
5815 $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){
5816
5817 var classAtivo = 'btn--filtro-ativo';
5818
5819 if(!$(this).hasClass(classAtivo)){
5820
5821 $(this).siblings().removeClass(classAtivo);
5822
5823 $(this).addClass(classAtivo);
5824
5825 const $cardTransferencias = $('.card-transferencias-emed');
5826
5827 if($(this).val() == '0'){
5828 hideCardSemTurmas(true);
5829 $('.ssp-slick-ofertas-emed').empty();
5830 if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none');
5831 $('.prev-mobile, .next-mobile').addClass('d-none');
5832 $cardTransferencias.removeClass('d-none');
5833 } else{
5834 if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none');
5835 $('.ssp-slick-ofertas-emed').removeClass('d-none');
5836 populaOfertas(objsTela.ofertas);
5837 }
5838
5839 }
5840
5841 });
5842
5843 //Cronometro
5844 var hidden, visibilityChange;
5845 var restartTimeout = null;
5846 var interval01, interval15;
5847
5848 if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
5849 hidden = "hidden";
5850 visibilityChange = "visibilitychange";
5851 } else if (typeof document.msHidden !== "undefined") {
5852 hidden = "msHidden";
5853 visibilityChange = "msvisibilitychange";
5854 } else if (typeof document.webkitHidden !== "undefined") {
5855 hidden = "webkitHidden";
5856 visibilityChange = "webkitvisibilitychange";
5857 }
5858
5859 // Verifica suporte a Visibility API
5860 if (typeof document.addEventListener === "undefined" || hidden === undefined) {
5861 console.log("Navegador incompativel com page visibility api");
5862 } else {
5863 // Evento para quando a visibilidade da pagina mudar
5864 document.addEventListener(visibilityChange, handleVisibilityChange, false);
5865 }
5866
5867 $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() {
5868
5869 $(this).toggleClass("active").next().slideToggle();
5870
5871 $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300);
5872
5873 $(this).siblings().removeClass("active");
5874 });
5875
5876 function loadUnidadesRegistroInteresse(urlCursoInfo) {
5877 if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length)
5878 return
5879
5880 let urlUnidades = new URL(window.location.origin + urlCursoInfo)
5881 let paramsUnidades = new URLSearchParams(urlUnidades.search)
5882 paramsUnidades.delete('inscricaoAberta')
5883 paramsUnidades.delete('bolsaAberta')
5884 paramsUnidades.delete('buscarUnidadesComOferta')
5885 urlUnidades.search = '?' + paramsUnidades.toString()
5886 urlUnidades = urlUnidades.href
5887
5888 $.ajax({
5889 url: urlUnidades,
5890 method:'get',
5891 async: false
5892 }).done(function(data){
5893 if(data.length > 0){
5894 const cursoInfo = JSON.parse(data);
5895 const unidadesOfertantes = cursoInfo.unidadesOfertantes;
5896
5897 $.each(unidadesOfertantes, function(k,item){
5898 var unidade = {};
5899 unidade['categoryId'] = item['categoryId'];
5900 unidade['codigoUnidade'] = item['codigoUnidade'];
5901 unidade['nome'] = item['nomeUnidade'];
5902 unidade['enderecoUnidade'] =item['enderecoUnidade'];
5903 unidade['numero'] =item['numEnderecoUnidade'];
5904 unidade['complemento'] = item['complementoEnderecoUnidade'];
5905 unidade['bairro'] = item['bairroUnidade'];
5906 unidade['googlemapsUnidade'] = item['googlemapsUnidade'];
5907 unidade['friendlyURL'] = item['friendlyURL'];
5908 unidade['selecionado'] = false;
5909 unidade['selectSelecionado'] = "";
5910 unidade['ofertas'] = [];
5911
5912 if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length)
5913 objsTela.unidadesRegistroInteresse.push(unidade)
5914 });
5915 }
5916 });
5917 }
5918
5919 function loadUnidades(showOptions, unidadeValue){
5920 //Busca as unidades do curso
5921 let buscarUnidadesComOferta = false;
5922
5923 if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')))
5924 buscarUnidadesComOferta = true;
5925
5926 const urlCursoInfo = urlSearchCursoInfo
5927 .replace('\{groupId\}', groupId)
5928 .replace('\{cursosInfo\}', $('[name="articleId"]').val())
5929 .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked'))
5930 .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked'))
5931 .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta);
5932
5933 loadUnidadesRegistroInteresse(urlCursoInfo)
5934
5935 $.ajax({
5936 url:urlCursoInfo,
5937 method:'get',
5938 async: false,
5939 beforeSend: function () {
5940 loading('.oferta-slick-area');
5941 }
5942 }).done(
5943 function(data){
5944
5945 if(data.length > 0){
5946
5947 const cursoInfo = JSON.parse(data);
5948
5949 const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes;
5950
5951 if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0))
5952 $('.ssp-container-selecione-unidade').removeClass('d-none')
5953
5954 objsTela.unidades = []
5955 mapUnidadesIds = new Map();
5956
5957 $.each(unidades, function(k,item){
5958
5959 var unidade = cloneObj(item)
5960 unidade['nome'] = item['nomeUnidade'];
5961 unidade['numero'] =item['numEnderecoUnidade'];
5962 unidade['complemento'] = item['complementoEnderecoUnidade'];
5963 unidade['bairro'] = item['bairroUnidade'];
5964 unidade['ofertas'] = [];
5965
5966 objsTela.unidades.push(unidade);
5967
5968 mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']);
5969
5970 objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade))
5971 });
5972
5973
5974 populaSelectUnidades(undefined, showOptions, unidadeValue);
5975
5976 }
5977 });
5978
5979 }
5980
5981function getOfertaObjectFromJson(ofertaJSON,index){
5982
5983
5984 var oferta = {};
5985 var xml = $($.parseXML(ofertaJSON.content));
5986 oferta['ordenar'] = paramOrdem(xml);
5987 oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim();
5988 var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-');
5989 var dataFim =xml.find('[name="dataFimOferta"]').text().split('-');
5990 oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim();
5991 oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim();
5992 oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text();
5993 oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim();
5994 var dias = [];
5995 oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim();
5996 xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){
5997 dias.push($(dia).text());
5998 });
5999 oferta['diasDaSemanaOferta'] = dias;
6000 oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim();
6001 oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim();
6002 oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim();
6003 oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim();
6004
6005 oferta['textoCartoesAceitos'] = pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6006 oferta['numParcelaCartoes'] = pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6007 oferta['precoParcelaCartoes'] = pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6008 oferta['numParcelaBoleto'] = pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6009 oferta['precoParcelaBoleto'] = pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6010
6011 oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim();
6012 oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim();
6013 oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim();
6014 oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim();
6015 oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim();
6016 oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim();
6017 oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim();
6018 oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim();
6019 oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim();
6020 oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim();
6021 oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim();
6022 oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim();
6023 oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim();
6024 oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim();
6025 oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim();
6026 oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim();
6027 oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim();
6028 oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim();
6029 oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim();
6030 oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim();
6031 oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim();
6032 oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim();
6033 oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim();
6034 oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim();
6035 oferta['etapa'] = xml.find('[name="etapa"]').text().trim();
6036 oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();
6037 //adicao do destinoBolsa na oferta - 9546 - 11/07/2022
6038 oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim();
6039
6040 if(isEmed){
6041 //EMED utilizar data matricula para bolsa
6042 oferta['dataAberturaBolsaOferta'] = oferta['dataAberturaMatricula'];
6043
6044 }
6045
6046 return oferta;
6047 }
6048
6049 const getStatusEmed = (oferta) => {
6050
6051 const urlStatusEsperaEmed = () => {
6052 let url = (isAmbienteTeste()) ?
6053 'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/'
6054 : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/';
6055
6056 return url + oferta.codigoOferta;
6057 }
6058
6059 const callTl = async () => {
6060 if(getCookie('tl') == null){
6061 return await $.ajax({
6062 url: '/o/senac-content-services/geraTokenServicosSenac',
6063 method: 'GET'
6064 });
6065 }
6066 return getCookie('tl');
6067 }
6068
6069 const callListaEspera = async () => {
6070 var tl = '';
6071 try{
6072 tl = await callTl();
6073 if(getCookie('tl') == null){
6074 tl = JSON.parse(tl).token;
6075 writeCookie('tl', tl, 6, '');
6076 }
6077 }catch(err){
6078 console.error(err);
6079 return {};
6080 }
6081
6082 return $.ajax({
6083 url: urlStatusEsperaEmed(),
6084 method: 'GET',
6085 beforeSend: function (xhr) {
6086 xhr.setRequestHeader("Authorization", tl);
6087 }
6088 })
6089 }
6090
6091 return new Promise(async function (resolve, reject) {
6092 const resp = await callListaEspera();
6093 if(typeof resp !== 'object') resp = JSON.parse(resp);
6094 let status = resp.STATUS;
6095 resolve(status);
6096 });
6097
6098 }
6099
6100 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){
6101
6102 if(categoryIds && categoryIds.length) {
6103 var params = new URLSearchParams();
6104 params.set('codigoFTOferta',codigoFT)
6105 params.set('dataEfetivaOferta',dataEfetivaOferta)
6106 params.set('categoryIds',categoryIds)
6107 params.set('start',startOfertaParam)
6108 params.set('end',endOfertaParam)
6109 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6110 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6111 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6112
6113 if($('#chkBolsa').prop('checked')){
6114 params.set('considerarDataBolsaFutura', true)
6115 }
6116 const url = urlSearchOferta + '?' + params.toString()
6117
6118 $.ajax({
6119 url:url,
6120 method:'get',
6121 dataType:'json',
6122 async: false
6123 }).done(
6124 function(data){
6125
6126 if(data.length > 0){
6127 $('#ssp-alternadores').show()
6128 showedFilters = true
6129
6130 objsTela.ofertasAoVivoTodasUnidades = []
6131
6132 data.forEach(function(ofertaJSON,index){
6133
6134 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6135
6136 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
6137 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
6138 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
6139
6140 });
6141 } else {
6142 loadAlternadores(data)
6143 }
6144
6145 populaOfertas(objsTela.ofertasAoVivoTodasUnidades);
6146 addEventBolsa()
6147 }
6148 ).fail(function(e) {
6149 console.error(e)
6150 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []);
6151 })
6152 } else {
6153 loadAlternadores([])
6154 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = [])
6155 }
6156
6157 if(isAoVivo) {
6158 if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length)
6159 hideCardSemTurmas(true)
6160 else
6161 hideCardSemTurmas(false)
6162 }
6163 }
6164
6165 function mudouToggleOferta(ofertas) {
6166 const oferta = ofertas && ofertas[0]
6167 if(!oferta)
6168 return true
6169
6170 const selecaoInscricao = $('#chkInscricao').prop('checked')
6171 const selecaoBolsa = $('#chkBolsa').prop('checked')
6172
6173 return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa
6174 }
6175
6176 function loadAlternadores(ofertas) {
6177 if(showedFilters) {
6178 $('#ssp-alternadores').show()
6179 return
6180 }
6181
6182 if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) {
6183 if(isAoVivo) {
6184 if(ofertas && ofertas.length)
6185 $('#ssp-alternadores').show()
6186 else {
6187 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6188 $('#ssp-alternadores').hide()
6189 else
6190 $('#ssp-alternadores').show()
6191 }
6192 } else {
6193 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6194 $('#ssp-alternadores').hide()
6195 else
6196 $('#ssp-alternadores').show()
6197 }
6198 } else
6199 $('#ssp-alternadores').show()
6200
6201 showedFilters = showedFilters || $('#ssp-alternadores').is(":visible")
6202 }
6203
6204 function getOfertas(codigoFT, dataEfetivaOferta, categoryId){
6205
6206 var indiceUnidade = -1;
6207 const selecaoInscricao = $('#chkInscricao').prop('checked')
6208 const selecaoBolsa = $('#chkBolsa').prop('checked')
6209
6210 for(var i = 0; i < objsTela.unidades.length; i++)
6211 if(objsTela.unidades[i].categoryId == categoryId)
6212 indiceUnidade = i;
6213
6214 ultimaUnidade = indiceUnidade;
6215
6216 if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){
6217 objsTela.unidades[indiceUnidade]['ofertas'] = []
6218
6219 var params = new URLSearchParams();
6220 params.set('codigoFTOferta',codigoFT)
6221 params.set('dataEfetivaOferta',dataEfetivaOferta)
6222 params.set('categoryIds',categoryId)
6223 params.set('start',startOfertaParam)
6224 params.set('end',endOfertaParam)
6225 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6226 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6227 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6228
6229 if($('#chkBolsa').prop('checked')){
6230 params.set('considerarDataBolsaFutura', true)
6231 }
6232
6233 const url = urlSearchOferta + '?' + params.toString()
6234
6235 $.ajax({
6236 url:url,
6237 method:'get',
6238 dataType:'json',
6239 async: false
6240 }).done(
6241 function(data){
6242
6243 if(data.length > 0){
6244 $('#ssp-alternadores').show()
6245 showedFilters = true
6246
6247 $('.ssp-container-selecione-unidade').show();
6248
6249 data.forEach(function(ofertaJSON,index){
6250
6251 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6252
6253 //Preenche as ofertas da unidade
6254 objsTela.unidades[indiceUnidade]['ofertas'].push(oferta);
6255 objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => {
6256 o.selecaoInscricao = selecaoInscricao
6257 o.selecaoBolsa = selecaoBolsa
6258 })
6259
6260 });
6261 } else {
6262 loadAlternadores()
6263 }
6264 objsTela.categoriesIds.push(categoryId);
6265 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6266 addEventBolsa()
6267 }
6268 )
6269
6270 //Se estiver na cache, valida as ofertas
6271 }else{
6272
6273 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6274
6275 }
6276 }
6277
6278 function populaSelectUnidades(unidades, showOptions, unidadeValue){
6279 var unidadePreSelecionada = false;
6280 var categoryIdUnidadePreSelecionada = '';
6281
6282 //Oredenacao
6283 objsTela.unidades.sort(function (a, b) {
6284 return ordenar(a, b, 'nome');
6285 });
6286
6287 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
6288 return ordenar(a, b, 'nome');
6289 });
6290
6291 //console.log(objsTela.unidades);
6292
6293 $.each(objsTela.unidades, function(k,item){
6294
6295 if(getURLData().includes('/'+item.friendlyURL+'/')){
6296 unidadePreSelecionada= true;
6297 categoryIdUnidadePreSelecionada = item['categoryId'];
6298 }
6299 });
6300
6301 //console.log('Unidade Pre '+unidadePreSelecionada);
6302
6303 if(objsTela.unidades.length == 0){
6304 if(!showOptions)
6305 $('.ssp-container-selecione-unidade').addClass('d-none');
6306 $('.oferta-slick-area').empty();
6307 $('.prev-mobile').addClass('d-none');
6308 $('.next-mobile').addClass('d-none');
6309 //EMED remove msg registro interesse
6310 //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
6311 }
6312
6313 if(isAoVivo){
6314
6315 const codigoFT = $('[name="codigoFT"]').val();
6316 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6317
6318 var unidadesCategoryAll = '';
6319
6320 $.each(objsTela.unidades, function(k,unidade){
6321 unidadesCategoryAll += unidade['categoryId']+',';
6322 });
6323
6324 //tirando ultima virgula
6325 unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1);
6326
6327 getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);
6328
6329 }else{
6330 $('#unidades-ofertas').empty()
6331
6332 if(objsTela.unidades && objsTela.unidades.length){
6333 if(isEmed)
6334 $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>'))
6335 else
6336 $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>'))
6337
6338 } else
6339 $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>'))
6340
6341 let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades)
6342
6343 //Dispara o evento para primeira unidade ou pela friendlyURl da unidade
6344 if(unidadeValue) {
6345 $('#unidades-ofertas').val(unidadeValue);
6346 $('#unidades-ofertas').change();
6347 } else if(unidadeFounded){
6348 $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']);
6349 $('#unidades-ofertas').change();
6350 } else if(!unidadePreSelecionada) {
6351 $('#unidades-ofertas').change();
6352 }
6353
6354 $('.ssp-card-registro-interesse__select.unidades').empty()
6355 $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>')
6356 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
6357
6358 $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
6359 });
6360 }
6361
6362 }
6363
6364
6365 function mudarUnidade(ev){
6366 startOfertaParam = 0;
6367 endOfertaParam = 25;
6368 carregouUltimaOferta = false;
6369
6370 var elem = $(ev.target);
6371 var unidades = objsTela.unidades;
6372
6373 //verifica se selecionou alguma unidade
6374 if(!elem.val()){
6375 $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none');
6376
6377 if(isEmed)
6378 $('#ssp-section-response').addClass('d-none')
6379
6380 hideCardSemTurmas($('#unidades-ofertas option').length > 1)
6381
6382 elem.val('')
6383 habilitarRegistroInteresse(false)
6384 //Zera variável que controla existência de ofertas com bolsa
6385 ofertasComBolsa = false;
6386 controlaPaginaBolsa();
6387
6388 return;
6389 }
6390
6391 $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none');
6392 hideCardSemTurmas(true)
6393 if(isEmed){
6394 $('.ssp-ofertas-emed__section').removeClass('d-none');
6395 $('#ssp-section-response').removeClass('d-none')
6396 $('.ssp-card-oferta-curso__section-title').addClass('d-none');
6397 $('.prev-mobile, .next-mobile').addClass('d-none');
6398 var nomeUnidade = $('#unidades-ofertas option:selected').text();
6399 let tamScreen = $(window).width();
6400
6401 if(tamScreen < 1024)
6402 $('#titulo-emed').text('Turmas ' + anoTurmaEmed );
6403 else
6404 $('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade);
6405
6406 }
6407
6408 const codigoFT = $('[name="codigoFT"]').val();
6409 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6410
6411 //colocamos dentro do option categoryId@codUnidade
6412 splitted = elem.val().split("@");
6413 var categoryIdUnidade = splitted[0];
6414 var codUnidade = splitted[1];
6415
6416 for(var i = 0; unidades.length > i ; i++){
6417
6418 if(unidades[i].categoryId == categoryIdUnidade){
6419
6420 var unidade = unidades[i];
6421
6422 //Exibe o endereco da unidade
6423 const urlBuscaUnidade = urlUnidadeInfoDetalhe
6424 .replace('\{companyId\}',themeDisplay.getCompanyId())
6425 .replace('\{codigoUnidade\}', unidade.codigoUnidade);
6426
6427 $.ajax({
6428 url : urlBuscaUnidade,
6429 type : 'get',
6430 dataType: 'json',
6431 success: function( unidadeInfo ) {
6432 if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){
6433
6434 var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', ');
6435 endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - ');
6436 endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - ');
6437
6438 $('.ssp-ofertas__endereco-unidade').text(endereco);
6439 $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade);
6440 }
6441 },
6442 error: function(data){
6443 $('.ssp-ofertas__endereco-unidade').text('');
6444 $('.ssp-ofertas__endereco-unidade').attr('href','#a');
6445 console.log('Unidade não encontrada');
6446 }
6447 })
6448
6449 getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId);
6450
6451 habilitarRegistroInteresse(!!(unidades && unidades.length));
6452
6453 }
6454 }
6455 }
6456
6457 function pegarTextoCartoesAceitos(campo){
6458 indice = campo.indexOf(' em até ');
6459 inicio = 0;
6460 fim = indice;
6461
6462 return campo.substring(inicio, fim);
6463 }
6464
6465 function pegaNumParcela(campo){
6466
6467 indice = campo.indexOf('até ');
6468 inicio = indice + 4;
6469 fim = indice + 6;
6470
6471 return campo.substring(inicio, fim);
6472
6473 }
6474
6475 function pegaValorParcela(campo){
6476
6477 indice = campo.indexOf('R$');
6478 inicio = indice+2;
6479 valorAmericano = campo.substring(inicio)
6480
6481 return formataValor(valorAmericano);
6482
6483 }
6484
6485 function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){
6486
6487 var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta);
6488 diasSemanaHTML = "";
6489
6490 for(var diaDaOferta of retornoDiasHorarios){
6491 diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias);
6492 diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario)
6493 }
6494
6495 var ofertaHTML = "";
6496
6497 if(isEmed){
6498
6499 ofertaHTML = htmlSlickAreaEmed(oferta);
6500 $('[name="codUnidadeSelecionada"]').val(codigoUnidade);
6501
6502 if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML)
6503 else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML);
6504 }else{
6505
6506
6507 ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade)
6508
6509 if(!posLoad)
6510 $('.oferta-slick-area').append(ofertaHTML);
6511 else
6512 $('.oferta-slick-area').slick('slickAdd', ofertaHTML);
6513
6514 ajustaTextoDiasHorarioOferta(oferta.codigoOferta);
6515
6516 }
6517
6518 if(turmasIniciadas(oferta.dataInicio))
6519 $("#aviso-turma-iniciada-"+index).show();
6520
6521 //remove os botões/itens de compra/bolsa caso seja preciso
6522 $('.oferta-slick-area').find('.d-none-btn').remove();
6523 }
6524
6525
6526 //RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS
6527 //@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"
6528 function processaDiasHorariosOferta(horariosAllOferta){
6529
6530 var dias = horariosAllOferta.trim().split(',');
6531 let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}]
6532
6533 var arrayDia = [];
6534 if(dias.length >= 1){
6535 for(var k=0; dias.length > k; k++){
6536 var diasSplit = dias[k].trim().split(' ');
6537 var diasSemana = diasSplit.shift()
6538 var ultimaPos = diasSplit.length-1;
6539 var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]
6540 arrayDia.push({horasStr,diasSemana});
6541 }
6542 }
6543
6544 arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana');
6545 arrayDia = orderByArray(arrayDia,arrayDiasSemana);
6546
6547 var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana);
6548 return ret;
6549 }
6550
6551 //cria um array de objetos Agrupando de acordo ao campo informado como chave.
6552 //@arr = Array multidimensional que tenha os campos key e valueAdd
6553 //@key = campo que será chave nesse array
6554 //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key
6555 const groupByArray = (arr, key,valueAdd) => {
6556 const initialValue = [];
6557 const retornoValue = [];
6558 arr.forEach((acc, cval) => {
6559 const myAttribute = cval[key];
6560 acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]];
6561 return acc;
6562 }, initialValue);
6563 return retornoValue;
6564 };
6565
6566
6567 //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.
6568 //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados
6569 //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua
6570 const orderByArray = (arrayOrdena, ordem) => {
6571
6572 let diasSem = [];
6573 const arrayOrdenado = [];
6574 let controle;
6575
6576 //percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado
6577 for(let campo of ordem){
6578 Object.entries(arrayOrdena).forEach(([key, value]) => {
6579 for(let diaOferta of value){
6580 if(diaOferta===Object.keys(campo)[0]){
6581 arrayOrdenado[key]=arrayOrdena[key];
6582 }
6583 }
6584 })
6585 }
6586 return arrayOrdenado;
6587 };
6588
6589 //retorna o valor de um objeto dentro de um array
6590 //@objetoBusca = array de objetos que sera buscado o valor
6591 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6592 function findValueInObject(objetoBusca, keyBusca){
6593 var retorno = "";
6594 Object.entries(objetoBusca).forEach(([horario, dias]) => {
6595 Object.entries(dias).forEach(([key,val]) => {
6596 if(key.trim()==keyBusca.trim()){
6597 retorno = val;
6598 }
6599 });
6600 });
6601 return retorno;
6602 }
6603
6604 //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.
6605 //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex']
6606 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6607 function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){
6608
6609 let arrayValidador = [];
6610
6611 //cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom]
6612 for(let diaOferta of arrayComDiasDaSemana){
6613 for(let i = 0; i < arrayDiasDaSemana.length; i++){
6614 if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){
6615 arrayValidador[i] = true;
6616 }
6617 }
6618 }
6619
6620 let keyCompair = 99;
6621 var sequencial = true;
6622
6623 //verifica quais posições foram criadas no array, e se os valores delas estão em sequencia.
6624 for(let keyValidator of Object.keys(arrayValidador)){
6625 keyValidator = parseInt(keyValidator);
6626 if(keyCompair!==99){
6627 if(keyValidator===keyCompair){
6628 sequencial = true;
6629 }else{
6630 sequencial = false;
6631 break;
6632 }
6633 }
6634 keyCompair = keyValidator+1;
6635 }
6636 return sequencial;
6637 }
6638
6639
6640 //Exibe as informações de dia e horario de oferta de acordo a sua estrutura
6641 //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta
6642 //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula Ex: Segunda, terça, sexta e domingo
6643 //@arrayAgrupadoEOrdenado = array de objetos que sera exibido
6644 //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta)
6645 function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){
6646
6647 var stringAux = "";
6648 var listRetorno = [];
6649
6650 Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {
6651
6652 var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana);
6653 var stringAux = "";
6654 var diaOferta = {};
6655
6656 if(sequencial){
6657 switch (value.length) {
6658 case 1:
6659 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": ";
6660 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6661 diaOferta.horario = key;
6662 break;
6663 case 2:
6664 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6665 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6666 diaOferta.horario = key;
6667 break;
6668 default:
6669 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6670
6671 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6672 diaOferta.horario = key;
6673 break;
6674 }
6675 }else{
6676 switch (value.length) {
6677 case 2:
6678 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6679 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6680 diaOferta.horario = key;
6681 break;
6682 default:
6683 var ct = 0;
6684 var stringDias="";
6685 for(let v of value){
6686 ct++;
6687 ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", ";
6688 }
6689 stringAux = stringAux+stringDias+": ";
6690 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6691 diaOferta.horario = key;
6692 break;
6693 }
6694 }
6695
6696 listRetorno.push(diaOferta);
6697 })
6698 return listRetorno;
6699 };
6700
6701
6702 //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string
6703 function ajustaTextoDiasHorarioOferta(codOferta){
6704
6705 var classOferta = ".codigoOferta_"+codOferta;
6706 let oferta = $(classOferta);
6707
6708 let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]');
6709
6710 let widthDevice = window.screen.width;
6711 let tamLimDesktop = 185;
6712
6713 if(widthDevice <= 1024){
6714 tamLimDesktop = 180;
6715 }
6716
6717 ofertaDiasSemana.each(function(index){
6718
6719
6720 let widthDiaSemana = $(this).width();
6721
6722 let contentDiaHora = $(this).parent().parent().parent();
6723
6724 if(!(widthDiaSemana <= tamLimDesktop)){
6725 $(this).css("display","block");
6726 }
6727
6728 if(ofertaDiasSemana.length == parseInt(index+1)){
6729 contentDiaHora.css("opacity","1");
6730 }
6731
6732 })
6733 }
6734
6735 function getObjBtnComprar(oferta){
6736 let obj = {};
6737 obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false';
6738 if($('#manutencao-compra').val()){
6739 obj['classeBotao'] = 'disabled manutencao';
6740 obj['textoBotao'] = $('#manutencao-compra').val();
6741 }
6742 else{
6743 obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn';
6744 obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra';
6745 }
6746 return obj;
6747 }
6748
6749 function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){
6750
6751 var formaPagtoObj = {};
6752
6753 var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g');
6754 var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g')
6755
6756 formaPagtoObj['regIndex'] = index;
6757 formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta);
6758 formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos;
6759
6760 formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes;
6761 formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes;
6762 formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto;
6763 formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto;
6764 formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta);
6765
6766 formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2));
6767 formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false';
6768 formaPagtoObj['dataUnidade'] = codigoUnidade;
6769 formaPagtoObj['dataEvento'] = oferta.codigoOferta;
6770 formaPagtoObj['destinoCompra '] = oferta.destinoCompra;
6771
6772 //EMED nao restringe o botao
6773 if(isEmed){
6774 let manutencao = $('#manutencao-compra').val();
6775 formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR';
6776 formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : '';
6777 }else{
6778 let btnComprar = getObjBtnComprar(oferta);
6779 formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao;
6780 formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao;
6781 }
6782
6783 formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta;
6784 formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta);
6785
6786 //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
6787 formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta);
6788 var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2);
6789 formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao);
6790 formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao);
6791 formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2));
6792 formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2));
6793 formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2));
6794
6795 return formaPagtoObj;
6796 }
6797
6798 function calculaPrecoAvista(precoVendaOferta){
6799 return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2);
6800 }
6801
6802 function createModalFormaPagto(formaPagtoObj, oferta, index) {
6803 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
6804 temDesconto = temDesconto && !possuiMensalidade99(oferta)
6805
6806 result = `
6807 <div id="modalFormaPagto" class="ssp-modal">
6808 <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
6809 <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;">
6810 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6>
6811 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i>
6812 </div>
6813 `
6814 + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') +
6815 `
6816 <div class="ssp-card-modal-forma-pagamento__body">
6817 `
6818 if(temDesconto) {
6819 result = result + `
6820 <div>
6821 <p class="my-0"><strong>Valor com </strong>
6822 <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>
6823 </p>
6824 </div>
6825 <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>`
6826
6827 if($('[name="tipoCurso"]').val() == 'extensao') {
6828 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>`
6829 } else {
6830 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>`
6831 }
6832
6833
6834 result = result + `
6835 <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div>
6836 <p class="my-0"><strong>Valor:</strong></p>
6837 <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
6838 <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p>
6839 <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div>
6840 <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p>
6841 `
6842 } else {
6843 if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) {
6844 result = result + `
6845 <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6846 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6847 <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>
6848 </div>
6849 `
6850 } else {
6851 const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:'
6852
6853 result = result + `
6854 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small>
6855 <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p>
6856 <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6857 <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p>
6858 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6859 <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>
6860 </div>
6861 `
6862 }
6863 }
6864
6865 let textoParcelaCartoes, textoParcelaBoleto
6866 if(temDesconto) {
6867 const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2))
6868 const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2))
6869
6870 if(formaPagtoObj.numParcelaCartoes)
6871 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>`
6872
6873 if(formaPagtoObj.numParcelaBoleto)
6874 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>`
6875 } else {
6876 if(formaPagtoObj.numParcelaCartoes)
6877 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>`
6878
6879 if(formaPagtoObj.numParcelaBoleto)
6880 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>`
6881 }
6882
6883 if(temDesconto) {
6884 result = result + `
6885 <div class="ssp-card-modal-forma-pagamento__tipos">`
6886
6887 if(textoParcelaBoleto)
6888 result = result + `
6889 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6890 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6891 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6892 <p><strong>Boleto Bancário</strong></p>`
6893 + textoParcelaBoleto +
6894 `</div>
6895 </div>`
6896
6897 if(textoParcelaCartoes)
6898 result = result + `
6899 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6900 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6901 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6902 <p><strong>Cartões</strong></p>
6903 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6904 + textoParcelaCartoes +
6905 `</div>
6906 </div>
6907 </div>
6908 `
6909 } else {
6910 result = result + `
6911 <div class="ssp-card-modal-forma-pagamento__tipos">`
6912
6913 if(textoParcelaCartoes)
6914 result = result + `
6915 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6916 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6917 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6918 <p><strong>Cartões</strong></p>
6919 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6920 + textoParcelaCartoes +
6921 `</div>
6922 </div>`
6923
6924 if(textoParcelaBoleto)
6925 result = result + `
6926 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6927 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6928 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6929 <p><strong>Boleto Bancário</strong></p>`
6930 + textoParcelaBoleto +
6931 `</div>
6932 </div>
6933 </div>
6934 `
6935 }
6936
6937 if(temDesconto) {
6938 result = result + `
6939 <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p>
6940 `
6941 }
6942
6943 result = result + `
6944 <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>`
6945
6946 if(temDesconto) {
6947 result = result + `
6948 <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a>
6949 `
6950 }
6951
6952 result = result + `
6953 </div>
6954 </div>
6955 `
6956
6957 return result;
6958 }
6959
6960 function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){
6961
6962 var tipoCurso = $('[name="tipoCurso"]').val();
6963
6964 var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade);
6965
6966 var modalFormaPagto
6967 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) {
6968 modalFormaPagto = $('#modalFormaPagtoExt').clone();
6969
6970 $.each(formaPagtoObj, function(k,v){
6971 if(modalFormaPagto.find('.'+k).length > 0)
6972 modalFormaPagto.find('.'+k).text(v);
6973 })
6974 } else if(isEmed) {
6975 modalFormaPagto = $('#modalPagtoEmed').clone();
6976
6977 $.each(formaPagtoObj, function(k,v){
6978 if(modalFormaPagto.find('.'+k).length > 0)
6979 modalFormaPagto.find('.'+k).text(v);
6980 })
6981 } else
6982 modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index));
6983
6984 modalFormaPagto.removeAttr('id');
6985 modalFormaPagto.removeClass('d-none');
6986 modalFormaPagto.attr('id','myModal_'+index);
6987
6988 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){
6989
6990 var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok');
6991 botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index);
6992
6993 botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
6994 botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade);
6995 botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento);
6996 botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra);
6997 botoaoCompraOk.attr('data-index', index);
6998 botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar);
6999
7000 var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not');
7001 botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index);
7002
7003 botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7004 botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade);
7005 botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento);
7006 botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7007 botoaoCompraNot.attr('data-index', index);
7008 botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar);
7009
7010 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index);
7011 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index);
7012
7013 modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7014
7015 modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index);
7016
7017 modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index);
7018
7019 modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index);
7020 modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index);
7021
7022 var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');
7023
7024 }else{
7025
7026 modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index);
7027 modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7028
7029 var botaoCompra = modalFormaPagto.find('.btn.w-100');
7030
7031 }
7032
7033 if(isEmed){
7034
7035 var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento');
7036
7037 //Cria botao inscreva-se ajustado ao modal
7038 var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
7039 if($('#manutencao-compra').val()){
7040 textoBotao = $('#manutencao-compra').val();
7041 classeBotao = 'disabled manutencao';
7042 }else{
7043 if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7044 textoBotao = 'Lista de espera';
7045 classeBotao = 'btn-emed-lista-espera';
7046 }else{
7047 if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == ''){
7048 if(oferta.etapa == '0020' || oferta.etapa == '0030'){
7049 textoBotao = 'Lista de espera';
7050 classeBotao = 'btn-emed-lista-espera';
7051 }else{
7052 textoBotao = 'Fazer matrícula';
7053 classeBotao = '';
7054 }
7055 }else{
7056 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
7057 classeBotao = 'disabled';
7058 }
7059 }
7060 }
7061 criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index);
7062 preencheDadosEmedModal(oferta, modalFormaPagto);
7063
7064 }else{
7065 botaoCompra.attr('id', "btnComprarFormaPgto_"+index);
7066 botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7067 botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade);
7068 botaoCompra.attr('data-evento', formaPagtoObj.dataEvento);
7069 botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7070 botaoCompra.attr('data-index', index);
7071 botaoCompra.addClass(formaPagtoObj.classeBotaoComprar);
7072 }
7073
7074 $('.oferta-slick-area_modal').append(modalFormaPagto);
7075 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7076
7077 //Evita o erro de exibição de Nan
7078 if(oferta.numParcelaBoleto.length == 0){
7079 $('#content_boleto_'+index).remove();
7080 }
7081 }
7082
7083
7084 function montaHTMLModalLocalRealizacao(oferta, index){
7085
7086 var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ?
7087 '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>'
7088 : '<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>';
7089
7090 if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true")
7091 textoFormatoHibrido += '</br>';
7092
7093 var localRealizacaoHTMLModal = htmlModalLocalRealizacao
7094 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7095 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7096 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" )
7097 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7098 .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none")
7099 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7100 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7101 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7102 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7103 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7104 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7105 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7106 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7107 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7108 .replace(regIndex, index)
7109 .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao)
7110 .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : "");
7111
7112 $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal);
7113 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7114
7115 if(oferta.ruaEspacoExterno == "")
7116 $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle');
7117 }
7118
7119 function montaHTMLModalAntesCompra(oferta, index, codigoUnidade){
7120
7121 if(isEmed){
7122
7123 $('#modalAntesCompraEmed_' + oferta.indice).remove();
7124 const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone();
7125 antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice);
7126 antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice);
7127 antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice);
7128 antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed');
7129
7130 if(oferta.etapa == '0010'){
7131 if(oferta.permiteListaEspera == statusEmed.ESPERA){
7132 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none');
7133 antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera');
7134 }else{
7135 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none');
7136 }
7137 }else{
7138 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none');
7139 }
7140
7141 const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed');
7142 btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice);
7143 btnCompra.attr('offercode', oferta.codigoOferta);
7144
7145 btnCompra.on('click', function(ev){
7146 ev.preventDefault();
7147 execCompraEmed(oferta);
7148 });
7149
7150 }else{
7151
7152 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7153
7154
7155 var antesCompraHTMLModal = htmlModalAntesCompra
7156 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7157 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7158 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" )
7159 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7160 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
7161 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7162 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7163 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7164 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7165 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7166 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7167 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7168 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7169 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7170 .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat))
7171 .replace('\{linkBtnBolsa\}', linkBolsa(oferta))
7172 .replace(regIndex, index);
7173
7174 $('.oferta-slick-area_modal').append(antesCompraHTMLModal);
7175 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7176 }
7177 }
7178
7179 async function populaOfertas(ofertas){
7180
7181 //Zera variável que controla existência de ofertas com bolsa
7182 ofertasComBolsa = false;
7183
7184 objsTela.ofertas = ofertas;
7185
7186 if(ofertas && ofertas.length)
7187 $('#ssp-h3-turmas').show()
7188 else
7189 $('#ssp-h3-turmas').hide()
7190
7191 if(ofertas && ofertas.length > 1){
7192 //remove dupl
7193 const ofertasDistintas = [];
7194 ofertas.forEach(oferta => {
7195 if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){
7196 ofertasDistintas.push(oferta);
7197 }
7198 });
7199 ofertas = ofertasDistintas;
7200 }
7201
7202 if(isEmed){
7203
7204 $('.btn-filtro[value="0"]').attr('disabled','');
7205 $('.ssp-slick-ofertas-emed').empty();
7206 // executa a class do slick slider
7207 $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted');
7208 ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas);
7209
7210 }
7211
7212 if(ofertas.length == 0){
7213
7214 if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked'))
7215 hideCardSemTurmas(false)
7216
7217 $('.oferta-slick-area').empty();
7218 $('.prev-mobile, .next-mobile').addClass('d-none');
7219
7220 //Mostrar section registro interesse quando nao tiver oferta
7221 habilitarRegistroInteresse(true);
7222
7223 controlaPaginaBolsa()
7224 if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled');
7225 return;
7226 }
7227 hideCardSemTurmas(true)
7228 if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none');
7229 habilitarRegistroInteresse(false);
7230
7231 $('.oferta-slick-area').empty();
7232 $('.oferta-slick-area_modal').empty();
7233 ofertas = ofertas.sort(function(a, b){
7234 return ordenar(a, b, 'ordenar');
7235 });
7236 // executa a class do slick slider
7237 $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted');
7238
7239 //busca o codigoUnidade para o link do ecommerce
7240 if(!isAoVivo){
7241 var selectedUnidade = $('#unidades-ofertas').val().split('@')[0];
7242 for(var i=0;objsTela.unidades.length > i ;i++){
7243 if(selectedUnidade == objsTela.unidades[i].categoryId)
7244 codigoUnidade = objsTela.unidades[i].codigoUnidade;
7245 }
7246 }
7247
7248 // Montar object push - google tag manager - 2
7249 itensEcommerce = criaItensEcommerce(ofertas);
7250 sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values()));
7251
7252 for(var i=0;ofertas.length > i ;i++){
7253
7254 var oferta = ofertas[i];
7255
7256 //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real
7257 oferta['indice'] = i;
7258 ofertasMap.set(oferta.codigoOferta, oferta);
7259
7260 if(isAoVivo)
7261 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
7262
7263 if(isEmed && oferta.etapa == '0010'){
7264 try{
7265 let status = await getStatusEmed(oferta);
7266 oferta['permiteListaEspera'] = status;
7267 }catch(err){
7268 console.log(err);
7269 }
7270 }
7271 montaHTMLOferta(oferta, i, codigoUnidade, false);
7272 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
7273 montaHTMLModalLocalRealizacao(oferta, i);
7274 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
7275 verificaBotaoBolsaSS(oferta);
7276 verificaCursoAprendizagem(i);
7277 verificaCursoTrampolim(i, oferta.codigoOferta);
7278
7279 associaEventoBtnFormaPagamento(i);
7280 associaEventoBtnComprar(i);
7281 associaEventoBtnComprarDentroFormaPgto(i);
7282 associaEventoBtnLocalRealizacao(i);
7283 associaEventosFecharModal(i);
7284
7285 if($('[name="tipoCurso"]').val() == 'extensao'){
7286 associaEventoBtnConheca(i);
7287 associaEventoBtnComprarConhecaDescontoOk(i);
7288 associaEventoBtnComprarConhecaDescontoNot(i);
7289 associaEventoBtnAlunoNao(i);
7290 associaEventoBtnAlunoSim(i);
7291 }
7292
7293 }
7294
7295 if(isEmed){
7296 sliderOfertasEmed();
7297 $('.btn-filtro[value="0"]').removeAttr('disabled');
7298 }
7299 else sliderOfertas();
7300
7301 controlaPaginaBolsa()
7302
7303 }
7304
7305 function hideCardSemTurmas(hide){
7306 if(!isEmed){
7307 if(hide)
7308 $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none');
7309 else
7310 $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none');
7311 } else {
7312
7313
7314 if(hide || getEtapaSelecionadaEmed() == "0"){
7315 $('.sem-vaga-emed').addClass('d-none');
7316 }else{
7317 $('.sem-vaga-emed').removeClass('d-none');
7318 if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return;
7319 var tamScreen = $(window).width();
7320 if(tamScreen < 768){
7321 $('.slick-area-emed').slick({
7322 slidesToShow: 2,
7323 slidesToScroll: 2,
7324 autoplay: false,
7325 infinite: false,
7326 dots: false,
7327 arrows: false,
7328 centerPadding: 0,
7329 centerMode: false,
7330 responsive: [
7331 {
7332 breakpoint: 768,
7333 settings: {
7334 slidesToShow: 1,
7335 slidesToScroll: 1,
7336 variableWidth: false,
7337 infinite: false,
7338 centerPadding: 0,
7339 centerMode: false,
7340 dots: true,
7341 }
7342 }
7343 ]
7344 });
7345 }
7346 }
7347 }
7348 }
7349
7350 function verificaCursoAprendizagem(i){
7351
7352 //Esconde elementsos quando o curso é aprendizagem
7353 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
7354 $('#btnComprar_'+i).remove();
7355 $('#container_investimento_'+i).remove();
7356 $('#container_forma_pgto_'+i).remove();
7357
7358 var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone();
7359 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>'
7360 avisoAprendizagem.removeAttr('id');
7361 avisoAprendizagem.removeClass('d-none');
7362 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem);
7363 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem);
7364 }
7365 }
7366
7367 function verificaCursoTrampolim(i, codOferta){
7368 if(ehCursoTrampolim){
7369 $('#btnComprar_'+i).remove();
7370 $('#container_investimento_'+i).remove();
7371 $('#container_forma_pgto_'+i).remove();
7372 $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide();
7373
7374 var avisoTrampolim = $('#avisoTrampolim').clone();
7375 avisoTrampolim.removeAttr('id');
7376 avisoTrampolim.removeClass('d-none');
7377 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim);
7378 }
7379 }
7380
7381 function verificaBotoesEmed(dadosOferta, verificaBolsa){
7382
7383 if(!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
7384 dadosOferta.vagasBolsaOferta = false;
7385 dadosOferta.botaoBolsaOferta = false;
7386 }
7387
7388 var elementoPai = $('.codigoOferta_'+dadosOferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
7389
7390 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7391 var dadosAbertura = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7392 var textoBotao = 'Fazer matrícula';
7393 var textoBotaoBolsa = '';
7394 var classeBotao = '';
7395 var classeBotaoBolsa = '';
7396 var exibirBotaoBolsa = false;
7397 var exibirContador = false;
7398 var htmlBotaoBolsa = '';
7399 var htmlBotao = '';
7400
7401 //verifica se o botão de concorrer a bolsa deve aparecer
7402 //Oferta EMED possui bolsa apenas no 1o ano
7403 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAbertura.exibirContador){
7404 exibirBotaoBolsa = true;
7405 if($('#manutencao-bolsa').val()){
7406 classeBotaoBolsa = 'disabled manutencao';
7407 textoBotaoBolsa = $('#manutencao-bolsa').val();
7408 }else{
7409 if(dadosOferta.vagasBolsaOferta){
7410 classeBotaoBolsa = dadosAbertura.bolsaJaAberta ? '' : 'disabled';
7411 textoBotaoBolsa = dadosAbertura.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7412 }else{
7413 classeBotaoBolsa = 'disabled';
7414 textoBotaoBolsa = 'Bolsas de Estudo Esgotadas';
7415 }
7416 }
7417 }
7418
7419 //Verifica se o botão do cronômetro deve aparecer
7420 if(dadosAbertura.exibirContador){
7421 textoBotao = dadosAbertura.textoContador;
7422 textoBotaoBolsa = dadosAbertura.textoContador;
7423 exibirContador = true;
7424 exibirBotaoBolsa = false;
7425 }else{
7426 if($('#manutencao-compra').val()){
7427 textoBotao = $('#manutencao-compra').val();
7428 classeBotao = 'disabled manutencao';
7429 }else{
7430
7431 if(dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7432 textoBotao = 'Lista de espera';
7433 classeBotao = 'btn-emed-lista-espera';
7434 }else{
7435 classeBotao = '';
7436 if (dadosAbertura.bolsaJaAberta || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
7437 textoBotao = 'Fazer matrícula';
7438
7439 if(dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030'){
7440 textoBotao = 'Lista de espera';
7441 classeBotao = 'btn-emed-lista-espera';
7442 }
7443
7444
7445 }else{
7446 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7447 }
7448 if(!dadosAbertura.bolsaJaAberta)
7449 classeBotao = 'disabled';
7450 }
7451 }
7452
7453 criaBotaoInscreverEmed(dadosOferta, textoBotao, classeBotao, 'btnComprarEmed_' + dadosOferta.indice, elementoPai);
7454 }
7455
7456 if(exibirBotaoBolsa){
7457
7458 if(!ofertasComBolsa) ofertasComBolsa = true;
7459
7460 criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa);
7461
7462 }else if(exibirContador){
7463
7464 if(!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true;
7465
7466 //codigoOferta como index para usar o ofertasMap
7467 htmlBotao = '<button id="btnContadorComprar_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>'+textoBotao+'</span></button>';
7468 elementoPai.append(htmlBotao);
7469
7470 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta){
7471 htmlBotao = '<button id="btnContadorBolsa_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --bolsas">Bolsa em <span>'+textoBotaoBolsa+'</span></button>';
7472 elementoPai.append(htmlBotao);
7473 }
7474
7475 }
7476
7477 }
7478
7479 function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){
7480 criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai);
7481 var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index);
7482 btnInscr.removeClass(btnInscr.classList);
7483 btnInscr.addClass('btn btn-lg btn-success w-100');
7484 btnInscr.attr('style', 'margin-top: 20px;font-weight:600');
7485
7486 //Reposiciona o botao voltar
7487 var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso');
7488 elementoPai.find('.ssp-btn-emed__voltar-curso').remove();
7489 elementoPai.append(btnVoltar);
7490 btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index);
7491 btnVoltar.click(() => {
7492 $('[id^="myModal_"]').each(function(index,modal){
7493 modal.style.display = "none";
7494 })
7495 });
7496 }
7497
7498 function preencheDadosEmedModal(oferta,$modal){
7499 const parcelaEntrada = 1;
7500 $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7501 $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7502 $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7503 $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7504 }
7505
7506
7507 function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){
7508 if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return;
7509 var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>';
7510 elementoPai.append(htmlBotao);
7511
7512 if(!classeBotao.includes('disabled')){
7513
7514 elementoPai.on("click", '#'+ idBotao, function(ev){
7515 ev.preventDefault();
7516 const _modal = $('#modalAntesCompraEmed_'+$(this).data('index'));
7517 _modal.css('display','flex');
7518
7519
7520 });
7521
7522 }
7523
7524 }
7525
7526 function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7527
7528 var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>';
7529 $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao);
7530
7531 if(!classeBotaoBolsa.includes('disabled')){
7532 // Associa o evento de clique no botão de bolsa
7533 $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta));
7534 $('#btnBolsa_'+oferta.indice).attr('target', '_blank');
7535 //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;');
7536
7537 }
7538 }
7539
7540 function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7541
7542 const botao = $('<a>'+ textoBotaoBolsa +'</a>');
7543 botao.attr('id', 'btnBolsa_' + oferta.indice);
7544 botao.attr('data-index', oferta.indice);
7545 botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || ''));
7546 botao.css('font-size', '14px');
7547 botao.css('font-weight', '600');
7548 botao.css('background-color', '#004EFF');
7549 if(!classeBotaoBolsa.includes('disabled')){
7550 if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){
7551 botao.attr('data-espaco-ex', 'true');
7552 botao.click((ev)=>{
7553 ev.preventDefault();
7554 $('#btnCompraLocal_'+oferta.indice).hide();
7555 $('#btnBolsaLocal_'+oferta.indice).show();
7556 const _modal = $('#modalAntesCompra_'+oferta.indice);
7557 _modal.css('display','flex');
7558 });
7559 }else{
7560 botao.attr('href', linkBolsa(oferta));
7561 botao.attr('target', '_blank');
7562 }
7563 }
7564
7565 return botao;
7566
7567 }
7568
7569 function verificaBotaoBolsaSS(oferta, codigoUnidade){
7570
7571
7572 if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return;
7573
7574 if(!ehCursoTrampolim){
7575 $.ajax({
7576 url : getUrlConsultaBolsa(oferta),
7577 type : 'get',
7578 dataType: 'json',
7579 beforeSend: function (xhr) {
7580 xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww==");
7581 },
7582 })
7583 .done(function(infosBolsa){
7584
7585
7586 if(infosBolsa != null && typeof infosBolsa !== 'undefined'){
7587
7588 var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO;
7589 var retornoOfertaBolsaSenac = infosBolsa.DATA[0];
7590
7591 //Sobrescreve as flags de bolsa com o retorno do serviço SS
7592 ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA;
7593 ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA;
7594
7595 var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa);
7596
7597 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7598 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta);
7599 var textoBotaoBolsa = '';
7600 var classeBotaoBolsa = '';
7601 var textoBotaoContadorBolsa = '';
7602 var exibirBotaoBolsa = false;
7603 var exibirContadorBolsa = false;
7604
7605 //EMED
7606 if(isEmed){
7607 verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true);
7608 return;
7609 }
7610
7611 //Verifica o texto do botão de bolsa
7612 if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val();
7613 else{
7614
7615 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){
7616
7617 if(dadosAberturaBolsa.bolsaJaAberta)
7618 textoBotaoBolsa = "Inscrever para bolsa de estudo";
7619
7620 else
7621 textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7622
7623 if(!ofertasComBolsa){ ofertasComBolsa = true;
7624 }
7625 }else
7626 textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo";
7627 }
7628
7629 //verifica se o botão de concorrer a bolsa deve aparecer
7630 if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){
7631
7632 exibirBotaoBolsa = true;
7633
7634 if(!ofertasComBolsa) ofertasComBolsa = true;
7635
7636 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){
7637 classeBotaoBolsa = '';
7638 }else{
7639 classeBotaoBolsa = 'disabled';
7640 }
7641 }
7642
7643 //Verifica se o botão do cronômetro deve aparecer
7644 if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){
7645 textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador;
7646 exibirContadorBolsa = true;
7647 }
7648
7649 if(exibirBotaoBolsa)
7650 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) )
7651 else if(exibirContadorBolsa)
7652 $('.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>')
7653 else {
7654 $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide()
7655 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7656 }
7657
7658 }else{
7659 //EMED
7660 if(isEmed){
7661 verificaBotoesEmed(oferta, false);
7662 }
7663 }
7664
7665 controlaPaginaBolsa()
7666 })
7667 .fail(function(){
7668 $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide()
7669 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7670
7671 //EMED
7672 if(isEmed){
7673 verificaBotoesEmed(oferta, false);
7674 }
7675 });
7676
7677
7678 }
7679
7680 }
7681
7682 function controlaPaginaBolsa(){
7683 if(ofertasComBolsa)
7684 $("#ssp-abrir-pagina-bolsa").removeClass("d-none")
7685 else
7686 $("#ssp-abrir-pagina-bolsa").addClass("d-none")
7687 }
7688
7689 function associaEventoBtnFormaPagamento(i){
7690 var modal = document.getElementById("myModal_"+i);
7691
7692 var btn = document.getElementById("myBtn_"+i);
7693
7694 if(btn!=null){
7695 btn.onclick = function(ev) {
7696 event.preventDefault()
7697
7698 $('#modalExtAluno_'+i).addClass('d-none');
7699
7700 var elem = $(ev.target);
7701 var _modal = document.getElementById(
7702 'myModal_'+elem.data('index'));
7703 _modal.style.display = "block";
7704 $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none');
7705
7706 }
7707 }
7708
7709
7710
7711
7712 }
7713
7714
7715 function actionBtnComprar(elem){
7716
7717 // Montar object push - google tag manager - 3
7718 ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento'))
7719 sendEventEcommerce("select_item", ofertaSelecionada);
7720 sendEventEcommerce("view_item", ofertaSelecionada);
7721
7722 //Verifica se deve exibir o modal com a localização
7723 if(elem.attr('data-espaco-ex') == 'true'){
7724 $('#btnCompraLocal_'+elem.data('index')).show();
7725
7726 //Limpa onclicks para nao repetir execucao
7727 $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index'))
7728 $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () {
7729 // Montar object push - google tag manager - 4
7730 sendEventEcommerce("add_to_cart", ofertaSelecionada);
7731 if( elem.attr('data-destino-compra') != '2' )
7732 sendEventEcommerce("begin_checkout", ofertaSelecionada);
7733 })
7734 $('#btnBolsaLocal_'+elem.data('index')).hide();
7735 const _modal = $('#modalAntesCompra_'+elem.data('index'));
7736 _modal.css('display','flex');
7737 }else{
7738 var urlCompra = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento'));
7739
7740 if( elem.attr('data-destino-compra') == '2' ){
7741 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7742
7743 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);
7744
7745 }else{
7746 window.open(urlCompra, '_blank');
7747 }
7748 }
7749
7750
7751
7752 }
7753
7754 function associaEventoBtnComprar(i){
7755 var btnComprar = document.getElementById("btnComprar_"+i);
7756
7757 if(btnComprar != null && !btnComprar.classList.contains('disabled')){
7758 btnComprar.onclick = function(ev) {
7759
7760 ev.preventDefault()
7761 var elem = $(ev.target);
7762 actionBtnComprar(elem);
7763
7764 }
7765 }
7766 }
7767
7768 function associaEventoBtnComprarDentroFormaPgto(i){
7769 var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i);
7770
7771 if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){
7772 btnComprarFormaPgto.onclick = function(ev) {
7773 event.preventDefault()
7774 var elem = $('#btnComprarFormaPgto_'+i);
7775 actionBtnComprar(elem);
7776 }
7777 }
7778 }
7779
7780 function associaEventoBtnComprarConhecaDescontoOk(i){
7781 var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i);
7782
7783 if(btnComprarConhecaDescontoOk != null){
7784 btnComprarConhecaDescontoOk.onclick = function(ev) {
7785 event.preventDefault()
7786 var elem = $(ev.target);
7787 actionBtnComprar(elem);
7788 }
7789 }
7790 }
7791
7792 function associaEventoBtnComprarConhecaDescontoNot(i){
7793 var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i);
7794
7795 if(btnComprarConhecaDescontoNot != null){
7796 btnComprarConhecaDescontoNot.onclick = function(ev) {
7797 event.preventDefault()
7798 var elem = $(ev.target);
7799 actionBtnComprar(elem);
7800 }
7801 }
7802 }
7803
7804 function associaEventoBtnAlunoNao(i){
7805 var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i);
7806
7807 if(btnAlunoNao != null){
7808 btnAlunoNao.onclick = function(ev) {
7809 event.preventDefault()
7810 var elem = $(ev.target);
7811 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7812 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo');
7813 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7814 $('#msg-alunoNao_'+i).removeClass('d-none');
7815 $('#msg-alunoSim_'+i).addClass('d-none');
7816 }
7817 }
7818 }
7819
7820 function associaEventoBtnAlunoSim(i){
7821 var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i);
7822
7823 if(btnAlunoSim != null){
7824 btnAlunoSim.onclick = function(ev) {
7825 event.preventDefault()
7826 var elem = $(ev.target);
7827 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7828 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo');
7829 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7830 $('#msg-alunoSim_'+i).removeClass('d-none');
7831 $('#msg-alunoNao_'+i).addClass('d-none');
7832
7833 }
7834 }
7835 }
7836
7837 function associaEventoBtnConheca(i){
7838 var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i);
7839
7840 if(btnModalExtConheca != null){
7841 btnModalExtConheca.onclick = function(ev) {
7842 event.preventDefault();
7843 var elem = $(ev.target);
7844 elem.closest('.modal-extensao_content').addClass('d-none');
7845 $('#modalExtAluno_'+i).removeClass('d-none');
7846 $('#msg-alunoSim_'+i).addClass('d-none');
7847 $('#msg-alunoNao_'+i).addClass('d-none');
7848 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7849 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7850
7851 }
7852 }
7853 }
7854
7855 function associaEventoBtnLocalRealizacao(i){
7856 var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i);
7857
7858 if(btnLocalRealizacao!=null){
7859 btnLocalRealizacao.onclick = function(ev) {
7860 event.preventDefault();
7861 var elem = $(ev.target);
7862 var _modal = document.getElementById(
7863 'modalLocalRealizacao_'+elem.data('index'));
7864 _modal.style.display = "flex";
7865 }
7866 }
7867 }
7868
7869 function associaEventosFecharModal(i){
7870
7871 var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i);
7872 var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0];
7873 var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0];
7874 var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0];
7875 var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0];
7876 var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i)
7877
7878 if(isEmed){
7879 var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i);
7880 for (const val of closeModalFormaPagamento) {
7881
7882 val.onclick = function() {
7883 $('[id^="myModal_"]').each(function(index,modal){
7884 modal.style.display = "none";
7885 });
7886 }
7887 };
7888 }
7889
7890 //event close modal
7891 for (const val of span) {
7892
7893 val.onclick = function() {
7894 $('[id^="myModal_"]').each(function(index,modal){
7895 modal.style.display = "none";
7896 });
7897 }
7898 };
7899
7900 closeModalLocalRealizacao.onclick = function() {
7901
7902 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7903 modal.style.display = "none";
7904
7905 });
7906 }
7907
7908 closeModalAntesCompra.onclick = function() {
7909
7910 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7911 modal.style.display = "none";
7912 });
7913 }
7914
7915 closeModalSelecionarOutro.onclick = function() {
7916
7917 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7918 modal.style.display = "none";
7919 });
7920 }
7921
7922 btnEntendiLocalRealizacao.onclick = function() {
7923
7924 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7925 modal.style.display = "none";
7926 });
7927 }
7928
7929 if(closeModalBotaoBolsa != null){
7930 closeModalBotaoBolsa.onclick = function() {
7931
7932 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7933 modal.style.display = "none";
7934 });
7935 }
7936 }
7937
7938 // When the user clicks anywhere outside of the modal, close it
7939 window.onclick = function(event) {
7940
7941 $('[id^="myModal_"]').each(function(index,_modal){
7942 if (event.target == _modal)
7943 _modal.style.display = "none";
7944 });
7945 $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){
7946 if (event.target == _modal)
7947 _modal.style.display = "none";
7948 });
7949
7950 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){
7951 if (event.target == _modal)
7952 _modal.style.display = "none";
7953 });
7954 }
7955 }
7956
7957 function turmasIniciadas(dataInicioCurso){
7958
7959 var hoje = new Date();
7960 var dataInicioPartes = dataInicioCurso.split('/');
7961 var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds());
7962
7963 return dataInicioCursoOferta.getTime() <= hoje.getTime();
7964 }
7965
7966
7967 function concatSTR(str1, str2, separador){
7968
7969 if(str2){
7970
7971 return str1+separador+str2;
7972 }
7973 return str1;
7974 }
7975
7976 //Formata exibicao de datas conforme especificacao GCR
7977 function formataPeriodo(dataInicio, dataFim){
7978
7979 var dtInicioPartes = dataInicio.split('/');
7980 var dtFimPartes = dataFim.split('/');
7981
7982 //Não exibir o número zero antes dos números e o dia 1 como 1º
7983 var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim();
7984 var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim();
7985
7986 //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020
7987 if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){
7988
7989 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim());
7990
7991 //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020
7992 if(dtInicioPartes[1].trim() == dtFimPartes[1].trim())
7993 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()));
7994 }
7995
7996 return dInicioFormatada + ' a ' + dFimFormatada;
7997 }
7998
7999 //Decrementa os contadores de abertudas de bolsa
8000 function atualizaTempoAberturasBolsas() {
8001
8002 var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]');
8003
8004 btnsContador.each(function() {
8005
8006 var index = $(this).data('index');
8007 var btnContent = $(this).parent('.ssp-btn-group__content');
8008
8009 if(isEmed){
8010 //EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas
8011 var dadosAberturaBolsa = calculaTempoAberturaBolsa(ofertasMap.get('' +index).dataAberturaBolsaOferta, ofertasMap.get('' + index).horaAberturaBolsaOferta);
8012 }else{
8013 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
8014 var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta);
8015 }
8016
8017 $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds);
8018
8019 //Se esgotou o contador
8020 if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){
8021
8022 var elId = $(this).attr('id');
8023
8024 //remove o contador
8025 $(this).remove();
8026
8027 //Habilitar inscrição EMED
8028 if(isEmed){
8029 var ofertaEmed = ofertasMap.get('' +index);
8030 var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
8031
8032 if(elId.indexOf('btnContadorBolsa') >= 0){
8033 if($('#manutencao-bolsa').val())
8034 criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao');
8035 else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true")
8036 criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', '');
8037 else
8038 criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled');
8039 }else if(elId.indexOf('btnContadorComprar') >= 0){
8040
8041 var textoBotao, classeBotao;
8042
8043 textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula';
8044 classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : '';
8045
8046
8047 criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai);
8048
8049 //Altera o botao do modal de pagamento
8050 var btnIndex = elId.slice(elId.indexOf('_')+1);
8051 var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento');
8052 var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex);
8053 if(btnModal){
8054 btnModal.remove();
8055 criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex);
8056 preencheDadosEmedModal(ofertaEmed,modal);
8057 }
8058
8059
8060 }
8061
8062 }else{
8063
8064 //Checa as condições das vagas do botão de bolsa
8065 var btnBolsaHTML = null;
8066 if($('#manutencao-bolsa').val())
8067 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao');
8068 else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true")
8069 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo');
8070 else
8071 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled');
8072
8073 $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML);
8074
8075
8076 }
8077 }
8078
8079 });
8080
8081 }
8082
8083 // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos
8084 function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){
8085
8086 var dadosAberturaBolsa = {
8087 days : '',
8088 hours : '',
8089 minutes : '',
8090 seconds : '',
8091 bolsaJaAberta: false,
8092 exibirContador: false,
8093 textoContador: ''
8094 };
8095
8096 if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0)
8097 return dadosAberturaBolsa;
8098
8099 var now = todayG;
8100 var dia = now.getDate();
8101 var horarioDia = now.getHours();
8102
8103 var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa);
8104
8105 //console.log('tempo restante '+tempoRestante);
8106
8107 var diaAberturaBolsa = dataAberturaBolsa.split('-')[2];
8108
8109 var delta = tempoRestante / 1000;
8110
8111 var days = Math.floor(delta / 86400);
8112
8113 delta -= days * 86400;
8114
8115 var hours = Math.floor(delta / 3600) % 24;
8116 delta -= hours * 3600;
8117
8118 var minutes = Math.floor(delta / 60) % 60;
8119 delta -= minutes * 60;
8120
8121 var seconds = Math.floor(delta % 60);
8122
8123 //Zerar contador para data que ja passou
8124 if(days < 0){
8125 dadosAberturaBolsa.days = 0;
8126 dadosAberturaBolsa.hours = '00';
8127 dadosAberturaBolsa.minutes = '00';
8128 dadosAberturaBolsa.seconds = '00';
8129 }else{
8130 dadosAberturaBolsa.days = days;
8131 dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours;
8132 dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes;
8133 dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds;
8134 }
8135
8136 dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0;
8137 var horaExibeContador = 8;
8138 if(!isEmed && botaoBolsa == false){
8139 dadosAberturaBolsa.exibirContador = false;
8140 }else{
8141 dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia);
8142 dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds;
8143 }
8144 dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0;
8145
8146 return dadosAberturaBolsa;
8147
8148 }
8149
8150 // Verifica se uma oferrta já chegou sua data de abertura
8151 function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8152 // console.log(dataAberturaBolsa);
8153 // console.log(horaAberturaBolsa);
8154
8155 //var today = new Date();
8156
8157
8158 //console.log( "TodayG "+ todayG);
8159
8160 //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30
8161 var partesHora = horaAberturaBolsa.split('h');
8162
8163 var partesHora = partesHora.filter(function (el) {
8164 return el != "";
8165 });
8166
8167 //formato 9h
8168 if(partesHora.length == 1)
8169 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00");
8170
8171 else{
8172
8173 //format 9h3
8174 if(partesHora[1].length == 1)
8175 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0');
8176
8177 //formato 9h30
8178 else
8179 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]);
8180 }
8181
8182 // console.log(aberturaBolsa);
8183 return aberturaBolsa - todayG;
8184 }
8185
8186 function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8187 var dataPartes = dataAberturaBolsa.split('-');
8188
8189 return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas';
8190
8191 }
8192
8193 function formataValor(valor){
8194
8195 if(!valor.toString().includes(".")){
8196 valor = parseFloat(valor).toLocaleString('pt-BR')+",00";
8197 }else{
8198 valor = parseFloat(valor).toLocaleString('pt-BR');
8199
8200 if(valor.split(",").length == 2){
8201
8202 if(valor.split(",")[1].length == 1)
8203 valor += "0";
8204
8205 }else
8206 valor += ",00";
8207 }
8208
8209 return valor;
8210 }
8211
8212 function ajustarCasasDecimaisSemArredondar(numero, casas) {
8213 const str = numero + ''
8214 const arr = str.split('.')
8215 return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0'))
8216 }
8217
8218 function possuiCriteriosDesconto2022(dt) {
8219 return dt.substring(dt.lastIndexOf('/') + 1) >= 2022
8220 && (
8221 $('[name="tipoCurso"]').val() == 'livre'
8222 || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8223 || $('[name="tipoCurso"]').val() == 'extensao'
8224 )
8225 }
8226
8227 function strToFloat(str) {
8228 const separator = str.includes(',') ? ',' : '.'
8229
8230 const numArr = str.split(separator)
8231 const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.')
8232 const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : ''
8233 return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0'))
8234 }
8235
8236 function possuiMensalidade99(oferta) {
8237 if(!oferta.precoVendaMaxParcelaOferta
8238 || (oferta.precoVendaMaxParcelaOferta != 99
8239 && parseFloat(oferta.precoParcelaCartoes.replace(',','.')) != 99
8240 && parseFloat(oferta.precoParcelaBoleto.replace(',','.')) != 99))
8241 return false
8242
8243 if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio')
8244 return true
8245
8246 if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8247 return true
8248
8249 if($('[name="modalidades"]').val() == 'qualificacao-profissional')
8250 return true
8251
8252 return false
8253 }
8254
8255 function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) {
8256 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
8257 temDesconto = temDesconto && !possuiMensalidade99(oferta)
8258
8259 const btnLocalReal = function(oferta){
8260
8261 var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido)) ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`;
8262
8263 btn += (localLivreOnline(oferta.localEspacoExterno)) ?
8264 `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#">
8265 <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>`
8266 : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#">
8267 <i class="fas fa-user"></i>Onde as aulas vão acontecer?</a>`;
8268
8269 btn += `</div>`;
8270
8271 return btn;
8272
8273 }
8274
8275 // Card Oferta
8276
8277 let result = `
8278 <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
8279
8280 <div class="ssp-card-oferta-curso">
8281
8282 <div class="content-data-dias">
8283
8284 <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none">
8285 <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>
8286 </div>
8287
8288
8289 <div>
8290 <small class="ssp-card-oferta-curso__title-item">Período:</small>
8291 <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6>
8292 </div>
8293
8294 <div class="content-horario-dias-semana">
8295
8296 <div class="horario">
8297 <small class="ssp-card-oferta-curso__title-item">Horário e dias das aulas:</small>
8298 </div> ` +
8299
8300 `<div class="ssp-card-oferta-curso__dia-hora_content">
8301 ` + diasSemanaHTML + `
8302 </div>
8303
8304 </div>
8305
8306 ` + btnLocalReal(oferta);
8307
8308 result = result + `
8309 </div>
8310 `
8311
8312 //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
8313 //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498
8314 const estaSemValorOferta = oferta.botaoCompraOferta == ''
8315 || oferta.botaoCompraOferta == 'false'
8316 || !oferta.precoVendaOferta
8317 || !oferta.precoCheioOferta
8318 || !oferta.precoVendaMaxParcelaOferta
8319 || strToFloat(oferta.precoVendaOferta) == 0
8320 || strToFloat(oferta.precoCheioOferta) == 0
8321 || strToFloat(oferta.precoVendaMaxParcelaOferta) == 0
8322
8323 //Trecho inicial do Bolsa de estudo
8324 result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `">
8325 <div class="ssp-card-oferta__info-turma-content">
8326 <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6>
8327 </div>
8328 <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>
8329 </div>
8330 `
8331
8332 if(estaSemValorOferta) {
8333 result = result + `
8334 <div class="content-buttons hide">
8335 </div>
8336 `
8337 return result;
8338 }
8339
8340
8341 //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra"
8342 result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `">
8343 <div class="ou-separator-desconto">Ou</div>
8344 <button type="button" class="btn-show-price">
8345 <p>Saiba mais sobre:</p>
8346 <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')">
8347 <i class="fas fa-money-bill"></i>
8348 <span>Valores para compra</span>
8349 </div>
8350 </button>
8351 </div>
8352 `
8353
8354 result = result + `
8355 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
8356 `
8357
8358 if( temDesconto && !ehCursoTrampolim ) {
8359 result = result + `
8360 <div class="ssp-card-oferta__info-turma-content">
8361 <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6>
8362 </div>
8363
8364 <div class="block-valor-desconto">
8365
8366 <div class="tag-label-desconto">
8367 <small class="ssp-card-oferta-curso__title-item">Valor com </small>
8368 <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span>
8369 </div>
8370
8371 <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>
8372
8373 <div class="ssp-card-oferta-curso__desconto-content">
8374 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p>
8375 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p>
8376 </div>
8377 `
8378
8379 if($('[name="tipoCurso"]').val() == 'extensao') {
8380 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>`
8381 } else {
8382 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>`
8383 }
8384
8385 result = result + `
8386 <div class="ou-separator-desconto">Ou</div>
8387
8388 <div class="block-valor-total">
8389
8390 <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small>
8391
8392 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8393
8394 <div class="ssp-card-oferta-curso__desconto-content">
8395 <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p>
8396 </div>
8397
8398 </div>
8399 `
8400 }else{
8401
8402 // itens que são diferentes entre técnico e livres comprado a extensão
8403 if($('[name="tipoCurso"]').val() == 'extensao'){
8404 result = result + `
8405
8406 <div class="block-valor-total">
8407
8408 <div class="investimento" id="container_investimento_` + index + `">
8409
8410 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8411
8412 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6>
8413
8414 <div class="ssp-card-oferta-curso__desconto-content">
8415 <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p>
8416 </div>
8417
8418 </div>
8419
8420 </div>
8421 `
8422 } else {
8423 result = result + `
8424 <div class="block-valor-total">
8425 <div class="investimento" id="container_investimento_` + index + `">
8426 `
8427
8428 // Não mostrar mensagem de 30% de desconto em casos especificos
8429 if(temDesconto){
8430 result = result + `
8431 <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small>
8432 `
8433 }
8434
8435 if(oferta.precoCheioOferta == oferta.precoVendaOferta) {
8436 result = result + `
8437 <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small>
8438 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8439
8440 <div class="ssp-card-oferta-curso__desconto-content">
8441 <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8442 </div>
8443 </div>
8444 </div>
8445 `
8446 } else {
8447 result = result + `
8448 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8449 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8450
8451 <div class="ssp-card-oferta-curso__desconto-content">
8452 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p>
8453 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8454 </div>
8455 </div>
8456 </div>
8457 `
8458 }
8459 }
8460 }
8461
8462 let dataBtnComprar = getObjBtnComprar(oferta);
8463
8464 // itens que são diferentes entre técnico e livres comprado a extensão
8465 result = result + `
8466
8467 <div class="ssp-card-oferta-curso__formas-pagamento-content" id="container_forma_pgto_` + index + `">
8468
8469 <span>Saiba mais sobre:</span>
8470
8471 <div>
8472 <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i>
8473 <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>
8474 </div>
8475
8476 </div>
8477
8478 <div class="content-buttons">
8479
8480 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
8481
8482 <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>
8483
8484 </div>
8485
8486 </div>
8487
8488 </div>
8489
8490 </div>
8491 `
8492
8493 return result
8494 }
8495
8496 var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">'
8497 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">'
8498 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">'
8499
8500 htmlModalLocalRealizacao += '{tituloLocalRealizacao}'
8501
8502 htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8503 htmlModalLocalRealizacao += '</div>'
8504 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">'
8505 htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8506 htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8507 htmlModalLocalRealizacao += '<address>'
8508 htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8509 htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8510 htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8511 htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8512 htmlModalLocalRealizacao += '</address>'
8513 htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8514 htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>'
8515 htmlModalLocalRealizacao +='</div>'
8516 htmlModalLocalRealizacao +='</div>'
8517 htmlModalLocalRealizacao +='</div>'
8518 htmlModalLocalRealizacao +='</div>';
8519
8520 var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">'
8521 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">'
8522 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">'
8523 htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>'
8524 htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8525 htmlModalAntesCompra += '</div>'
8526 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">'
8527 htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8528 htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8529 htmlModalAntesCompra += '<address>'
8530 htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8531 htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8532 htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8533 htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8534 htmlModalAntesCompra += '</address>'
8535 htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8536 htmlModalAntesCompra += '{componentBuyConfirmation}'
8537 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>'
8538 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>'
8539 htmlModalAntesCompra +='</div>'
8540 htmlModalAntesCompra +='</div>'
8541 htmlModalAntesCompra +='</div>'
8542 htmlModalAntesCompra +='</div>';
8543
8544 var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">'
8545 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'
8546 htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>'
8547 htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>'
8548 htmlSlickAreaDiasSemana += '</p>'
8549 htmlSlickAreaDiasSemana += '</div>';
8550
8551
8552 //Montar object push - google tag manager - 5
8553 function criaItensEcommerce(ofertas){
8554
8555 let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome
8556
8557 let dadosCurso = {
8558 //Pegar do freemarker
8559 tituloComercial : $('[name="tituloComercial"]').val(),
8560 tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(),
8561 formato : $('[name="formato"]').data("formato")
8562 }
8563
8564 let ecommerceObject = {
8565
8566 item_id: "", //codOferta - oferta,
8567 item_name: "", //Nome do curso - curso,
8568 affiliation: "", //nome da unidade - oferta,
8569 currency: "BRL", //Moeda - "BRL",
8570 discount: "", //desconto - oferta,
8571 index: "", //indice da lista - i,
8572 item_brand: "Senac SP", //"Senac SP",
8573 item_category: "", //categoria do curso - curso,
8574 item_list_id: "", //"60",
8575 item_list_name: "", //"São Carlos" - Oferta,
8576 item_variant: "", //modalidade - curso,
8577 price: "", //preco cheio - oferta,
8578 quantity: 1
8579
8580 }
8581
8582 let itensEcommerce = new Map();
8583
8584 for(var i = 0; i < ofertas.length; i++){
8585
8586 itensEcommerce.set(ofertas[i].codigoOferta, {
8587
8588 item_id: ofertas[i].codigoOferta, //codOferta - oferta,
8589 item_name: dadosCurso.tituloComercial, //Nome do curso - curso,
8590 affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta,
8591 currency: "BRL", //Moeda - "BRL",
8592 discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta,
8593 index: i, //indice da lista - i,
8594 item_brand: "Senac SP", //"Senac SP",
8595 item_category: dadosCurso.tipoCurso, //categoria do curso - curso,
8596 item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60",
8597 item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta,
8598 item_variant: dadosCurso.formato, //modalidade - curso,
8599 price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta,
8600 quantity: 1
8601
8602 }
8603 )
8604 }
8605
8606 return itensEcommerce;
8607 }
8608
8609 //EMED - ELEMENTOS DINAMICOS
8610 const htmlSlickAreaEmed = function(oferta){
8611 var btnid = 'myBtn_' + oferta.indice;
8612 const diasHorarios = function(oferta){
8613 return oferta.diasDaSemanaOferta.join(', ').toLowerCase();
8614
8615 }
8616
8617
8618 return `
8619 <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `">
8620
8621 <div class="ssp-ofertas-emed__card-info-turma">
8622
8623 <div class="item-content">
8624 <i class="fas fa-calendar-alt calendar-icon-turma"></i>
8625 <p class="title-turma">`+ oferta.titulo +`</p>
8626 <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span>
8627 </div>
8628
8629 <div class="content-previsao-inicio-termino">
8630
8631 <div class="item-content">
8632 <span class="text-default">Previsão de início:</span>
8633 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span>
8634 </div>
8635
8636 <div class="item-divisor"></div>
8637
8638 <div class="item-content">
8639 <span class="text-default">Previsão de término:</span>
8640 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span>
8641 </div>
8642
8643 </div>
8644
8645
8646 <div class="item-divisor"></div>
8647
8648 <div class="item-content">
8649 <span class="text-default">Dias e horários das aulas:</span>
8650 <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span>
8651 <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span>
8652 </div>
8653
8654 </div>
8655
8656 <div class="ssp-ofertas-emed__card-info-investimento">
8657 <p class="title-investimento">Investimento anual:</p>
8658
8659 <div class="item-content-investimento">
8660 <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span>
8661 <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span>
8662 </div>
8663
8664 <div class="item-content-investimento">
8665 <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p>
8666 </div>
8667
8668 <div class="item-content-investimento">
8669 <i class="fas fa-credit-card icon-cartao-credito"></i>
8670 <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a>
8671 </div>
8672
8673 </div>
8674
8675 </div>
8676
8677 `;
8678 }
8679
8680
8681 function loadCursosVocePodeGostar(){
8682
8683 if(isEmed){
8684 var url = urlSearchCursosPodeGostarEmed
8685 .replace('\{groupId\}', groupId)
8686 .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val())
8687 .replace('\{limit\}', 12)
8688 .replace('\{articleId\}', $('[name="articleId"]').val());
8689 }else{
8690 var url = urlSearchCursosPodeGostar
8691 .replace('\{companyId\}',themeDisplay.getCompanyId())
8692 .replace('\{groupId\}', groupId)
8693 .replace('\{userId\}',themeDisplay.getUserId())
8694 .replace('\{articleId\}',$('[name="articleId"]').val())
8695 .replace('\{limit\}', 12);
8696 }
8697
8698
8699 $.ajax({
8700 url : url,
8701 type : 'get',
8702 beforeSend: function(){
8703 loading('#slider-curso');
8704 }
8705 })
8706 .done(function(cursos){
8707
8708 if(cursos.length > 0){
8709
8710 cursos = JSON.parse(cursos);
8711
8712 if(isEmed) cursos = cursos['cursos'];
8713
8714 if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none');
8715 else {
8716 $('#section-cursos-voce-pode-gostar').addClass('d-none');
8717 return;
8718 }
8719
8720 var articles = [];
8721
8722 $.each(cursos, function(k, c){
8723 articles.push(c.articleId);
8724 });
8725
8726 //Verifica a situação dos botoes de inscrições e bolsa
8727 $.ajax({
8728 url : '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','),
8729 type : 'get'
8730 })
8731 .done(function(infoBotoes){
8732
8733 if(infoBotoes.length > 0) {
8734
8735 infoBotoes = JSON.parse(infoBotoes);
8736
8737 $('#slider-curso').empty();
8738
8739 $.each(cursos, function(k, c){
8740 $('#slider-curso').append(buildCardCurso(c, infoBotoes));
8741
8742 });
8743
8744 $('#slider-curso').addClass(
8745 'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar');
8746
8747 sliderCurso('.slick-area-cursos-pode-gostar');
8748 }
8749 });
8750 }
8751
8752 })
8753 .fail(function(jqXHR, textStatus, msg){
8754 // alert(msg);
8755 });
8756
8757 }
8758
8759 /*
8760 * Armazena a navegação em cookies, se habilitado
8761 */
8762 $(document).on("click", ".ck-curso", function() {
8763
8764 //Verifica se o cookie está habilitado
8765 if(getCookie('portalSenacCookie') != null){
8766
8767 var articleId = $(this).data('ck');
8768 manageCookieArray('ck-cursos', articleId);
8769
8770 }
8771
8772 });
8773
8774
8775
8776
8777
8778 $(function(){
8779
8780 if($('#unidades-ofertas').find('option').length ==0){
8781
8782 $('.ssp-container-selecione-unidade').addClass('d-none')
8783
8784 }
8785
8786 });
8787
8788 function avisoNovasTurmas(){
8789
8790
8791 window.event.preventDefault()
8792
8793 //var unidadeSelecionada = $('#select-registro-interesse').val();
8794 //este select tem 2 valores separados por @ -> categoryId@codUnidade
8795 // var unidadeSelecionada = $('#unidades-ofertas').val();
8796
8797 //Código fixo quando Senac Ao Vivo
8798 var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8799
8800 // if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){
8801
8802 //Se ja tiver logado , redireciona para o registro
8803 if(getCookie('ticket') == null){
8804
8805 //Abre modal login
8806 $('#modal-login').removeClass('d-none');
8807
8808 }else{
8809
8810 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8811
8812 verificaBtnEnviarRegistroInteresseAtivo();
8813 }
8814
8815 window.onclick = function(event) {
8816 $('[id="modal-registro-interesse"]').each(function(index,_modal){
8817 if (event.target == _modal) {
8818 $('#modal-registro-interesse').addClass('d-none');
8819 $("body").removeClass("overflow-hidden")
8820 }
8821 });
8822 }
8823
8824 // }
8825 }
8826 function login(){
8827 var unidadeSelecionada
8828 var codUnidadeSelectRegInt
8829 doLogin({
8830 user: $('#login-email-modal').val(),
8831 pass: $('#login-password-modal').val(),
8832 btnLoadingSelector: '#btnLogin',
8833 before: () => {
8834 $('#mensagem-erro-login').addClass('d-none')
8835
8836 unidadeSelecionada = $('#unidades-ofertas').val();
8837 codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8838 },
8839 done: (data) => {
8840 var loginData = JSON.parse(data);
8841
8842 if(loginData.status == 200 || loginData.status == 201){
8843 //Após logar-se, exibe o modal p/registro de interesse
8844 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8845 verificaBtnEnviarRegistroInteresseAtivo();
8846 //esconde o modal de login
8847 $('#modal-login').addClass('d-none');
8848 }
8849 },
8850 errorMessageSelector: '#mensagem-erro-login',
8851 error: (err) => console.error(err)
8852 })
8853 }
8854
8855 function registroSelecionaTodosDias(){
8856
8857 if($(this).hasClass('ssp-week-day-active')){
8858 $(this).removeClass('ssp-week-day-active')
8859 $('.ssp-week-day').removeClass('ssp-week-day-active')
8860 }else{
8861 $(this).addClass('ssp-week-day-active')
8862 $('.ssp-week-day').addClass('ssp-week-day-active')
8863 }
8864
8865 verificaBtnEnviarRegistroInteresseAtivo();
8866 }
8867
8868 function registroSelecionaTodosPeriodos(){
8869
8870 if($(this).is(':checked')){
8871 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true);
8872 }else{
8873 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false);
8874 }
8875
8876 verificaBtnEnviarRegistroInteresseAtivo();
8877 }
8878 $('.turmas-registro-interesse input[type=checkbox]').on('click', function() {
8879 var $selecionado = $(this);
8880 if ($selecionado.is(":checked")) {
8881 $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false);
8882 $selecionado.prop("checked", true);
8883 } else {
8884 $selecionado.prop("checked", false);
8885 }
8886});
8887 function enviarRegistroInteresse(){
8888
8889 const codigoUsr = getCookie('codigo');
8890
8891 if(codigoUsr == null){
8892 //Sem o cookie refaz o login
8893 $('#modal-registro-interesse').addClass('d-none');
8894 $('body').removeClass('overflow-hidden');
8895 $('#modal-login').removeClass('d-none');
8896 return;
8897 }
8898
8899 var codigoFT = $('[name="codigoFT"]').val();
8900
8901 var unidades = new Set();
8902
8903 var diasSemana = '';
8904
8905 //Senac ao vivo nao tem opçao de dias da semana nem unidades
8906 if(isAoVivo){
8907 unidades.add(codUnidadeSenacAoVivo);
8908 }else{
8909 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
8910 if($(this).hasClass('ssp-week-day-active')){
8911 diasSemana += $(this).text()+',';
8912 }
8913 });
8914
8915 if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1);
8916
8917 $.each($('.ssp-card-registro-interesse__select'), function(k,item){
8918
8919 unidades.add(item.value);
8920 });
8921 }
8922
8923
8924 var periodos = '';
8925
8926 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
8927 if($(this).is(':checked')){
8928 periodos += $(this).val()+',';
8929 }
8930 });
8931
8932 var turmas = '';
8933
8934 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) {
8935 if ($(this).is(':checked')) {
8936 turmas += $(this).val() + ',';
8937 }
8938 });
8939
8940 if (periodos.length > 0) periodos = periodos.slice(0, -1);
8941 if (turmas.length > 0) turmas = turmas.slice(0, -1);
8942
8943 var usuarioNotificado = false;
8944
8945 loadingSubmitButton('#enviar-registro-interesse-btn');
8946
8947 unidades.forEach(function(codigoUnidade) {
8948 var data = {
8949 codigoFT: codigoFT,
8950 codigo: codigoUsr,
8951 diasSemana: diasSemana,
8952 periodos: periodos,
8953 turmas, turmas,
8954 codigoUnidade: codigoUnidade,
8955 interesseBolsa: 'N',
8956 isEmed: isEmed ? 'S' : 'N'
8957 };
8958
8959 const url = urlRegistroInteresse;
8960
8961 $.ajax({
8962 url: url,
8963 method: 'POST',
8964 data: JSON.stringify(data),
8965 headers: {
8966 'Accept': 'application/json',
8967 'Content-Type': 'application/json'
8968 },
8969 }).done(
8970 function(retornoData) {
8971
8972 var retornoData = JSON.stringify(retornoData);
8973
8974 if (retornoData.length > 0) {
8975
8976 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
8977
8978 var retorno = JSON.parse(retornoData);
8979
8980 if (retorno.status == 200 || retorno.status == 201) {
8981
8982 //Evita que o usuário recebe um email para cada unidade de interesse
8983 if(usuarioNotificado) return;
8984
8985 //Mensagem de sucesso registro interesse
8986 $('#modal-registro-interesse-sucesso').removeClass('d-none');
8987
8988 var prefixUrl = themeDisplay.getLayoutRelativeURL();
8989
8990 if (prefixUrl.indexOf('staging/') > 1)
8991 prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8);
8992 else
8993 prefixUrl = HOST;
8994
8995 $('#btn-voltar-home').attr('href', prefixUrl);
8996
8997 //Busca os dados do nome do usuário logado
8998 var username = getCookie('name').split(' ')[0];
8999
9000 //Prioridade para nomeSocial
9001 if (getCookie('nome_social') != null) {
9002 var nomeSocial = getCookie('nome_social').replace(/['"]+/g, '');
9003
9004 if (nomeSocial.length > 0) username = getCookie('nome_social');
9005
9006 }
9007
9008 username = username.replace(/['"]+/g, '');
9009
9010 var unidadesSel = getUnidadesSelecionadasRI();
9011
9012 //Disara um email para o usuário interessado
9013 var data = {
9014 emailInteressado: getCookie('email'),
9015 nomeInteressado: username,
9016 tituloCurso: $('.ssp-card-detalhe-curso__title').text(),
9017 unidades: unidadesSel.unidades,
9018 unidadesPrefix: unidadesSel.unidadesPrefix
9019 };
9020
9021 $.ajax({
9022 url: urlRegistroInteresseEmailInteressado,
9023 method: 'POST',
9024 data: JSON.stringify(data),
9025 headers: {
9026 'Accept': 'application/json',
9027 'Content-Type': 'application/json'
9028 },
9029 }).done(function(retornoData) {});
9030
9031 usuarioNotificado = true;
9032
9033 window.onclick = function(event) {
9034 $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) {
9035 if (event.target == _modal){
9036 $('#modal-registro-interesse-sucesso').addClass('d-none');
9037 $('#modal-registro-interesse').addClass('d-none');
9038 $("body").removeClass("overflow-hidden");
9039 }
9040 });
9041 }
9042
9043 } else {
9044 //Mensagem de erro registro interesse
9045 $('#modal-registro-interesse-erro').removeClass('d-none');
9046 }
9047 } else {
9048 //Mensagem de erro registro interesse
9049 $('#modal-registro-interesse-erro').removeClass('d-none');
9050 }
9051 }).fail(function(){
9052 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9053 $('#modal-registro-interesse-erro').removeClass('d-none');
9054 });
9055 });
9056 }
9057
9058 function verificaBtnEnviarRegistroInteresseAtivo(){
9059
9060 var diasSemanaSelecionado = false;
9061 var periodoSelecionado = false;
9062 var turmaSelecionada = false;
9063 var politicaPrivacidadeSelecionado = false;
9064
9065
9066 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9067 if($(this).is(':checked'))
9068 periodoSelecionado = true;
9069 });
9070
9071 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9072 if($(this).is(':checked'))
9073 turmaSelecionada = true;
9074 });
9075
9076 if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true;
9077
9078 var ativo = true
9079
9080 //Caso tenha algum dos selects de unidade sem uma opção válida selecionada
9081 if(!isAoVivo)
9082 ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length
9083
9084 ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado;
9085
9086 if(!isAoVivo && !isEmed){
9087
9088 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
9089 if($(this).hasClass('ssp-week-day-active'))
9090 diasSemanaSelecionado = true;
9091 });
9092 ativo = ativo && diasSemanaSelecionado;
9093
9094 }
9095
9096 if(isEmed)
9097 ativo = ativo && turmaSelecionada;
9098
9099 if(ativo)
9100 $('#enviar-registro-interesse-btn').attr("disabled", false);
9101 else
9102 $('#enviar-registro-interesse-btn').attr("disabled", true);
9103 }
9104
9105 function loadPlanoCurso(){
9106
9107 const urlGetPlanoCurso = urlPlanoCurso
9108
9109 .replace('\{codigoFT\}', $('[name="codigoFT"]').val())
9110 .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val());
9111
9112 $.ajax({
9113 url:urlGetPlanoCurso,
9114 method:'get',
9115 crossDomain: true,
9116 dataType: 'html',
9117 success: function( data ) {
9118
9119
9120 //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto)
9121 $('#plano-curso').append('<br/>'+data);
9122 },
9123 error: function(data){
9124
9125 console.log('Não existe a URL do plano de curso');
9126
9127 }
9128
9129 });
9130 }
9131
9132 function checkCursoTrampolim(){
9133 return $('[name="codigoFT"]').val() == "24493";
9134 }
9135
9136 /*function verificaOfertaValida(oferta){
9137
9138 if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta'] == '')
9139 return false;
9140
9141 var atual = new Date();
9142
9143 var dataOfertaPartes = oferta['dataInicio'].split('/');
9144
9145 var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]);
9146
9147 var dataLimiteMatriculaOfertaPartes = "";
9148 var dataLimiteMatriculaOferta = "";
9149
9150 if(oferta['dtLimiteMatricula'] != ""){
9151 dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-');
9152 dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());
9153
9154 }
9155
9156
9157 //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje
9158 if(dataOferta <= atual)
9159 if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" && atual.getTime() > dataLimiteMatriculaOferta.getTime()))
9160 return false;
9161
9162 return true;
9163 }*/
9164
9165
9166 function loadServerDate(){
9167
9168 $.ajax({
9169 url:urlGetServerT,
9170 method:'get',
9171 dataType: 'json',
9172 cache: 'false',
9173 headers: {
9174 'Cache-Control': 'no-store, no-cache, max-age=0',
9175 'Expires': '0',
9176 'Pragma': 'no-cache'
9177 },
9178 success: function( data ) {
9179 todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds);
9180 startTimer();
9181 }
9182 });
9183
9184 }
9185
9186 function handleVisibilityChange() {
9187
9188 if (!document[hidden] ){
9189 restartTimer();
9190 }
9191
9192 }
9193
9194 function restartTimer(){
9195
9196 if(restartTimeout == null){
9197 loadServerDate();
9198 restartTimeout = setTimeout(function(){
9199 restartTimeout = null;
9200 }, 5000);
9201 }
9202
9203 }
9204
9205 function startTimer(){
9206
9207 var mSeconds = todayG.getTime();
9208 if(interval01 != null){
9209 clearInterval(interval01);
9210 }
9211 interval01 = setInterval(function(){
9212 todayG.setTime(todayG.getTime() + 1000);
9213 }, 1000);
9214
9215 if(interval15 != null){
9216 clearInterval(interval15);
9217 }
9218 interval15 = setInterval(function(){
9219 mSeconds = mSeconds + 15000;
9220 todayG.setTime(mSeconds);
9221 }, 15000);
9222
9223 }
9224
9225 function checkIsAoVivo(){
9226 isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp;
9227 }
9228
9229
9230 //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta
9231 function buscaProximaOferta(){
9232 //Zera variável que controla existência de ofertas com bolsa
9233 //ofertasComBolsa = false;
9234
9235 //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas
9236 if(carregouUltimaOferta)
9237 return;
9238
9239 //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.
9240 var totalOfertasSlick = $('#turmas-container .slick-area__item').length;
9241 //Pegamos o índice da oferta do meio (central)
9242 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9243
9244 var totalOfertasADireita = totalOfertasSlick - currentSliderIndex;
9245
9246 //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca
9247 if(totalOfertasADireita > 2)
9248 return;
9249
9250 startOfertaParam = endOfertaParam;
9251 endOfertaParam += 16;
9252
9253 const codigoFT = $('[name="codigoFT"]').val();
9254 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
9255
9256 var unidadeCategoryId = '';
9257 var unidadeCodigoSelect = '';
9258
9259 if(isAoVivo){
9260
9261 $.each(objsTela.unidades, function(k,unidade){
9262 unidadeCategoryId += unidade['categoryId']+',';
9263 });
9264
9265 //tirando ultima virgula
9266 unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1);
9267
9268 }else{
9269 var splitted = $('#unidades-ofertas').val().split("@");
9270 unidadeCategoryId = splitted[0];
9271 unidadeCodigoSelect = splitted[1];
9272 }
9273
9274 var params = new URLSearchParams();
9275 params.set('codigoFTOferta',codigoFT)
9276 params.set('dataEfetivaOferta',dataEfetivaOferta)
9277 params.set('categoryIds',unidadeCategoryId)
9278 params.set('start',startOfertaParam)
9279 params.set('end',endOfertaParam)
9280 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
9281 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
9282 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
9283
9284 if($('#chkBolsa').prop('checked')){
9285 params.set('considerarDataBolsaFutura', true)
9286 }
9287
9288 const url = urlSearchOferta + '?' + params.toString()
9289
9290 $.ajax({
9291 url:url,
9292 method:'get',
9293 dataType:'json'
9294 }).done(
9295 function(data){
9296
9297 if(data.length > 0){
9298 var indiceOferta = startOfertaParam;
9299
9300 for (var index = 0; index < data.length; index++) {
9301
9302 var ofertaJSON = data[index];
9303 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
9304
9305 //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta)
9306 if($('.codigoOferta_'+oferta.codigoOferta).length > 0){
9307 console.log('Ja tem a oferta '+oferta.codigoOferta);
9308 carregouUltimaOferta = true;
9309 break;
9310 }
9311
9312 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
9313 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
9314
9315 ofertasMap.set(oferta.codigoOferta, oferta);
9316
9317 if(isAoVivo)
9318 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
9319
9320 //O indice é igual ao ultimo elemento buscado - 1
9321 var i = indiceOferta;
9322 oferta['indice'] = i;
9323
9324 if(isAoVivo)
9325 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
9326 else codigoUnidade = unidadeCodigoSelect;
9327
9328
9329 montaHTMLOferta(oferta, i, codigoUnidade, true);
9330 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
9331
9332 montaHTMLModalLocalRealizacao(oferta, i);
9333 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
9334 verificaBotaoBolsaSS(oferta);
9335 verificaCursoAprendizagem(i);
9336 verificaCursoTrampolim(i);
9337
9338 associaEventoBtnFormaPagamento(i);
9339 associaEventoBtnComprar(i);
9340 associaEventoBtnComprarDentroFormaPgto(i);
9341 associaEventoBtnLocalRealizacao(i);
9342 associaEventosFecharModal(i);
9343
9344 if($('[name="tipoCurso"]').val() == 'extensao'){
9345 associaEventoBtnConheca(i);
9346 associaEventoBtnComprarConhecaDescontoOk(i);
9347 associaEventoBtnComprarConhecaDescontoNot(i);
9348 associaEventoBtnAlunoNao(i);
9349 associaEventoBtnAlunoSim(i);
9350
9351 }
9352
9353 indiceOferta++;
9354 }
9355
9356 controlaPaginaBolsa();
9357 }
9358 }
9359 );
9360
9361 }
9362
9363 function setUrlParam(key, value) {
9364 const url = new URL(window.location.href)
9365
9366 if(value)
9367 url.searchParams.set(key, value);
9368 else
9369 url.searchParams.delete(key);
9370
9371 window.history.pushState({}, '', url.toString())
9372 }
9373
9374 function selectFilter(paramkey, el) {
9375 setUrlParam(paramkey, el.prop("checked"))
9376 const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url')
9377 loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val())
9378
9379 if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show()
9380 else $('#msgFiltroAplicado').hide()
9381 }
9382
9383 function defineCurrentUrl(ev) {
9384 const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url')
9385
9386 const hasPathWeb = window.location.pathname.includes('/web')
9387 const hasPathGuest = window.location.pathname.includes('/guest')
9388
9389 let currentPath = window.location.pathname
9390 currentPath = hasPathWeb ? currentPath.substring(4) : currentPath
9391 currentPath = hasPathGuest ? currentPath.substring(6) : currentPath
9392
9393 objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, ''))
9394
9395 currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath
9396 currentPath = hasPathGuest ? '/guest' + currentPath : currentPath
9397 currentPath = hasPathWeb ? '/web' + currentPath : currentPath
9398
9399 if(keepURL())
9400 window.history.replaceState(window.history.state, '', currentPath + window.location.search)
9401 }
9402
9403 let isKeepURL = true
9404 /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */
9405 function keepURL() {
9406 const aux = isKeepURL
9407 isKeepURL = false
9408 return !aux
9409 }
9410
9411 loadServerDate();
9412 $(document).ready(function(){
9413
9414 if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){
9415 document.location.href = '/erro-404'
9416 }
9417
9418 ehCursoTrampolim = checkCursoTrampolim();
9419 checkIsAoVivo();
9420 loadPlanoCurso();
9421 loadCursosVocePodeGostar();
9422
9423 if(!isAoVivo) {
9424 $('#unidades-ofertas').change(ev => {
9425 mudarUnidade(ev)
9426 defineCurrentUrl(ev)
9427 });
9428 }
9429
9430 const urlParams = new URLSearchParams(window.location.search)
9431 $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true')
9432 $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) )
9433
9434 if($('#chkBolsa').length) {
9435 $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true')
9436 $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) )
9437 loadUnidades(!isAoVivo);
9438 } else {
9439 selectFilter('bolsa', $('#chkBolsa'))
9440 }
9441
9442 //Função para Montar breadcrumb Mobile
9443
9444 function breadcrumbMobile(){
9445
9446 const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');
9447
9448 if ( $.trim(linkEl.html()) === 'Técnico'){
9449
9450 linkEl.attr("href", "/cursos-tecnicos");
9451
9452 } else if ( $.trim(linkEl.html()) === 'Livre'){
9453
9454 if(isAoVivo){
9455 linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo')
9456 linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo");
9457 }else{
9458 linkEl.attr("href", "/cursos-livres");
9459 }
9460 } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){
9461
9462 linkEl.attr("href", "/jovem-aprendiz");
9463
9464 }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){
9465
9466 linkEl.attr("href", "/extensao-universitaria");
9467
9468 }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){
9469
9470 linkEl.attr("href", "/ensino-medio-tecnico");
9471 }
9472
9473 }
9474
9475 breadcrumbMobile()
9476
9477 //Esconde elementos quando o curso é aprendizagem
9478 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
9479 $('.ssp-section-novas-turmas').remove();
9480 $("div[class^='botoes-oferta-container_']").remove();
9481 }
9482
9483 //retira os itens de dentro do container
9484 $('.bg-').css('background-color','#e4e4e4')
9485 $('.container.py-3').removeClass('container py-3')
9486 //ajuste para versao 7.4
9487 $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass()
9488
9489
9490 //Fecha modal registro de interesse
9491
9492 $('#btn-close-Modal-registro-interesse').click(function(){
9493
9494 $('#modal-registro-interesse').addClass('d-none')
9495 $("body").removeClass("overflow-hidden")
9496
9497 })
9498
9499 $( "#modal-registro-interesse" ).click( function(event) {
9500
9501 if(event.target.id==$('#modal-registro-interesse')[0].id){
9502 $(this).addClass('d-none')
9503 }
9504
9505 });
9506
9507
9508 //Aviso sobre interesse em turmas
9509 $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse);
9510 if(!isEmed){
9511 $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas);
9512 $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias);
9513 } else {
9514 $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas)
9515 }
9516 $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos);
9517
9518 $('#btnLogin').click(function(){
9519
9520 login()
9521
9522 });
9523
9524 $('#btn-close-loginModal').click(function(){
9525 $('#modal-login').addClass('d-none')
9526 });
9527
9528 $('.ssp-week-day').not('#todosDias').click(function(){
9529
9530 $(this).toggleClass('ssp-week-day-active');
9531 verificaBtnEnviarRegistroInteresseAtivo();
9532
9533 });
9534
9535 $('#add-unidade-regsitro-interesse').click(function(e){
9536 var element = $('.ssp-card-registro-interesse__select.unidades').first().clone();
9537 element.empty();
9538 element.append('<option value="" disabled selected>Selecione uma unidade</option>')
9539 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9540
9541 if(!unidade['selecionado']){
9542 element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9543 }
9544
9545 });
9546 element.change(changeSelectUnidades)
9547
9548
9549 element.css('margin-top', '10px');
9550
9551 if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9552 element.attr("id", "select_" + cntSelectUnidades++)
9553 $('#select-unidades-registro-interesse').append(element);
9554 }
9555
9556 if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){
9557 $('#add-unidade-regsitro-interesse').addClass("d-none")
9558 }
9559
9560 verificaBtnEnviarRegistroInteresseAtivo();
9561 });
9562
9563 $('#remove-unidade-regsitro-interesse').click(function(e){
9564
9565 if($('.ssp-card-registro-interesse__select').length > 1){
9566
9567 var element = $('.ssp-card-registro-interesse__select').last();
9568
9569 var valueSelecionado = element.val();
9570
9571 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9572
9573 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9574 unidade['selecionado'] = false;
9575 unidade['selectSelecionado'] = "";
9576 }
9577
9578 });
9579 element.val("");
9580 cntSelectUnidades--;
9581 element.change()
9582
9583 element.remove();
9584 }
9585
9586 if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9587 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9588 }
9589
9590 verificaBtnEnviarRegistroInteresseAtivo();
9591 })
9592
9593 $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){
9594 verificaBtnEnviarRegistroInteresseAtivo();
9595 });
9596
9597 //Contador em ofertas de bolsas proximas
9598 var cancel = setInterval(atualizaTempoAberturasBolsas, 1000);
9599
9600 // Manipua o breadcrumb para as regras do Senac
9601
9602 if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai")
9603 $('ol.breadcrumb').find('li:first').remove();
9604
9605 var li = $('ol.breadcrumb').find('li:first');
9606
9607 if(li.text().trim() == 'Cursos'){
9608
9609 var primeiro = li.clone();
9610 primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home'));
9611 li.parent().prepend(primeiro);
9612
9613 var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim();
9614 var tipoBreadcrumb = '';
9615
9616 const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead"))
9617
9618 if(tipoCurso.includes("Cursos Livres")){
9619 if(isPresencialEad) {
9620 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso);
9621 } else {
9622 tipoBreadcrumb = htmlBreadcrumb(
9623 isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',
9624 isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso);
9625 }
9626 }else if(tipoCurso.includes("Extensão")){
9627 if(isPresencialEad) {
9628 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso);
9629 } else {
9630 tipoBreadcrumb = htmlBreadcrumb('/extensao-universitaria', tipoCurso);
9631 }
9632 }else if(tipoCurso.includes("Ensino Médio Técnico")){
9633 if(isPresencialEad) {
9634 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso);
9635 } else {
9636 tipoBreadcrumb = htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso);
9637 }
9638 }else if(tipoCurso.includes("Jovem Aprendiz")){
9639 if(isPresencialEad) {
9640 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso);
9641 } else {
9642 tipoBreadcrumb = htmlBreadcrumb('/jovem-aprendiz', tipoCurso);
9643 }
9644 }else{
9645 if(isPresencialEad) {
9646 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso);
9647 } else {
9648 tipoBreadcrumb = htmlBreadcrumb('/cursos-tecnicos', tipoCurso);
9649 }
9650 }
9651
9652 li.html(tipoBreadcrumb);
9653
9654 if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove();
9655
9656 }
9657
9658 $('#turmas-container').on('click', 'a.slick-next', function(e){
9659
9660 e.preventDefault();
9661 buscaProximaOferta();
9662
9663 });
9664
9665 $('#turmas-container').on('click', 'button.slick-dots', function(){
9666
9667
9668
9669 });
9670
9671 $(".next-mobile").on("click",function(e){
9672 e.preventDefault();
9673
9674 acoesMobileSliderOfertas("left");
9675 });
9676
9677 $(".prev-mobile").on("click",function(e){
9678 e.preventDefault();
9679
9680 acoesMobileSliderOfertas("right");
9681 });
9682
9683 //ação de drag do card de ofertas no mobile
9684 $('.oferta-slick-area').on('swipe', function(event, slick, direction){
9685 acoesMobileSliderOfertas(direction);
9686 });
9687
9688 loadAlternadores()
9689 let modalFormAprendizagem = document.querySelector('[data-modal="modal"]')
9690 if(modalFormAprendizagem){
9691 // Create dinamic close buttom form
9692 let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]')
9693
9694 btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem)
9695
9696 }
9697
9698 $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){
9699 openModalFormAprendizagem();
9700 })
9701
9702 });
9703
9704 function htmlBreadcrumb(link, title, display){
9705
9706 return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>';
9707
9708 }
9709
9710 function acoesMobileSliderOfertas(direcao){
9711
9712 if(direcao == "right"){
9713 $("a.slick-prev").click();
9714
9715 if($('.slick-current').attr('data-slick-index') == "0")
9716 $('.prev-mobile').addClass('nextPrevOpacity');
9717
9718 if($(".next-mobile").hasClass('nextPrevOpacity'))
9719 $('.next-mobile').removeClass('nextPrevOpacity');
9720 }
9721
9722
9723 if(direcao == "left"){
9724 $("a.slick-next").click();
9725
9726 if($(".prev-mobile").hasClass('nextPrevOpacity'))
9727 $('.prev-mobile').removeClass('nextPrevOpacity');
9728
9729 if(carregouUltimaOferta){
9730 var totalCardOfertas = $('#turmas-container .slick-area__item').length;
9731 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9732
9733 //o card do meio é o último
9734 if(totalCardOfertas == (currentSliderIndex + 1))
9735 $('.next-mobile').addClass('nextPrevOpacity');
9736 }
9737 }
9738 }
9739
9740 //habilitar/desabilitar registro de interesse
9741 function habilitarRegistroInteresse(habilitar){
9742 var sectionRI = $('#section-registro-interesse')
9743
9744 if(isEmed) {
9745 sectionRI.hide()
9746 return;
9747 }
9748
9749 //Redmine #9309 - sempre irá mostrar
9750 habilitar = true
9751
9752 if(habilitar) sectionRI.show()
9753 else sectionRI.hide()
9754 }
9755
9756 function abrirModalRegistroInteresse(codUnidadeSelect){
9757 $('#modal-registro-interesse').removeClass('d-none');
9758 $("body").addClass("overflow-hidden")
9759 if(!isEmed){
9760 $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text());
9761 } else {
9762 $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar")
9763 $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text());
9764 }
9765
9766 $('.ssp-card-registro-interesse__select:not(#select_0)').remove();
9767 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9768 if(unidade['codigoUnidade'] == codUnidadeSelect){
9769 unidade['selecionado'] = true;
9770 unidade['selectSelecionado'] = 'select_0';
9771 } else {
9772 unidade['selecionado'] = false;
9773 unidade['selectSelecionado'] = "";
9774 }
9775
9776 });
9777 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9778 return ordenar(a, b, 'nome');
9779 });
9780
9781 $('#select_0').empty();
9782 $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>')
9783 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9784
9785 $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9786
9787 });
9788 $('#select_0').val(codUnidadeSelect);
9789
9790 if(isAoVivo){
9791 $('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none');
9792 }
9793 if(objsTela.unidadesRegistroInteresse.length > 1) {
9794 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9795 $('#add-unidade-regsitro-interesse').show()
9796 $('#remove-unidade-regsitro-interesse').show()
9797 } else {
9798 $('#add-unidade-regsitro-interesse').hide()
9799 $('#remove-unidade-regsitro-interesse').hide()
9800 }
9801 }
9802
9803 $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades)
9804
9805 function changeSelectUnidades() {
9806 var codUnidadeSelecionada = $(this).val();
9807 var idSelectSelecionado = $(this).attr('id')
9808 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9809 if(unidade['codigoUnidade'] == codUnidadeSelecionada){
9810 unidade['selecionado'] = true;
9811 unidade['selectSelecionado'] = idSelectSelecionado;
9812 } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){
9813 unidade['selecionado'] = false;
9814 unidade['selectSelecionado'] = "";
9815 }
9816
9817 });
9818
9819 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9820 return ordenar(a, b, 'nome');
9821 });
9822
9823 $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() {
9824 var valueSelecionado = $(this).val();
9825 var idActualSelect = $(this).attr('id');
9826 $(this).empty();
9827 $(this).append('<option value="" disabled>Selecione uma unidade</option>')
9828 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9829
9830 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9831 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9832 }else if(!unidade['selecionado']){
9833 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9834 }
9835
9836 });
9837 $(this).val(valueSelecionado)
9838 });
9839
9840 verificaBtnEnviarRegistroInteresseAtivo();
9841 }
9842
9843
9844 function ordenar(objA, objB, nomeAtributo){
9845 let a = (nomeAtributo) ? objA[nomeAtributo] : objA;
9846 let b = (nomeAtributo) ? objB[nomeAtributo] : objB;
9847
9848 return a.toString().localeCompare(b.toString());
9849 }
9850
9851 function paramOrdem(xml){
9852 if(isEmed){
9853 var ordemPeriodo = ['MA', 'TA', 'NO'];
9854 return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo);
9855 }else{
9856 return xml.find('[name="dataInicioOferta"]').text();
9857 }
9858 }
9859
9860 function getEtapaSelecionadaEmed(){
9861 var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo');
9862 if(!btnEtapa) return '';
9863 return btnEtapa.val();
9864 }
9865
9866 function filtraOfertasEtapa(etapa, ofertas){
9867 if(!etapa) return [];
9868 var ofertasEtapa = [];
9869 var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
9870 var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'};
9871 var ultimoPeriodo = null, indexPeriodo;
9872 ofertas = ofertas.sort(function(a, b){
9873 return ordenar(a, b, 'periodoDiaOferta');
9874 });
9875
9876 $.each(ofertas, async (index, oferta)=> {
9877 if(oferta['etapa'] == etapa){
9878 if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0;
9879 ultimoPeriodo = oferta['periodoDiaOferta'];
9880 oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || '');
9881 ofertasEtapa.push(oferta);
9882 }
9883 });
9884
9885 return ofertasEtapa;
9886 }
9887
9888 function formatarDataEmed(data, etapa, isDataFim){
9889
9890 try{
9891
9892 var splitdata = data.split('/');
9893 var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
9894 var mes = meses[parseInt(splitdata[1])-1];
9895
9896 var ano = splitdata[2];
9897
9898 if(isDataFim){
9899 ano = parseInt(splitdata[2]);
9900 }
9901
9902 return mes + '/' + ano;
9903 }catch(err){
9904 return data;
9905 }
9906
9907 }
9908
9909 //EMED Mobile
9910 function sliderOfertasEmed(){
9911
9912 var tamScreen = $(window).width();
9913 if(tamScreen < 1024){
9914 $('.ssp-slick-ofertas-emed').slick({
9915 slidesToShow: 1,
9916 slidesToScroll: 1,
9917 dots: false,
9918 infinite: false,
9919 adaptiveHeight: true,
9920 prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>',
9921 nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>',
9922 responsive: [
9923
9924 {
9925 breakpoint: 1200,
9926 settings: {
9927 slidesToShow: 1,
9928 slidesToScroll: 1,
9929 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>',
9930 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>',
9931
9932 }
9933 },
9934 {
9935 breakpoint: 768,
9936 settings: {
9937 slidesToShow: 1,
9938 slidesToScroll: 1,
9939 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>',
9940 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>',
9941 }
9942 }
9943
9944 ]
9945
9946 });
9947
9948 }
9949
9950 }
9951
9952function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){
9953
9954 let backpackPostRequest = {};
9955 backpackPostRequest.codOferta = codOferta;
9956 backpackPostRequest.codUnidade = codUnidade;
9957 backpackPostRequest.dt_efetiva = dataEfetiva;
9958
9959
9960 mochila.requestAccess(function(backpackPostRequest){
9961
9962 let urlMochila = '/o/senac-backpack-services/backpack';
9963
9964 if(getCookie("codMochila") != null){
9965 backpackPostRequest.codMochila = getCookie("codMochila");
9966 urlMochila = '/o/senac-backpack-services/updateBackpack';
9967 }
9968 $.ajax({
9969 type: 'POST',
9970 url: urlMochila,
9971 headers: {
9972 "Content-Type":"application/json"
9973 },
9974 beforeSend: function(xhr){
9975 xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila"));
9976 loadingSubmitButton(originElemSelector);
9977 $(originElemSelector + ' .loading-icon-button').css('height', 'unset');
9978 if($(window).width() < 1024){
9979 $(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%');
9980 }
9981 },
9982 data : JSON.stringify(backpackPostRequest)
9983 }).done(function(data) {
9984
9985 let domain = '';
9986 if(getAmbiente() == 'hom' || getAmbiente() == 'prod')
9987 domain = '.sp.senac.br';
9988
9989 writeCookie(
9990 'codMochila',
9991 (getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,
9992 24,
9993 domain
9994 );
9995 addItemSuccessMochila();
9996
9997 }).fail(function(xhr, status, error) {
9998
9999 $('#modal-backpack-error').removeClass('d-none');
10000
10001 }).always(function(){
10002
10003 cleanLoadingSubmitButton(
10004 originElemSelector,
10005 originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR'
10006 );
10007 $('[id^="modalAntesCompra_"]').each(function(index, modal) {
10008 modal.style.display = "none";
10009 });
10010
10011 });
10012
10013 }, backpackPostRequest);
10014
10015}
10016
10017function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){
10018
10019 var comp = null;
10020
10021 if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2"){
10022
10023 comp = $("<button>")
10024 .addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack")
10025 .attr("offerCode",oferta.codigoOferta)
10026 .attr("unitCode",codigoUnidade)
10027 .attr("effectiveDate",dataEfetiva)
10028 .text("OK, desejo comprar");
10029
10030 }else {
10031
10032 comp = $("<a>")
10033 .addClass("btn btn-lg btn-success w-100 mt-3")
10034 .text("OK, desejo comprar")
10035 .attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta))
10036 .attr("target","_blank");
10037 }
10038
10039 comp.attr('id', 'btnCompraLocal_' + oferta.indice);
10040
10041 return comp[0].outerHTML;
10042
10043}
10044
10045function getUnidadesSelecionadasRI(){
10046 var unidadesRI = [];
10047
10048 try{
10049
10050 $('#select-unidades-registro-interesse').find('select').each((i,select) =>{
10051 var unidadeSel = select.selectedOptions[0].innerText;
10052 if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel);
10053 });
10054
10055 var unidadesExt = unidadesRI.join(', ');
10056
10057 const lastIndex = unidadesExt.lastIndexOf(',');
10058
10059 if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1);
10060
10061 return {
10062 'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')),
10063 'unidades' : unidadesExt
10064 };
10065
10066 }catch(err){
10067
10068 return {
10069 'unidadesPrefix' : '',
10070 'unidades' : ''
10071 };
10072
10073 }
10074
10075 }
10076
10077
10078
10079
10080function addItemSuccessMochila(){
10081
10082 mochila.check();
10083 $('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text());
10084 $('#modal-backpack-success').removeClass('d-none');
10085
10086}
10087
10088$(document).on('click', '.btn-backpack', function(e){
10089
10090 addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate"));
10091
10092});
10093
10094$('#btn-voltar-modal-backpack-error').click(function () {
10095 $('#modal-backpack-error').addClass('d-none');
10096});
10097
10098$('#btn-voltar-modal-backpack-error').click(function () {
10099 $('#modal-backpack-error').addClass('d-none');
10100});
10101
10102$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () {
10103 $('#modal-backpack-success').addClass('d-none');
10104});
10105
10106$('.btn-mochila-finalizar-compra-success').click(function () {
10107 // Montar object push - google tag manager - 6
10108 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10109
10110 mochila.verificaLogin();
10111 $('#modal-backpack-success').addClass('d-none');
10112 $('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none");
10113});
10114
10115 function closeModalFormAprendizagem(){
10116 let modal = document.querySelector('[data-modal="modal"]')
10117
10118 modal.classList.remove('open-modal-form')
10119
10120 }
10121
10122
10123 function openModalFormAprendizagem(){
10124 let modal = document.querySelector('[data-modal="modal"]')
10125
10126 modal.classList.add('open-modal-form')
10127
10128 }
10129
10130 function addEventBolsa() {
10131 // Mostra o preco
10132 const btnShowPrices = document.querySelectorAll('.btn-show-price')
10133
10134 btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard))
10135
10136 if(!$('#chkBolsa').prop('checked'))
10137 togglePriceCard()
10138 }
10139
10140 function togglePriceCard(selector){
10141 if(selector instanceof PointerEvent) return
10142
10143 if(!selector) selector = ''
10144 else selector = '.' + selector
10145
10146 const btnPrices = document.querySelectorAll('.show-price-content'+selector)
10147 const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector)
10148 const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector)
10149
10150 btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide'))
10151 contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show'))
10152 contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))
10153 }
10154
10155 function getRegiaoName(key) {
10156 switch (key) {
10157 case "C":
10158 return "Capital";
10159 case "I":
10160 return "Interior";
10161 case "GS":
10162 return "Grande São Paulo e Litoral";
10163 default:
10164 return "Sem Região";
10165 }
10166 }
10167
10168 function criarOptionUnidadesPorRegiao(unidades) {
10169 let regioes = {}
10170 let unidadeFounded
10171
10172 unidades.forEach(unidade => {
10173 if(!regioes[unidade.codRegiaoUnidade || 'N'])
10174 regioes[unidade.codRegiaoUnidade || 'N'] = []
10175
10176 regioes[unidade.codRegiaoUnidade || 'N'].push(unidade)
10177 })
10178
10179 Array.from(['C', 'I', 'GS', 'N'])
10180 .filter(key => Object.keys(regioes).includes(key))
10181 .forEach(key => {
10182 const unidadesDaRegiao = regioes[key]
10183
10184 const optionDisabled = $('<option>')
10185 optionDisabled.attr('label', getRegiaoName(key))
10186 optionDisabled.text(getRegiaoName(key));
10187 optionDisabled.attr('disabled', true)
10188 optionDisabled.addClass('ssp-option-group')
10189 $('#unidades-ofertas').append(optionDisabled)
10190
10191 $.each(unidadesDaRegiao, function(k,unidade){
10192 if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){
10193 var option = $('<option>');
10194 option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']);
10195 option.text(unidade['nome']);
10196 option.attr('data-unidade-friendly-url', unidade.friendlyURL)
10197 option.addClass('ssp-option')
10198
10199 $('#unidades-ofertas').append(option);
10200
10201 unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded
10202 }
10203 })
10204 })
10205
10206 return unidadeFounded
10207 }
10208
10209 function getURLData() {
10210 return URLGeral.replace(HOST, '')
10211 }
10212
10213 /**
10214 * Copia um objeto JSON
10215 */
10216 function cloneObj(original) {
10217 return JSON.parse(JSON.stringify(original));
10218 }
10219
10220 function getUrlConsultaBolsa(oferta){
10221
10222 let url = '';
10223 if (isAmbienteTeste()) {
10224 if(oferta.destinoBolsa=='1') {
10225 url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10226 } else {
10227 url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10228 }
10229 } else {
10230 if(oferta.destinoBolsa=='1') {
10231 url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta
10232 } else {
10233 url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta;
10234 }
10235
10236 }
10237
10238 return url;
10239 }
10240
10241 function execCompraEmed(oferta){
10242
10243 let linkInscricaoEmed, linkInscricaoEmedHml, acadProg;
10244 if(oferta.etapa == '0010'){
10245 linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-educacional-ms.sp.senac.br/?oferta={codOferta}';
10246 linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-educacional-backend.sp.senac.br/?oferta={codOferta}';
10247 acadProg = null;
10248 }else{
10249 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}';
10250 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}';
10251 acadProg = ()=>{
10252 //Codigo FT + Data Efetiva(ymd) : AcadProg
10253 const acadProgMap = {
10254 ['2478820220101'] : '08202',
10255 ['2363020210101'] : '07325',
10256 ['2362920210101'] : '07326',
10257 ['2097420210101'] : '05918'
10258 }
10259 var key = $('[name="codigoFT"]').val() + $('[name="dataEfetivaSTR"]').val().replace(/-/g, '');
10260 return acadProgMap[key] || '';
10261 }
10262 }
10263
10264 var ambTeste = ['localhost', 'hom', 'dev'];
10265 var link = linkInscricaoEmed;
10266 $.each(ambTeste, function(i, a){
10267 if(location.hostname.indexOf(a) >= 0){
10268 link = linkInscricaoEmedHml;
10269 return false;
10270 }
10271 });
10272
10273 // Montar object push - google tag manager - 3
10274 ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta)
10275 sendEventEcommerce("select_item", ofertaSelecionada);
10276 sendEventEcommerce("view_item", ofertaSelecionada);
10277 sendEventEcommerce("add_to_cart", ofertaSelecionada);
10278 sendEventEcommerce("begin_checkout", ofertaSelecionada);
10279
10280 var urlCompra = link.replace('\{acad_prog\}', acadProg)
10281 .replace('\{codUnidade\}', $('[name="codUnidadeSelecionada"]').val())
10282 .replace('\{periodo\}', (oferta.periodoDiaOferta == 'TA') ? 'V' : oferta.periodoDiaOferta.slice(0, 1))
10283 .replace('\{etapa\}', oferta.etapa)
10284 .replace('\{codOferta\}', oferta.codigoOferta);
10285 window.open(urlCompra, '_blank');
10286
10287 }
10288
10289 function formataDataComBarra(dataInvertidaComTraco){
10290 return dataInvertidaComTraco.split('-').reverse().join('/');
10291 }
10292
10293
10294 let ctrlPressed = false;
10295 $(window).keydown(function (ev) {
10296 if(ev.which == 17){
10297 ctrlPressed = true;
10298 return false;
10299 }
10300 if(ev.which == 82 && ctrlPressed){
10301 return false;
10302 }
10303 return (ev.which != 116); // F5
10304 }).keyup(function(ev) {
10305 if (ev.which == 17){
10306 ctrlPressed = false;
10307 }
10308 return true;
10309 });
10310
10311
10312 </script>
10313
10314</#if>