Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing: ==> isEMED [in template "20102#20129#438394" at line 4063, column 15] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if !isEMED [in template "20102#20129#438394" at line 4063, column 9] ----
1<#assign
2 isEditMode = themeDisplay.getURLCurrent()?contains('p_l_mode=edit')
3/>
4<!-- Essa verificação é necessária para que não encaminhe erros de freemarker ao KIBANA ao acessar a página de edição dos componentes -->
5<#if isEditMode >
6 <h3>Modo de edição identificado</h3>
7<#else>
8
9<style>
10
11 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card {
12 background: white;
13 width: 100%;
14 padding: 32px 52px;
15 box-shadow: 2px 5px 12px #00000040;
16 border-radius: 20px;
17 display: flex;
18 flex-wrap: nowrap;
19 justify-content: space-between;
20 align-items: center;
21 }
22
23 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-icone {
24 max-width: 100%;
25 height: 72px;
26 margin-bottom: 10px;
27 }
28
29 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section {
30 background: #472247;
31 border-top: 18px solid #792F7A;
32 text-align: center;
33 padding-bottom: 60px;
34 }
35
36 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white::after {
37
38
39 display: none;
40
41
42 }
43
44 .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white {
45 color: white;
46 font-size: 44px !important;
47 margin-bottom: 32px !important;
48 text-align:unset;
49 }
50
51 .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-title {
52 font-size: 28px;
53 color: #B767C2;
54 font-weight: bold;
55 line-height: 28px;
56 margin: 0;
57 margin-bottom:.5rem;
58 }
59
60
61.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-credit-card::after {
62
63 font-size: 18px;
64
65}
66
67.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto::after {
68
69 font-size: 18px;
70
71}
72
73.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__header {
74 align-items:center;
75 color:#454F63;
76}
77
78.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__btn-close::after {
79 font-family: "Font Awesome 6 Pro";
80 font-weight: normal;
81 content: "\f00d";
82 font-style: normal;
83 font-size:30px;
84 cursor: pointer;
85}
86
87.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__body {
88
89 padding:0 15px;
90}
91
92.ssp-card-modal-forma-pagamento__tipos-content p {
93
94 color: #454F63!important;
95 font-size: 14px!important;
96}
97
98.ssp-card-modal-forma-pagamento__tipos-content strong {
99
100 font-weight: bold!important;
101}
102
103.txt-desconto-oito{
104
105 font-weight: 600!important;
106 border: 1px solid #f2f2f2;
107 border-right: 0;
108 border-left: 0;
109 padding: 10px 0;
110}
111
112.next-mobile{
113 color: white;
114 display: flex;
115 align-items: center;
116 text-decoration: none!important;
117}
118
119.next-mobile:hover{
120 color: white;
121 font-weight: normal!important;
122}
123
124.next-mobile::before{
125 font-family: "Montserrat", sans-serif;
126 content: "Próxima";
127 font-size: 14px;
128 font-weight: 600;
129 display: block;
130 margin-right: 9px;
131 color: white;
132}
133
134.next-mobile.slick-arrow.slick-disabled{
135 opacity: 0.4;
136}
137
138
139/* Prev Mobile button */
140
141
142.prev-mobile{
143 color: white;
144 display: flex;
145 align-items: center;
146 text-decoration: none;
147 text-decoration: none!important;
148}
149
150.prev-mobile:hover{
151 color: white;
152 font-weight: normal!important;
153}
154
155.prev-mobile::after{
156 font-family: "Montserrat", sans-serif;
157 content: "Anterior";
158 font-weight: 600;
159 font-size: 14px;
160 display: block;
161 margin-left: 9px;
162 color: white;
163}
164
165.prev-mobile.slick-arrow.slick-disabled{
166 opacity: 0.4;
167}
168
169
170.icon-ao-vivo{
171 font-size: 15px!important;
172 margin: 0 3px;
173}
174
175.ssp-card-detalhe-curso__tag-ao-vivo{
176 font-family: "Montserrat";
177 font-size: 19px;
178 letter-spacing: 0px;
179 color: #F77A3B;
180}
181
182.selecione-unidade-title-custom{
183
184 width:100%!important;
185
186}
187
188.recalcular{
189 background:#F6921E!important;
190 border: solid 1px #F6921E!important;
191}
192
193.ssp-card-detalhe-curso__description{
194
195 font-family: "Montserrat";
196 max-width: 800px;
197 font-size: 20px;
198 font-weight: 500;
199 font-stretch: normal;
200 font-style: normal;
201 line-height: 1.23;
202 letter-spacing: normal;
203 margin: 10px 0;
204 text-align: left;
205 color: #4f596f;
206
207}
208
209/* nova formatação para registro de interesse */
210.ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
211 display: flex;
212 flex-wrap: nowrap;
213 justify-content: center;
214 align-items: center;
215 padding: 10px 0;
216}
217
218/* Novas tags para formato de curso */
219
220.ssp-card-detalhe-curso__tag-formato{
221
222 font-size:18px;
223 font-weight:600;
224
225}
226
227.icon-formato{
228 margin-right:7px;
229}
230
231.online-aovivo{
232 position:relative;
233
234}
235
236.icon-small-wifi {
237 font-size: 13px;
238 position: absolute;
239 left: -12px;
240 top: -5px;
241}
242
243.ssp-desconto-2022 .modal-extensao_txteconomiza {
244 font-size: 14px !important;
245 font-weight: 100 !important;
246}
247.ssp-desconto-2022 .ssp-card-oferta-curso__desconto-content .ssp-card-oferta-curso__valor-desconto {
248 font-weight: 100 !important;
249}
250.ssp-desconto-2022 .modal-extensao-btn-conheca {
251 border: 1px solid #474F61 !important;
252 border-radius: 4px;
253 color: #474F61 !important;
254 font-size: 15px;
255 height: 50px;
256 margin-left: 0;
257 display: flex;
258 align-items: center;
259 justify-content: center;
260}
261
262.ssp-card-modal-forma-pagamento.ssp-desconto-2022 {
263 color: #454F63;
264}
265.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 {
266 font-size: 22px !important;
267}
268.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 span {
269 font-size: 13px !important;
270}
271.ssp-desconto-2022 span {
272 padding: 0 !important;
273}
274
275.ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
276 appearance: none !important;
277 -webkit-appearance: none !important;
278 -moz-appearance: none !important;
279
280 background-size: 25px 25px !important;
281 background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0xODcuOCAyNjQuNUw0MSA0MTIuNWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDQuMiAzOTIuN2MtNC43LTQuNy00LjctMTIuMyAwLTE3TDEyMi43IDI1NiA0LjIgMTM2LjNjLTQuNy00LjctNC43LTEyLjMgMC0xN0wyNCA5OS41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwxNDYuOCAxNDhjNC43IDQuNyA0LjcgMTIuMyAwIDE3eiIvPjwvc3ZnPg==);
282 background-repeat: no-repeat !important;
283 background-position-x: 99% !important;
284 background-position-y: 50% !important;
285}
286
287@media only screen and (max-width: 768px){
288
289 .ssp-card-detalhe-curso__tag-ao-vivo{
290 font-size: 14px;
291 display: none;
292 }
293 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content {
294
295 flex-wrap: wrap!important;
296
297}
298.ssp-card-modal-forma-pagamento__tipos-content p {
299
300 font-size: 12px!important;
301}
302
303
304 .ssp:not(.liferay-instance) .ssp-section-selecione-unidade {
305 padding: 30px 0!important;
306 padding-bottom: 30px !important;
307 background-color: #2a2e43;
308 }
309
310 .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__title {
311 padding-bottom: 1.25rem !important;
312 }
313
314 .selecione-unidade-title-custom{
315 width:100%!important;
316
317 }
318
319 .ssp-card-detalhe-curso__description{
320 width: 100%;
321 font-size: 15px;
322
323 }
324 .ssp-como-me-matricular__passo-passo-card {
325 padding: 30px 24px!important;
326
327 }
328
329 .emed-select-group {
330 box-shadow: none!important;
331 border: none !important;
332 border-bottom: 1px solid #6E6E6E!important;
333 border-radius: 0 !important;
334 padding: 0 !important;
335 margin: 1rem 0 !important;
336 }
337
338 .emed .ssp-card-registro-interesse__title-modal{
339 font-size: 20px!important;
340 }
341 .emed .ssp-card-registro-interesse__title-section-itens {
342 font-size: 15px!important;
343 margin-top: 0px!important;
344 margin-bottom: 0px!important;
345 color: #2a2e43;
346 }
347 .ssp-card-registro-interesse.emed [type="checkbox"] {
348 transform: scale(0.6);
349 margin-left: 2px;
350 }
351
352 .ssp-card-registro-interesse.emed label {
353 margin-left: 0px;
354 margin-right: 3px;
355 }
356}
357
358.ssp-card-oferta-curso__local-realizacao-content__title {
359 font-family: "Open Sans", sans-serif;
360 font-size: 10pt;
361 font-weight: normal;
362 color: #00488c;
363 font-weight: bold;
364 text-decoration: none!important;
365 padding-left: 10px;
366}
367
368 @media screen and (min-width: 767px){
369
370 .ssp-modal-local-realizacao{
371 width: 480px!important;
372 }
373 .ssp-card-modal-forma-pagamento__header {
374 margin-bottom: 20px;
375 }
376
377 .ssp-modal-local-realizacao__title{
378 color:#01488C !important;
379 text-align: center!important;
380 margin-left: -23px!important;
381 }
382
383 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
384 font-size: 14pt;
385 }
386 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
387 font-size: 14px !important;
388 text-align: left;
389 }
390 .ssp-modal-emed-txt-desconto-oito {
391 padding: 10px 0 0px!important;
392 }
393 .ssp:not(.liferay-instance) .ssp-modal-emed-info-valor-matricula {
394 color: #4F596F;
395 font-size: 15px!important;
396 text-align: center;
397 font-weight: 500!important;
398 }
399}
400
401@media screen and (max-width: 767px){
402 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao {
403 width: 347px;
404 padding: 22px;
405 }
406 .ssp-modal {
407 padding-top: 72px!important;
408 }
409 .ssp-card-modal-forma-pagamento {
410 max-width: 335px!important;
411 }
412 .ssp-card-modal-forma-pagamento__body {
413 padding: 0px!important;
414 }
415 .ssp-modal-emed-txt-desconto-oito {
416 font-size: 12px !important;
417 }
418 .ssp-card-modal-forma-pagamento__header {
419 margin-bottom: 20px!important;
420 }
421 .txt-desconto-oito i {
422 font-size: 12px!important;
423 padding-top: 3px;
424 }
425 .txt-pague-vista {
426 font-size: 12px!important;
427 }
428 .txt-ganhe-mais {
429 font-size: 12px!important;
430 }
431 .ssp-modal-emed-info-valor-matricula {
432 color: #2A2E43!important;
433 font-size: 12px!important;
434 font-weight: 500!important;
435 }
436 .ssp:not(.liferay-instance) [data-info="data-para-matricula"] {
437 font-size: 12px !important;
438 line-height: 1.5;
439 text-align: left;
440 }
441
442 .ssp-desconto-2022 .txt-desconto-oito {
443 font-size: 14px !important;
444 }
445}
446
447@media screen and (max-width: 767px){
448 .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title {
449 font-size: 16pt;
450 }
451}
452
453.container-local-realizacao{
454 padding: 6px;
455 border: 0.5pt solid #cdd0d8;
456 border-radius: 5px;
457 width: 260px;
458 margin: 10px auto;
459 box-shadow: 1px 1px 1px #0000000F;
460}
461
462.idioma-online{
463 border:0!important;
464 box-shadow:none!important;
465}
466
467.btn-idiomas__aula-online .fa-wifi{
468 margin-right: 7px
469}
470
471.ssp-modal-local-realizacao__title{
472 color:#01488C !important;
473 text-align: center!important;
474}
475
476h6.ssp-modal-local-realizacao__title::after {
477 content: "";
478 display: block;
479 width: 20%;
480 padding-top: 10px;
481 border-bottom: 1px solid #01488C;
482 transition: .5s;
483 margin:auto;
484}
485
486.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-wifi::after {
487 font-family: "Font Awesome 5 Free";
488 content: '\f1eb';
489 font-weight: 600;
490 color: #00488c;
491 font-size: 8px;
492 font-style: normal;
493 margin-left: 2px;
494}
495
496.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-chalkboard-teacher::after {
497 font-family: "Font Awesome 5 Free";
498 content: '\f51c';
499 font-weight: 600;
500 color: #00488c;
501 font-size: 13px;
502 font-style: normal;
503}
504
505.ssp-card-oferta-curso__local-realizacao-content__icon-wifi{
506 display: flex;
507 margin-top: 0px;
508 margin-bottom: -10px;
509}
510
511.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-wifi::after {
512 font-family: "Font Awesome 5 Free";
513 content: '\f1eb';
514 font-weight: 600;
515 color: #00488c;
516 font-size: 9pt;
517 font-style: normal;
518 margin-right: 10px;
519}
520
521.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-chalkboard-teacher::after {
522 font-family: "Font Awesome 5 Free";
523 content: '\f51c';
524 font-weight: 600;
525 color: #00488c;
526 font-size: 16pt;
527 font-style: normal;
528 margin-left: -16px;
529}
530
531.ssp-modal__local-realizacao-content__icon-wifi{
532 display: flex;
533 margin-right: 2px
534}
535
536.ssp-modal-local-realizacao__texto{
537 text-align:center!important;
538}
539
540.texto-modal-emed{
541 text-align:left;
542}
543
544.nextPrevOpacity{
545 opacity: 0.3;
546}
547
548
549 .modal-extensao {
550 display: block;
551 position: fixed;
552 z-index: 2000;
553 padding-top: 100px;
554 left: 0;
555 top: 0;
556 width: 100%;
557 height: 100%;
558 overflow: auto;
559 background-color: black;
560 background-color: rgba(0, 0, 0, 0.6);
561 font-family: Montserrat;
562 }
563 .modal-extensao_content {
564 max-width: 700px;
565 width: 100%;
566 background: white;
567 border-radius: 12px;
568 padding: 30px 60px;
569 position: relative;
570 text-align: center;
571 margin: auto;
572 -webkit-animation-name: animatetop;
573 -webkit-animation-duration: 0.4s;
574 animation-name: animatetop;
575 animation-duration: 0.4s;
576 }
577 .modal-extensao-condicoes__title {
578 color: #000!important;
579 text-transform: uppercase!important;
580 font-size: 18px!important;
581
582 }
583 .modal-extensao-condicoes__subtitle {
584 color: #000!important;
585 font-size: 18px!important;
586 margin-bottom: 0px!important;
587
588 }
589 .modal-extensao__btn {
590 background-color: #5ACC75!important;
591 font-size: 14px;
592 float: right;
593 color: #ffffff;
594 min-width: 165px;
595 }
596 .modal-extensao__btn:hover {
597 background-color: #3fb25c!important;
598 border-color: transparent;
599 color: #ffffff;
600 }
601 .modal-extensao_subtitle {
602 font-size: 13.7px!important;
603 color: #2A2E43!important;
604 font-family: Montserrat, semi-bold!important;
605 font-weight: 600!important;
606 }
607 .modal-extensao_subtitle::after {
608 content: " ";
609 display: block;
610 width: 126px;
611 height: 2px;
612 background: #707070;
613 margin: 0 auto;
614 margin-top: 5px;
615 }
616 .modal-extensao_preco {
617 color: #454F63;
618 font-size: 25px;
619 font-family: Montserrat;
620 font-weight: bold;
621 }
622 .modal-extensao_ctboleto {
623 width: 50%;
624 float: left;
625 border-color: #D7D7DB;
626 border-style: solid;
627 border-width: 1px;
628 border-left: none;
629 font-size: 21px;
630 color: #454F63
631
632 }
633 .modal-extensao_ctcard {
634 width: 50%;
635 float: left;
636 border-color: #D7D7DB;
637 border-style: solid;
638 border-width: 1px;
639 border-right: none;
640 border-left: none;
641 font-size: 21px;
642 color: #454F63;
643 }
644
645 .modal-extensao_txtPag {
646 color:#2A2E43;
647 font-size: 9px;
648 font-family: Montserrat;
649 font-weight: 600;
650 display: block;
651 }
652 .modal-extensao_txteconomiza {
653 display: block;
654 font-size: 12px;
655 }
656 .modal-extensao_txtverde {
657 color: #5ACC75;
658 }
659 .modal-extensao_txtParcela {
660 color:#2A2E43;
661 font-size: 12px;
662 font-family: Montserrat;
663 font-weight: normal;
664 display: block;
665 }
666 .modal-extensao_txtporcent{
667 font-size: 9px;
668 color: #5ACC75;
669 font-weight: 600;
670 }
671 .modal-extensao-btn-conheca {
672 color: #2967F4 !important;
673 background-color: transparent;
674 border-color: #2967F4 !important;
675 box-shadow: none !important;
676 font-size: 14px !important;
677 margin-left: 10px;
678 transition: 0.3s;
679 float: left;
680 }
681 .modal-extensao-btn-conferir {
682 color: #2967F4 !important;
683 background-color: transparent;
684 border-color: #2967F4 !important;
685 box-shadow: none !important;
686 font-size: 14px !important;
687 margin-left: 10px;
688 transition: 0.3s;
689 min-width: 330px;
690 min-height: 50px;
691 }
692 .modal-extensao-btn-conferir:hover {
693 color: #ffffff!important;
694 }
695
696 .modal-extensao-btn-conheca:hover, .modal-extensao-btn-conheca:focus {
697 color: #ffffff!important;
698 }
699 .modal-extensao-btn-aluno-sim-nao {
700 color: #000000;
701 background-color: transparent;
702 border-color: #000000 !important;
703 box-shadow: none !important;
704 font-size: 14px !important;
705 margin-left: 10px;
706 transition: 0.3s;
707 min-width: 95px;
708 }
709 .modal-extensao-btn-aluno-sim-ativo {
710 color: #ffffff!important;
711 background-color: #3969EB!important;
712 border-color: #3969EB !important;
713 }
714 .modal-extensao-btn-aluno-sim-nao:hover {
715 background-color: transparent;
716 border-color: #3969EB !important;
717 color: #3969EB!important; }
718 .modal-extensao-voltar-icon,.modal-extensao-fechar {
719 font-size: 13px;
720 position: absolute;
721 top: 30px;
722 right: 20px;
723 cursor: pointer;
724 color: #000;
725 }
726
727 .modal-extensao-voltar-txticon {
728 color: #000;
729 font-size: 9px;
730 font-family: Montserrat;
731 font-weight: 600;
732 padding-left: 5px;
733 }
734 .modal-extensao-ico-check {
735 color: #5ACC75;
736 font-size: 65px;
737 }
738 .modal-extensao-aluno_txtcontent {
739 font-size: 18px!important;
740 color: #000;
741 }
742 .modal-extensao-aluno__btn {
743 background-color: #5ACC75!important;
744 font-size: 14px;
745 color: #ffffff;
746 min-width: 330px;
747 text-transform: uppercase;
748 min-height: 50px;
749 }
750 .modal-extensao-aluno__btn:hover {
751 color: #fff;
752 background-color: #3fb25c!important;
753 border-color: transparent;
754 color: #ffffff;
755 }
756 .modal-extensao-ico-percent {
757 background-color: blue;
758 color: #fff;
759 font-size: 48px;
760 border-radius: 50%;
761 padding: 10px 18px;
762 }
763
764 .btn-preco-ex-aluno,.btn-preco-padrao{
765
766 background:none;
767 border: none;
768 width: 100%;
769 display: flex;
770 align-items: center;
771 justify-content: space-between;
772 text-align: left;
773 font-size: 14px;
774 }
775
776 .custom-icon-right{
777 transform: rotate(0);
778 transition: all 0.5s;
779 }
780
781 .custom-icon-right-active{
782 transform: rotate(90deg);
783 }
784
785 .ssp-divisor{
786 width: 100%;
787 color: #D7D7DB;
788 margin: 15px 0;
789 }
790
791
792 @media only screen and (max-width: 768px){
793
794 .modal-extensao_content{
795 width:336px;
796 padding: 60px 20px 20px 20px;
797 }
798
799 .modal-extensao__btn{
800 width: 100%;
801 }
802
803 .modal-extensao-modal-extensao__btn {
804 float: initial;
805 width: 234px;
806 }
807 .modal-extensao-btn-conheca {
808 float: initial;
809 width: 100%;
810 margin-left: 0px;
811 }
812 .modal-extensao-aluno__btn {
813 min-width: 234px;
814 }
815 .modal-extensao-btn-conferir{
816 min-width: 234px;
817 margin-left: 0px;
818 }
819 }
820
821
822/* Emed */
823.ssp-btn-emed__voltar-curso {
824 border: 1px solid #474F61;
825 color: #474F61;
826 max-width: 372px;
827 margin-left: 60px;
828 height: 50px;
829 padding: 12px!important;
830}
831
832@media (max-width: 768px) {
833 .ssp-btn-emed__voltar-curso {
834 font-size: 14px;
835 margin-left: 0px!important;
836 }
837}
838
839@media only screen and (max-width: 767px){
840 .ssp:not(.liferay-instance) .ssp-emed-visita-text {
841 margin: 0;
842 transform: none;
843 margin-left: 10px;
844 }
845}
846
847.ssp:not(.liferay-instance) .icon-map-adress::after {
848 padding: 0 8px 0 0;
849}
850
851.ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
852 margin: 5px 0;
853}
854
855.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento {
856 width: 100%;
857 color: white !important;
858 font-size: 15px;
859 font-weight: 600;
860 margin: 10px 0;
861}
862
863.ssp-modal-emed-info-txt-matricula {
864 display: inline-block;
865}
866.ssp:not(.liferay-instance) .btn-card-investimento.--inscreva-se.disabled, .ssp:not(.liferay-instance) a.btn.btn-success.disabled.manutencao {
867 background: #BFC3C9 !important;
868 color: #454F63!important;
869 opacity: 1!important;
870 font-size: 14px;
871 border:none;
872}
873
874.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--bolsas.disabled {
875 background: #E5E8ED;
876 color: #454F63!important;
877 opacity: 1;
878 font-size: 14px;
879}
880
881.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--inscreva-se {
882 background-color: #5acc75;
883 text-transform: none;
884}
885
886.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .link-descontos-parcelamentos {
887 font-weight: 600;
888}
889
890.ssp:not(.liferay-instance) .ssp-card-oferta-curso__sem-vaga-title {
891 margin: 0;
892}
893
894.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-container {
895
896 padding: 0;
897
898}
899
900.ssp:not(.liferay-instance) .ssp-ofertas-emed__filtro-content {
901 padding: 40px 0;
902}
903
904.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .txt-boleto-cartao {
905 text-align: center;
906}
907.ssp-card-modal-emed-lineou {
908height: 1px;
909 background-color: #FC7834;
910 text-align: center;
911 width: 50%;
912 margin: 0px auto;
913 margin-bottom: 15px;
914}
915.ssp-card-modal-emed-lineou span {
916background-color: white;
917 position: relative;
918 top: -0.8em;
919 padding: 0 19px;
920 font-weight: bold;
921 color: #2A2E43;
922 font-size: 15px;
923}
924.ssp-modal-emed-txtValor {
925 font-size: 16px;
926 color: #04488C;
927 font-weight: bold;
928}
929.ssp-card-modal-emed-centralizaPagtos{
930max-width: 285px;margin:0 auto; margin-top: 18px!important;
931}
932.ssp-card-modal-forma-pagamento__tipos-content p {
933 font-weight: 500!important;
934}
935.textoCartoesAceitos {
936 font-weight: 500!important;
937}
938.ssp-card-modal-emed-valorObs {
939 color: #004A8C;
940 display: flex;
941 justify-content: center;
942 font-weight: 500;
943 padding-top: 11px;
944 font-size: 14px;
945}
946.ssp-card-modal-emed-boxDesconto{
947 border: 0!important;
948 font-weight: 500!important;
949 background-color: #F7F7F7;
950 border-radius: 13px;
951 padding: 20px 40px!important;
952 margin-bottom: 0!important;
953}
954.ssp-modal-emed-boxoito {
955 padding: 5px 45px!important;
956 text-align: center;
957 border-bottom: 0px!important;
958}
959.ssp-modal-emed-btfechar {
960 position: absolute;
961 right: 0;
962 display: flex;
963 flex-direction: column;
964 text-align: center;
965 line-height: 0.9;
966 top: -48px;
967 color: #E4E8F0;
968 font-weight: 500;
969 font-size: 14px;
970}
971.ssp-card-modal-forma-pagamento__btn-close:hover {
972 opacity: .6;
973}
974.ssp-card-modal-emed-ano {
975 font-weight: 500;
976 font-size: 22px;
977 color: #454F63;
978}
979.ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
980 font-weight: 500!important;
981
982}
983.ssp-card-modal-emed-valorObs i {
984 padding-top: 2px;
985 padding-right: 3px;
986}
987button[id^="btnComprarEmedModal_"] {
988 height: 50px;
989 font-weight: 600;
990 max-width: 372px;
991 width: 100%;
992 margin: 0 auto;
993 /* margin-left: 60px; */
994 display: block;
995 height: 50px;
996 padding: 12px !important;
997
998}
999.obsspan {
1000 justify-content: left;
1001 padding-bottom: 10px;
1002}
1003
1004.emed_transferencia_texto{
1005 font-size:20px!important;;
1006}
1007
1008
1009@media only screen and (max-width: 767px){
1010
1011 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal {
1012 width: 100%;
1013 }
1014
1015 .ssp-card-modal-emed-valorObs {
1016 font-size: 12px;
1017 }
1018 .obsspan {
1019 justify-content: left;
1020 margin-left: -14px!important;
1021 }
1022 .ssp-modal-emed-boxoito {
1023 padding: 5px 0px!important;
1024 }
1025 .ssp-modal-emed-info-txt-matricula {
1026 display: inherit;
1027 }
1028 .ssp-card-modal-emed-boxDesconto{
1029 padding: 20px 20px!important;
1030 font-size: 12px!important;
1031 }
1032 .ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {
1033 font-size: 12px !important;
1034 font-weight: 500!important;
1035 }
1036 .ssp-modal-emed-btfechar {
1037 font-size: 12px;
1038
1039 }
1040 button[id^="btnComprarEmedModal_"] {
1041 height: 50px;
1042 padding: 10px;
1043 border-radius: 4px;
1044 margin-left: 0px!important
1045 }
1046 button[id^="btnComprarEmedModal_"] span {
1047 font-size: 15px;
1048 font-weight: 600;
1049 }
1050 .ssp-btn-emed__voltar-curso_0 {
1051 font-weight: 600!important;
1052 height: 50px;
1053 border-radius: 4px!important;
1054 padding: 14px!important;
1055 }
1056
1057 .emed_transferencia_texto{
1058 font-size:16px!important;
1059 }
1060
1061}
1062
1063@media screen and (min-width: 1200px){
1064 .ssp-col-lg-without {
1065 flex: unset;
1066 width: unset;
1067 }
1068}
1069@media screen and (max-width: 1199px){
1070 .ssp-desconto-2022 .modal-extensao_txteconomiza {
1071 font-size: 12px !important;
1072 }
1073 .ssp-filters-px {
1074 padding: 0 !important;
1075 }
1076 .ssp-switch-label {
1077 margin: auto 0 !important;
1078 }
1079 .ssp-switch-label-message {
1080 margin-top: 10px;
1081 margin-bottom: 10px;
1082 padding-right: 0 !important;
1083 padding-left: 0 !important;
1084 }
1085 .ssp-container-selecione-unidade [name="unidades-ofertas"] {
1086 max-width: 316px!important;
1087 }
1088 .ssp-detalhe-curso-titulo-filter {
1089 font-size: 16px !important;
1090 }
1091}
1092
1093
1094.ssp-filters-px {
1095 padding: 0 80px;
1096}
1097/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1098/* !!!!!!! CSS Destinado ao switch(toggle) !!!!!!! */
1099/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */
1100.ssp-switch {
1101 position: relative;
1102 display: inline-block;
1103 width: 63px;
1104 height: 32px;
1105}
1106
1107.ssp-switch input {
1108 opacity: 0;
1109 width: 0;
1110 height: 0;
1111}
1112
1113.ssp-switch-label {
1114 margin: auto 15px;
1115 font: normal normal 600 16px/19px Montserrat;
1116 letter-spacing: 0px;
1117 color: #FFFFFF;
1118 white-space: nowrap;
1119}
1120
1121.ssp-switch-label-section {
1122 font: normal normal 600 18px/22px Montserrat;
1123 margin-bottom: 11px;
1124}
1125
1126.ssp-switch-label-message {
1127 font: normal normal medium 16px/19px Montserrat !important;
1128 letter-spacing: 0px;
1129 color: #FFFFFF;
1130 margin-top: 16px;
1131 padding-left: 25px;
1132 padding-right: 25px;
1133}
1134
1135.ssp-switch-divider {
1136 border-bottom: 1px solid #4a4d5f;
1137 width: 100%;
1138}
1139
1140.ssp:not(.liferay-instance) .ssp-detalhe-curso-titulo-filter.ssp-detalhe-curso-titulo-filter {
1141 font-size: 21px;
1142}
1143
1144.ssp-switch-slider {
1145 position: absolute;
1146 cursor: pointer;
1147 top: 0;
1148 left: 0;
1149 right: 0;
1150 bottom: 0;
1151 background-color: #00000000;
1152 border: 1px solid #FFFFFF;
1153 -webkit-transition: .4s;
1154 transition: .4s;
1155}
1156
1157.ssp-switch-slider:before {
1158 position: absolute;
1159 content: "";
1160 height: 21px;
1161 width: 21px;
1162 left: 4px;
1163 bottom: 4px;
1164 background-color: white;
1165 -webkit-transition: .4s;
1166 transition: .4s;
1167}
1168
1169input:checked + .ssp-switch-slider {
1170 background-color: #5ACC75;
1171 border: 1px solid #5ACC75;
1172}
1173input:checked + .ssp-switch-slider-secondary {
1174 background-color: #2967F4;
1175 border: 1px solid #2967F4;
1176}
1177
1178input:focus + .ssp-switch-slider {
1179 box-shadow: 0 0 1px #5ACC75;
1180}
1181input:focus + .ssp-switch-slider-secondary {
1182 box-shadow: 0 0 1px #2967F4;
1183}
1184
1185input:checked + .ssp-switch-slider:before {
1186 -webkit-transform: translateX(33px);
1187 -ms-transform: translateX(33px);
1188 transform: translateX(33px);
1189}
1190
1191/* Rounded sliders */
1192.ssp-switch-slider.round {
1193 border-radius: 34px;
1194}
1195
1196.ssp-switch-slider.round:before {
1197 border-radius: 50%;
1198}
1199
1200/*Utilizado no modal de registro de interesse #9309*/
1201option[value=""][disabled] {
1202 display: none;
1203}
1204/* Css para botao de idiomas online */
1205
1206.btn-idiomas__aula-online{
1207 background:#5382FF;
1208 color:white!important;
1209 text-decoration:none!important;
1210 padding:11px 14px;
1211 border-radius:4px;
1212 font-size:13px;
1213 font-weight:600;
1214 transition:.3s;
1215}
1216
1217.btn-idiomas__aula-online:hover{
1218 background:#5275D1;
1219 font-weight:600!important;
1220}
1221
1222.title-idioma-online__modal,.icon-wifi-title__modal{
1223 color:#5382FF!important;
1224 font-size:25px!important;
1225 margin:0!important;
1226 margin-right:5px!important;
1227}
1228
1229.btn-modal-entendi__idioma-online{
1230 font-size:16px!important;
1231 font-weight:600!important;
1232 color:#5382FF!important;
1233 border:#5382FF 1px solid!important;
1234 padding:15px 142px;
1235 width:auto!important;
1236}
1237
1238.btn-modal-entendi__idioma-online:hover{
1239 font-size:16px!important;
1240 font-weight:600!important;
1241 color:#5382FF!important;
1242 border:#5382FF 1px solid!important;
1243 background:white!important;
1244}
1245
1246@media only screen and (max-width: 768px){
1247
1248 .title-idioma-online__modal,.icon-wifi-title__modal{
1249 color:#5382FF!important;
1250 font-size:21px!important;
1251 margin:0!important;
1252 margin-right:5px!important;
1253 }
1254
1255 .btn-modal-entendi__idioma-online{
1256 font-size:16px!important;
1257 font-weight:600!important;
1258 color:#5382FF!important;
1259 border:#5382FF 1px solid!important;
1260 padding:12px 30%;
1261 width:auto!important;
1262 }
1263
1264}
1265
1266.btn-emed-lista-espera{
1267 background-color:#C560C7!important;
1268}
1269
1270.ssp:not(.liferay-instance) .ssp-container__form-select {
1271 max-width: 430px;
1272 width:100%;
1273}
1274
1275
1276@media (max-width: 768px){
1277 .ssp:not(.liferay-instance) .ssp-ofertas-emed__card {
1278 margin: 10px 20px;
1279 max-width: 335px;
1280 }
1281}
1282
1283/* css EMED Registro de interesse */
1284
1285.emed #periodo-registro-interesse,.emed #turmas-registro-interesse{
1286
1287 display: flex;
1288 align-items: center;
1289 padding: 0.625rem 0;
1290 width: 85%;
1291 justify-content: space-between;
1292 margin: 0 auto;
1293
1294}
1295
1296.ssp-card-registro-interesse__title-section-itens{
1297 margin: 10px 0 11.5px 0 !important;
1298 font-size: 20px;
1299 flex-basis: 120px;
1300}
1301
1302.ssp-card-registro-interesse__check-itens-content {
1303 display: flex!important;
1304 justify-content: center!important;
1305 flex: 0 1 90%!important;
1306}
1307.ssp-card-registro-interesse__check-item {
1308 display: flex;
1309 align-items: center;
1310 flex-basis: 100px;
1311}
1312
1313.ssp-card-registro-interesse label {
1314 margin-right: 0!important;
1315}
1316
1317.ssp-card-registro-interesse [type="checkbox"] {
1318box-shadow: 0px 0px 6px #00000029;
1319}
1320
1321#cursos-registro-interesse,#unidades-registro-interesse{
1322padding: 10px 0;
1323}
1324
1325.emed-select-group{
1326
1327box-shadow: 0px 0px 12px #00000010;
1328border: 1px solid #6E6E6E;
1329border-radius: 4px;
1330padding: 1.0rem 1.125rem;
1331margin: 1rem 0;
1332
1333}
1334
1335.ssp:not(.liferay-instance) .ssp-card-registro-interesse__add-mais > a {
1336 color: #457eff !important;
1337 }
1338
1339.emed .ssp-card-registro-interesse__btn-enviar {
1340background-color: #C560C7 !important;
1341}
1342
1343.ssp-card-registro-interesse__title-modal{
1344color:#C560C7 !important;
1345font-size: 35px !important;
1346font-weight: bold !important;
1347margin: 0 !important;
1348}
1349
1350#msg-transferencia-emed{
1351display: flex;
1352justify-content: center;
1353flex: wrap;
1354flex-direction: column;
1355align-items: center;
1356padding: 1rem 0;
1357}
1358
1359.transferencia-emed-title {
1360 color: #d266d4;
1361 display: flex;
1362 gap: 10px;
1363 font-size: 16px;
1364 font-weight: bold;
1365 align-items:center;
1366}
1367
1368.transferencia-emed-title p {
1369 margin: 0 !important;
1370 font-weight: bold !important;
1371 font-size: 16px!important;
1372}
1373
1374.transferencia-emed-link a{
1375 font-size: 15px;
1376 font-weight: 500!important;
1377 color: #792F7A;
1378 display: block;
1379 text-align: center;
1380}
1381
1382.transferencia-emed-link a:hover {
1383 font-weight: 500!important;
1384 color: #792F7A;
1385}
1386
1387.emed .ssp-card-registro-interesse__label-curso-selecionado{
1388color:#2A2E43!important;
1389font-weight: bold!important;
1390font-size: 28px;
1391}
1392
1393
1394/* css para registro de interesse atual */
1395
1396#periodo-registro-interesse,#dias-registro-interesse{
1397padding: .625rem 0;
1398}
1399
1400/* css card sem turma e registro de interesse emed*/
1401
1402.slick-area-emed {
1403 display: -webkit-box !important;
1404 display: -ms-flexbox !important;
1405 display: flex !important;
1406 -webkit-box-align: center;
1407 -ms-flex-align: center;
1408 align-items: center;
1409 -webkit-box-pack: center;
1410 -ms-flex-pack: center;
1411 justify-content: center;
1412 font-size: 0;
1413 -ms-flex-wrap: nowrap;
1414 flex-wrap: nowrap;
1415 }
1416
1417 .slick-area-emed .slick-track, .slick-area-emed .slick-list {
1418 width: 100%;
1419 }
1420
1421 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1422 .slick-area-emed--md-bleed {
1423 width: 100vw;
1424 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1425 }
1426 .slick-area-emed--md-bleed .slick-list {
1427 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1428 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1429 }
1430 .slick-area-emed--md-bleed .slick-arrow {
1431 display: none !important;
1432 }
1433 }
1434
1435 @media only screen and (min-width: 376px) and (max-width: 1024px) {
1436 .slick-area-emed--md-bleed {
1437 width: 100vw;
1438 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1439 }
1440 .slick-area-emed--md-bleed .slick-list {
1441 padding-left: 2px;
1442 }
1443 .slick-area-emed--md-bleed .slick-arrow {
1444 display: none !important;
1445 }
1446 }
1447
1448 @media only screen and (max-width: 375px) {
1449
1450 .ssp-emed__card-slider-body {
1451 padding: 25px 30px;
1452 }
1453
1454
1455 .slick-area-emed--md-bleed {
1456 width: 100vw;
1457 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1458 }
1459 /* .slick-area-emed--md-bleed .slick-list {
1460 padding-left: 20px;
1461
1462 } */
1463 .slick-area-emed--md-bleed .slick-arrow {
1464 display: none !important;
1465 }
1466 }
1467
1468 .slick-area__item {
1469 display: flex;
1470 flex-basis: auto;
1471 }
1472
1473 .ssp-emed__section__textCard {
1474 margin: 20px 0 0 0;
1475}
1476
1477 .ssp-emed__card-slider-body {
1478 padding: 25px 50px;
1479 min-height: 350px;
1480 display: flex;
1481 flex-direction: column;
1482 }
1483
1484 .slick-area__item {
1485 display: flex;
1486 flex-basis: auto;
1487 }
1488
1489 .ssp-emed__card-slider-body a {
1490 text-decoration: none!important;
1491 font-weight: normal;
1492 color: #78849E
1493 }
1494
1495 .ssp-emed__card-slider-body a:hover {
1496 font-weight: bold!important;
1497 color: #2a2e43
1498 }
1499
1500 .ssp-emed__card-slider {
1501 border-radius: 12px;
1502 background: transparent;
1503 -webkit-box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1504 box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%);
1505 margin: 12px;
1506 position: relative;
1507 overflow: hidden;
1508 color: #ffffff!important;
1509 border: 1px solid #fff;
1510 min-height: 350px;
1511 }
1512
1513 .slick-initialized .slick-track {
1514 display: flex;
1515 }
1516
1517 .slick-initialized .slick-slide {
1518 height: inherit!important;
1519 display: flex;
1520 }
1521
1522 .ssp-emed__section__titleCard {
1523 font-size: 28px !important;
1524 color: #ffffff !important;
1525 margin: 0 !important;
1526 display: flex !important;
1527 justify-content: flex-start !important;
1528 flex-direction: row !important;
1529 align-items: start !important;
1530 flex-basis: 60px;
1531}
1532
1533.ssp-emed__section__titleCard i {
1534 font-size: 28px;
1535 color: #ffffff;
1536 margin: 0 0.85rem 0 0;
1537 line-height: 30px;
1538}
1539
1540.ssp-emed__section__titleCard i.fa-envelope {
1541 margin-top: 0px;
1542}
1543
1544.ssp-emed__section__titleCard i.fa-users-class {
1545 margin-top:2px;
1546}
1547
1548.ssp-emed__section__titleCard div {
1549 text-decoration: underline;
1550 font-size: 28px !important;
1551 font-weight: bold;
1552 margin: 0!important;
1553 transform:translateY(-2px)
1554}
1555
1556 .ssp-emed__section__introCard {
1557 display: block;
1558 font: 28px/30px 'Montserrat';
1559 font-weight: 600;
1560 margin: 20px 0;
1561 color: #ffffff;
1562 }
1563
1564 .ssp-emed__section__introCardCTA {
1565 font: 34px/36px 'Montserrat';
1566 font-weight: bold;
1567 display: block;
1568 margin: 20px 0;
1569 color: #ffffff;
1570 }
1571
1572 .ssp-emed__section__textCard {
1573 font: 22px/30px 'Montserrat';
1574 color: #ffffff;
1575 display: block;
1576 margin: 20px 0 0 0;
1577 position: relative;
1578 }
1579
1580 .ssp-emed__iconWrapper {
1581 display: inline-block;
1582 width: 50px;
1583 color: #B053B2;
1584 position: absolute;
1585 bottom: 0;
1586 right: 0;
1587 }
1588
1589 .ssp-emed__btn {
1590 background-color: #B053B2 ;
1591 color: #fff!important;
1592 font: normal normal 600 18px/22px Montserrat;
1593 box-shadow: 0px 4px 16px #455B6314;
1594 width: 100%;
1595 transition: .3s;
1596 padding:10px!important;
1597 }
1598
1599 .ssp-emed__btn:hover {
1600 opacity: 0.7;
1601 }
1602
1603 /*mobile emed*/
1604 @media only screen and (max-width: 1024px) {
1605 .slick-area-emed .slick-dots li.slick-active button:before {
1606 opacity: .75;
1607 color: #707070;
1608 }
1609
1610 .slick-area-emed .slick-dots li button:before {
1611 color: blue;
1612 }
1613
1614 .ssp-card-detalhe-curso__secundary-info-carga-horaria {
1615 min-width: 35%;
1616 text-align: end;
1617 }
1618 }
1619
1620 @media only screen and (max-width: 1199px) and (min-width: 768px) {
1621 .slick-area-emed--md-bleed {
1622 width: 100vw;
1623 left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important;
1624 }
1625 .slick-area-emed--md-bleed .slick-list {
1626 padding-left: calc(calc(50vw - (768px / 2) + 37px));
1627 padding-right: calc(calc(50vw - (768px / 2) + 37px));
1628 }
1629 .slick-area-emed--md-bleed .slick-arrow {
1630 display: none !important;
1631 }
1632 }
1633
1634 @media only screen and (min-width: 375px) and (max-width: 1024px) {
1635 .slick-area-emed--md-bleed {
1636 width: 100vw;
1637 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1638 }
1639 .slick-area-emed--md-bleed .slick-list {
1640 padding-left: 2px;
1641 }
1642 .slick-area-emed--md-bleed .slick-arrow {
1643 display: none !important;
1644 }
1645 .ssp-emed__section__titleCard {
1646 align-items: start !important;
1647 }
1648
1649 .ssp-emed__section__titleCard div {
1650 font-weight: bold !important;
1651 }
1652
1653 .ssp-emed__section__titleCard i {
1654 font-weight: 300 !important;
1655 font-size: 28px !important;
1656 margin: 3px 0.85rem 0 0;
1657 }
1658
1659 .transferencia-emed-title {
1660 font-size: 12px;
1661 }
1662
1663 .ssp:not(.liferay-instance) .ssp-card-registro-interesse__select {
1664 background-size: 15px 15px !important;
1665 padding: 0 10px;
1666 }
1667 }
1668
1669 @media only screen and (max-width: 550px) {
1670
1671 .ssp-emed__section__introCardCTA{
1672 font-size: 28px;
1673 }
1674
1675 #msg-transferencia-emed{
1676 gap:12px;
1677 }
1678
1679
1680
1681 .ssp-emed__card-slider {
1682 width:335px;
1683 min-height: 440px;
1684 }
1685
1686 .slick-initialized .slick-track {
1687 display: flex;
1688 }
1689
1690 .slick-initialized .slick-slide {
1691 height: inherit!important;
1692 display: flex;
1693 min-height: 440px;
1694 }
1695
1696 .ssp-emed__card-slider-body {
1697 padding: 25px 30px;
1698 }
1699
1700 .ssp-emed__section__titleCard div {
1701 transform: translateY(-5%);
1702 font-size: 24px!important;
1703 }
1704
1705 .slick-area-emed--md-bleed {
1706 width: 100vw;
1707 left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px));
1708 }
1709 .slick-area-emed--md-bleed .slick-list {
1710 padding-left: 20px;
1711 }
1712 .slick-area-emed--md-bleed .slick-arrow {
1713 display: none !important;
1714 }
1715
1716 .ssp-card-registro-interesse__title-section-itens {
1717 flex-basis: 80px;
1718 }
1719
1720 .emed #periodo-registro-interesse, .emed #turmas-registro-interesse {
1721 width: 95%;
1722 }
1723
1724 .emed .ssp:not(.liferay-instance) .ssp-card-registro-interesse label {
1725 margin: 0!important;
1726 }
1727
1728 .emed .ssp-card-registro-interesse.emed [type="checkbox"] {
1729 margin-left: 0!important;
1730 }
1731
1732 .emed .ssp-card-registro-interesse__check-item {
1733 flex-basis: 100px;
1734 }
1735 }
1736
1737 .emed-select-group {
1738 box-shadow: 0px 0px 12px #00000010;
1739 border: 1px solid #6E6E6E;
1740 border-radius: 4px;
1741 margin: 1rem 0;
1742}
1743
1744.emed-select-group h4 {
1745 margin: 15px 0 10px 0;
1746}
1747.ssp-emed__section__textCard {
1748 margin: 20px 0 0 0;
1749}
1750
1751.ssp-card-msg-sucesso__btn{
1752 font-size: 20px;
1753}
1754
1755.ssp:not(.liferay-instance) .ssp-card-oferta-curso {
1756 height:fit-content;
1757}
1758
1759.ssp-card-duvida__bolsa-estudo{
1760
1761background:#DCE8FF;
1762padding: 30px;
1763max-width: 683px;
1764width: 100%;
1765border-radius: 14px;
1766display:flex;
1767justify-content:center;
1768align-items: center;
1769gap: 20px;
1770margin: 1rem auto;
1771
1772}
1773
1774.ssp-card-duvida__bolsa-estudo p{
1775
1776font-size: 16px!important;
1777font-weight: bold!important;
1778color: #2967F4!important;
1779margin: 0!important;;
1780
1781}
1782
1783.ssp-card-duvida__bolsa-estudo a{
1784
1785border:1px solid #2967F4!important;
1786font-size: 14px!important;
1787font-weight: 600;
1788text-decoration: none!important;
1789color: #2967F4!important;
1790padding:14px 27px;
1791border-radius:6px;
1792transition: .3s;
1793
1794}
1795
1796.ssp:not(.liferay-instance) .ssp-card-duvida__bolsa-estudo a:hover{
1797
1798font-size: 14px!important;
1799font-weight: 600!important;
1800background: #2967F4!important;
1801color:white !important;
1802opacity:1!important;
1803
1804}
1805
1806@media only screen and (max-width: 768px){
1807
1808.ssp-card-duvida__bolsa-estudo{
1809
1810 background:#DCE8FF;
1811 padding: 20px;
1812 flex-flow: column;
1813 width:90%;
1814
1815}
1816
1817.ssp-card-duvida__bolsa-estudo p{
1818
1819 max-width:200px;
1820 text-align: center;
1821
1822}
1823
1824.ssp-card-duvida__bolsa-estudo a{
1825
1826 padding:16px 27px;
1827
1828}
1829
1830}
1831
1832/* Novo Card de Oferta */
1833
1834 /* ajustes no card existente */
1835
1836 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma{
1837 margin-bottom: 30px;
1838 }
1839
1840 .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma-content {
1841 margin-bottom: 5px;
1842 }
1843
1844 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-data-periodo{
1845 margin: 5px 0 10px 0;
1846 }
1847
1848 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item {
1849 border-radius: 0;
1850 background-color: unset;
1851 padding: 0;
1852 max-width: 100%;
1853 width: 100%;
1854 margin: 0;
1855 }
1856
1857 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora_content{
1858 margin:0;
1859 opacity: 0;
1860 transition: 0.3s;
1861 }
1862
1863 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1864 margin: 0;
1865 font-size: 17px;
1866 font-weight: bold;
1867 font-stretch: normal;
1868 font-style: normal;
1869 line-height: 1.23;
1870 letter-spacing: normal;
1871 text-align: center;
1872 }
1873
1874 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__hora {
1875 margin: 0;
1876 font-size: 17px;
1877 font-weight: bold;
1878 font-stretch: normal;
1879 font-style: normal;
1880 line-height: 1.3;
1881 letter-spacing: normal;
1882 text-align: center;
1883 }
1884
1885 .modal-extensao_txteconomiza{
1886 font-size: 14px;
1887 color: #454F63;
1888 font-weight: 400;
1889 }
1890
1891 .btn.btn-lg {
1892 padding:.7rem;
1893
1894 }
1895
1896 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
1897 font-size: 17px;
1898 }
1899
1900 .ssp-card-oferta-curso__item-valor-investimento{
1901 font-size: 38px;
1902 }
1903
1904 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__title{
1905 color: #454F63;
1906 font-weight: bold!important;
1907 font-size: 14px;
1908}
1909
1910.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card::after{
1911 color: #454F63!important;
1912 font-size: 14px;
1913}
1914
1915
1916.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{
1917 color:#454F63;
1918 font-size: 14px;
1919 font-weight: 400;
1920}
1921
1922.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content {
1923 padding-bottom: 0;
1924}
1925
1926 /* local realizacao */
1927
1928 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title {
1929 font-size: 13px;
1930 color: #00488C;
1931 font-weight: 600;
1932 text-decoration: none!important;
1933 border: 1px solid #00488C;
1934 padding: 11px 14px;
1935 transition:.3s;
1936 border-radius: 4px;
1937 display: flex;
1938 gap: 5px;
1939 align-items: center;
1940 }
1941
1942 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover {
1943 color: white;
1944 font-weight: 600!important;
1945 background: #08488C;
1946 }
1947
1948 .container-local-realizacao {
1949 padding:0;
1950 border:0;
1951 border-radius: unset;
1952 width: 100%;
1953 margin: 10px 0 0 0;
1954 box-shadow: none;
1955 display: flex;
1956 justify-content:center;
1957 align-items: flex-end;
1958 }
1959
1960 .icon-local-realizacao{
1961 color: #00488C;
1962 font-size: 13px;
1963 }
1964
1965
1966 @media only screen and (max-width: 768px){
1967
1968 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {
1969 font-size: 16px;
1970 }
1971
1972 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item {
1973 font-size: 14px!important;
1974 }
1975
1976 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{
1977 font-size: 15px;
1978 }
1979
1980 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento {
1981 font-size: 33px;
1982 }
1983
1984 .icon-local-realizacao {
1985 font-size: 12px;
1986 }
1987
1988 .modal-extensao_txteconomiza {
1989 font-size: 12px;
1990 }
1991
1992 .content-valores-descontos {
1993 padding-bottom: 8px!important;
1994 }
1995
1996 .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{
1997 font-size: 14px!important;
1998 }
1999
2000
2001 }
2002
2003
2004
2005
2006/* final ajustes no card existente */
2007
2008
2009/* Novos elementos */
2010
2011.content-data-dias{
2012 padding:20px;
2013 padding-top:0;
2014 border-bottom: none !important;
2015}
2016
2017.content-valores-descontos{
2018 padding:20px 0 0 0;
2019 opacity: 1;
2020 height:auto;
2021 transition: 0.3s;
2022 overflow: hidden;
2023 border-top: 1px #E4E8F0 solid;
2024}
2025
2026.content-valores-descontos.hide-price{
2027
2028 padding:0;
2029 opacity: 0;
2030 height:0;
2031
2032}
2033
2034.content-btn-bolsa{
2035
2036 border-top: 1px #E4E8F0 solid;
2037 padding-top:20px;
2038
2039}
2040
2041.content-btn-bolsa.modifier-content-show{
2042
2043 padding-bottom: 20px;
2044
2045}
2046
2047.content-btn-bolsa.modifier-content-show .ou-separator-desconto{
2048 display:none;
2049}
2050
2051.content-btn-bolsa.modifier-content-show .btn-show-price{
2052 display:none;
2053}
2054
2055.content-buttons{
2056
2057 padding:20px 0 0 0;
2058
2059}
2060
2061.block-valor-desconto{
2062
2063 background-color:#F2F6FF;
2064 padding: 30px 10px 15px 10px;
2065 border-radius:12px;
2066 position: relative;
2067
2068}
2069
2070.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2071 font-size: 18px;
2072}
2073
2074.block-valor-total{
2075
2076 background-color:#F2F6FF;
2077 padding:15px 10px;
2078 border-radius:12px;
2079 position: relative;
2080
2081}
2082
2083.block-valor-total .ssp-card-oferta-curso__title-item{
2084 font-size: 16px!important;
2085 color: #454F63!important;
2086 font-weight:500!important;
2087}
2088
2089.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{
2090 font-size:22px;
2091}
2092
2093.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{
2094 font-size:11px;
2095}
2096
2097.block-valor-total .ssp-card-oferta-curso__desconto-content p{
2098 font-size:14px;
2099 font-weight: 500;
2100}
2101
2102.tag-label-desconto{
2103
2104background-color:#B6FDCF;
2105border-radius: 15px;
2106padding:5px;
2107margin: -50px 20px 10px 20px;
2108
2109}
2110
2111.tag-label-desconto span, .tag-label-desconto small{
2112font-size: 16px!important;
2113font-weight: bold!important;
2114color: #454F63!important;
2115}
2116
2117
2118
2119.ou-separator-desconto{
2120 font-size: 16px;
2121 color: #454F63;
2122 font-weight: bold;
2123 display:flex;
2124 flex-wrap: nowrap;
2125 align-items: center;
2126 justify-content:space-between;
2127 gap: 15px;
2128 padding:20px 0;
2129}
2130
2131.ou-separator-desconto::after{
2132 content: "";
2133 height:2px;
2134 background-color:#E4E8F0;
2135 width: 100%;
2136 display: block;
2137}
2138
2139.ou-separator-desconto::before{
2140 content: "";
2141 height:2px;
2142 background-color:#E4E8F0;
2143 width: 100%;
2144 display: block;
2145}
2146
2147.btn-show-price{
2148
2149 background: unset;
2150 border: 0;
2151 font-size: 14px!important;
2152 color: #454F63!important;
2153
2154}
2155
2156.btn-show-price p{
2157 margin: 0 !important;
2158}
2159
2160.btn-show-price span{
2161 text-decoration: underline;
2162 font-weight: bold;
2163}
2164
2165@media only screen and (max-width: 768px){
2166
2167 .content-data-dias{
2168
2169 padding:20px 0;
2170
2171 }
2172
2173 .ssp-card-oferta-curso__local-realizacao-content__title {
2174
2175 font-size: 14px;
2176 display:flex;
2177 align-items: center;
2178 gap: 5px;
2179 padding: 10px 13px;
2180 }
2181
2182 .ssp-card-oferta-curso__local-realizacao-content__title i{
2183
2184 font-size: 11px;
2185 }
2186
2187 .tag-label-desconto span, .tag-label-desconto small {
2188 font-size: 13px!important;
2189 }
2190
2191 .tag-label-desconto {
2192 padding: 5px;
2193 margin: -50px 12px 10px 12px;
2194 }
2195
2196 .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span {
2197 font-size: 18px;
2198 }
2199
2200 .content-buttons {
2201 padding: 10px 0 0 0;
2202 }
2203
2204
2205}
2206
2207/*final Novo card de ofertas*/
2208
2209/* form aprendizagem */
2210
2211[data-modal="modal"]{
2212 background-color: rgba(0,0,0,0.7);
2213 backdrop-filter: blur(10px);
2214 display:none;
2215}
2216
2217[data-modal="close-form-modal"]{
2218
2219 font-size: 22px;
2220 background: unset!important;
2221 color: white!important;
2222 display: flex;
2223 align-items: center;
2224 margin: 0;
2225 padding: 0;
2226 position:absolute;
2227 right:0;
2228 border:0;
2229 gap:5px;
2230 right: 2%;
2231 top: -2%;
2232
2233}
2234
2235[data-modal="close-form-modal"] i{
2236
2237 font-size:43px;
2238 height:fit-content;
2239
2240}
2241
2242.open-modal-form{
2243 position: fixed;
2244 top: 0;
2245 width: 100%;
2246 height: 100%;
2247 z-index: 100;
2248 display: flex;
2249 justify-content: center;
2250 align-items: center;
2251 overflow:auto;
2252
2253}
2254
2255.open-modal-form .ssp_ct_form_programe{
2256 animation-name: animatetop;
2257 animation-duration: .4s;
2258 position:relative;
2259}
2260
2261label .reference-mark {
2262color:#78849e;
2263}
2264.lexicon-icon-asterisk {
2265 color:#78849e;
2266}
2267.lexicon-icon-reload {
2268 margin-left:10px;
2269}
2270.ssp_title_form_programe{
2271 font-size: 42px!important;
2272 color: #ffffff!important;
2273 font-family: "Montserrat",sans-serif;
2274 font-weight:600;
2275 text-align:left;
2276}
2277.ssp_subtitle_form_programe {
2278 margin-top:0px!important;
2279
2280}
2281.ssp_subtitle_form_programe{
2282 font-size: 20px!important;
2283 color: #ffffff!important;
2284 font-family: "Montserrat",sans-serif;
2285 font-weight:600;
2286 text-align:left;
2287}
2288.lfr-ddm-form-page {
2289background-color: #fff;
2290border-radius: 12px 12px 0px 0px;
2291padding: 35px 15px!important;
2292}
2293.ssp:not(.liferay-instance) .form-group label {
2294 color: #78849E;
2295 font: normal normal 600 16px/19px Montserrat;
2296 padding-bottom: 10px;
2297}
2298.lfr-ddm-form-page-description {
2299display: none!important;
2300}
2301.lfr-ddm-form-page-title {
2302display: none!important;
2303}
2304.lfr-ddm-form-submit {
2305background-color: #0380F0;
2306 text-align: center;
2307 float: none!important;
2308 border: 1px solid #0380F0;
2309 border-radius: 6px;
2310 font-size: 16px;
2311 width: 245px;
2312 height: 50px;
2313}
2314.lfr-ddm-form-pagination-controls {
2315background-color: #fff;
2316 text-align: center;
2317 border-radius: 0px 0px 12px 12px;
2318 padding-bottom: 25px;
2319}
2320.ddm-form-name {
2321display: none!important;
2322}
2323.ddm-form-description {
2324display: none!important;
2325}
2326.ddm-form-builder-app {
2327margin-top:35px;
2328}
2329.taglib-captcha {
2330 display: flex;
2331}
2332.input-text-wrapper {
2333 left: 20px;
2334}
2335.lfr-ddm-form-pagination-controls {
2336 padding-top:0px!important;
2337 display:flex;
2338 justify-content:center;
2339 align-items: center;
2340 flex-flow:column;
2341}
2342@media only screen and (max-width: 1024px) {
2343
2344.open-modal-form{
2345
2346 align-items: flex-start;
2347
2348}
2349
2350.ddm-form-builder-app {
2351 margin-top: 15px;
2352}
2353
2354.ssp_title_form_programe{
2355font-size: 34px!important;
2356line-height: 1.2!important;
2357}
2358.ssp_subtitle_form_programe{
2359font-size:18px!important;
2360}
2361.taglib-captcha {
2362 display:block;
2363}
2364.input-text-wrapper {
2365 left:0;
2366}
2367.ssp_ct_form_programe {
2368 padding:0px;
2369 max-width:100%;
2370 padding:40px 20px;
2371}
2372
2373[data-modal="close-form-modal"]{
2374
2375 right: 20px;
2376 top: 0;
2377
2378}
2379
2380}
2381
2382.ssp:not(.liferay-instance) a.btn.btn-success.disabled{
2383 pointer-events: none;
2384 opacity: 0.5 !important;
2385 color: #FFF !important;
2386 background-color: #4CBF69 !important;
2387 cursor: not-allowed;
2388 border: none !important;
2389 font-size: 0.9rem !important;
2390}
2391
2392.slick-list.draggable {
2393 height: auto !important;
2394}
2395
2396.ssp:not(.liferay-instance) .ssp-image-opacity {
2397
2398 opacity: 1;
2399 object-fit: cover;
2400 object-position: center;
2401
2402}
2403
2404.ssp-option-group {
2405 text-align: left;
2406 font: normal normal 600 15px/19px Montserrat;
2407 letter-spacing: 0px;
2408 color: #004A8C;
2409}
2410.ssp-option {
2411 text-align: left;
2412 font: normal normal normal 15px/19px Montserrat;
2413 letter-spacing: 0px;
2414 color: #656565;
2415}
2416@media only screen and (max-width: 768px){
2417 .ssp-option-group {
2418 font: normal normal 600 15px/19px Montserrat;
2419 }
2420 .ssp-option {
2421 font: normal normal normal 15px/19px Montserrat;
2422 }
2423}
2424
2425.open-modal-form.lfr-ddm__default-page-header{
2426 display:none;
2427}
2428
2429/* css para funcionalidade de híbrido */
2430
2431.ssp-emed__vantagens-content.livre span{
2432 color: #FF9057!important;
2433}
2434.ssp-emed__vantagens-content.livre a:hover {
2435 color: white;
2436 background-color: #FF9057!important;;
2437 border: 1px solid #FF9057!important;;
2438}
2439.ssp-emed__vantagens-content.tecnico span{
2440 color: #F7BD23!important;
2441}
2442.ssp-emed__vantagens-content.tecnico a:hover {
2443 color: white;
2444 background-color: #F7BD23!important;;
2445 border: 1px solid #F7BD23!important;;
2446}
2447.ssp-emed__vantagens-content.ensino-medio-tecnico span{
2448 color: #C761CB!important;
2449}
2450.ssp-emed__vantagens-content.ensino-medio-tecnico a:hover{
2451 color: white;
2452 background-color: #C761CB!important;;
2453 border: 1px solid #C761CB!important;;
2454}
2455.ssp-emed__vantagens-content.extensao span{
2456 color: #3ECCA6!important;
2457}
2458.ssp-emed__vantagens-content.extensao a:hover{
2459 color: white;
2460 background-color: #3ECCA6!important;
2461 border: 1px solid #3ECCA6!important;
2462}
2463
2464/* Transferencias EMED */
2465
2466.emed-transferencias-space{
2467 max-width: 772px;
2468}
2469
2470.card-transferencias-emed {
2471 text-align: left;
2472}
2473
2474.card-transferencias-emed .ssp-emed__card-slider-body{
2475 padding: 30px;
2476}
2477
2478.card-pre-inscricao {
2479 text-align: center;
2480}
2481
2482.card-pre-inscricao .ssp-emed__card-slider-body{
2483 justify-content: space-evenly;
2484}
2485
2486.footer-card-card-pre-inscricao{
2487 margin-top: 48px;
2488 }
2489
2490.card-transferencias-emed, .card-pre-inscricao{
2491 span, strong{
2492 font-size: 24px;
2493 }
2494 span{
2495 font-weight: 500;
2496 }
2497 strong{
2498 font-weight: 700;
2499 }
2500 .transferencias-emed-rodape{
2501 margin-top:25px;
2502 span{
2503 font-size:0.9rem;
2504 font-weight: 400;
2505 }
2506 }
2507}
2508
2509@media only screen and (max-width: 768px){
2510 .card-pre-inscricao {
2511 text-align: left;
2512 }
2513
2514 .footer-card-card-pre-inscricao{
2515 margin-top: 24px;
2516 }
2517
2518 .footer-card-card-pre-inscricao strong{
2519 margin-top: 24px;
2520 font-size: 24px!important;
2521 }
2522
2523 .card-pre-inscricao .ssp-emed__card-slider {
2524 width: 100%;
2525 max-width: 329px;
2526 min-height: 390px;
2527 margin: 0;
2528 }
2529
2530 .card-pre-inscricao .ssp-emed__card-slider:nth-child(n+2){
2531 margin: 12px;
2532 }
2533
2534 .card-transferencias-emed, .card-pre-inscricao{
2535 span, strong{
2536 font-size: 16px;
2537 }
2538 .ssp-emed__section__titleCard{
2539 flex-basis: 0;
2540 margin-bottom: 24px!important;
2541 align-items: center!important;
2542 }
2543
2544 .ssp-emed__section__titleCard i{
2545 font-size: 24px!important;
2546 }
2547
2548 .ssp-emed__section__titleCard div{
2549 font-size: 20px !important;
2550 }
2551 }
2552
2553 .slick-area__item.card-pre-inscricao{
2554 min-height: 390px!important;
2555 }
2556
2557 .card-transferencias-emed .ssp-emed__card-slider{
2558 margin: 0;
2559 }
2560
2561 .card-transferencias-emed .ssp-emed__card-slider{
2562 margin: 0;
2563 min-height: 300px;
2564 }
2565
2566 .card-transferencias-emed .col-md-12{
2567 padding: 0;
2568 }
2569
2570 .card-transferencias-emed .transferencias-emed-rodape span{
2571 font-size: 12px;
2572 }
2573
2574 .ssp-ofertas-emed__filtro-content .btn-filtro{
2575 width:156px !important;
2576 font-size:14px !important;
2577 }
2578
2579 #titulo-emed{
2580 text-transform: uppercase;
2581 }
2582
2583 .emed-transferencias-space div:nth-child(n+2){
2584 padding-left:0;
2585 }
2586
2587 .emed-transferencias-space .slick-area-emed--md-bleed{
2588 position: inherit;
2589 }
2590
2591}
2592
2593</style>
2594
2595
2596 <#assign
2597
2598 prefix = "ssp"
2599 nomeVocabularioTipoCurso = 'tipo-de-curso'
2600
2601
2602 nomeVocabularioUnidades = 'unidades'
2603
2604 nomeVocabularioFormato = 'formato'
2605
2606 nomeFormato = ""
2607 nomeVocabularioModalidade = 'modalidade'
2608
2609 nomeModalidade = ""
2610
2611 normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer")
2612
2613 journalArticle = getJournalArticle()
2614 />
2615
2616 <#if journalArticle?contains("#erro#")>
2617 erro
2618 <#else>
2619
2620 <#assign
2621
2622 categories = getCategorias(journalArticle.getResourcePrimKey())
2623
2624 document = saxReaderUtil.read(journalArticle.getContent()).getRootElement()
2625
2626 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataEfetivaFTFieldSet']")
2627 dataEfetivaFTFieldSet = xPathSelector.selectSingleNode(document)
2628
2629 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='dataEfetivaFT']")
2630 dataEfetiva = xPathSelector.selectSingleNode(document)
2631
2632 dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string
2633
2634 articleId = journalArticle.getArticleId()
2635
2636 codigoFT = getStringValue(document,'codigoFT')
2637
2638 tituloComercial = journalArticle.getTitle()
2639
2640 objetivo = getStringValue(dataEfetivaFTFieldSet, 'objetivoComercial')
2641
2642 cargaHoraria = getStringValue(dataEfetivaFTFieldSet, 'cargaHorariaTotalFT')
2643
2644 oQueVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueVouAprenderComercial')
2645
2646 comoVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'comoVouAprenderComercial')
2647
2648 possoFazerEsteCursoComercial = getStringValue(dataEfetivaFTFieldSet, 'possoFazerEsteCursoComercial')
2649
2650 tereiCertificadoComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiCertificadoComercial')
2651
2652 tereiDiplomaComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiDiplomaComercial')
2653
2654 precisoEstagiarComercial = getStringValue(dataEfetivaFTFieldSet, 'precisoEstagiarComercial')
2655
2656 comoMeMatricularComercial = getStringValue(dataEfetivaFTFieldSet, 'comoMeMatricularComercial')
2657
2658 oQueMaisPrecisoSaberComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueMaisPrecisoSaberComercial')
2659
2660 normalizedModalidadeName = ""
2661
2662 />
2663
2664 <div style="display: none;">ElasticSearchNaoRetornarFiltro </div>
2665 <input type="hidden" name="codigoFT" value="${codigoFT}" />
2666 <input type="hidden" name="articleId" value="${articleId}" />
2667
2668 <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" />
2669
2670 <input type="hidden" name="codUnidadeSelecionada" value="" />
2671
2672 <#list categories as category>
2673
2674 <#assign
2675 vocabulary = getVocabulary(category.getVocabularyId())
2676 />
2677
2678 <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso>
2679
2680 <#assign
2681 categoriaTipoCurso = category
2682 normalizedCategoryName = normalizer.normalize(category.getName())
2683 />
2684
2685 <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" />
2686
2687 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades>
2688
2689 <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" />
2690
2691 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade>
2692
2693 <#assign
2694 categoriaModalidade = category
2695 normalizedModalidadeName = normalizer.normalize(category.getName())
2696
2697 />
2698
2699 <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" />
2700
2701 <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato>
2702 <#assign
2703 nomeFormato = category.getName()
2704 />
2705
2706
2707 <#assign idFormato = category.getCategoryId() />
2708 <#if nomeFormato == "Presencial + EAD" >
2709 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="Presencial + EAD" />
2710 <#else>
2711 <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" />
2712 </#if>
2713 </#if>
2714 </#list>
2715
2716 <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='imagemComercial']")>
2717
2718 <#if xPathSelector.selectSingleNode(dataEfetivaFTFieldSet)?? >
2719
2720 <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()>
2721 <#if imagemStr?contains("{") >
2722 <#attempt>
2723 <#assign
2724 imagemJson = jsonFactoryUtil.createJSONObject(imagemStr)
2725 imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId'))
2726 dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")
2727 dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")
2728 fileEntry = dl.getFileEntry(imagemId)
2729 imagemAlt = imagemJson.get('alt')
2730 imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null)
2731 />
2732 <#recover>
2733 <#assign
2734 imagemAlt = ""
2735 imagemUrl = ""
2736 />
2737 </#attempt>
2738 <#else>
2739 <#assign imagemUrl = "">
2740 </#if>
2741
2742 <#else>
2743 <#assign imagemUrl = "">
2744 </#if>
2745
2746
2747 <#assign
2748
2749 URLCodec = staticUtil["com.liferay.portal.kernel.util.URLCodec"]
2750 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]
2751 StringPool = staticUtil["com.liferay.petra.string.StringPool"]
2752 dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")
2753
2754 xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='quaisMateriaisComercial']")
2755 quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()
2756 />
2757
2758 <#if quaisMateriaisComercialPDFStr?contains('classPK') >
2759
2760 <#assign
2761
2762 PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr)
2763 classPKNumber = PDFJson.classPK?number
2764 fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber)
2765 folderId = fileEntry.getFolderId()
2766 title = fileEntry.getTitle()
2767
2768 quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId + StringPool.SLASH + URLCodec.encodeURL(HtmlUtil.unescape(title))
2769 />
2770
2771 <#else>
2772 <#assign quaisMateriaisComercialPDFUrl = "">
2773 </#if>
2774
2775 <#function getFirstArticleStructure categoryId structureName>
2776 <#attempt>
2777 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search")>
2778 <#assign companyId = themeDisplay.getCompanyId()>
2779 <#assign groupId = themeDisplay.getScopeGroupId()>
2780 <#assign articles = searchImpl.findArticlesByCategoryIds(companyId, groupId, structureName, (categoryId gt 0)?then([categoryId],[]), true, 0, 1)>
2781 <#if articles?size gt 0>
2782 <#return articles?first>
2783 </#if>
2784 <#return ''>
2785 <#recover>
2786 <#return ''>
2787 </#attempt>
2788 </#function>
2789
2790
2791 <#assign
2792 nomeTipoCurso = categoriaTipoCurso.getName()
2793 nomeCategoriaTipoCurso = categoriaTipoCurso.getName()
2794 idTipoCurso = categoriaTipoCurso.getCategoryId()
2795 />
2796 <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" />
2797
2798 <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2799
2800 <#assign
2801 nomeTipoCurso = categoriaTipoCurso.getName()
2802 />
2803
2804 <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" />
2805
2806 <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") >
2807
2808 <#assign
2809 nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s"
2810 />
2811
2812 <#else>
2813 <#assign
2814 nomeTipoCurso = categoriaTipoCurso.getName()
2815 />
2816 <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>
2817
2818 </#if>
2819
2820 <#-- Caso o curso seja do formato hibrido, busca o webcontent da pasta Onde as aulas vão acontecer - hibrido -->
2821 <#if nomeFormato == "Presencial + EAD">
2822 <#assign
2823 hibridoStructure = getFirstArticleStructure(idFormato,"formato-hibrido")
2824 documentHibrido = saxReaderUtil.read(hibridoStructure.getContent())
2825 rootElement = documentHibrido.getRootElement()
2826 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoFormatoHibrido']")
2827 />
2828 <#if xPathSelector.selectSingleNode(rootElement)?? >
2829 <#assign txtHibrido = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2830 <input type="hidden" name="textoFormatoHibrido" value="${txtHibrido}"/>
2831 </#if>
2832 </#if>
2833
2834
2835 <#-- dados de compartilhamento -->
2836 <@liferay_util["html-top"]>
2837 <meta name="image" property="og:image" content="${imagemUrl}">
2838 <meta property="og:image:width" content="1024">
2839 </@>
2840 <#-- dados de compartilhamento -->
2841
2842
2843 <#assign
2844 webContentServiceUtil = serviceLocator.findService("br.senac.services.service.WebContentServiceUtil")
2845
2846 temasMercadologicos = webContentServiceUtil.getTemasPorArticleId(themeDisplay.getScopeGroupId(), journalArticle)
2847 categoriesIdiomas = temasMercadologicos?filter(c -> c.getName()?lower_case?contains("idioma"))
2848 hasIdiomas = categoriesIdiomas?has_content
2849 hasEMED = normalizedModalidadeName?contains("ensino-medio")
2850 />
2851
2852 <#function getManutencao>
2853
2854 <#assign manutencaoStructure = getFirstArticleStructure(idTipoCurso,"manutencoes") />
2855 <#if manutencaoStructure == "">
2856 <#return {"bolsa":"", "compra":"", "rodape":""} />
2857 </#if>
2858 <#assign
2859 txtBolsa = ""
2860 txtCompra = ""
2861 txtRodape = ""
2862 content = saxReaderUtil.read(manutencaoStructure.getContent())
2863 rootElement = content.getRootElement()
2864 />
2865 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoBolsa']") />
2866 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2867 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoBolsa']") />
2868 <#assign txtBolsa = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2869 </#if>
2870 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoCompra']") />
2871 <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" >
2872 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoCompra']") />
2873 <#assign txtCompra = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2874 </#if>
2875 <#if txtCompra != "" || txtBolsa != "">
2876 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoRodape']") />
2877 <#assign txtRodape = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
2878 </#if>
2879
2880 <#return {"bolsa": txtBolsa, "compra": txtCompra, "rodape": txtRodape} />
2881
2882 </#function>
2883
2884 <#assign manutencao = getManutencao() />
2885 <input type="hidden" id="manutencao-compra" value="${manutencao.compra}" />
2886 <input type="hidden" id="manutencao-bolsa" value="${manutencao.bolsa}" />
2887
2888 <div class="${prefix}-header-curso__image">
2889 <#if imagemUrl?contains(".webp")>
2890 <#-- Remove midias adaptaveis -->
2891 <picture>
2892 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2893 </picture>
2894 <#else>
2895 <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy">
2896 </#if>
2897 <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}">
2898 <#if hasIdiomas>
2899 <span>${nomeTipoCurso}</span>
2900 <#else>
2901 <span>${nomeTipoCurso} | ${nomeFormato}</span>
2902 </#if>
2903 </div>
2904 </div>
2905
2906 <section id="curso-info">
2907 <div class="ssp-card-detalhe-curso__container">
2908
2909 <div class="ssp-card-detalhe-curso">
2910
2911 <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div>
2912
2913 <div class="container">
2914
2915 <#if nomeFormato?contains("ao-vivo") >
2916 <span class="ssp-card-detalhe-curso__tag-ao-vivo">Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo</span>
2917
2918 </#if>
2919
2920 <div class="ssp-card-detalhe-curso__content">
2921 <div>
2922
2923 <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")>
2924
2925 <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p>
2926
2927 </#if> -->
2928
2929 <!-- rever a lógica da chama de inscricoes abertas -->
2930
2931 <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1>
2932 <input type="hidden" name="tituloComercial" value="${tituloComercial}" />
2933
2934 <div class="ssp-card-detalhe-curso__description">${objetivo}</div>
2935 </div>
2936 <div class="ssp-card-detalhe-curso__secunday-info-content">
2937
2938 <#if nomeFormato?contains("ao-vivo") >
2939 <span class="d-md-none">
2940 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a>
2941 <#if !hasIdiomas>
2942 <span> | ${nomeFormato}</span>
2943 </#if>
2944 </span>
2945
2946 <#else>
2947 <span class="d-md-none">
2948 <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#">${categoriaTipoCurso.getName()}</a>
2949 <#if !hasIdiomas>
2950 <span> | ${nomeFormato}</span>
2951 </#if>
2952 </span>
2953
2954 </#if>
2955
2956 <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p>
2957 </div>
2958 </div>
2959 <div class="ssp-saiba-mais-curso-accordion">
2960
2961 <#if (possoFazerEsteCursoComercial?length > 0)>
2962 <div class="ssp-saiba-mais-curso-accordion__body">
2963 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div>
2964 <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div>
2965 </div>
2966
2967 </#if>
2968
2969 <#if (oQueVouAprenderComercial?length > 0) >
2970 <div class="ssp-saiba-mais-curso-accordion__body">
2971 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div>
2972 <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div>
2973 </div>
2974 </#if>
2975
2976 <#if (comoVouAprenderComercial?length > 0)>
2977 <div class="ssp-saiba-mais-curso-accordion__body">
2978 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div>
2979 <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div>
2980 </div>
2981 </#if>
2982
2983
2984 <div class="ssp-saiba-mais-curso-accordion__body">
2985 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div>
2986 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
2987 <div class="ssp-saiba-mais-curso-accordion__contents">
2988 Desenvolvemos os materiais e disponibilizamos tudo para você!<br/><br/>Também temos bibliotecas físicas e virtuais, além de parceria com a Microsoft, que garante acesso à plataforma Teams para conferir aulas, avisos e materiais da sua turma.
2989 </div>
2990 <#else>
2991 <#if (quaisMateriaisComercialPDFUrl?length > 0)>
2992 <div class="ssp-saiba-mais-curso-accordion__contents">
2993 <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a>
2994 </div>
2995 <#else>
2996 <div class="ssp-saiba-mais-curso-accordion__contents">Inicialmente, não há lista de materiais para este curso. Mas confirme em aula se será necessário comprar algum item.</div>
2997 </#if>
2998 </#if>
2999 </div>
3000
3001 <#if (tereiDiplomaComercial?length > 0)>
3002 <div class="ssp-saiba-mais-curso-accordion__body">
3003 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div>
3004 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div>
3005 </div>
3006 </#if>
3007
3008 <#if (tereiCertificadoComercial?length > 0)>
3009 <div class="ssp-saiba-mais-curso-accordion__body">
3010 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div>
3011 <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div>
3012 </div>
3013 </#if>
3014
3015 <#if (comoMeMatricularComercial?length > 0)>
3016 <div class="ssp-saiba-mais-curso-accordion__body">
3017 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div>
3018 <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div>
3019 </div>
3020 </#if>
3021
3022 <#if (precisoEstagiarComercial?length > 0)>
3023 <div class="ssp-saiba-mais-curso-accordion__body">
3024 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div>
3025 <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div>
3026 </div>
3027 </#if>
3028
3029
3030 <#if (oQueMaisPrecisoSaberComercial?length > 0)>
3031 <div class="ssp-saiba-mais-curso-accordion__body">
3032 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3033 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div>
3034 <#else>
3035 <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div>
3036 </#if>
3037 <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div>
3038 </div>
3039 </#if>
3040
3041 <!-- Info para EMED -->
3042
3043 <#if nomeTipoCurso?contains("Ensino Médio Técnico") >
3044
3045 <div class="ssp-emed__vantagens-content">
3046
3047 <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p>
3048 <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a>
3049
3050 </div>
3051
3052 <#elseif nomeFormato?contains("Presencial") && nomeFormato?contains("EAD") && !nomeTipoCurso?contains("Idioma")>
3053
3054 <!-- Info para híbrido -->
3055
3056 <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3057
3058 <p>Quer saber mais sobre nossos <span>cursos com aulas presenciais e a distância</span>?</p>
3059 <a href="/presencial-ead" class="btn">Saiba mais</a>
3060
3061 </div>
3062
3063 <#else>
3064
3065 <!-- <div class="ssp-emed__vantagens-content ${normalizedCategoryName}">
3066
3067 <p>Conheça <span>mais vantagens</span>?</p>
3068 <a href="#" class="btn">Saiba mais</a>
3069
3070 </div> -->
3071
3072 </#if>
3073
3074
3075 <!-- Slider para cursos de Cozinheiro e Garçom -->
3076
3077 <#if codigoFT=="14125">
3078
3079 <div>
3080
3081 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3082
3083
3084 <div class="slider-passo-passo__cursos-cozinha">
3085
3086 <div class="ssp-passo-passo-cozinheiro_card">
3087
3088 <div>
3089
3090 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3091
3092 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3093
3094 </div>
3095
3096
3097 </div>
3098
3099 <div class="ssp-passo-passo-cozinheiro_card">
3100
3101 <div>
3102
3103 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3104
3105 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p>
3106
3107 </div>
3108
3109 </div>
3110
3111 <div class="ssp-passo-passo-cozinheiro_card">
3112
3113 <div>
3114
3115 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3116
3117 <p class="ssp-passo-passo-cozinheiro_card-txt">
3118 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3119 </p>
3120
3121
3122 </div>
3123
3124 </div>
3125
3126 <div class="ssp-passo-passo-cozinheiro_card">
3127
3128 <div>
3129
3130 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3131
3132 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
3133 </p>
3134
3135
3136 </div>
3137
3138 </div>
3139
3140 <div class="ssp-passo-passo-cozinheiro_card">
3141
3142 <div>
3143
3144 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3145
3146 <p class="ssp-passo-passo-cozinheiro_card-txt">
3147 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3148 </p>
3149
3150 </div>
3151
3152 </div>
3153
3154 <div class="ssp-passo-passo-cozinheiro_card">
3155
3156 <div>
3157
3158 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3159
3160 <p class="ssp-passo-passo-cozinheiro_card-txt">
3161 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3162 </p>
3163
3164 </div>
3165
3166 </div>
3167
3168 <div class="ssp-passo-passo-cozinheiro_card">
3169
3170 <div>
3171
3172 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3173
3174 <p class="ssp-passo-passo-cozinheiro_card-txt">
3175 Teve aprovação em todas as etapas? Parabéns!
3176
3177 Sua jornada de transformação profissional
3178
3179 começará com o início das aulas. Mas se não
3180
3181 conseguiu dessa vez, não desanime. Sempre estamos com
3182
3183 vagas abertas para diversos cursos.
3184 </p>
3185
3186 </div>
3187
3188 </div>
3189
3190
3191 </div>
3192
3193 </div>
3194
3195 <#elseif codigoFT=="15390" >
3196
3197 <div>
3198
3199 <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6>
3200
3201 <div class="slider-passo-passo__cursos-cozinha">
3202
3203 <div class="ssp-passo-passo-cozinheiro_card">
3204
3205 <div>
3206
3207 <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6>
3208
3209 <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p>
3210
3211 </div>
3212
3213
3214 </div>
3215
3216 <div class="ssp-passo-passo-cozinheiro_card">
3217
3218 <div>
3219
3220 <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6>
3221
3222 <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p>
3223
3224 </div>
3225
3226 </div>
3227
3228 <div class="ssp-passo-passo-cozinheiro_card">
3229
3230 <div>
3231
3232 <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6>
3233
3234 <p class="ssp-passo-passo-cozinheiro_card-txt">
3235 Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários.
3236 </p>
3237
3238
3239 </div>
3240
3241 </div>
3242
3243 <div class="ssp-passo-passo-cozinheiro_card">
3244
3245 <div>
3246
3247 <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6>
3248
3249 <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários.
3250 </p>
3251
3252
3253 </div>
3254
3255 </div>
3256
3257 <div class="ssp-passo-passo-cozinheiro_card">
3258
3259 <div>
3260
3261 <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6>
3262
3263 <p class="ssp-passo-passo-cozinheiro_card-txt">
3264 Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.
3265 </p>
3266
3267 </div>
3268
3269 </div>
3270
3271 <div class="ssp-passo-passo-cozinheiro_card">
3272
3273 <div>
3274
3275 <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6>
3276
3277 <p class="ssp-passo-passo-cozinheiro_card-txt">
3278 Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.
3279 </p>
3280
3281 </div>
3282
3283 </div>
3284
3285 <div class="ssp-passo-passo-cozinheiro_card">
3286
3287 <div>
3288
3289 <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6>
3290
3291 <p class="ssp-passo-passo-cozinheiro_card-txt">
3292 Teve aprovação em todas as etapas? Parabéns!
3293
3294 Sua jornada de transformação profissional
3295
3296 começará com o início das aulas. Mas se não
3297
3298 conseguiu dessa vez, não desanime. Sempre estamos com
3299
3300 vagas abertas para diversos cursos.
3301 </p>
3302
3303 </div>
3304
3305 </div>
3306
3307
3308 </div>
3309
3310 </div>
3311
3312 </#if>
3313
3314 <!-- Final Slider para cursos de Cozinheiro e Garçom -->
3315
3316 </div>
3317 </div>
3318 </div>
3319 </div>
3320 </section>
3321 <#assign
3322 dNoneSelectUnidade = ''
3323 mostrarUnidades = !nomeFormato?contains("ao-vivo")
3324 isEMED = normalizedCategoryName?contains("ensino-medio-tecnico")
3325 isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz")
3326 />
3327
3328 <#if nomeFormato?contains("ao-vivo") >
3329 <#assign dNoneSelectUnidade = 'd-none' />
3330 </#if>
3331
3332 <#-- Obter data matricula emed -->
3333 <#if isEMED>
3334 <#function getMatriculaEMED >
3335 <#assign emedTags = getFirstArticleStructure(0,"emed-tags")
3336 document = saxReaderUtil.read(emedTags.getContent())
3337 rootElement = document.getRootElement()
3338 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataInicioPeriodoMatricula']") />
3339 <#if xPathSelector.selectSingleNode(rootElement)?? >
3340 <#assign dataInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3341 </#if>
3342 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='horaInicioMatricula']") />
3343 <#if xPathSelector.selectSingleNode(rootElement)?? >
3344 <#assign horaInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim />
3345 </#if>
3346
3347 <#setting time_zone="America/Sao_Paulo">
3348 <#assign today = .now?datetime />
3349 <#assign emeddatetime = (dataInicio + " " + horaInicio)?datetime["yyyy-MM-dd HH:mm"] />
3350 <#assign matriculaAberta = today gt emeddatetime />
3351
3352 <#return {"dataInicio" : dataInicio, "horaInicio" : horaInicio, "aberta" : matriculaAberta}>
3353 </#function>
3354
3355 <#assign matriculaEMED = getMatriculaEMED() />
3356
3357 </#if>
3358
3359 <#if isEMED || isAprendizagem>
3360 <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41">
3361 <div class="container">
3362
3363 <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;">
3364 <div class="ssp-container_ofertas__title">
3365 <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom">
3366
3367 Selecione uma unidade para conhecer as próximas turmas:
3368
3369 </h3>
3370 </div>
3371
3372 <div class="ssp-container__form-select">
3373 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas">
3374 <option value="">Selecione uma unidade</option>
3375 </select>
3376 </div>
3377
3378 </div>
3379
3380 <div class="ssp-ofertas__box-endereco-unidade">
3381 <i class="icon-map-adress"></i>
3382 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3383 </div>
3384
3385 </div>
3386
3387 </section>
3388 <#else>
3389 <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41">
3390 <div class="container">
3391 <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8">
3392 <div class="ssp-container_ofertas__title">
3393 <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom ssp-detalhe-curso-titulo-filter">Escolha a unidade e conheça as turmas disponíveis:</h3>
3394 </div>
3395 </div>
3396 <div class="row ssp-filters-px justify-content-center">
3397 <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1">
3398 <div class="ssp-container-selecione-unidade row no-gutters">
3399 <div class="col-12">
3400 <div class="ssp-container__form-select mx-auto">
3401 <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>
3402 <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select>
3403 </div>
3404 </div>
3405 </div>
3406 </div>
3407
3408 <div id="ssp-alternadores" class="col mt-5 mt-lg-0 ${(isEMED || isAprendizagem)?then('d-none', '')} px-md-0 order-3 order-lg-2" style="max-width: 480px; display: none;">
3409 <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div>
3410 <div class="row no-gutters mt-4">
3411 <#assign
3412 mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão")
3413 mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre")
3414 />
3415
3416
3417 <#if mostrarFiltroInscricao && mostrarFiltroBolsa>
3418 <div class="ssp-switch-divider d-md-none my-4"></div>
3419 </#if>
3420
3421 <#if mostrarFiltroInscricao>
3422 <div class="col-12 col-lg">
3423 <div class="d-flex justify-content-between justify-content-lg-start">
3424 <label class="ssp-switch order-2 order-lg-1">
3425 <input type="checkbox" id="chkInscricao">
3426 <span class="ssp-switch-slider round"></span>
3427 </label>
3428 <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">Comprar agora</label>
3429 </div>
3430 </div>
3431 </#if>
3432
3433
3434 <#if mostrarFiltroBolsa>
3435 <div class="col-12 col-lg">
3436 <div class="d-flex justify-content-between justify-content-lg-start">
3437 <label class="ssp-switch order-2 order-lg-1">
3438 <input type="checkbox" id="chkBolsa">
3439 <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span>
3440 </label>
3441 <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label>
3442 </div>
3443 </div>
3444 </#if>
3445 </div>
3446 </div>
3447
3448 <div class="col-12 order-2 order-lg-3">
3449 <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}">
3450 <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;">
3451 <div class="row no-gutters">
3452 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso. </span>
3453 <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span>
3454 </div>
3455 </div>
3456 </div>
3457 </div>
3458 </div>
3459
3460 <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}">
3461 <i class="icon-map-adress"></i>
3462 <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a>
3463 </div>
3464
3465 </div>
3466
3467 </section>
3468 </#if>
3469
3470
3471 <!-- EMED -->
3472 <section class="ssp-ofertas-emed__section d-none">
3473
3474 <h2 class="title-section-white" id="titulo-emed"></h2>
3475
3476 <div class="ssp-ofertas-emed__filtro-content container">
3477
3478 <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button>
3479
3480 <button type="button" value="0" class="btn btn-filtro">Transferências</button>
3481
3482 </div>
3483
3484 <div class="ssp-ofertas-emed__card-container">
3485
3486 <div class="ssp-slick-ofertas-emed">
3487
3488 </div>
3489
3490 </div>
3491
3492 </section>
3493
3494 <!-- FIM EMED -->
3495
3496 <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;">
3497
3498 <div id="turmas-container" class="container">
3499
3500 <div id="informe-novas-turmas">
3501 <div style="display: flex; flex-wrap: nowrap;">
3502
3503 <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" >
3504 <i class="fas fa-chevron-left"></i>
3505 </a>
3506
3507 <h2 id="ssp-h3-turmas" class="ssp-section-title ssp-card-oferta-curso__section-title text-capitalize" style="font-weight: bold;text-transform: uppercase; display: none;">Turmas</h2>
3508
3509 <a href="#" class="next-mobile d-lg-none d-xl-none" >
3510 <i class="fas fa-chevron-right"></i>
3511 </a>
3512
3513 </div>
3514
3515
3516 <div class="oferta-slick-area oferta-slick-area--md-bleed slider-container">
3517
3518 </div>
3519 </div>
3520
3521 <#if !isEMED>
3522 <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;">
3523
3524 <h3 class="ssp-card-oferta-curso__sem-vaga-title">
3525 Estude com a gente na próxima turma!
3526 </h3>
3527
3528 <p class="ssp-card-oferta-curso__sem-vaga-description">
3529 Registre seu interesse e avisaremos você quando surgirem novas vagas.
3530 </p>
3531 </div>
3532 <#else>
3533
3534 <div class="card-transferencias-emed container p-0 d-none emed-transferencias-space">
3535 <div>
3536 <div class="col-md-12 col-xs-12 pb-10">
3537 <div>
3538 <div class="slick-area__item">
3539
3540 <div class="ssp-emed__card-slider">
3541
3542 <div class="ssp-emed__card-slider-body">
3543 <h2 class="ssp-emed__section__titleCard">
3544 <i class="fal fa-users-class"></i>
3545 <div>Turmas</div>
3546 </h2>
3547 <div style="display:grid;gap:20px;">
3548 <span class="emed_transferencia_texto">Para saber mais sobre vagas de transferências para 1º e 2º ano para estudantes do Senac e de outras escolas, entre em contato com a unidade de interesse para checar a disponibilidade.</span>
3549 <span></span>
3550 </div>
3551 </div>
3552
3553 </div>
3554
3555 </div>
3556 </div>
3557 </div>
3558 </div>
3559 </div>
3560
3561 <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none">
3562 <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space">
3563 </#if>
3564 <div>
3565 <div class="col-md-12 col-xs-12 pb-10">
3566
3567 <!--slick slider-->
3568 <div class="slick-area-emed slick-area-emed--md-bleed">
3569
3570 <#if matriculaEMED.aberta>
3571 <div class="slick-area__item">
3572
3573 <div class="ssp-emed__card-slider">
3574
3575 <div class="ssp-emed__card-slider-body">
3576 <h2 class="ssp-emed__section__titleCard">
3577 <i class="fal fa-users-class"></i>
3578 <div><lfr-editable type="rich-text">Turmas</lfr-editable></div>
3579 </h2>
3580 <lfr-editable type="rich-text">
3581 <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div>
3582 <div class="ssp-emed__section__textCard">
3583 <span class="texto">
3584 Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano.
3585 </span>
3586 <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i
3587 class="fas fa-chevron-right"></i></span>
3588 </div>
3589 </lfr-editable>
3590 </a>
3591 </div>
3592
3593 </div>
3594
3595 </div>
3596
3597 <div class="slick-area__item">
3598
3599 <div class="ssp-emed__card-slider">
3600 <div class="ssp-emed__card-slider-body">
3601
3602 <h2 class="ssp-emed__section__titleCard">
3603 <i class="far fa-envelope"></i>
3604 <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div>
3605 </h2>
3606 <lfr-editable id="txt_emed_boleto" type="rich-text">
3607 <div class="ssp-emed__section__introCardCTA">
3608 Quer receber um aviso sobre as turmas do próximo ano?
3609 </div>
3610 </lfr-editable>
3611 </a>
3612 <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10"
3613 id="btnOptin" href="javascript:;">Sim, me avise.</a>
3614 </div>
3615 </div>
3616 </div>
3617 <#else>
3618 <#-- pre inscricao emed -->
3619 <div class="slick-area__item card-pre-inscricao">
3620
3621 <div class="ssp-emed__card-slider">
3622
3623 <div class="ssp-emed__card-slider-body">
3624 <h2 class="ssp-emed__section__titleCard">
3625 <i class="fal fa-users-class"></i>
3626 <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div>
3627 </h2>
3628 <lfr-editable id="txt_emed_aulas" type="rich-text">
3629 <div>
3630 <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/>
3631 <span style="font-weight: 400;">
3632 a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas
3633 <#if matriculaEMED.horaInicio?split(":")?last != "00">
3634 e ${matriculaEMED.horaInicio?split(":")?last} minutos
3635 </#if>
3636 </span>
3637 </div>
3638
3639 <div class="footer-card-card-pre-inscricao">
3640 <strong>
3641 Estude com a gente na próxima turma!<br/>
3642 Esperamos por você!
3643 </strong>
3644 </div>
3645 </lfr-editable>
3646 </a>
3647 </div>
3648
3649 </div>
3650
3651 </div>
3652
3653 </#if>
3654
3655 </div>
3656 <!--/slick slider-->
3657
3658 </div>
3659 </div>
3660 </div>
3661 </#if>
3662 <div class="oferta-slick-area_modal">
3663 </div>
3664
3665 <#if manutencao.rodape != "">
3666 <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p>
3667 <#else>
3668 <#if isEMED>
3669 <p class="ssp-card-oferta-curso__mensagem-legal">O Senac reserva-se o direito de alterar o número de vagas, datas, horários ou cancelar o programa.</p>
3670 <#else>
3671 <p class="ssp-card-oferta-curso__mensagem-legal">A turma pode ser cancelada ou ter alterações do número de vagas, datas e horários.</p>
3672 </#if>
3673 </#if>
3674
3675 </div>
3676
3677 <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;">
3678
3679 <p>Tem dúvidas sobre bolsas de estudo?</p>
3680 <a href="/bolsas-de-estudo">Saiba como funciona</a>
3681
3682 </div>
3683
3684
3685 </section>
3686
3687 <section id="section-registro-interesse" class="ssp-section-novas-turmas">
3688
3689 <div class="container">
3690
3691 <div class="ssp-aviso-novas-turmas__content">
3692
3693 <!-- <div class="pb-sm-5 pb-md-5" > -->
3694 <div>
3695
3696 <h6 class="ssp-aviso-novas-turmas__title">Quer receber um aviso por e-mail sobre novas turmas?</h6>
3697 <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p -->
3698
3699 </div>
3700
3701 <!--
3702 <div class="ssp-container__form-select">
3703
3704 <select class="form-control select-large select-registro-interesse" id="select-registro-interesse">
3705 <option value="">Selecione uma unidade</option>
3706 </select>
3707
3708 </div>
3709 -->
3710 <div class="ssp-btn-group__content-teste">
3711
3712 <a class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Sim, me avise</a>
3713
3714 </div>
3715
3716
3717
3718 </div>
3719
3720
3721 </div>
3722
3723
3724 </section>
3725
3726 <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none">
3727
3728 <div class="ssp-card-msg-erro">
3729
3730 <div class="ssp-card-msg-sucesso__content">
3731 <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i>
3732 <p>Houve um erro ao inserir curso na mochila!</p>
3733 <p>Por favor, tente novamente!</p>
3734 </div>
3735
3736 <div>
3737 <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button>
3738 </div>
3739
3740 </div>
3741
3742 </section>
3743
3744 <section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none">
3745
3746 <div class="ssp-modal-mochila-curso">
3747
3748 <div class="ssp-modal-mochila-curso__header">
3749
3750 <button class="modal-btn-close" type="button">
3751
3752 <i class="fal fa-times"></i>
3753
3754 </button>
3755
3756 <h2 class="modal-title">Curso adicionado à mochila!</h2>
3757 <p class="modal-subtitle">Você incluiu na sua mochila de compras o curso
3758 <span id="modal-backpack-success__nome-curso"></span>
3759 </p>
3760
3761 </div>
3762
3763 <div class="ssp-modal-mochila-curso__body">
3764
3765 <p>A sua vaga só é garantida nesta turma quando você finaliza a
3766 compra. Deseja concluir agora?</p>
3767
3768 </div>
3769
3770 <div class="ssp-modal-mochila-curso__block-btn-items block-btn-items">
3771
3772 <a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#">
3773 Finalizar compra
3774 </a>
3775
3776 <button class="btn-continuar-site btn-mochila-continuar-site-success">
3777 Continuar no site
3778 </button>
3779
3780 </div>
3781
3782
3783 </div>
3784
3785 </section>
3786
3787</#if>
3788
3789<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") >
3790 <!-- Agende a sua visita -->
3791 <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") />
3792 <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) />
3793
3794 <section id="ssp-emed-visita-sector">
3795 <div class="container py-5 pt-lg-0" style="display:none;">
3796 <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper">
3797 <#list articles![] as article>
3798 <#assign document = saxReaderUtil.read(article.getContent()) />
3799 <#assign rootElement = document.getRootElement() />
3800
3801 <#assign
3802 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']")
3803 textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3804
3805 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']")
3806 linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3807
3808 xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']")
3809 ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()
3810 />
3811
3812 <#if ativarBotao?trim == "true">
3813 <script>$('#ssp-emed-visita-sector').children().show()</script>
3814 <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text">
3815
3816 <a href="${linkBotao}">${textoDoBotao}</a>
3817
3818 </div>
3819 <div class="ssp-emed-visita-icon">
3820 <i class="fas fa-route"></i>
3821 </div>
3822 </#if>
3823 </#list>
3824 </div>
3825 </div>
3826 </section>
3827
3828
3829 <!-- Como me matricular EMED -->
3830
3831 <section class="ssp-como-me-matricular__section">
3832
3833 <h2 class="title-section-white">Como me matricular?</h2>
3834
3835 <div class="container">
3836
3837 <div class="ssp-como-me-matricular__passo-passo-card">
3838
3839 <div class="item-passo">
3840 <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt="">
3841 <p class="item-passo-title">Escolha o curso</p>
3842 <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span>
3843 </div>
3844
3845 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3846
3847 <div class="item-passo">
3848 <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt="">
3849 <p class="item-passo-title">Adicione à Mochila</p>
3850 <span>Faça login ou crie uma conta em nosso site e continue a compra.</span>
3851 </div>
3852
3853 <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt="">
3854
3855 <div class="item-passo">
3856 <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt="">
3857 <p class="item-passo-title">Faça a matrícula</p>
3858 <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span>
3859 </div>
3860
3861 </div>
3862
3863
3864 </div>
3865
3866 </section>
3867
3868 </#if>
3869
3870
3871 <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2">
3872 <div class="container">
3873 <h2 class="ssp-section-title">
3874 <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text">
3875 Cursos que você pode gostar
3876 </lfr-editable>
3877 </h2>
3878
3879 <div id="slider-curso">
3880
3881 </div>
3882
3883 </div>
3884 </div>
3885
3886
3887
3888
3889 <#-- Section para o item de curso-->
3890 <div id="curso-item-template" class="d-none slick-area__item">
3891
3892 <div class="ssp-card-curso" style="height: 288px;">
3893
3894 <a class="ssp-absolute-link ck-curso" href="#a"></a>
3895
3896 <div class="ssp-card-curso__image">
3897
3898 <div class="ssp-image-container">
3899 <img src="" />
3900
3901 </div>
3902
3903 </div>
3904
3905 <div class="ssp-card-curso__body">
3906
3907 <div class="ssp-card-curso__color-tag-modalidade"></div>
3908
3909 <div class="ssp-card-curso__tags">
3910
3911 <span class="ssp-card-curso__tag-formato-title"></span>
3912
3913 <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span>
3914
3915 </div>
3916
3917 <h6 class="ssp-card-curso__title">
3918
3919 </h6>
3920
3921 <div class="ssp-card-curso__info">
3922
3923 <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span>
3924 <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span>
3925
3926 </div>
3927
3928 </div>
3929
3930 </div>
3931
3932 </div>
3933
3934 <#function getJournalArticle>
3935
3936
3937 <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3938 <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first>
3939 <#assign groupId = themeDisplay.getSiteGroupId()>
3940 <#attempt>
3941
3942 <#if !friendlyURL?contains("fragment_collections") >
3943
3944 <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)>
3945 <#else>
3946
3947 <#return '#erro#'>
3948 </#if>
3949
3950 <#recover>
3951
3952 <#return '#erro#'>
3953 </#attempt>
3954 </#function>
3955
3956 <#function getCategorias primaryKey>
3957
3958 <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
3959 <#attempt>
3960
3961 <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)>
3962
3963 <#recover>
3964
3965 <#return '#erro#'>
3966 </#attempt>
3967 </#function>
3968
3969 <#function getVocabulary vocabularyId>
3970
3971 <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") />
3972 <#attempt>
3973
3974 <#return vocabularyService.getVocabulary(vocabularyId)>
3975
3976 <#recover>
3977
3978 <#return '#erro#'>
3979 </#attempt>
3980 </#function>
3981
3982 <#function getStringValue dom name>
3983 <#assign
3984 seletorSTR = "dynamic-element[@field-reference='"+name+"']"
3985 xPathSelector = saxReaderUtil.createXPath(seletorSTR)
3986 />
3987 <#if xPathSelector.selectSingleNode(dom)?? >
3988 <#assign
3989 valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim
3990 />
3991 <#return valueSTR>
3992 </#if>
3993 <#return ''>
3994 </#function>
3995
3996 <!--Modal de Login -->
3997
3998 <section id="modal-login" class="ssp-modal-registro-interesse d-none">
3999
4000 <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;">
4001
4002 <div class="px-5">
4003 <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i>
4004 <div class="text-darker-gray py-3">Faça login na sua conta</div>
4005 </div>
4006
4007 <div class="dropdown-divider"></div>
4008
4009 <div class="dropdown-menu-arrow"></div>
4010
4011 <form id="login_form" class="px-5 py-4" method="post">
4012
4013 <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div>
4014
4015 <div class="form-group">
4016
4017 <label for="login-email">E-mail</label>
4018 <div class="input-group mb-2">
4019 <div class="input-group-prepend">
4020 <span class="input-group-text"><i class="icon-envelope"></i></span>
4021 </div>
4022 <input type="text" class="form-control" id="login-email-modal" name="_com_liferay_login_web_portlet_LoginPortlet_login" placeholder="Digite seu e-mail" aria-label="Email" aria-describedby="login-email">
4023 </div>
4024
4025 </div>
4026
4027 <div class="form-group">
4028
4029 <label for="login-password">Senha</label>
4030 <div class="input-group mb-2">
4031 <div class="input-group-prepend">
4032 <span class="input-group-text"><i class="icon-key"></i></span>
4033 </div>
4034 <input type="password" class="form-control" id="login-password-modal" name="_com_liferay_login_web_portlet_LoginPortlet_password" placeholder="Digite sua senha" aria-label="Password" aria-describedby="login-password">
4035 </div>
4036
4037 </div>
4038
4039 <div class="pt-1 pb-3">
4040 <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small>
4041 </div>
4042
4043 <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button>
4044 </form>
4045
4046 <div class="dropdown-divider"></div>
4047
4048 <div class="px-5 pb-4">
4049 <div class="text-darker-gray py-3">Não tem cadastro?</div>
4050 <a href="https://www.sp.senac.br/usuario-unico/InsertUser?destino=${themeDisplay.getPortalURL()+themeDisplay.getURLCurrent()}" target="_blank" class="btn bg-btn-cadastre btn-nivel-livre text-white w-100 ">Cadastre-se</a>
4051 </div>
4052
4053
4054 </div>
4055
4056 </section>
4057
4058 <!-- modal registro interesse -->
4059
4060
4061 <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none">
4062
4063 <#if !isEMED>
4064 <div class="ssp-card-registro-interesse">
4065
4066 <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i>
4067
4068 <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p>
4069 <h3 class="ssp-card-registro-interesse__nome-curso"></h3>
4070
4071 <div id="unidades-registro-interesse">
4072
4073 <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4>
4074
4075 <div id="select-unidades-registro-interesse">
4076 <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select>
4077 </div>
4078
4079 <div class="ssp-card-registro-interesse__add-mais">
4080 <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a>
4081
4082
4083
4084 <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a>
4085 </div>
4086
4087 </div>
4088
4089 <div id="dias-registro-interesse">
4090 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4>
4091
4092 <div class="ssp-card-registro-interesse__week-content">
4093 <span id="todosDias" class="ssp-week-day">Todos</span>
4094 <span class="ssp-week-day">Seg</span>
4095 <span class="ssp-week-day">Ter</span>
4096 <span class="ssp-week-day">Qua</span>
4097 <span class="ssp-week-day">Qui</span>
4098 <span class="ssp-week-day">Sex</span>
4099 <span class="ssp-week-day">Sab</span>
4100 </div>
4101
4102 </div>
4103
4104 <div id="periodo-registro-interesse">
4105
4106 <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4>
4107
4108 <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">
4109
4110 <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos">
4111 <input type="checkbox" name="" value="" id="check-todos-periodos">
4112 <label for="check-todos-periodos">Todos</label>
4113 </div>
4114
4115 <div class="ssp-card-registro-interesse__check-item">
4116 <input type="checkbox" name="" value="M" id="periodo-m">
4117 <label for="periodo-m">Manhã</label>
4118 </div>
4119
4120 <div class="ssp-card-registro-interesse__check-item">
4121 <input type="checkbox" name="" value="T" id="periodo-t">
4122 <label for="periodo-t">Tarde</label>
4123 </div>
4124
4125 <div class="ssp-card-registro-interesse__check-item">
4126 <input type="checkbox" name="" value="N" id="periodo-n">
4127 <label for="periodo-n" "="">Noite</label>
4128 </div>
4129
4130
4131 </div>
4132
4133 </div>
4134
4135 <div class="ssp-card-registro-interesse__card-politica">
4136
4137
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}';
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 urlUnidades.search = '?' + paramsUnidades.toString()
5885 urlUnidades = urlUnidades.href
5886
5887 $.ajax({
5888 url: urlUnidades,
5889 method:'get',
5890 async: false
5891 }).done(function(data){
5892 if(data.length > 0){
5893 const cursoInfo = JSON.parse(data);
5894 const unidadesOfertantes = cursoInfo.unidadesOfertantes;
5895
5896 $.each(unidadesOfertantes, function(k,item){
5897 var unidade = {};
5898 unidade['categoryId'] = item['categoryId'];
5899 unidade['codigoUnidade'] = item['codigoUnidade'];
5900 unidade['nome'] = item['nomeUnidade'];
5901 unidade['enderecoUnidade'] =item['enderecoUnidade'];
5902 unidade['numero'] =item['numEnderecoUnidade'];
5903 unidade['complemento'] = item['complementoEnderecoUnidade'];
5904 unidade['bairro'] = item['bairroUnidade'];
5905 unidade['googlemapsUnidade'] = item['googlemapsUnidade'];
5906 unidade['friendlyURL'] = item['friendlyURL'];
5907 unidade['selecionado'] = false;
5908 unidade['selectSelecionado'] = "";
5909 unidade['ofertas'] = [];
5910
5911 if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length)
5912 objsTela.unidadesRegistroInteresse.push(unidade)
5913 });
5914 }
5915 });
5916 }
5917
5918 function loadUnidades(showOptions, unidadeValue){
5919 //Busca as unidades do curso
5920
5921 const urlCursoInfo = urlSearchCursoInfo
5922 .replace('\{groupId\}', groupId)
5923 .replace('\{cursosInfo\}', $('[name="articleId"]').val())
5924 .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked'))
5925 .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked'));
5926
5927 loadUnidadesRegistroInteresse(urlCursoInfo)
5928
5929 $.ajax({
5930 url:urlCursoInfo,
5931 method:'get',
5932 async: false,
5933 beforeSend: function () {
5934 loading('.oferta-slick-area');
5935 }
5936 }).done(
5937 function(data){
5938
5939 if(data.length > 0){
5940
5941 if(!isAoVivo)
5942 $('.ssp-container-selecione-unidade').removeClass('d-none')
5943
5944 const cursoInfo = JSON.parse(data);
5945
5946
5947 //GCR pediu para voltarmos no combo as unidades vinculadas e não somente as que possuem ofertas
5948 //const unidades = cursoInfo.unidadesComOferta;
5949 const unidades = cursoInfo.unidadesOfertantes;
5950
5951 objsTela.unidades = []
5952 mapUnidadesIds = new Map();
5953
5954 $.each(unidades, function(k,item){
5955
5956 var unidade = cloneObj(item)
5957 unidade['nome'] = item['nomeUnidade'];
5958 unidade['numero'] =item['numEnderecoUnidade'];
5959 unidade['complemento'] = item['complementoEnderecoUnidade'];
5960 unidade['bairro'] = item['bairroUnidade'];
5961 unidade['ofertas'] = [];
5962
5963 objsTela.unidades.push(unidade);
5964
5965 mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']);
5966
5967 objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade))
5968 });
5969
5970
5971 populaSelectUnidades(undefined, showOptions, unidadeValue);
5972
5973 }
5974 });
5975
5976 }
5977
5978function getOfertaObjectFromJson(ofertaJSON,index){
5979
5980
5981 var oferta = {};
5982 var xml = $($.parseXML(ofertaJSON.content));
5983 oferta['ordenar'] = paramOrdem(xml);
5984 oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim();
5985 var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-');
5986 var dataFim =xml.find('[name="dataFimOferta"]').text().split('-');
5987 oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim();
5988 oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim();
5989 oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text();
5990 oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim();
5991 var dias = [];
5992 oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim();
5993 xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){
5994 dias.push($(dia).text());
5995 });
5996 oferta['diasDaSemanaOferta'] = dias;
5997 oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim();
5998 oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim();
5999 oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim();
6000 oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim();
6001
6002 oferta['textoCartoesAceitos'] = pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6003 oferta['numParcelaCartoes'] = pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6004 oferta['precoParcelaCartoes'] = pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim());
6005 oferta['numParcelaBoleto'] = pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6006 oferta['precoParcelaBoleto'] = pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim());
6007
6008 oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim();
6009 oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim();
6010 oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim();
6011 oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim();
6012 oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim();
6013 oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim();
6014 oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim();
6015 oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim();
6016 oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim();
6017 oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim();
6018 oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim();
6019 oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim();
6020 oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim();
6021 oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim();
6022 oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim();
6023 oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim();
6024 oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim();
6025 oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim();
6026 oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim();
6027 oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim();
6028 oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim();
6029 oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim();
6030 oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim();
6031 oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim();
6032 oferta['etapa'] = xml.find('[name="etapa"]').text().trim();
6033 oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();
6034 //adicao do destinoBolsa na oferta - 9546 - 11/07/2022
6035 oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim();
6036
6037 if(isEmed){
6038 //EMED utilizar data matricula para bolsa
6039 oferta['dataAberturaBolsaOferta'] = oferta['dataAberturaMatricula'];
6040
6041 }
6042
6043 return oferta;
6044 }
6045
6046 const getStatusEmed = (oferta) => {
6047
6048 const urlStatusEsperaEmed = () => {
6049 let url = (isAmbienteTeste()) ?
6050 'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/'
6051 : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/';
6052
6053 return url + oferta.codigoOferta;
6054 }
6055
6056 const callTl = async () => {
6057 if(getCookie('tl') == null){
6058 return await $.ajax({
6059 url: '/o/senac-content-services/geraTokenServicosSenac',
6060 method: 'GET'
6061 });
6062 }
6063 return getCookie('tl');
6064 }
6065
6066 const callListaEspera = async () => {
6067 var tl = '';
6068 try{
6069 tl = await callTl();
6070 if(getCookie('tl') == null){
6071 tl = JSON.parse(tl).token;
6072 writeCookie('tl', tl, 6, '');
6073 }
6074 }catch(err){
6075 console.error(err);
6076 return {};
6077 }
6078
6079 return $.ajax({
6080 url: urlStatusEsperaEmed(),
6081 method: 'GET',
6082 beforeSend: function (xhr) {
6083 xhr.setRequestHeader("Authorization", tl);
6084 }
6085 })
6086 }
6087
6088 return new Promise(async function (resolve, reject) {
6089 const resp = await callListaEspera();
6090 if(typeof resp !== 'object') resp = JSON.parse(resp);
6091 let status = resp.STATUS;
6092 resolve(status);
6093 });
6094
6095 }
6096
6097 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){
6098
6099 if(categoryIds && categoryIds.length) {
6100 var params = new URLSearchParams();
6101 params.set('codigoFTOferta',codigoFT)
6102 params.set('dataEfetivaOferta',dataEfetivaOferta)
6103 params.set('categoryIds',categoryIds)
6104 params.set('start',startOfertaParam)
6105 params.set('end',endOfertaParam)
6106 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6107 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6108 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6109
6110 if($('#chkBolsa').prop('checked')){
6111 params.set('considerarDataBolsaFutura', true)
6112 }
6113 const url = urlSearchOferta + '?' + params.toString()
6114
6115 $.ajax({
6116 url:url,
6117 method:'get',
6118 dataType:'json',
6119 async: false
6120 }).done(
6121 function(data){
6122
6123 if(data.length > 0){
6124 $('#ssp-alternadores').show()
6125 showedFilters = true
6126
6127 objsTela.ofertasAoVivoTodasUnidades = []
6128
6129 data.forEach(function(ofertaJSON,index){
6130
6131 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6132
6133 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
6134 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
6135 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
6136
6137 });
6138 } else {
6139 loadAlternadores(data)
6140 }
6141
6142 populaOfertas(objsTela.ofertasAoVivoTodasUnidades);
6143 addEventBolsa()
6144 }
6145 ).fail(function(e) {
6146 console.error(e)
6147 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []);
6148 })
6149 } else {
6150 loadAlternadores([])
6151 populaOfertas(objsTela.ofertasAoVivoTodasUnidades = [])
6152 }
6153
6154 if(isAoVivo) {
6155 if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length)
6156 hideCardSemTurmas(true)
6157 else
6158 hideCardSemTurmas(false)
6159 }
6160 }
6161
6162 function mudouToggleOferta(ofertas) {
6163 const oferta = ofertas && ofertas[0]
6164 if(!oferta)
6165 return true
6166
6167 const selecaoInscricao = $('#chkInscricao').prop('checked')
6168 const selecaoBolsa = $('#chkBolsa').prop('checked')
6169
6170 return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa
6171 }
6172
6173 function loadAlternadores(ofertas) {
6174 if(showedFilters) {
6175 $('#ssp-alternadores').show()
6176 return
6177 }
6178
6179 if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) {
6180 if(isAoVivo) {
6181 if(ofertas && ofertas.length)
6182 $('#ssp-alternadores').show()
6183 else {
6184 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6185 $('#ssp-alternadores').hide()
6186 else
6187 $('#ssp-alternadores').show()
6188 }
6189 } else {
6190 if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))
6191 $('#ssp-alternadores').hide()
6192 else
6193 $('#ssp-alternadores').show()
6194 }
6195 } else
6196 $('#ssp-alternadores').show()
6197
6198 showedFilters = showedFilters || $('#ssp-alternadores').is(":visible")
6199 }
6200
6201 function getOfertas(codigoFT, dataEfetivaOferta, categoryId){
6202
6203 var indiceUnidade = -1;
6204 const selecaoInscricao = $('#chkInscricao').prop('checked')
6205 const selecaoBolsa = $('#chkBolsa').prop('checked')
6206
6207 for(var i = 0; i < objsTela.unidades.length; i++)
6208 if(objsTela.unidades[i].categoryId == categoryId)
6209 indiceUnidade = i;
6210
6211 ultimaUnidade = indiceUnidade;
6212
6213 if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){
6214 objsTela.unidades[indiceUnidade]['ofertas'] = []
6215
6216 var params = new URLSearchParams();
6217 params.set('codigoFTOferta',codigoFT)
6218 params.set('dataEfetivaOferta',dataEfetivaOferta)
6219 params.set('categoryIds',categoryId)
6220 params.set('start',startOfertaParam)
6221 params.set('end',endOfertaParam)
6222 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
6223 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
6224 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
6225
6226 if($('#chkBolsa').prop('checked')){
6227 params.set('considerarDataBolsaFutura', true)
6228 }
6229
6230 const url = urlSearchOferta + '?' + params.toString()
6231
6232 $.ajax({
6233 url:url,
6234 method:'get',
6235 dataType:'json',
6236 async: false
6237 }).done(
6238 function(data){
6239
6240 if(data.length > 0){
6241 $('#ssp-alternadores').show()
6242 showedFilters = true
6243
6244 $('.ssp-container-selecione-unidade').show();
6245
6246 data.forEach(function(ofertaJSON,index){
6247
6248 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
6249
6250 //Preenche as ofertas da unidade
6251 objsTela.unidades[indiceUnidade]['ofertas'].push(oferta);
6252 objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => {
6253 o.selecaoInscricao = selecaoInscricao
6254 o.selecaoBolsa = selecaoBolsa
6255 })
6256
6257 });
6258 } else {
6259 loadAlternadores()
6260 }
6261 objsTela.categoriesIds.push(categoryId);
6262 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6263 addEventBolsa()
6264 }
6265 )
6266
6267 //Se estiver na cache, valida as ofertas
6268 }else{
6269
6270 populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']);
6271
6272 }
6273 }
6274
6275 function populaSelectUnidades(unidades, showOptions, unidadeValue){
6276 var unidadePreSelecionada = false;
6277 var categoryIdUnidadePreSelecionada = '';
6278
6279 //Oredenacao
6280 objsTela.unidades.sort(function (a, b) {
6281 return ordenar(a, b, 'nome');
6282 });
6283
6284 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
6285 return ordenar(a, b, 'nome');
6286 });
6287
6288 //console.log(objsTela.unidades);
6289
6290 $.each(objsTela.unidades, function(k,item){
6291
6292 if(getURLData().includes('/'+item.friendlyURL+'/')){
6293 unidadePreSelecionada= true;
6294 categoryIdUnidadePreSelecionada = item['categoryId'];
6295 }
6296 });
6297
6298 //console.log('Unidade Pre '+unidadePreSelecionada);
6299
6300 if(objsTela.unidades.length == 0){
6301 if(!showOptions)
6302 $('.ssp-container-selecione-unidade').addClass('d-none');
6303 $('.oferta-slick-area').empty();
6304 $('.prev-mobile').addClass('d-none');
6305 $('.next-mobile').addClass('d-none');
6306 //EMED remove msg registro interesse
6307 //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none');
6308 }
6309
6310 if(isAoVivo){
6311
6312 const codigoFT = $('[name="codigoFT"]').val();
6313 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6314
6315 var unidadesCategoryAll = '';
6316
6317 $.each(objsTela.unidades, function(k,unidade){
6318 unidadesCategoryAll += unidade['categoryId']+',';
6319 });
6320
6321 //tirando ultima virgula
6322 unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1);
6323
6324 getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);
6325
6326 }else{
6327 $('#unidades-ofertas').empty()
6328
6329 if(objsTela.unidades && objsTela.unidades.length){
6330 if(isEmed)
6331 $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>'))
6332 else
6333 $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>'))
6334
6335 } else
6336 $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>'))
6337
6338 let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades)
6339
6340 //Dispara o evento para primeira unidade ou pela friendlyURl da unidade
6341 if(unidadeValue) {
6342 $('#unidades-ofertas').val(unidadeValue);
6343 $('#unidades-ofertas').change();
6344 } else if(unidadeFounded){
6345 $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']);
6346 $('#unidades-ofertas').change();
6347 } else if(!unidadePreSelecionada) {
6348 $('#unidades-ofertas').change();
6349 }
6350
6351 $('.ssp-card-registro-interesse__select.unidades').empty()
6352 $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>')
6353 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
6354
6355 $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
6356 });
6357 }
6358
6359 }
6360
6361
6362 function mudarUnidade(ev){
6363 startOfertaParam = 0;
6364 endOfertaParam = 25;
6365 carregouUltimaOferta = false;
6366
6367 var elem = $(ev.target);
6368 var unidades = objsTela.unidades;
6369
6370 //verifica se selecionou alguma unidade
6371 if(!elem.val()){
6372 $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none');
6373
6374 if(isEmed)
6375 $('#ssp-section-response').addClass('d-none')
6376
6377 hideCardSemTurmas($('#unidades-ofertas option').length > 1)
6378
6379 elem.val('')
6380 habilitarRegistroInteresse(false)
6381 //Zera variável que controla existência de ofertas com bolsa
6382 ofertasComBolsa = false;
6383 controlaPaginaBolsa();
6384
6385 return;
6386 }
6387
6388 $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none');
6389 hideCardSemTurmas(true)
6390 if(isEmed){
6391 $('.ssp-ofertas-emed__section').removeClass('d-none');
6392 $('#ssp-section-response').removeClass('d-none')
6393 $('.ssp-card-oferta-curso__section-title').addClass('d-none');
6394 $('.prev-mobile, .next-mobile').addClass('d-none');
6395 var nomeUnidade = $('#unidades-ofertas option:selected').text();
6396 let tamScreen = $(window).width();
6397
6398 if(tamScreen < 1024)
6399 $('#titulo-emed').text('Turmas ' + anoTurmaEmed );
6400 else
6401 $('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade);
6402
6403 }
6404
6405 const codigoFT = $('[name="codigoFT"]').val();
6406 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
6407
6408 //colocamos dentro do option categoryId@codUnidade
6409 splitted = elem.val().split("@");
6410 var categoryIdUnidade = splitted[0];
6411 var codUnidade = splitted[1];
6412
6413 for(var i = 0; unidades.length > i ; i++){
6414
6415 if(unidades[i].categoryId == categoryIdUnidade){
6416
6417 var unidade = unidades[i];
6418
6419 //Exibe o endereco da unidade
6420 const urlBuscaUnidade = urlUnidadeInfoDetalhe
6421 .replace('\{companyId\}',themeDisplay.getCompanyId())
6422 .replace('\{codigoUnidade\}', unidade.codigoUnidade);
6423
6424 $.ajax({
6425 url : urlBuscaUnidade,
6426 type : 'get',
6427 dataType: 'json',
6428 success: function( unidadeInfo ) {
6429 if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){
6430
6431 var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', ');
6432 endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - ');
6433 endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - ');
6434
6435 $('.ssp-ofertas__endereco-unidade').text(endereco);
6436 $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade);
6437 }
6438 },
6439 error: function(data){
6440 $('.ssp-ofertas__endereco-unidade').text('');
6441 $('.ssp-ofertas__endereco-unidade').attr('href','#a');
6442 console.log('Unidade não encontrada');
6443 }
6444 })
6445
6446 getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId);
6447
6448 habilitarRegistroInteresse(!!(unidades && unidades.length));
6449
6450 }
6451 }
6452 }
6453
6454 function pegarTextoCartoesAceitos(campo){
6455 indice = campo.indexOf(' em até ');
6456 inicio = 0;
6457 fim = indice;
6458
6459 return campo.substring(inicio, fim);
6460 }
6461
6462 function pegaNumParcela(campo){
6463
6464 indice = campo.indexOf('até ');
6465 inicio = indice + 4;
6466 fim = indice + 6;
6467
6468 return campo.substring(inicio, fim);
6469
6470 }
6471
6472 function pegaValorParcela(campo){
6473
6474 indice = campo.indexOf('R$');
6475 inicio = indice+2;
6476 valorAmericano = campo.substring(inicio)
6477
6478 return formataValor(valorAmericano);
6479
6480 }
6481
6482 function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){
6483
6484 var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta);
6485 diasSemanaHTML = "";
6486
6487 for(var diaDaOferta of retornoDiasHorarios){
6488 diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias);
6489 diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario)
6490 }
6491
6492 var ofertaHTML = "";
6493
6494 if(isEmed){
6495
6496 ofertaHTML = htmlSlickAreaEmed(oferta);
6497 $('[name="codUnidadeSelecionada"]').val(codigoUnidade);
6498
6499 if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML)
6500 else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML);
6501 }else{
6502
6503
6504 ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade)
6505
6506 if(!posLoad)
6507 $('.oferta-slick-area').append(ofertaHTML);
6508 else
6509 $('.oferta-slick-area').slick('slickAdd', ofertaHTML);
6510
6511 ajustaTextoDiasHorarioOferta(oferta.codigoOferta);
6512
6513 }
6514
6515 if(turmasIniciadas(oferta.dataInicio))
6516 $("#aviso-turma-iniciada-"+index).show();
6517
6518 //remove os botões/itens de compra/bolsa caso seja preciso
6519 $('.oferta-slick-area').find('.d-none-btn').remove();
6520 }
6521
6522
6523 //RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS
6524 //@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"
6525 function processaDiasHorariosOferta(horariosAllOferta){
6526
6527 var dias = horariosAllOferta.trim().split(',');
6528 let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}]
6529
6530 var arrayDia = [];
6531 if(dias.length >= 1){
6532 for(var k=0; dias.length > k; k++){
6533 var diasSplit = dias[k].trim().split(' ');
6534 var diasSemana = diasSplit.shift()
6535 var ultimaPos = diasSplit.length-1;
6536 var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]
6537 arrayDia.push({horasStr,diasSemana});
6538 }
6539 }
6540
6541 arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana');
6542 arrayDia = orderByArray(arrayDia,arrayDiasSemana);
6543
6544 var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana);
6545 return ret;
6546 }
6547
6548 //cria um array de objetos Agrupando de acordo ao campo informado como chave.
6549 //@arr = Array multidimensional que tenha os campos key e valueAdd
6550 //@key = campo que será chave nesse array
6551 //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key
6552 const groupByArray = (arr, key,valueAdd) => {
6553 const initialValue = [];
6554 const retornoValue = [];
6555 arr.forEach((acc, cval) => {
6556 const myAttribute = cval[key];
6557 acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]];
6558 return acc;
6559 }, initialValue);
6560 return retornoValue;
6561 };
6562
6563
6564 //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.
6565 //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados
6566 //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua
6567 const orderByArray = (arrayOrdena, ordem) => {
6568
6569 let diasSem = [];
6570 const arrayOrdenado = [];
6571 let controle;
6572
6573 //percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado
6574 for(let campo of ordem){
6575 Object.entries(arrayOrdena).forEach(([key, value]) => {
6576 for(let diaOferta of value){
6577 if(diaOferta===Object.keys(campo)[0]){
6578 arrayOrdenado[key]=arrayOrdena[key];
6579 }
6580 }
6581 })
6582 }
6583 return arrayOrdenado;
6584 };
6585
6586 //retorna o valor de um objeto dentro de um array
6587 //@objetoBusca = array de objetos que sera buscado o valor
6588 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6589 function findValueInObject(objetoBusca, keyBusca){
6590 var retorno = "";
6591 Object.entries(objetoBusca).forEach(([horario, dias]) => {
6592 Object.entries(dias).forEach(([key,val]) => {
6593 if(key.trim()==keyBusca.trim()){
6594 retorno = val;
6595 }
6596 });
6597 });
6598 return retorno;
6599 }
6600
6601 //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.
6602 //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex']
6603 //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor
6604 function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){
6605
6606 let arrayValidador = [];
6607
6608 //cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom]
6609 for(let diaOferta of arrayComDiasDaSemana){
6610 for(let i = 0; i < arrayDiasDaSemana.length; i++){
6611 if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){
6612 arrayValidador[i] = true;
6613 }
6614 }
6615 }
6616
6617 let keyCompair = 99;
6618 var sequencial = true;
6619
6620 //verifica quais posições foram criadas no array, e se os valores delas estão em sequencia.
6621 for(let keyValidator of Object.keys(arrayValidador)){
6622 keyValidator = parseInt(keyValidator);
6623 if(keyCompair!==99){
6624 if(keyValidator===keyCompair){
6625 sequencial = true;
6626 }else{
6627 sequencial = false;
6628 break;
6629 }
6630 }
6631 keyCompair = keyValidator+1;
6632 }
6633 return sequencial;
6634 }
6635
6636
6637 //Exibe as informações de dia e horario de oferta de acordo a sua estrutura
6638 //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta
6639 //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula Ex: Segunda, terça, sexta e domingo
6640 //@arrayAgrupadoEOrdenado = array de objetos que sera exibido
6641 //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta)
6642 function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){
6643
6644 var stringAux = "";
6645 var listRetorno = [];
6646
6647 Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {
6648
6649 var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana);
6650 var stringAux = "";
6651 var diaOferta = {};
6652
6653 if(sequencial){
6654 switch (value.length) {
6655 case 1:
6656 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": ";
6657 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6658 diaOferta.horario = key;
6659 break;
6660 case 2:
6661 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6662 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6663 diaOferta.horario = key;
6664 break;
6665 default:
6666 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6667
6668 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6669 diaOferta.horario = key;
6670 break;
6671 }
6672 }else{
6673 switch (value.length) {
6674 case 2:
6675 stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": ";
6676 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6677 diaOferta.horario = key;
6678 break;
6679 default:
6680 var ct = 0;
6681 var stringDias="";
6682 for(let v of value){
6683 ct++;
6684 ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", ";
6685 }
6686 stringAux = stringAux+stringDias+": ";
6687 diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula
6688 diaOferta.horario = key;
6689 break;
6690 }
6691 }
6692
6693 listRetorno.push(diaOferta);
6694 })
6695 return listRetorno;
6696 };
6697
6698
6699 //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string
6700 function ajustaTextoDiasHorarioOferta(codOferta){
6701
6702 var classOferta = ".codigoOferta_"+codOferta;
6703 let oferta = $(classOferta);
6704
6705 let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]');
6706
6707 let widthDevice = window.screen.width;
6708 let tamLimDesktop = 185;
6709
6710 if(widthDevice <= 1024){
6711 tamLimDesktop = 180;
6712 }
6713
6714 ofertaDiasSemana.each(function(index){
6715
6716
6717 let widthDiaSemana = $(this).width();
6718
6719 let contentDiaHora = $(this).parent().parent().parent();
6720
6721 if(!(widthDiaSemana <= tamLimDesktop)){
6722 $(this).css("display","block");
6723 }
6724
6725 if(ofertaDiasSemana.length == parseInt(index+1)){
6726 contentDiaHora.css("opacity","1");
6727 }
6728
6729 })
6730 }
6731
6732 function getObjBtnComprar(oferta){
6733 let obj = {};
6734 obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false';
6735 if($('#manutencao-compra').val()){
6736 obj['classeBotao'] = 'disabled manutencao';
6737 obj['textoBotao'] = $('#manutencao-compra').val();
6738 }
6739 else{
6740 obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn';
6741 obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra';
6742 }
6743 return obj;
6744 }
6745
6746 function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){
6747
6748 var formaPagtoObj = {};
6749
6750 var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g');
6751 var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g')
6752
6753 formaPagtoObj['regIndex'] = index;
6754 formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta);
6755 formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos;
6756
6757 formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes;
6758 formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes;
6759 formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto;
6760 formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto;
6761 formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta);
6762
6763 formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2));
6764 formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false';
6765 formaPagtoObj['dataUnidade'] = codigoUnidade;
6766 formaPagtoObj['dataEvento'] = oferta.codigoOferta;
6767 formaPagtoObj['destinoCompra '] = oferta.destinoCompra;
6768
6769 //EMED nao restringe o botao
6770 if(isEmed){
6771 let manutencao = $('#manutencao-compra').val();
6772 formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR';
6773 formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : '';
6774 }else{
6775 let btnComprar = getObjBtnComprar(oferta);
6776 formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao;
6777 formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao;
6778 }
6779
6780 formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta;
6781 formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta);
6782
6783 //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
6784 formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta);
6785 var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2);
6786 formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao);
6787 formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao);
6788 formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2));
6789 formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2));
6790 formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2));
6791
6792 return formaPagtoObj;
6793 }
6794
6795 function calculaPrecoAvista(precoVendaOferta){
6796 return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2);
6797 }
6798
6799 function createModalFormaPagto(formaPagtoObj, oferta, index) {
6800 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
6801 temDesconto = temDesconto && !possuiMensalidade99(oferta)
6802
6803 result = `
6804 <div id="modalFormaPagto" class="ssp-modal">
6805 <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
6806 <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;">
6807 <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6>
6808 <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i>
6809 </div>
6810 `
6811 + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') +
6812 `
6813 <div class="ssp-card-modal-forma-pagamento__body">
6814 `
6815 if(temDesconto) {
6816 result = result + `
6817 <div>
6818 <p class="my-0"><strong>Valor com </strong>
6819 <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>
6820 </p>
6821 </div>
6822 <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>`
6823
6824 if($('[name="tipoCurso"]').val() == 'extensao') {
6825 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>`
6826 } else {
6827 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>`
6828 }
6829
6830
6831 result = result + `
6832 <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div>
6833 <p class="my-0"><strong>Valor:</strong></p>
6834 <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
6835 <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p>
6836 <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div>
6837 <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p>
6838 `
6839 } else {
6840 if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) {
6841 result = result + `
6842 <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6843 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6844 <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>
6845 </div>
6846 `
6847 } else {
6848 const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:'
6849
6850 result = result + `
6851 <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small>
6852 <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p>
6853 <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p>
6854 <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p>
6855 <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p>
6856 <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>
6857 </div>
6858 `
6859 }
6860 }
6861
6862 let textoParcelaCartoes, textoParcelaBoleto
6863 if(temDesconto) {
6864 const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2))
6865 const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2))
6866
6867 if(formaPagtoObj.numParcelaCartoes)
6868 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>`
6869
6870 if(formaPagtoObj.numParcelaBoleto)
6871 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>`
6872 } else {
6873 if(formaPagtoObj.numParcelaCartoes)
6874 textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>`
6875
6876 if(formaPagtoObj.numParcelaBoleto)
6877 textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>`
6878 }
6879
6880 if(temDesconto) {
6881 result = result + `
6882 <div class="ssp-card-modal-forma-pagamento__tipos">`
6883
6884 if(textoParcelaBoleto)
6885 result = result + `
6886 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6887 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6888 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6889 <p><strong>Boleto Bancário</strong></p>`
6890 + textoParcelaBoleto +
6891 `</div>
6892 </div>`
6893
6894 if(textoParcelaCartoes)
6895 result = result + `
6896 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6897 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6898 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6899 <p><strong>Cartões</strong></p>
6900 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6901 + textoParcelaCartoes +
6902 `</div>
6903 </div>
6904 </div>
6905 `
6906 } else {
6907 result = result + `
6908 <div class="ssp-card-modal-forma-pagamento__tipos">`
6909
6910 if(textoParcelaCartoes)
6911 result = result + `
6912 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start">
6913 <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i>
6914 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6915 <p><strong>Cartões</strong></p>
6916 <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>`
6917 + textoParcelaCartoes +
6918 `</div>
6919 </div>`
6920
6921 if(textoParcelaBoleto)
6922 result = result + `
6923 <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4">
6924 <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i>
6925 <div class="ssp-card-modal-forma-pagamento__info-cartao">
6926 <p><strong>Boleto Bancário</strong></p>`
6927 + textoParcelaBoleto +
6928 `</div>
6929 </div>
6930 </div>
6931 `
6932 }
6933
6934 if(temDesconto) {
6935 result = result + `
6936 <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p>
6937 `
6938 }
6939
6940 result = result + `
6941 <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>`
6942
6943 if(temDesconto) {
6944 result = result + `
6945 <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a>
6946 `
6947 }
6948
6949 result = result + `
6950 </div>
6951 </div>
6952 `
6953
6954 return result;
6955 }
6956
6957 function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){
6958
6959 var tipoCurso = $('[name="tipoCurso"]').val();
6960
6961 var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade);
6962
6963 var modalFormaPagto
6964 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) {
6965 modalFormaPagto = $('#modalFormaPagtoExt').clone();
6966
6967 $.each(formaPagtoObj, function(k,v){
6968 if(modalFormaPagto.find('.'+k).length > 0)
6969 modalFormaPagto.find('.'+k).text(v);
6970 })
6971 } else if(isEmed) {
6972 modalFormaPagto = $('#modalPagtoEmed').clone();
6973
6974 $.each(formaPagtoObj, function(k,v){
6975 if(modalFormaPagto.find('.'+k).length > 0)
6976 modalFormaPagto.find('.'+k).text(v);
6977 })
6978 } else
6979 modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index));
6980
6981 modalFormaPagto.removeAttr('id');
6982 modalFormaPagto.removeClass('d-none');
6983 modalFormaPagto.attr('id','myModal_'+index);
6984
6985 if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){
6986
6987 var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok');
6988 botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index);
6989
6990 botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
6991 botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade);
6992 botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento);
6993 botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra);
6994 botoaoCompraOk.attr('data-index', index);
6995 botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar);
6996
6997 var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not');
6998 botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index);
6999
7000 botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7001 botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade);
7002 botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento);
7003 botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7004 botoaoCompraNot.attr('data-index', index);
7005 botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar);
7006
7007 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index);
7008 modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index);
7009
7010 modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7011
7012 modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index);
7013
7014 modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index);
7015
7016 modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index);
7017 modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index);
7018
7019 var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');
7020
7021 }else{
7022
7023 modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index);
7024 modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index);
7025
7026 var botaoCompra = modalFormaPagto.find('.btn.w-100');
7027
7028 }
7029
7030 if(isEmed){
7031
7032 var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento');
7033
7034 //Cria botao inscreva-se ajustado ao modal
7035 var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
7036 if($('#manutencao-compra').val()){
7037 textoBotao = $('#manutencao-compra').val();
7038 classeBotao = 'disabled manutencao';
7039 }else{
7040 if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7041 textoBotao = 'Lista de espera';
7042 classeBotao = 'btn-emed-lista-espera';
7043 }else{
7044 if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == ''){
7045 if(oferta.etapa == '0020' || oferta.etapa == '0030'){
7046 textoBotao = 'Lista de espera';
7047 classeBotao = 'btn-emed-lista-espera';
7048 }else{
7049 textoBotao = 'Fazer matrícula';
7050 classeBotao = '';
7051 }
7052 }else{
7053 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta);
7054 classeBotao = 'disabled';
7055 }
7056 }
7057 }
7058 criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index);
7059 preencheDadosEmedModal(oferta, modalFormaPagto);
7060
7061 }else{
7062 botaoCompra.attr('id', "btnComprarFormaPgto_"+index);
7063 botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno);
7064 botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade);
7065 botaoCompra.attr('data-evento', formaPagtoObj.dataEvento);
7066 botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra);
7067 botaoCompra.attr('data-index', index);
7068 botaoCompra.addClass(formaPagtoObj.classeBotaoComprar);
7069 }
7070
7071 $('.oferta-slick-area_modal').append(modalFormaPagto);
7072 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7073
7074 //Evita o erro de exibição de Nan
7075 if(oferta.numParcelaBoleto.length == 0){
7076 $('#content_boleto_'+index).remove();
7077 }
7078 }
7079
7080
7081 function montaHTMLModalLocalRealizacao(oferta, index){
7082
7083 var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ?
7084 '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>'
7085 : '<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>';
7086
7087 if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true")
7088 textoFormatoHibrido += '</br>';
7089
7090 var localRealizacaoHTMLModal = htmlModalLocalRealizacao
7091 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7092 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7093 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" )
7094 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7095 .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none")
7096 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7097 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7098 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7099 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7100 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7101 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7102 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7103 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7104 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7105 .replace(regIndex, index)
7106 .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao)
7107 .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : "");
7108
7109 $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal);
7110 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7111
7112 if(oferta.ruaEspacoExterno == "")
7113 $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle');
7114 }
7115
7116 function montaHTMLModalAntesCompra(oferta, index, codigoUnidade){
7117
7118 if(isEmed){
7119
7120 $('#modalAntesCompraEmed_' + oferta.indice).remove();
7121 const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone();
7122 antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice);
7123 antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice);
7124 antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice);
7125 antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed');
7126
7127 if(oferta.etapa == '0010'){
7128 if(oferta.permiteListaEspera == statusEmed.ESPERA){
7129 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none');
7130 antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera');
7131 }else{
7132 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none');
7133 }
7134 }else{
7135 antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none');
7136 }
7137
7138 const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed');
7139 btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice);
7140 btnCompra.attr('offercode', oferta.codigoOferta);
7141
7142 btnCompra.on('click', function(ev){
7143 ev.preventDefault();
7144 execCompraEmed(oferta);
7145 });
7146
7147 }else{
7148
7149 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7150
7151
7152 var antesCompraHTMLModal = htmlModalAntesCompra
7153 .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text())
7154 .replace('\{textoFormatoHibrido\}', textoFormatoHibrido )
7155 .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" )
7156 .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none")
7157 .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != "" ? "" : "d-none")
7158 .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno)
7159 .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno)
7160 .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno)
7161 .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7162 .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno)
7163 .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7164 .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno)
7165 .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none")
7166 .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno)
7167 .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat))
7168 .replace('\{linkBtnBolsa\}', linkBolsa(oferta))
7169 .replace(regIndex, index);
7170
7171 $('.oferta-slick-area_modal').append(antesCompraHTMLModal);
7172 $('.oferta-slick-area_modal').find('.d-none-btn').remove();
7173 }
7174 }
7175
7176 async function populaOfertas(ofertas){
7177
7178 //Zera variável que controla existência de ofertas com bolsa
7179 ofertasComBolsa = false;
7180
7181 objsTela.ofertas = ofertas;
7182
7183 if(ofertas && ofertas.length)
7184 $('#ssp-h3-turmas').show()
7185 else
7186 $('#ssp-h3-turmas').hide()
7187
7188 if(ofertas && ofertas.length > 1){
7189 //remove dupl
7190 const ofertasDistintas = [];
7191 ofertas.forEach(oferta => {
7192 if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){
7193 ofertasDistintas.push(oferta);
7194 }
7195 });
7196 ofertas = ofertasDistintas;
7197 }
7198
7199 if(isEmed){
7200
7201 $('.btn-filtro[value="0"]').attr('disabled','');
7202 $('.ssp-slick-ofertas-emed').empty();
7203 // executa a class do slick slider
7204 $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted');
7205 ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas);
7206
7207 }
7208
7209 if(ofertas.length == 0){
7210
7211 if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked'))
7212 hideCardSemTurmas(false)
7213
7214 $('.oferta-slick-area').empty();
7215 $('.prev-mobile, .next-mobile').addClass('d-none');
7216
7217 //Mostrar section registro interesse quando nao tiver oferta
7218 habilitarRegistroInteresse(true);
7219
7220 controlaPaginaBolsa()
7221 if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled');
7222 return;
7223 }
7224 hideCardSemTurmas(true)
7225 if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none');
7226 habilitarRegistroInteresse(false);
7227
7228 $('.oferta-slick-area').empty();
7229 $('.oferta-slick-area_modal').empty();
7230 ofertas = ofertas.sort(function(a, b){
7231 return ordenar(a, b, 'ordenar');
7232 });
7233 // executa a class do slick slider
7234 $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted');
7235
7236 //busca o codigoUnidade para o link do ecommerce
7237 if(!isAoVivo){
7238 var selectedUnidade = $('#unidades-ofertas').val().split('@')[0];
7239 for(var i=0;objsTela.unidades.length > i ;i++){
7240 if(selectedUnidade == objsTela.unidades[i].categoryId)
7241 codigoUnidade = objsTela.unidades[i].codigoUnidade;
7242 }
7243 }
7244
7245 // Montar object push - google tag manager - 2
7246 itensEcommerce = criaItensEcommerce(ofertas);
7247 sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values()));
7248
7249 for(var i=0;ofertas.length > i ;i++){
7250
7251 var oferta = ofertas[i];
7252
7253 //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real
7254 oferta['indice'] = i;
7255 ofertasMap.set(oferta.codigoOferta, oferta);
7256
7257 if(isAoVivo)
7258 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
7259
7260 if(isEmed && oferta.etapa == '0010'){
7261 try{
7262 let status = await getStatusEmed(oferta);
7263 oferta['permiteListaEspera'] = status;
7264 }catch(err){
7265 console.log(err);
7266 }
7267 }
7268 montaHTMLOferta(oferta, i, codigoUnidade, false);
7269 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
7270 montaHTMLModalLocalRealizacao(oferta, i);
7271 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
7272 verificaBotaoBolsaSS(oferta);
7273 verificaCursoAprendizagem(i);
7274 verificaCursoTrampolim(i, oferta.codigoOferta);
7275
7276 associaEventoBtnFormaPagamento(i);
7277 associaEventoBtnComprar(i);
7278 associaEventoBtnComprarDentroFormaPgto(i);
7279 associaEventoBtnLocalRealizacao(i);
7280 associaEventosFecharModal(i);
7281
7282 if($('[name="tipoCurso"]').val() == 'extensao'){
7283 associaEventoBtnConheca(i);
7284 associaEventoBtnComprarConhecaDescontoOk(i);
7285 associaEventoBtnComprarConhecaDescontoNot(i);
7286 associaEventoBtnAlunoNao(i);
7287 associaEventoBtnAlunoSim(i);
7288 }
7289
7290 }
7291
7292 if(isEmed){
7293 sliderOfertasEmed();
7294 $('.btn-filtro[value="0"]').removeAttr('disabled');
7295 }
7296 else sliderOfertas();
7297
7298 controlaPaginaBolsa()
7299
7300 }
7301
7302 function hideCardSemTurmas(hide){
7303 if(!isEmed){
7304 if(hide)
7305 $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none');
7306 else
7307 $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none');
7308 } else {
7309
7310
7311 if(hide || getEtapaSelecionadaEmed() == "0"){
7312 $('.sem-vaga-emed').addClass('d-none');
7313 }else{
7314 $('.sem-vaga-emed').removeClass('d-none');
7315 if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return;
7316 var tamScreen = $(window).width();
7317 if(tamScreen < 768){
7318 $('.slick-area-emed').slick({
7319 slidesToShow: 2,
7320 slidesToScroll: 2,
7321 autoplay: false,
7322 infinite: false,
7323 dots: false,
7324 arrows: false,
7325 centerPadding: 0,
7326 centerMode: false,
7327 responsive: [
7328 {
7329 breakpoint: 768,
7330 settings: {
7331 slidesToShow: 1,
7332 slidesToScroll: 1,
7333 variableWidth: false,
7334 infinite: false,
7335 centerPadding: 0,
7336 centerMode: false,
7337 dots: true,
7338 }
7339 }
7340 ]
7341 });
7342 }
7343 }
7344 }
7345 }
7346
7347 function verificaCursoAprendizagem(i){
7348
7349 //Esconde elementsos quando o curso é aprendizagem
7350 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
7351 $('#btnComprar_'+i).remove();
7352 $('#container_investimento_'+i).remove();
7353 $('#container_forma_pgto_'+i).remove();
7354
7355 var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone();
7356 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>'
7357 avisoAprendizagem.removeAttr('id');
7358 avisoAprendizagem.removeClass('d-none');
7359 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem);
7360 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem);
7361 }
7362 }
7363
7364 function verificaCursoTrampolim(i, codOferta){
7365 if(ehCursoTrampolim){
7366 $('#btnComprar_'+i).remove();
7367 $('#container_investimento_'+i).remove();
7368 $('#container_forma_pgto_'+i).remove();
7369 $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide();
7370
7371 var avisoTrampolim = $('#avisoTrampolim').clone();
7372 avisoTrampolim.removeAttr('id');
7373 avisoTrampolim.removeClass('d-none');
7374 $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim);
7375 }
7376 }
7377
7378 function verificaBotoesEmed(dadosOferta, verificaBolsa){
7379
7380 if(!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
7381 dadosOferta.vagasBolsaOferta = false;
7382 dadosOferta.botaoBolsaOferta = false;
7383 }
7384
7385 var elementoPai = $('.codigoOferta_'+dadosOferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
7386
7387 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7388 var dadosAbertura = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7389 var textoBotao = 'Fazer matrícula';
7390 var textoBotaoBolsa = '';
7391 var classeBotao = '';
7392 var classeBotaoBolsa = '';
7393 var exibirBotaoBolsa = false;
7394 var exibirContador = false;
7395 var htmlBotaoBolsa = '';
7396 var htmlBotao = '';
7397
7398 //verifica se o botão de concorrer a bolsa deve aparecer
7399 //Oferta EMED possui bolsa apenas no 1o ano
7400 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAbertura.exibirContador){
7401 exibirBotaoBolsa = true;
7402 if($('#manutencao-bolsa').val()){
7403 classeBotaoBolsa = 'disabled manutencao';
7404 textoBotaoBolsa = $('#manutencao-bolsa').val();
7405 }else{
7406 if(dadosOferta.vagasBolsaOferta){
7407 classeBotaoBolsa = dadosAbertura.bolsaJaAberta ? '' : 'disabled';
7408 textoBotaoBolsa = dadosAbertura.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7409 }else{
7410 classeBotaoBolsa = 'disabled';
7411 textoBotaoBolsa = 'Bolsas de Estudo Esgotadas';
7412 }
7413 }
7414 }
7415
7416 //Verifica se o botão do cronômetro deve aparecer
7417 if(dadosAbertura.exibirContador){
7418 textoBotao = dadosAbertura.textoContador;
7419 textoBotaoBolsa = dadosAbertura.textoContador;
7420 exibirContador = true;
7421 exibirBotaoBolsa = false;
7422 }else{
7423 if($('#manutencao-compra').val()){
7424 textoBotao = $('#manutencao-compra').val();
7425 classeBotao = 'disabled manutencao';
7426 }else{
7427
7428 if(dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){
7429 textoBotao = 'Lista de espera';
7430 classeBotao = 'btn-emed-lista-espera';
7431 }else{
7432 classeBotao = '';
7433 if (dadosAbertura.bolsaJaAberta || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){
7434 textoBotao = 'Fazer matrícula';
7435
7436 if(dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030'){
7437 textoBotao = 'Lista de espera';
7438 classeBotao = 'btn-emed-lista-espera';
7439 }
7440
7441
7442 }else{
7443 textoBotao = 'Matrícula em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7444 }
7445 if(!dadosAbertura.bolsaJaAberta)
7446 classeBotao = 'disabled';
7447 }
7448 }
7449
7450 criaBotaoInscreverEmed(dadosOferta, textoBotao, classeBotao, 'btnComprarEmed_' + dadosOferta.indice, elementoPai);
7451 }
7452
7453 if(exibirBotaoBolsa){
7454
7455 if(!ofertasComBolsa) ofertasComBolsa = true;
7456
7457 criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa);
7458
7459 }else if(exibirContador){
7460
7461 if(!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true;
7462
7463 //codigoOferta como index para usar o ofertasMap
7464 htmlBotao = '<button id="btnContadorComprar_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>'+textoBotao+'</span></button>';
7465 elementoPai.append(htmlBotao);
7466
7467 if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta){
7468 htmlBotao = '<button id="btnContadorBolsa_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --bolsas">Bolsa em <span>'+textoBotaoBolsa+'</span></button>';
7469 elementoPai.append(htmlBotao);
7470 }
7471
7472 }
7473
7474 }
7475
7476 function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){
7477 criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai);
7478 var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index);
7479 btnInscr.removeClass(btnInscr.classList);
7480 btnInscr.addClass('btn btn-lg btn-success w-100');
7481 btnInscr.attr('style', 'margin-top: 20px;font-weight:600');
7482
7483 //Reposiciona o botao voltar
7484 var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso');
7485 elementoPai.find('.ssp-btn-emed__voltar-curso').remove();
7486 elementoPai.append(btnVoltar);
7487 btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index);
7488 btnVoltar.click(() => {
7489 $('[id^="myModal_"]').each(function(index,modal){
7490 modal.style.display = "none";
7491 })
7492 });
7493 }
7494
7495 function preencheDadosEmedModal(oferta,$modal){
7496 const parcelaEntrada = 1;
7497 $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7498 $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7499 $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada);
7500 $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta));
7501 }
7502
7503
7504 function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){
7505 if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return;
7506 var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>';
7507 elementoPai.append(htmlBotao);
7508
7509 if(!classeBotao.includes('disabled')){
7510
7511 elementoPai.on("click", '#'+ idBotao, function(ev){
7512 ev.preventDefault();
7513 const _modal = $('#modalAntesCompraEmed_'+$(this).data('index'));
7514 _modal.css('display','flex');
7515
7516
7517 });
7518
7519 }
7520
7521 }
7522
7523 function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7524
7525 var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>';
7526 $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao);
7527
7528 if(!classeBotaoBolsa.includes('disabled')){
7529 // Associa o evento de clique no botão de bolsa
7530 $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta));
7531 $('#btnBolsa_'+oferta.indice).attr('target', '_blank');
7532 //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;');
7533
7534 }
7535 }
7536
7537 function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){
7538
7539 const botao = $('<a>'+ textoBotaoBolsa +'</a>');
7540 botao.attr('id', 'btnBolsa_' + oferta.indice);
7541 botao.attr('data-index', oferta.indice);
7542 botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || ''));
7543 botao.css('font-size', '14px');
7544 botao.css('font-weight', '600');
7545 botao.css('background-color', '#004EFF');
7546 if(!classeBotaoBolsa.includes('disabled')){
7547 if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){
7548 botao.attr('data-espaco-ex', 'true');
7549 botao.click((ev)=>{
7550 ev.preventDefault();
7551 $('#btnCompraLocal_'+oferta.indice).hide();
7552 $('#btnBolsaLocal_'+oferta.indice).show();
7553 const _modal = $('#modalAntesCompra_'+oferta.indice);
7554 _modal.css('display','flex');
7555 });
7556 }else{
7557 botao.attr('href', linkBolsa(oferta));
7558 botao.attr('target', '_blank');
7559 }
7560 }
7561
7562 return botao;
7563
7564 }
7565
7566 function verificaBotaoBolsaSS(oferta, codigoUnidade){
7567
7568
7569 if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return;
7570
7571 if(!ehCursoTrampolim){
7572 $.ajax({
7573 url : getUrlConsultaBolsa(oferta),
7574 type : 'get',
7575 dataType: 'json',
7576 beforeSend: function (xhr) {
7577 xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww==");
7578 },
7579 })
7580 .done(function(infosBolsa){
7581
7582
7583 if(infosBolsa != null && typeof infosBolsa !== 'undefined'){
7584
7585 var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO;
7586 var retornoOfertaBolsaSenac = infosBolsa.DATA[0];
7587
7588 //Sobrescreve as flags de bolsa com o retorno do serviço SS
7589 ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA;
7590 ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA;
7591
7592 var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa);
7593
7594 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
7595 var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta);
7596 var textoBotaoBolsa = '';
7597 var classeBotaoBolsa = '';
7598 var textoBotaoContadorBolsa = '';
7599 var exibirBotaoBolsa = false;
7600 var exibirContadorBolsa = false;
7601
7602 //EMED
7603 if(isEmed){
7604 verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true);
7605 return;
7606 }
7607
7608 //Verifica o texto do botão de bolsa
7609 if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val();
7610 else{
7611
7612 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){
7613
7614 if(dadosAberturaBolsa.bolsaJaAberta)
7615 textoBotaoBolsa = "Inscrever para bolsa de estudo";
7616
7617 else
7618 textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta);
7619
7620 if(!ofertasComBolsa){ ofertasComBolsa = true;
7621 }
7622 }else
7623 textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo";
7624 }
7625
7626 //verifica se o botão de concorrer a bolsa deve aparecer
7627 if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){
7628
7629 exibirBotaoBolsa = true;
7630
7631 if(!ofertasComBolsa) ofertasComBolsa = true;
7632
7633 if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){
7634 classeBotaoBolsa = '';
7635 }else{
7636 classeBotaoBolsa = 'disabled';
7637 }
7638 }
7639
7640 //Verifica se o botão do cronômetro deve aparecer
7641 if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){
7642 textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador;
7643 exibirContadorBolsa = true;
7644 }
7645
7646 if(exibirBotaoBolsa)
7647 $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) )
7648 else if(exibirContadorBolsa)
7649 $('.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>')
7650 else {
7651 $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide()
7652 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7653 }
7654
7655 }else{
7656 //EMED
7657 if(isEmed){
7658 verificaBotoesEmed(oferta, false);
7659 }
7660 }
7661
7662 controlaPaginaBolsa()
7663 })
7664 .fail(function(){
7665 $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide()
7666 $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide()
7667
7668 //EMED
7669 if(isEmed){
7670 verificaBotoesEmed(oferta, false);
7671 }
7672 });
7673
7674
7675 }
7676
7677 }
7678
7679 function controlaPaginaBolsa(){
7680 if(ofertasComBolsa)
7681 $("#ssp-abrir-pagina-bolsa").removeClass("d-none")
7682 else
7683 $("#ssp-abrir-pagina-bolsa").addClass("d-none")
7684 }
7685
7686 function associaEventoBtnFormaPagamento(i){
7687 var modal = document.getElementById("myModal_"+i);
7688
7689 var btn = document.getElementById("myBtn_"+i);
7690
7691 if(btn!=null){
7692 btn.onclick = function(ev) {
7693 event.preventDefault()
7694
7695 $('#modalExtAluno_'+i).addClass('d-none');
7696
7697 var elem = $(ev.target);
7698 var _modal = document.getElementById(
7699 'myModal_'+elem.data('index'));
7700 _modal.style.display = "block";
7701 $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none');
7702
7703 }
7704 }
7705
7706
7707
7708
7709 }
7710
7711
7712 function actionBtnComprar(elem){
7713
7714 // Montar object push - google tag manager - 3
7715 ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento'))
7716 sendEventEcommerce("select_item", ofertaSelecionada);
7717 sendEventEcommerce("view_item", ofertaSelecionada);
7718
7719 //Verifica se deve exibir o modal com a localização
7720 if(elem.attr('data-espaco-ex') == 'true'){
7721 $('#btnCompraLocal_'+elem.data('index')).show();
7722
7723 //Limpa onclicks para nao repetir execucao
7724 $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index'))
7725 $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () {
7726 // Montar object push - google tag manager - 4
7727 sendEventEcommerce("add_to_cart", ofertaSelecionada);
7728 if( elem.attr('data-destino-compra') != '2' )
7729 sendEventEcommerce("begin_checkout", ofertaSelecionada);
7730 })
7731 $('#btnBolsaLocal_'+elem.data('index')).hide();
7732 const _modal = $('#modalAntesCompra_'+elem.data('index'));
7733 _modal.css('display','flex');
7734 }else{
7735 var urlCompra = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento'));
7736
7737 if( elem.attr('data-destino-compra') == '2' ){
7738 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val());
7739
7740 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);
7741
7742 }else{
7743 window.open(urlCompra, '_blank');
7744 }
7745 }
7746
7747
7748
7749 }
7750
7751 function associaEventoBtnComprar(i){
7752 var btnComprar = document.getElementById("btnComprar_"+i);
7753
7754 if(btnComprar != null && !btnComprar.classList.contains('disabled')){
7755 btnComprar.onclick = function(ev) {
7756
7757 ev.preventDefault()
7758 var elem = $(ev.target);
7759 actionBtnComprar(elem);
7760
7761 }
7762 }
7763 }
7764
7765 function associaEventoBtnComprarDentroFormaPgto(i){
7766 var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i);
7767
7768 if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){
7769 btnComprarFormaPgto.onclick = function(ev) {
7770 event.preventDefault()
7771 var elem = $('#btnComprarFormaPgto_'+i);
7772 actionBtnComprar(elem);
7773 }
7774 }
7775 }
7776
7777 function associaEventoBtnComprarConhecaDescontoOk(i){
7778 var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i);
7779
7780 if(btnComprarConhecaDescontoOk != null){
7781 btnComprarConhecaDescontoOk.onclick = function(ev) {
7782 event.preventDefault()
7783 var elem = $(ev.target);
7784 actionBtnComprar(elem);
7785 }
7786 }
7787 }
7788
7789 function associaEventoBtnComprarConhecaDescontoNot(i){
7790 var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i);
7791
7792 if(btnComprarConhecaDescontoNot != null){
7793 btnComprarConhecaDescontoNot.onclick = function(ev) {
7794 event.preventDefault()
7795 var elem = $(ev.target);
7796 actionBtnComprar(elem);
7797 }
7798 }
7799 }
7800
7801 function associaEventoBtnAlunoNao(i){
7802 var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i);
7803
7804 if(btnAlunoNao != null){
7805 btnAlunoNao.onclick = function(ev) {
7806 event.preventDefault()
7807 var elem = $(ev.target);
7808 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7809 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo');
7810 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7811 $('#msg-alunoNao_'+i).removeClass('d-none');
7812 $('#msg-alunoSim_'+i).addClass('d-none');
7813 }
7814 }
7815 }
7816
7817 function associaEventoBtnAlunoSim(i){
7818 var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i);
7819
7820 if(btnAlunoSim != null){
7821 btnAlunoSim.onclick = function(ev) {
7822 event.preventDefault()
7823 var elem = $(ev.target);
7824 elem.addClass('modal-extensao-btn-aluno-sim-ativo'),
7825 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo');
7826 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo')
7827 $('#msg-alunoSim_'+i).removeClass('d-none');
7828 $('#msg-alunoNao_'+i).addClass('d-none');
7829
7830 }
7831 }
7832 }
7833
7834 function associaEventoBtnConheca(i){
7835 var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i);
7836
7837 if(btnModalExtConheca != null){
7838 btnModalExtConheca.onclick = function(ev) {
7839 event.preventDefault();
7840 var elem = $(ev.target);
7841 elem.closest('.modal-extensao_content').addClass('d-none');
7842 $('#modalExtAluno_'+i).removeClass('d-none');
7843 $('#msg-alunoSim_'+i).addClass('d-none');
7844 $('#msg-alunoNao_'+i).addClass('d-none');
7845 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7846 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo');
7847
7848 }
7849 }
7850 }
7851
7852 function associaEventoBtnLocalRealizacao(i){
7853 var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i);
7854
7855 if(btnLocalRealizacao!=null){
7856 btnLocalRealizacao.onclick = function(ev) {
7857 event.preventDefault();
7858 var elem = $(ev.target);
7859 var _modal = document.getElementById(
7860 'modalLocalRealizacao_'+elem.data('index'));
7861 _modal.style.display = "flex";
7862 }
7863 }
7864 }
7865
7866 function associaEventosFecharModal(i){
7867
7868 var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i);
7869 var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0];
7870 var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0];
7871 var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0];
7872 var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0];
7873 var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i)
7874
7875 if(isEmed){
7876 var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i);
7877 for (const val of closeModalFormaPagamento) {
7878
7879 val.onclick = function() {
7880 $('[id^="myModal_"]').each(function(index,modal){
7881 modal.style.display = "none";
7882 });
7883 }
7884 };
7885 }
7886
7887 //event close modal
7888 for (const val of span) {
7889
7890 val.onclick = function() {
7891 $('[id^="myModal_"]').each(function(index,modal){
7892 modal.style.display = "none";
7893 });
7894 }
7895 };
7896
7897 closeModalLocalRealizacao.onclick = function() {
7898
7899 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7900 modal.style.display = "none";
7901
7902 });
7903 }
7904
7905 closeModalAntesCompra.onclick = function() {
7906
7907 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7908 modal.style.display = "none";
7909 });
7910 }
7911
7912 closeModalSelecionarOutro.onclick = function() {
7913
7914 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7915 modal.style.display = "none";
7916 });
7917 }
7918
7919 btnEntendiLocalRealizacao.onclick = function() {
7920
7921 $('[id^="modalLocalRealizacao_"]').each(function(index,modal){
7922 modal.style.display = "none";
7923 });
7924 }
7925
7926 if(closeModalBotaoBolsa != null){
7927 closeModalBotaoBolsa.onclick = function() {
7928
7929 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){
7930 modal.style.display = "none";
7931 });
7932 }
7933 }
7934
7935 // When the user clicks anywhere outside of the modal, close it
7936 window.onclick = function(event) {
7937
7938 $('[id^="myModal_"]').each(function(index,_modal){
7939 if (event.target == _modal)
7940 _modal.style.display = "none";
7941 });
7942 $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){
7943 if (event.target == _modal)
7944 _modal.style.display = "none";
7945 });
7946
7947 $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){
7948 if (event.target == _modal)
7949 _modal.style.display = "none";
7950 });
7951 }
7952 }
7953
7954 function turmasIniciadas(dataInicioCurso){
7955
7956 var hoje = new Date();
7957 var dataInicioPartes = dataInicioCurso.split('/');
7958 var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds());
7959
7960 return dataInicioCursoOferta.getTime() <= hoje.getTime();
7961 }
7962
7963
7964 function concatSTR(str1, str2, separador){
7965
7966 if(str2){
7967
7968 return str1+separador+str2;
7969 }
7970 return str1;
7971 }
7972
7973 //Formata exibicao de datas conforme especificacao GCR
7974 function formataPeriodo(dataInicio, dataFim){
7975
7976 var dtInicioPartes = dataInicio.split('/');
7977 var dtFimPartes = dataFim.split('/');
7978
7979 //Não exibir o número zero antes dos números e o dia 1 como 1º
7980 var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim();
7981 var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim();
7982
7983 //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020
7984 if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){
7985
7986 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim());
7987
7988 //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020
7989 if(dtInicioPartes[1].trim() == dtFimPartes[1].trim())
7990 dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()));
7991 }
7992
7993 return dInicioFormatada + ' a ' + dFimFormatada;
7994 }
7995
7996 //Decrementa os contadores de abertudas de bolsa
7997 function atualizaTempoAberturasBolsas() {
7998
7999 var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]');
8000
8001 btnsContador.each(function() {
8002
8003 var index = $(this).data('index');
8004 var btnContent = $(this).parent('.ssp-btn-group__content');
8005
8006 if(isEmed){
8007 //EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas
8008 var dadosAberturaBolsa = calculaTempoAberturaBolsa(ofertasMap.get('' +index).dataAberturaBolsaOferta, ofertasMap.get('' + index).horaAberturaBolsaOferta);
8009 }else{
8010 //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs)
8011 var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta);
8012 }
8013
8014 $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds);
8015
8016 //Se esgotou o contador
8017 if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){
8018
8019 var elId = $(this).attr('id');
8020
8021 //remove o contador
8022 $(this).remove();
8023
8024 //Habilitar inscrição EMED
8025 if(isEmed){
8026 var ofertaEmed = ofertasMap.get('' +index);
8027 var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento');
8028
8029 if(elId.indexOf('btnContadorBolsa') >= 0){
8030 if($('#manutencao-bolsa').val())
8031 criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao');
8032 else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true")
8033 criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', '');
8034 else
8035 criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled');
8036 }else if(elId.indexOf('btnContadorComprar') >= 0){
8037
8038 var textoBotao, classeBotao;
8039
8040 textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula';
8041 classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : '';
8042
8043
8044 criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai);
8045
8046 //Altera o botao do modal de pagamento
8047 var btnIndex = elId.slice(elId.indexOf('_')+1);
8048 var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento');
8049 var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex);
8050 if(btnModal){
8051 btnModal.remove();
8052 criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex);
8053 preencheDadosEmedModal(ofertaEmed,modal);
8054 }
8055
8056
8057 }
8058
8059 }else{
8060
8061 //Checa as condições das vagas do botão de bolsa
8062 var btnBolsaHTML = null;
8063 if($('#manutencao-bolsa').val())
8064 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao');
8065 else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true")
8066 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo');
8067 else
8068 btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled');
8069
8070 $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML);
8071
8072
8073 }
8074 }
8075
8076 });
8077
8078 }
8079
8080 // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos
8081 function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){
8082
8083 var dadosAberturaBolsa = {
8084 days : '',
8085 hours : '',
8086 minutes : '',
8087 seconds : '',
8088 bolsaJaAberta: false,
8089 exibirContador: false,
8090 textoContador: ''
8091 };
8092
8093 if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0)
8094 return dadosAberturaBolsa;
8095
8096 var now = todayG;
8097 var dia = now.getDate();
8098 var horarioDia = now.getHours();
8099
8100 var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa);
8101
8102 //console.log('tempo restante '+tempoRestante);
8103
8104 var diaAberturaBolsa = dataAberturaBolsa.split('-')[2];
8105
8106 var delta = tempoRestante / 1000;
8107
8108 var days = Math.floor(delta / 86400);
8109
8110 delta -= days * 86400;
8111
8112 var hours = Math.floor(delta / 3600) % 24;
8113 delta -= hours * 3600;
8114
8115 var minutes = Math.floor(delta / 60) % 60;
8116 delta -= minutes * 60;
8117
8118 var seconds = Math.floor(delta % 60);
8119
8120 //Zerar contador para data que ja passou
8121 if(days < 0){
8122 dadosAberturaBolsa.days = 0;
8123 dadosAberturaBolsa.hours = '00';
8124 dadosAberturaBolsa.minutes = '00';
8125 dadosAberturaBolsa.seconds = '00';
8126 }else{
8127 dadosAberturaBolsa.days = days;
8128 dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours;
8129 dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes;
8130 dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds;
8131 }
8132
8133 dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0;
8134 var horaExibeContador = 8;
8135 if(!isEmed && botaoBolsa == false){
8136 dadosAberturaBolsa.exibirContador = false;
8137 }else{
8138 dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia);
8139 dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds;
8140 }
8141 dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0;
8142
8143 return dadosAberturaBolsa;
8144
8145 }
8146
8147 // Verifica se uma oferrta já chegou sua data de abertura
8148 function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8149 // console.log(dataAberturaBolsa);
8150 // console.log(horaAberturaBolsa);
8151
8152 //var today = new Date();
8153
8154
8155 //console.log( "TodayG "+ todayG);
8156
8157 //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30
8158 var partesHora = horaAberturaBolsa.split('h');
8159
8160 var partesHora = partesHora.filter(function (el) {
8161 return el != "";
8162 });
8163
8164 //formato 9h
8165 if(partesHora.length == 1)
8166 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00");
8167
8168 else{
8169
8170 //format 9h3
8171 if(partesHora[1].length == 1)
8172 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0');
8173
8174 //formato 9h30
8175 else
8176 var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]);
8177 }
8178
8179 // console.log(aberturaBolsa);
8180 return aberturaBolsa - todayG;
8181 }
8182
8183 function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){
8184 var dataPartes = dataAberturaBolsa.split('-');
8185
8186 return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas';
8187
8188 }
8189
8190 function formataValor(valor){
8191
8192 if(!valor.toString().includes(".")){
8193 valor = parseFloat(valor).toLocaleString('pt-BR')+",00";
8194 }else{
8195 valor = parseFloat(valor).toLocaleString('pt-BR');
8196
8197 if(valor.split(",").length == 2){
8198
8199 if(valor.split(",")[1].length == 1)
8200 valor += "0";
8201
8202 }else
8203 valor += ",00";
8204 }
8205
8206 return valor;
8207 }
8208
8209 function ajustarCasasDecimaisSemArredondar(numero, casas) {
8210 const str = numero + ''
8211 const arr = str.split('.')
8212 return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0'))
8213 }
8214
8215 function possuiCriteriosDesconto2022(dt) {
8216 return dt.substring(dt.lastIndexOf('/') + 1) >= 2022
8217 && (
8218 $('[name="tipoCurso"]').val() == 'livre'
8219 || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8220 || $('[name="tipoCurso"]').val() == 'extensao'
8221 )
8222 }
8223
8224 function strToFloat(str) {
8225 const separator = str.includes(',') ? ',' : '.'
8226
8227 const numArr = str.split(separator)
8228 const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.')
8229 const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : ''
8230 return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0'))
8231 }
8232
8233 function possuiMensalidade99(oferta) {
8234 if(!oferta.precoVendaMaxParcelaOferta
8235 || (oferta.precoVendaMaxParcelaOferta != 99
8236 && parseFloat(oferta.precoParcelaCartoes.replace(',','.')) != 99
8237 && parseFloat(oferta.precoParcelaBoleto.replace(',','.')) != 99))
8238 return false
8239
8240 if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio')
8241 return true
8242
8243 if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio')
8244 return true
8245
8246 if($('[name="modalidades"]').val() == 'qualificacao-profissional')
8247 return true
8248
8249 return false
8250 }
8251
8252 function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) {
8253 let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio)
8254 temDesconto = temDesconto && !possuiMensalidade99(oferta)
8255
8256 const btnLocalReal = function(oferta){
8257
8258 var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido)) ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`;
8259
8260 btn += (localLivreOnline(oferta.localEspacoExterno)) ?
8261 `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#">
8262 <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>`
8263 : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#">
8264 <i class="fas fa-user"></i>Onde as aulas vão acontecer?</a>`;
8265
8266 btn += `</div>`;
8267
8268 return btn;
8269
8270 }
8271
8272 // Card Oferta
8273
8274 let result = `
8275 <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `">
8276
8277 <div class="ssp-card-oferta-curso">
8278
8279 <div class="content-data-dias">
8280
8281 <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none">
8282 <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>
8283 </div>
8284
8285
8286 <div>
8287 <small class="ssp-card-oferta-curso__title-item">Período:</small>
8288 <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6>
8289 </div>
8290
8291 <div class="content-horario-dias-semana">
8292
8293 <div class="horario">
8294 <small class="ssp-card-oferta-curso__title-item">Horário e dias das aulas:</small>
8295 </div> ` +
8296
8297 `<div class="ssp-card-oferta-curso__dia-hora_content">
8298 ` + diasSemanaHTML + `
8299 </div>
8300
8301 </div>
8302
8303 ` + btnLocalReal(oferta);
8304
8305 result = result + `
8306 </div>
8307 `
8308
8309 //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
8310 //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498
8311 const estaSemValorOferta = oferta.botaoCompraOferta == ''
8312 || oferta.botaoCompraOferta == 'false'
8313 || !oferta.precoVendaOferta
8314 || !oferta.precoCheioOferta
8315 || !oferta.precoVendaMaxParcelaOferta
8316 || strToFloat(oferta.precoVendaOferta) == 0
8317 || strToFloat(oferta.precoCheioOferta) == 0
8318 || strToFloat(oferta.precoVendaMaxParcelaOferta) == 0
8319
8320 //Trecho inicial do Bolsa de estudo
8321 result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `">
8322 <div class="ssp-card-oferta__info-turma-content">
8323 <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6>
8324 </div>
8325 <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>
8326 </div>
8327 `
8328
8329 if(estaSemValorOferta) {
8330 result = result + `
8331 <div class="content-buttons hide">
8332 </div>
8333 `
8334 return result;
8335 }
8336
8337
8338 //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra"
8339 result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `">
8340 <div class="ou-separator-desconto">Ou</div>
8341 <button type="button" class="btn-show-price">
8342 <p>Saiba mais sobre:</p>
8343 <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')">
8344 <i class="fas fa-money-bill"></i>
8345 <span>Valores para compra</span>
8346 </div>
8347 </button>
8348 </div>
8349 `
8350
8351 result = result + `
8352 <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `">
8353 `
8354
8355 if( temDesconto && !ehCursoTrampolim ) {
8356 result = result + `
8357 <div class="ssp-card-oferta__info-turma-content">
8358 <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6>
8359 </div>
8360
8361 <div class="block-valor-desconto">
8362
8363 <div class="tag-label-desconto">
8364 <small class="ssp-card-oferta-curso__title-item">Valor com </small>
8365 <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span>
8366 </div>
8367
8368 <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>
8369
8370 <div class="ssp-card-oferta-curso__desconto-content">
8371 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p>
8372 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p>
8373 </div>
8374 `
8375
8376 if($('[name="tipoCurso"]').val() == 'extensao') {
8377 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>`
8378 } else {
8379 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>`
8380 }
8381
8382 result = result + `
8383 <div class="ou-separator-desconto">Ou</div>
8384
8385 <div class="block-valor-total">
8386
8387 <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small>
8388
8389 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8390
8391 <div class="ssp-card-oferta-curso__desconto-content">
8392 <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p>
8393 </div>
8394
8395 </div>
8396 `
8397 }else{
8398
8399 // itens que são diferentes entre técnico e livres comprado a extensão
8400 if($('[name="tipoCurso"]').val() == 'extensao'){
8401 result = result + `
8402
8403 <div class="block-valor-total">
8404
8405 <div class="investimento" id="container_investimento_` + index + `">
8406
8407 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8408
8409 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6>
8410
8411 <div class="ssp-card-oferta-curso__desconto-content">
8412 <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p>
8413 </div>
8414
8415 </div>
8416
8417 </div>
8418 `
8419 } else {
8420 result = result + `
8421 <div class="block-valor-total">
8422 <div class="investimento" id="container_investimento_` + index + `">
8423 `
8424
8425 // Não mostrar mensagem de 30% de desconto em casos especificos
8426 if(temDesconto){
8427 result = result + `
8428 <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small>
8429 `
8430 }
8431
8432 if(oferta.precoCheioOferta == oferta.precoVendaOferta) {
8433 result = result + `
8434 <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small>
8435 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8436
8437 <div class="ssp-card-oferta-curso__desconto-content">
8438 <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8439 </div>
8440 </div>
8441 </div>
8442 `
8443 } else {
8444 result = result + `
8445 <small class="ssp-card-oferta-curso__title-item">Investimento:</small>
8446 <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6>
8447
8448 <div class="ssp-card-oferta-curso__desconto-content">
8449 <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p>
8450 <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p>
8451 </div>
8452 </div>
8453 </div>
8454 `
8455 }
8456 }
8457 }
8458
8459 let dataBtnComprar = getObjBtnComprar(oferta);
8460
8461 // itens que são diferentes entre técnico e livres comprado a extensão
8462 result = result + `
8463
8464 <div class="ssp-card-oferta-curso__formas-pagamento-content" id="container_forma_pgto_` + index + `">
8465
8466 <span>Saiba mais sobre:</span>
8467
8468 <div>
8469 <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i>
8470 <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>
8471 </div>
8472
8473 </div>
8474
8475 <div class="content-buttons">
8476
8477 <div class="ssp-btn-group__content botoes-oferta-container_` + index + `">
8478
8479 <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>
8480
8481 </div>
8482
8483 </div>
8484
8485 </div>
8486
8487 </div>
8488 `
8489
8490 return result
8491 }
8492
8493 var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">'
8494 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">'
8495 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">'
8496
8497 htmlModalLocalRealizacao += '{tituloLocalRealizacao}'
8498
8499 htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8500 htmlModalLocalRealizacao += '</div>'
8501 htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">'
8502 htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8503 htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8504 htmlModalLocalRealizacao += '<address>'
8505 htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8506 htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8507 htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8508 htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8509 htmlModalLocalRealizacao += '</address>'
8510 htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8511 htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>'
8512 htmlModalLocalRealizacao +='</div>'
8513 htmlModalLocalRealizacao +='</div>'
8514 htmlModalLocalRealizacao +='</div>'
8515 htmlModalLocalRealizacao +='</div>';
8516
8517 var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">'
8518 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">'
8519 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">'
8520 htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>'
8521 htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>'
8522 htmlModalAntesCompra += '</div>'
8523 htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">'
8524 htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>'
8525 htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>'
8526 htmlModalAntesCompra += '<address>'
8527 htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>'
8528 htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>'
8529 htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>'
8530 htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>'
8531 htmlModalAntesCompra += '</address>'
8532 htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">'
8533 htmlModalAntesCompra += '{componentBuyConfirmation}'
8534 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>'
8535 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>'
8536 htmlModalAntesCompra +='</div>'
8537 htmlModalAntesCompra +='</div>'
8538 htmlModalAntesCompra +='</div>'
8539 htmlModalAntesCompra +='</div>';
8540
8541 var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">'
8542 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'
8543 htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>'
8544 htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>'
8545 htmlSlickAreaDiasSemana += '</p>'
8546 htmlSlickAreaDiasSemana += '</div>';
8547
8548
8549 //Montar object push - google tag manager - 5
8550 function criaItensEcommerce(ofertas){
8551
8552 let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome
8553
8554 let dadosCurso = {
8555 //Pegar do freemarker
8556 tituloComercial : $('[name="tituloComercial"]').val(),
8557 tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(),
8558 formato : $('[name="formato"]').data("formato")
8559 }
8560
8561 let ecommerceObject = {
8562
8563 item_id: "", //codOferta - oferta,
8564 item_name: "", //Nome do curso - curso,
8565 affiliation: "", //nome da unidade - oferta,
8566 currency: "BRL", //Moeda - "BRL",
8567 discount: "", //desconto - oferta,
8568 index: "", //indice da lista - i,
8569 item_brand: "Senac SP", //"Senac SP",
8570 item_category: "", //categoria do curso - curso,
8571 item_list_id: "", //"60",
8572 item_list_name: "", //"São Carlos" - Oferta,
8573 item_variant: "", //modalidade - curso,
8574 price: "", //preco cheio - oferta,
8575 quantity: 1
8576
8577 }
8578
8579 let itensEcommerce = new Map();
8580
8581 for(var i = 0; i < ofertas.length; i++){
8582
8583 itensEcommerce.set(ofertas[i].codigoOferta, {
8584
8585 item_id: ofertas[i].codigoOferta, //codOferta - oferta,
8586 item_name: dadosCurso.tituloComercial, //Nome do curso - curso,
8587 affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta,
8588 currency: "BRL", //Moeda - "BRL",
8589 discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta,
8590 index: i, //indice da lista - i,
8591 item_brand: "Senac SP", //"Senac SP",
8592 item_category: dadosCurso.tipoCurso, //categoria do curso - curso,
8593 item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60",
8594 item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta,
8595 item_variant: dadosCurso.formato, //modalidade - curso,
8596 price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta,
8597 quantity: 1
8598
8599 }
8600 )
8601 }
8602
8603 return itensEcommerce;
8604 }
8605
8606 //EMED - ELEMENTOS DINAMICOS
8607 const htmlSlickAreaEmed = function(oferta){
8608 var btnid = 'myBtn_' + oferta.indice;
8609 const diasHorarios = function(oferta){
8610 return oferta.diasDaSemanaOferta.join(', ').toLowerCase();
8611
8612 }
8613
8614
8615 return `
8616 <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `">
8617
8618 <div class="ssp-ofertas-emed__card-info-turma">
8619
8620 <div class="item-content">
8621 <i class="fas fa-calendar-alt calendar-icon-turma"></i>
8622 <p class="title-turma">`+ oferta.titulo +`</p>
8623 <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span>
8624 </div>
8625
8626 <div class="content-previsao-inicio-termino">
8627
8628 <div class="item-content">
8629 <span class="text-default">Previsão de início:</span>
8630 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span>
8631 </div>
8632
8633 <div class="item-divisor"></div>
8634
8635 <div class="item-content">
8636 <span class="text-default">Previsão de término:</span>
8637 <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span>
8638 </div>
8639
8640 </div>
8641
8642
8643 <div class="item-divisor"></div>
8644
8645 <div class="item-content">
8646 <span class="text-default">Dias e horários das aulas:</span>
8647 <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span>
8648 <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span>
8649 </div>
8650
8651 </div>
8652
8653 <div class="ssp-ofertas-emed__card-info-investimento">
8654 <p class="title-investimento">Investimento anual:</p>
8655
8656 <div class="item-content-investimento">
8657 <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span>
8658 <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span>
8659 </div>
8660
8661 <div class="item-content-investimento">
8662 <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p>
8663 </div>
8664
8665 <div class="item-content-investimento">
8666 <i class="fas fa-credit-card icon-cartao-credito"></i>
8667 <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a>
8668 </div>
8669
8670 </div>
8671
8672 </div>
8673
8674 `;
8675 }
8676
8677
8678 function loadCursosVocePodeGostar(){
8679
8680 if(isEmed){
8681 var url = urlSearchCursosPodeGostarEmed
8682 .replace('\{groupId\}', groupId)
8683 .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val())
8684 .replace('\{limit\}', 12)
8685 .replace('\{articleId\}', $('[name="articleId"]').val());
8686 }else{
8687 var url = urlSearchCursosPodeGostar
8688 .replace('\{companyId\}',themeDisplay.getCompanyId())
8689 .replace('\{groupId\}', groupId)
8690 .replace('\{userId\}',themeDisplay.getUserId())
8691 .replace('\{articleId\}',$('[name="articleId"]').val())
8692 .replace('\{limit\}', 12);
8693 }
8694
8695
8696 $.ajax({
8697 url : url,
8698 type : 'get',
8699 beforeSend: function(){
8700 loading('#slider-curso');
8701 }
8702 })
8703 .done(function(cursos){
8704
8705 if(cursos.length > 0){
8706
8707 cursos = JSON.parse(cursos);
8708
8709 if(isEmed) cursos = cursos['cursos'];
8710
8711 if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none');
8712 else {
8713 $('#section-cursos-voce-pode-gostar').addClass('d-none');
8714 return;
8715 }
8716
8717 var articles = [];
8718
8719 $.each(cursos, function(k, c){
8720 articles.push(c.articleId);
8721 });
8722
8723 //Verifica a situação dos botoes de inscrições e bolsa
8724 $.ajax({
8725 url : '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','),
8726 type : 'get'
8727 })
8728 .done(function(infoBotoes){
8729
8730 if(infoBotoes.length > 0) {
8731
8732 infoBotoes = JSON.parse(infoBotoes);
8733
8734 $('#slider-curso').empty();
8735
8736 $.each(cursos, function(k, c){
8737 $('#slider-curso').append(buildCardCurso(c, infoBotoes));
8738
8739 });
8740
8741 $('#slider-curso').addClass(
8742 'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar');
8743
8744 sliderCurso('.slick-area-cursos-pode-gostar');
8745 }
8746 });
8747 }
8748
8749 })
8750 .fail(function(jqXHR, textStatus, msg){
8751 // alert(msg);
8752 });
8753
8754 }
8755
8756 /*
8757 * Armazena a navegação em cookies, se habilitado
8758 */
8759 $(document).on("click", ".ck-curso", function() {
8760
8761 //Verifica se o cookie está habilitado
8762 if(getCookie('portalSenacCookie') != null){
8763
8764 var articleId = $(this).data('ck');
8765 manageCookieArray('ck-cursos', articleId);
8766
8767 }
8768
8769 });
8770
8771
8772
8773
8774
8775 $(function(){
8776
8777 if($('#unidades-ofertas').find('option').length ==0){
8778
8779 $('.ssp-container-selecione-unidade').addClass('d-none')
8780
8781 }
8782
8783 });
8784
8785 function avisoNovasTurmas(){
8786
8787
8788 window.event.preventDefault()
8789
8790 //var unidadeSelecionada = $('#select-registro-interesse').val();
8791 //este select tem 2 valores separados por @ -> categoryId@codUnidade
8792 // var unidadeSelecionada = $('#unidades-ofertas').val();
8793
8794 //Código fixo quando Senac Ao Vivo
8795 var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8796
8797 // if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){
8798
8799 //Se ja tiver logado , redireciona para o registro
8800 if(getCookie('ticket') == null){
8801
8802 //Abre modal login
8803 $('#modal-login').removeClass('d-none');
8804
8805 }else{
8806
8807 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8808
8809 verificaBtnEnviarRegistroInteresseAtivo();
8810 }
8811
8812 window.onclick = function(event) {
8813 $('[id="modal-registro-interesse"]').each(function(index,_modal){
8814 if (event.target == _modal) {
8815 $('#modal-registro-interesse').addClass('d-none');
8816 $("body").removeClass("overflow-hidden")
8817 }
8818 });
8819 }
8820
8821 // }
8822 }
8823 function login(){
8824 var unidadeSelecionada
8825 var codUnidadeSelectRegInt
8826 doLogin({
8827 user: $('#login-email-modal').val(),
8828 pass: $('#login-password-modal').val(),
8829 btnLoadingSelector: '#btnLogin',
8830 before: () => {
8831 $('#mensagem-erro-login').addClass('d-none')
8832
8833 unidadeSelecionada = $('#unidades-ofertas').val();
8834 codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1];
8835 },
8836 done: (data) => {
8837 var loginData = JSON.parse(data);
8838
8839 if(loginData.status == 200 || loginData.status == 201){
8840 //Após logar-se, exibe o modal p/registro de interesse
8841 abrirModalRegistroInteresse(codUnidadeSelectRegInt);
8842 verificaBtnEnviarRegistroInteresseAtivo();
8843 //esconde o modal de login
8844 $('#modal-login').addClass('d-none');
8845 }
8846 },
8847 errorMessageSelector: '#mensagem-erro-login',
8848 error: (err) => console.error(err)
8849 })
8850 }
8851
8852 function registroSelecionaTodosDias(){
8853
8854 if($(this).hasClass('ssp-week-day-active')){
8855 $(this).removeClass('ssp-week-day-active')
8856 $('.ssp-week-day').removeClass('ssp-week-day-active')
8857 }else{
8858 $(this).addClass('ssp-week-day-active')
8859 $('.ssp-week-day').addClass('ssp-week-day-active')
8860 }
8861
8862 verificaBtnEnviarRegistroInteresseAtivo();
8863 }
8864
8865 function registroSelecionaTodosPeriodos(){
8866
8867 if($(this).is(':checked')){
8868 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true);
8869 }else{
8870 $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false);
8871 }
8872
8873 verificaBtnEnviarRegistroInteresseAtivo();
8874 }
8875 $('.turmas-registro-interesse input[type=checkbox]').on('click', function() {
8876 var $selecionado = $(this);
8877 if ($selecionado.is(":checked")) {
8878 $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false);
8879 $selecionado.prop("checked", true);
8880 } else {
8881 $selecionado.prop("checked", false);
8882 }
8883});
8884 function enviarRegistroInteresse(){
8885
8886 const codigoUsr = getCookie('codigo');
8887
8888 if(codigoUsr == null){
8889 //Sem o cookie refaz o login
8890 $('#modal-registro-interesse').addClass('d-none');
8891 $('body').removeClass('overflow-hidden');
8892 $('#modal-login').removeClass('d-none');
8893 return;
8894 }
8895
8896 var codigoFT = $('[name="codigoFT"]').val();
8897
8898 var unidades = new Set();
8899
8900 var diasSemana = '';
8901
8902 //Senac ao vivo nao tem opçao de dias da semana nem unidades
8903 if(isAoVivo){
8904 unidades.add(codUnidadeSenacAoVivo);
8905 }else{
8906 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
8907 if($(this).hasClass('ssp-week-day-active')){
8908 diasSemana += $(this).text()+',';
8909 }
8910 });
8911
8912 if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1);
8913
8914 $.each($('.ssp-card-registro-interesse__select'), function(k,item){
8915
8916 unidades.add(item.value);
8917 });
8918 }
8919
8920
8921 var periodos = '';
8922
8923 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
8924 if($(this).is(':checked')){
8925 periodos += $(this).val()+',';
8926 }
8927 });
8928
8929 var turmas = '';
8930
8931 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) {
8932 if ($(this).is(':checked')) {
8933 turmas += $(this).val() + ',';
8934 }
8935 });
8936
8937 if (periodos.length > 0) periodos = periodos.slice(0, -1);
8938 if (turmas.length > 0) turmas = turmas.slice(0, -1);
8939
8940 var usuarioNotificado = false;
8941
8942 loadingSubmitButton('#enviar-registro-interesse-btn');
8943
8944 unidades.forEach(function(codigoUnidade) {
8945 var data = {
8946 codigoFT: codigoFT,
8947 codigo: codigoUsr,
8948 diasSemana: diasSemana,
8949 periodos: periodos,
8950 turmas, turmas,
8951 codigoUnidade: codigoUnidade,
8952 interesseBolsa: 'N',
8953 isEmed: isEmed ? 'S' : 'N'
8954 };
8955
8956 const url = urlRegistroInteresse;
8957
8958 $.ajax({
8959 url: url,
8960 method: 'POST',
8961 data: JSON.stringify(data),
8962 headers: {
8963 'Accept': 'application/json',
8964 'Content-Type': 'application/json'
8965 },
8966 }).done(
8967 function(retornoData) {
8968
8969 var retornoData = JSON.stringify(retornoData);
8970
8971 if (retornoData.length > 0) {
8972
8973 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
8974
8975 var retorno = JSON.parse(retornoData);
8976
8977 if (retorno.status == 200 || retorno.status == 201) {
8978
8979 //Evita que o usuário recebe um email para cada unidade de interesse
8980 if(usuarioNotificado) return;
8981
8982 //Mensagem de sucesso registro interesse
8983 $('#modal-registro-interesse-sucesso').removeClass('d-none');
8984
8985 var prefixUrl = themeDisplay.getLayoutRelativeURL();
8986
8987 if (prefixUrl.indexOf('staging/') > 1)
8988 prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8);
8989 else
8990 prefixUrl = HOST;
8991
8992 $('#btn-voltar-home').attr('href', prefixUrl);
8993
8994 //Busca os dados do nome do usuário logado
8995 var username = getCookie('name').split(' ')[0];
8996
8997 //Prioridade para nomeSocial
8998 if (getCookie('nome_social') != null) {
8999 var nomeSocial = getCookie('nome_social').replace(/['"]+/g, '');
9000
9001 if (nomeSocial.length > 0) username = getCookie('nome_social');
9002
9003 }
9004
9005 username = username.replace(/['"]+/g, '');
9006
9007 var unidadesSel = getUnidadesSelecionadasRI();
9008
9009 //Disara um email para o usuário interessado
9010 var data = {
9011 emailInteressado: getCookie('email'),
9012 nomeInteressado: username,
9013 tituloCurso: $('.ssp-card-detalhe-curso__title').text(),
9014 unidades: unidadesSel.unidades,
9015 unidadesPrefix: unidadesSel.unidadesPrefix
9016 };
9017
9018 $.ajax({
9019 url: urlRegistroInteresseEmailInteressado,
9020 method: 'POST',
9021 data: JSON.stringify(data),
9022 headers: {
9023 'Accept': 'application/json',
9024 'Content-Type': 'application/json'
9025 },
9026 }).done(function(retornoData) {});
9027
9028 usuarioNotificado = true;
9029
9030 window.onclick = function(event) {
9031 $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) {
9032 if (event.target == _modal) {
9033 $('#modal-registro-interesse-sucesso').addClass('d-none');
9034 $('#modal-registro-interesse').addClass('d-none');
9035 $("body").removeClass("overflow-hidden")
9036 }
9037 });
9038 }
9039
9040 } else {
9041 //Mensagem de erro registro interesse
9042 $('#modal-registro-interesse-erro').removeClass('d-none');
9043 }
9044 } else {
9045 //Mensagem de erro registro interesse
9046 $('#modal-registro-interesse-erro').removeClass('d-none');
9047 }
9048 }).fail(function(){
9049 cleanLoadingSubmitButton('#enviar-registro-interesse-btn');
9050 $('#modal-registro-interesse-erro').removeClass('d-none');
9051 });
9052 });
9053 }
9054
9055 function verificaBtnEnviarRegistroInteresseAtivo(){
9056
9057 var diasSemanaSelecionado = false;
9058 var periodoSelecionado = false;
9059 var turmaSelecionada = false;
9060 var politicaPrivacidadeSelecionado = false;
9061
9062
9063 $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9064 if($(this).is(':checked'))
9065 periodoSelecionado = true;
9066 });
9067
9068 $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){
9069 if($(this).is(':checked'))
9070 turmaSelecionada = true;
9071 });
9072
9073 if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true;
9074
9075 var ativo = true
9076
9077 //Caso tenha algum dos selects de unidade sem uma opção válida selecionada
9078 if(!isAoVivo)
9079 ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length
9080
9081 ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado;
9082
9083 if(!isAoVivo && !isEmed){
9084
9085 $.each($('.ssp-week-day').not('#todosDias'), function(k, v){
9086 if($(this).hasClass('ssp-week-day-active'))
9087 diasSemanaSelecionado = true;
9088 });
9089 ativo = ativo && diasSemanaSelecionado;
9090
9091 }
9092
9093 if(isEmed)
9094 ativo = ativo && turmaSelecionada;
9095
9096 if(ativo)
9097 $('#enviar-registro-interesse-btn').attr("disabled", false);
9098 else
9099 $('#enviar-registro-interesse-btn').attr("disabled", true);
9100 }
9101
9102 function loadPlanoCurso(){
9103
9104 const urlGetPlanoCurso = urlPlanoCurso
9105
9106 .replace('\{codigoFT\}', $('[name="codigoFT"]').val())
9107 .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val());
9108
9109 $.ajax({
9110 url:urlGetPlanoCurso,
9111 method:'get',
9112 crossDomain: true,
9113 dataType: 'html',
9114 success: function( data ) {
9115
9116
9117 //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto)
9118 $('#plano-curso').append('<br/>'+data);
9119 },
9120 error: function(data){
9121
9122 console.log('Não existe a URL do plano de curso');
9123
9124 }
9125
9126 });
9127 }
9128
9129 function checkCursoTrampolim(){
9130 return $('[name="codigoFT"]').val() == "24493";
9131 }
9132
9133 /*function verificaOfertaValida(oferta){
9134
9135 if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta'] == '')
9136 return false;
9137
9138 var atual = new Date();
9139
9140 var dataOfertaPartes = oferta['dataInicio'].split('/');
9141
9142 var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]);
9143
9144 var dataLimiteMatriculaOfertaPartes = "";
9145 var dataLimiteMatriculaOferta = "";
9146
9147 if(oferta['dtLimiteMatricula'] != ""){
9148 dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-');
9149 dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());
9150
9151 }
9152
9153
9154 //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje
9155 if(dataOferta <= atual)
9156 if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" && atual.getTime() > dataLimiteMatriculaOferta.getTime()))
9157 return false;
9158
9159 return true;
9160 }*/
9161
9162
9163 function loadServerDate(){
9164
9165 $.ajax({
9166 url:urlGetServerT,
9167 method:'get',
9168 dataType: 'json',
9169 cache: 'false',
9170 headers: {
9171 'Cache-Control': 'no-store, no-cache, max-age=0',
9172 'Expires': '0',
9173 'Pragma': 'no-cache'
9174 },
9175 success: function( data ) {
9176 todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds);
9177 startTimer();
9178 }
9179 });
9180
9181 }
9182
9183 function handleVisibilityChange() {
9184
9185 if (!document[hidden] ){
9186 restartTimer();
9187 }
9188
9189 }
9190
9191 function restartTimer(){
9192
9193 if(restartTimeout == null){
9194 loadServerDate();
9195 restartTimeout = setTimeout(function(){
9196 restartTimeout = null;
9197 }, 5000);
9198 }
9199
9200 }
9201
9202 function startTimer(){
9203
9204 var mSeconds = todayG.getTime();
9205 if(interval01 != null){
9206 clearInterval(interval01);
9207 }
9208 interval01 = setInterval(function(){
9209 todayG.setTime(todayG.getTime() + 1000);
9210 }, 1000);
9211
9212 if(interval15 != null){
9213 clearInterval(interval15);
9214 }
9215 interval15 = setInterval(function(){
9216 mSeconds = mSeconds + 15000;
9217 todayG.setTime(mSeconds);
9218 }, 15000);
9219
9220 }
9221
9222 function checkIsAoVivo(){
9223 isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp;
9224 }
9225
9226
9227 //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta
9228 function buscaProximaOferta(){
9229 //Zera variável que controla existência de ofertas com bolsa
9230 //ofertasComBolsa = false;
9231
9232 //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas
9233 if(carregouUltimaOferta)
9234 return;
9235
9236 //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.
9237 var totalOfertasSlick = $('#turmas-container .slick-area__item').length;
9238 //Pegamos o índice da oferta do meio (central)
9239 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9240
9241 var totalOfertasADireita = totalOfertasSlick - currentSliderIndex;
9242
9243 //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca
9244 if(totalOfertasADireita > 2)
9245 return;
9246
9247 startOfertaParam = endOfertaParam;
9248 endOfertaParam += 16;
9249
9250 const codigoFT = $('[name="codigoFT"]').val();
9251 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val();
9252
9253 var unidadeCategoryId = '';
9254 var unidadeCodigoSelect = '';
9255
9256 if(isAoVivo){
9257
9258 $.each(objsTela.unidades, function(k,unidade){
9259 unidadeCategoryId += unidade['categoryId']+',';
9260 });
9261
9262 //tirando ultima virgula
9263 unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1);
9264
9265 }else{
9266 var splitted = $('#unidades-ofertas').val().split("@");
9267 unidadeCategoryId = splitted[0];
9268 unidadeCodigoSelect = splitted[1];
9269 }
9270
9271 var params = new URLSearchParams();
9272 params.set('codigoFTOferta',codigoFT)
9273 params.set('dataEfetivaOferta',dataEfetivaOferta)
9274 params.set('categoryIds',unidadeCategoryId)
9275 params.set('start',startOfertaParam)
9276 params.set('end',endOfertaParam)
9277 params.set('inscricaoAberta', $('#chkInscricao').prop('checked'))
9278 params.set('bolsaAberta', $('#chkBolsa').prop('checked'))
9279 params.set('cursoArticleId', $('[name="articleId"]').val() || '');
9280
9281 if($('#chkBolsa').prop('checked')){
9282 params.set('considerarDataBolsaFutura', true)
9283 }
9284
9285 const url = urlSearchOferta + '?' + params.toString()
9286
9287 $.ajax({
9288 url:url,
9289 method:'get',
9290 dataType:'json'
9291 }).done(
9292 function(data){
9293
9294 if(data.length > 0){
9295 var indiceOferta = startOfertaParam;
9296
9297 for (var index = 0; index < data.length; index++) {
9298
9299 var ofertaJSON = data[index];
9300 var oferta = getOfertaObjectFromJson(ofertaJSON,index);
9301
9302 //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta)
9303 if($('.codigoOferta_'+oferta.codigoOferta).length > 0){
9304 console.log('Ja tem a oferta '+oferta.codigoOferta);
9305 carregouUltimaOferta = true;
9306 break;
9307 }
9308
9309 //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo
9310 ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));
9311
9312 ofertasMap.set(oferta.codigoOferta, oferta);
9313
9314 if(isAoVivo)
9315 objsTela.ofertasAoVivoTodasUnidades.push(oferta);
9316
9317 //O indice é igual ao ultimo elemento buscado - 1
9318 var i = indiceOferta;
9319 oferta['indice'] = i;
9320
9321 if(isAoVivo)
9322 codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta);
9323 else codigoUnidade = unidadeCodigoSelect;
9324
9325
9326 montaHTMLOferta(oferta, i, codigoUnidade, true);
9327 montaHTMLModalFormaPgto(oferta, i, codigoUnidade);
9328
9329 montaHTMLModalLocalRealizacao(oferta, i);
9330 montaHTMLModalAntesCompra(oferta, i, codigoUnidade);
9331 verificaBotaoBolsaSS(oferta);
9332 verificaCursoAprendizagem(i);
9333 verificaCursoTrampolim(i);
9334
9335 associaEventoBtnFormaPagamento(i);
9336 associaEventoBtnComprar(i);
9337 associaEventoBtnComprarDentroFormaPgto(i);
9338 associaEventoBtnLocalRealizacao(i);
9339 associaEventosFecharModal(i);
9340
9341 if($('[name="tipoCurso"]').val() == 'extensao'){
9342 associaEventoBtnConheca(i);
9343 associaEventoBtnComprarConhecaDescontoOk(i);
9344 associaEventoBtnComprarConhecaDescontoNot(i);
9345 associaEventoBtnAlunoNao(i);
9346 associaEventoBtnAlunoSim(i);
9347
9348 }
9349
9350 indiceOferta++;
9351 }
9352
9353 controlaPaginaBolsa();
9354 }
9355 }
9356 );
9357
9358 }
9359
9360 function setUrlParam(key, value) {
9361 const url = new URL(window.location.href)
9362
9363 if(value)
9364 url.searchParams.set(key, value);
9365 else
9366 url.searchParams.delete(key);
9367
9368 window.history.pushState({}, '', url.toString())
9369 }
9370
9371 function selectFilter(paramkey, el) {
9372 setUrlParam(paramkey, el.prop("checked"))
9373 const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url')
9374 loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val())
9375
9376 if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show()
9377 else $('#msgFiltroAplicado').hide()
9378 }
9379
9380 function defineCurrentUrl(ev) {
9381 const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url')
9382
9383 const hasPathWeb = window.location.pathname.includes('/web')
9384 const hasPathGuest = window.location.pathname.includes('/guest')
9385
9386 let currentPath = window.location.pathname
9387 currentPath = hasPathWeb ? currentPath.substring(4) : currentPath
9388 currentPath = hasPathGuest ? currentPath.substring(6) : currentPath
9389
9390 objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, ''))
9391
9392 currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath
9393 currentPath = hasPathGuest ? '/guest' + currentPath : currentPath
9394 currentPath = hasPathWeb ? '/web' + currentPath : currentPath
9395
9396 if(keepURL())
9397 window.history.replaceState(window.history.state, '', currentPath + window.location.search)
9398 }
9399
9400 let isKeepURL = true
9401 /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */
9402 function keepURL() {
9403 const aux = isKeepURL
9404 isKeepURL = false
9405 return !aux
9406 }
9407
9408 loadServerDate();
9409 $(document).ready(function(){
9410
9411 if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){
9412 document.location.href = '/erro-404'
9413 }
9414
9415 ehCursoTrampolim = checkCursoTrampolim();
9416 checkIsAoVivo();
9417 loadPlanoCurso();
9418 loadCursosVocePodeGostar();
9419
9420 if(!isAoVivo) {
9421 $('#unidades-ofertas').change(ev => {
9422 mudarUnidade(ev)
9423 defineCurrentUrl(ev)
9424 });
9425 }
9426
9427 const urlParams = new URLSearchParams(window.location.search)
9428 $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true')
9429 $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) )
9430
9431 if($('#chkBolsa').length) {
9432 $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true')
9433 $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) )
9434 loadUnidades(!isAoVivo);
9435 } else {
9436 selectFilter('bolsa', $('#chkBolsa'))
9437 }
9438
9439 //Função para Montar breadcrumb Mobile
9440
9441 function breadcrumbMobile(){
9442
9443 const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');
9444
9445 if ( $.trim(linkEl.html()) === 'Técnico'){
9446
9447 linkEl.attr("href", "/cursos-tecnicos");
9448
9449 } else if ( $.trim(linkEl.html()) === 'Livre'){
9450
9451 if(isAoVivo){
9452 linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo')
9453 linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo");
9454 }else{
9455 linkEl.attr("href", "/cursos-livres");
9456 }
9457 } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){
9458
9459 linkEl.attr("href", "/jovem-aprendiz");
9460
9461 }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){
9462
9463 linkEl.attr("href", "/extensao-universitaria");
9464
9465 }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){
9466
9467 linkEl.attr("href", "/ensino-medio-tecnico");
9468 }
9469
9470 }
9471
9472 breadcrumbMobile()
9473
9474 //Esconde elementos quando o curso é aprendizagem
9475 if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){
9476 $('.ssp-section-novas-turmas').remove();
9477 $("div[class^='botoes-oferta-container_']").remove();
9478 }
9479
9480 //retira os itens de dentro do container
9481 $('.bg-').css('background-color','#e4e4e4')
9482 $('.container.py-3').removeClass('container py-3')
9483 //ajuste para versao 7.4
9484 $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass()
9485
9486
9487 //Fecha modal registro de interesse
9488
9489 $('#btn-close-Modal-registro-interesse').click(function(){
9490
9491 $('#modal-registro-interesse').addClass('d-none')
9492 $("body").removeClass("overflow-hidden")
9493
9494 })
9495
9496 $( "#modal-registro-interesse" ).click( function(event) {
9497
9498
9499
9500 if(event.target.id==$('#modal-registro-interesse')[0].id){
9501 $(this).addClass('d-none')
9502 }
9503
9504 });
9505
9506
9507 //Aviso sobre interesse em turmas
9508 $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse);
9509 if(!isEmed){
9510 $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas);
9511 $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias);
9512 } else {
9513 $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas)
9514 }
9515 $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos);
9516
9517 $('#btnLogin').click(function(){
9518
9519 login()
9520
9521 });
9522
9523 $('#btn-close-loginModal').click(function(){
9524 $('#modal-login').addClass('d-none')
9525 });
9526
9527 $('.ssp-week-day').not('#todosDias').click(function(){
9528
9529 $(this).toggleClass('ssp-week-day-active');
9530 verificaBtnEnviarRegistroInteresseAtivo();
9531
9532 });
9533
9534 $('#add-unidade-regsitro-interesse').click(function(e){
9535 var element = $('.ssp-card-registro-interesse__select.unidades').first().clone();
9536 element.empty();
9537 element.append('<option value="" disabled selected>Selecione uma unidade</option>')
9538 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9539
9540 if(!unidade['selecionado']){
9541 element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9542 }
9543
9544 });
9545 element.change(changeSelectUnidades)
9546
9547
9548 element.css('margin-top', '10px');
9549
9550 if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9551 element.attr("id", "select_" + cntSelectUnidades++)
9552 $('#select-unidades-registro-interesse').append(element);
9553 }
9554
9555 if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){
9556 $('#add-unidade-regsitro-interesse').addClass("d-none")
9557 }
9558
9559 verificaBtnEnviarRegistroInteresseAtivo();
9560 });
9561
9562 $('#remove-unidade-regsitro-interesse').click(function(e){
9563
9564 if($('.ssp-card-registro-interesse__select').length > 1){
9565
9566 var element = $('.ssp-card-registro-interesse__select').last();
9567
9568 var valueSelecionado = element.val();
9569
9570 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9571
9572 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9573 unidade['selecionado'] = false;
9574 unidade['selectSelecionado'] = "";
9575 }
9576
9577 });
9578 element.val("");
9579 cntSelectUnidades--;
9580 element.change()
9581
9582 element.remove();
9583 }
9584
9585 if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){
9586 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9587 }
9588
9589 verificaBtnEnviarRegistroInteresseAtivo();
9590 })
9591
9592 $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){
9593 verificaBtnEnviarRegistroInteresseAtivo();
9594 });
9595
9596 //Contador em ofertas de bolsas proximas
9597 var cancel = setInterval(atualizaTempoAberturasBolsas, 1000);
9598
9599 // Manipua o breadcrumb para as regras do Senac
9600
9601 if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai")
9602 $('ol.breadcrumb').find('li:first').remove();
9603
9604 var li = $('ol.breadcrumb').find('li:first');
9605
9606 if(li.text().trim() == 'Cursos'){
9607
9608 var primeiro = li.clone();
9609 primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home'));
9610 li.parent().prepend(primeiro);
9611
9612 var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim();
9613 var tipoBreadcrumb = '';
9614
9615 const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead"))
9616
9617 if(tipoCurso.includes("Cursos Livres")){
9618 if(isPresencialEad) {
9619 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso);
9620 } else {
9621 tipoBreadcrumb = htmlBreadcrumb(
9622 isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',
9623 isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso);
9624 }
9625 }else if(tipoCurso.includes("Extensão")){
9626 if(isPresencialEad) {
9627 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso);
9628 } else {
9629 tipoBreadcrumb = htmlBreadcrumb('/extensao-universitaria', tipoCurso);
9630 }
9631 }else if(tipoCurso.includes("Ensino Médio Técnico")){
9632 if(isPresencialEad) {
9633 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso);
9634 } else {
9635 tipoBreadcrumb = htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso);
9636 }
9637 }else if(tipoCurso.includes("Jovem Aprendiz")){
9638 if(isPresencialEad) {
9639 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso);
9640 } else {
9641 tipoBreadcrumb = htmlBreadcrumb('/jovem-aprendiz', tipoCurso);
9642 }
9643 }else{
9644 if(isPresencialEad) {
9645 tipoBreadcrumb = htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso);
9646 } else {
9647 tipoBreadcrumb = htmlBreadcrumb('/cursos-tecnicos', tipoCurso);
9648 }
9649 }
9650
9651 li.html(tipoBreadcrumb);
9652
9653 if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove();
9654
9655 }
9656
9657 $('#turmas-container').on('click', 'a.slick-next', function(e){
9658
9659 e.preventDefault();
9660 buscaProximaOferta();
9661
9662 });
9663
9664 $('#turmas-container').on('click', 'button.slick-dots', function(){
9665
9666
9667
9668 });
9669
9670 $(".next-mobile").on("click",function(e){
9671 e.preventDefault();
9672
9673 acoesMobileSliderOfertas("left");
9674 });
9675
9676 $(".prev-mobile").on("click",function(e){
9677 e.preventDefault();
9678
9679 acoesMobileSliderOfertas("right");
9680 });
9681
9682 //ação de drag do card de ofertas no mobile
9683 $('.oferta-slick-area').on('swipe', function(event, slick, direction){
9684 acoesMobileSliderOfertas(direction);
9685 });
9686
9687 loadAlternadores()
9688 let modalFormAprendizagem = document.querySelector('[data-modal="modal"]')
9689 if(modalFormAprendizagem){
9690 // Create dinamic close buttom form
9691 let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]')
9692
9693 btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem)
9694
9695 }
9696
9697 $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){
9698 openModalFormAprendizagem();
9699 })
9700
9701 });
9702
9703 function htmlBreadcrumb(link, title, display){
9704
9705 return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>';
9706
9707 }
9708
9709 function acoesMobileSliderOfertas(direcao){
9710
9711 if(direcao == "right"){
9712 $("a.slick-prev").click();
9713
9714 if($('.slick-current').attr('data-slick-index') == "0")
9715 $('.prev-mobile').addClass('nextPrevOpacity');
9716
9717 if($(".next-mobile").hasClass('nextPrevOpacity'))
9718 $('.next-mobile').removeClass('nextPrevOpacity');
9719 }
9720
9721
9722 if(direcao == "left"){
9723 $("a.slick-next").click();
9724
9725 if($(".prev-mobile").hasClass('nextPrevOpacity'))
9726 $('.prev-mobile').removeClass('nextPrevOpacity');
9727
9728 if(carregouUltimaOferta){
9729 var totalCardOfertas = $('#turmas-container .slick-area__item').length;
9730 var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));
9731
9732 //o card do meio é o último
9733 if(totalCardOfertas == (currentSliderIndex + 1))
9734 $('.next-mobile').addClass('nextPrevOpacity');
9735 }
9736 }
9737 }
9738
9739 //habilitar/desabilitar registro de interesse
9740 function habilitarRegistroInteresse(habilitar){
9741 var sectionRI = $('#section-registro-interesse')
9742
9743 if(isEmed) {
9744 sectionRI.hide()
9745 return;
9746 }
9747
9748 //Redmine #9309 - sempre irá mostrar
9749 habilitar = true
9750
9751 if(habilitar) sectionRI.show()
9752 else sectionRI.hide()
9753 }
9754
9755 function abrirModalRegistroInteresse(codUnidadeSelect){
9756 $('#modal-registro-interesse').removeClass('d-none');
9757 $("body").addClass("overflow-hidden")
9758 if(!isEmed){
9759 $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text());
9760 } else {
9761 $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar")
9762 $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text());
9763 }
9764
9765 $('.ssp-card-registro-interesse__select:not(#select_0)').remove();
9766 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9767 if(unidade['codigoUnidade'] == codUnidadeSelect){
9768 unidade['selecionado'] = true;
9769 unidade['selectSelecionado'] = 'select_0';
9770 } else {
9771 unidade['selecionado'] = false;
9772 unidade['selectSelecionado'] = "";
9773 }
9774
9775 });
9776 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9777 return ordenar(a, b, 'nome');
9778 });
9779
9780 $('#select_0').empty();
9781 $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>')
9782 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9783
9784 $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9785
9786 });
9787 $('#select_0').val(codUnidadeSelect);
9788 console.dir(objsTela.unidadesRegistroInteresse)
9789 if(isAoVivo){
9790 $('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none');
9791 }
9792 if(objsTela.unidadesRegistroInteresse.length > 1) {
9793 $('#add-unidade-regsitro-interesse').removeClass("d-none")
9794 $('#add-unidade-regsitro-interesse').show()
9795 $('#remove-unidade-regsitro-interesse').show()
9796 } else {
9797 $('#add-unidade-regsitro-interesse').hide()
9798 $('#remove-unidade-regsitro-interesse').hide()
9799 }
9800 }
9801
9802 $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades)
9803
9804 function changeSelectUnidades() {
9805 var codUnidadeSelecionada = $(this).val();
9806 var idSelectSelecionado = $(this).attr('id')
9807 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9808 if(unidade['codigoUnidade'] == codUnidadeSelecionada){
9809 unidade['selecionado'] = true;
9810 unidade['selectSelecionado'] = idSelectSelecionado;
9811 } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){
9812 unidade['selecionado'] = false;
9813 unidade['selectSelecionado'] = "";
9814 }
9815
9816 });
9817
9818 objsTela.unidadesRegistroInteresse.sort(function (a, b) {
9819 return ordenar(a, b, 'nome');
9820 });
9821
9822 $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() {
9823 var valueSelecionado = $(this).val();
9824 var idActualSelect = $(this).attr('id');
9825 $(this).empty();
9826 $(this).append('<option value="" disabled>Selecione uma unidade</option>')
9827 $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){
9828
9829 if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){
9830 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>');
9831 }else if(!unidade['selecionado']){
9832 $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>');
9833 }
9834
9835 });
9836 $(this).val(valueSelecionado)
9837 });
9838
9839 verificaBtnEnviarRegistroInteresseAtivo();
9840 }
9841
9842
9843 function ordenar(objA, objB, nomeAtributo){
9844 let a = (nomeAtributo) ? objA[nomeAtributo] : objA;
9845 let b = (nomeAtributo) ? objB[nomeAtributo] : objB;
9846
9847 return a.toString().localeCompare(b.toString());
9848 }
9849
9850 function paramOrdem(xml){
9851 if(isEmed){
9852 var ordemPeriodo = ['MA', 'TA', 'NO'];
9853 return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo);
9854 }else{
9855 return xml.find('[name="dataInicioOferta"]').text();
9856 }
9857 }
9858
9859 function getEtapaSelecionadaEmed(){
9860 var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo');
9861 if(!btnEtapa) return '';
9862 return btnEtapa.val();
9863 }
9864
9865 function filtraOfertasEtapa(etapa, ofertas){
9866 if(!etapa) return [];
9867 var ofertasEtapa = [];
9868 var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
9869 var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'};
9870 var ultimoPeriodo = null, indexPeriodo;
9871 ofertas = ofertas.sort(function(a, b){
9872 return ordenar(a, b, 'periodoDiaOferta');
9873 });
9874
9875 $.each(ofertas, async (index, oferta)=> {
9876 if(oferta['etapa'] == etapa){
9877 if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0;
9878 ultimoPeriodo = oferta['periodoDiaOferta'];
9879 oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || '');
9880 ofertasEtapa.push(oferta);
9881 }
9882 });
9883
9884 return ofertasEtapa;
9885 }
9886
9887 function formatarDataEmed(data, etapa, isDataFim){
9888
9889 try{
9890
9891 var splitdata = data.split('/');
9892 var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
9893 var mes = meses[parseInt(splitdata[1])-1];
9894
9895 var ano = splitdata[2];
9896
9897 if(isDataFim){
9898 ano = parseInt(splitdata[2]);
9899 }
9900
9901 return mes + '/' + ano;
9902 }catch(err){
9903 return data;
9904 }
9905
9906 }
99